summaryrefslogtreecommitdiffstats
path: root/configure.bat
blob: 385b1e35565e403c03b1c84c90d7c4f3b257ab9c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::
:: Copyright (C) 2016 The Qt Company Ltd.
:: Copyright (C) 2016 Intel Corporation.
:: Contact: https://www.qt.io/licensing/
::
:: This file is part of the tools applications of the Qt Toolkit.
::
:: $QT_BEGIN_LICENSE:GPL-EXCEPT$
:: Commercial License Usage
:: Licensees holding valid commercial Qt licenses may use this file in
:: accordance with the commercial license agreement provided with the
:: Software or, alternatively, in accordance with the terms contained in
:: a written agreement between you and The Qt Company. For licensing terms
:: and conditions see https://www.qt.io/terms-conditions. For further
:: information use the contact form at https://www.qt.io/contact-us.
::
:: GNU General Public License Usage
:: Alternatively, this file may be used under the terms of the GNU
:: General Public License version 3 as published by the Free Software
:: Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
:: included in the packaging of this file. Please review the following
:: information to ensure the GNU General Public License requirements will
:: be met: https://www.gnu.org/licenses/gpl-3.0.html.
::
:: $QT_END_LICENSE$
::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

@echo off
setlocal ENABLEEXTENSIONS
set ARGS=%*
set QTSRC=%~dp0
set QTDIR=%CD%

:doargs
    if "%~1" == "" goto doneargs

    if "%~1" == "/?" goto help
    if "%~1" == "-?" goto help
    if /i "%~1" == "/h" goto help
    if /i "%~1" == "-h" goto help
    if /i "%~1" == "/help" goto help
    if /i "%~1" == "-help" goto help
    if /i "%~1" == "--help" goto help

    shift
    goto doargs
:doneargs

echo Please wait while bootstrapping configure ...

for %%C in (clang-cl.exe cl.exe icl.exe g++.exe perl.exe jom.exe) do set %%C=%%~$PATH:C

if "%perl.exe%" == "" (
    echo Perl not found in PATH. Aborting. >&2
    exit /b 1
)
if not exist mkspecs (
    md mkspecs
    if errorlevel 1 goto exit
)

rem Extract Qt's version from .qmake.conf
for /f "eol=# tokens=1,2,3,4 delims=.= " %%i in (%QTSRC%.qmake.conf) do (
    if %%i == MODULE_VERSION (
        set QTVERMAJ=%%j
        set QTVERMIN=%%k
        set QTVERPAT=%%l
    )
)
set QTVERSION=%QTVERMAJ%.%QTVERMIN%.%QTVERPAT%

perl %QTSRC%bin\syncqt.pl -minimal -version %QTVERSION% -module QtCore -outdir "%QTDIR%" %QTSRC%
if errorlevel 1 goto exit

if not exist tools\configure (
    md tools\configure
    if errorlevel 1 goto exit
)
cd tools\configure
if errorlevel 1 goto exit

set make=nmake
if not "%jom.exe%" == "" set make=jom

echo #### Generated by configure.bat - DO NOT EDIT! ####> Makefile
echo/>> Makefile
echo QTVERSION = %QTVERSION%>> Makefile
rem These must have trailing spaces to avoid misinterpretation as 5>>, etc.
echo QT_VERSION_MAJOR = %QTVERMAJ% >> Makefile
echo QT_VERSION_MINOR = %QTVERMIN% >> Makefile
echo QT_VERSION_PATCH = %QTVERPAT% >> Makefile
if not "%icl.exe%" == "" (
    echo CXX = icl>>Makefile
    echo EXTRA_CXXFLAGS = /Qstd=c++11 /Zc:forScope>>Makefile
    rem This must have a trailing space.
    echo QTSRC = %QTSRC% >> Makefile
    set tmpl=win32
) else if not "%cl.exe%" == "" (
    echo CXX = cl>>Makefile
    echo EXTRA_CXXFLAGS =>>Makefile
    rem This must have a trailing space.
    echo QTSRC = %QTSRC% >> Makefile
    set tmpl=win32
) else if not "%clang-cl.exe%" == "" (
    echo CXX = clang-cl>>Makefile
    echo EXTRA_CXXFLAGS = -fms-compatibility-version=19.00.23506 -Wno-microsoft-enum-value>>Makefile
    rem This must have a trailing space.
    echo QTSRC = %QTSRC% >> Makefile
    set tmpl=win32
) else if not "%g++.exe%" == "" (
    echo CXX = g++>>Makefile
    echo EXTRA_CXXFLAGS =>>Makefile
    rem This must NOT have a trailing space.
    echo QTSRC = %QTSRC:\=/%>> Makefile
    set tmpl=mingw
    set make=mingw32-make
) else (
    echo No suitable compiler found in PATH. Aborting. >&2
    cd ..\..
    exit /b 1
)
echo/>> Makefile
type %QTSRC%tools\configure\Makefile.%tmpl% >> Makefile

%make%
if errorlevel 1 (cd ..\.. & exit /b 1)

cd ..\..

:conf
configureapp.exe -srcdir %QTSRC% %ARGS%
goto exit

:help
type %QTSRC%config_help.txt

:exit