Commit 707610b9f07ad96318e6d84f321588c060c0c294

Remove the installer from the Qt sources.

This copy of the installer doesn't work anymore.

Reviewed-By: TrustMe
  
1iwmake is the tool used to generate the Qt installer binaries.
2
3To be able to use it yourself create a config.default in the
4config/ directory. You can refer to config.default.sample to see
5which values need to be set within this file.
6
7Afterwards call "iwmake.bat mingw-opensource.conf" to create an
8installer package yourself.
9
10Note that the binary creation takes a lot of time and is very
11CPU-intensive as it recompiles the Qt source package among other
12steps.
  
1:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
2::
3:: Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
4:: All rights reserved.
5:: Contact: Nokia Corporation (qt-info@nokia.com)
6::
7:: This file is part of the tools applications of the Qt Toolkit.
8::
9:: $QT_BEGIN_LICENSE:LGPL$
10:: No Commercial Usage
11:: This file contains pre-release code and may not be distributed.
12:: You may use this file in accordance with the terms and conditions
13:: contained in the Technology Preview License Agreement accompanying
14:: this package.
15::
16:: GNU Lesser General Public License Usage
17:: Alternatively, this file may be used under the terms of the GNU Lesser
18:: General Public License version 2.1 as published by the Free Software
19:: Foundation and appearing in the file LICENSE.LGPL included in the
20:: packaging of this file. Please review the following information to
21:: ensure the GNU Lesser General Public License version 2.1 requirements
22:: will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
23::
24:: In addition, as a special exception, Nokia gives you certain additional
25:: rights. These rights are described in the Nokia Qt LGPL Exception
26:: version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
27::
28:: If you have questions regarding the use of this file, please contact
29:: Nokia at qt-info@nokia.com.
30::
31::
32::
33::
34::
35::
36::
37::
38:: $QT_END_LICENSE$
39::
40:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
41call :%1 %2
42goto END
43
44:begin
45for /F "tokens=1*" %%m in ("%~1") do set IWMAKE_COMPILER=%%~m& set IWMAKE_TMP=%%~n
46
47if "%IWMAKE_TMP%"=="" set IWMAKE_TMP=build_%IWMAKE_COMPILER%
48set IWMAKE_BUILD=%IWMAKE_ROOT%\%IWMAKE_TMP%
49if not exist %IWMAKE_BUILD% mkdir %IWMAKE_BUILD%
50
51if not "%PATH%"=="" set IWMAKE_OLD_PATH=%PATH%
52if not "%QMAKESPEC%"=="" set IWMAKE_OLD_QMAKESPEC=%QMAKESPEC%
53if not "%QTDIR%"=="" set IWMAKE_OLD_QTDIR=%QTDIR%
54if not "%INCLUDE%"=="" set IWMAKE_OLD_INCLUDE=%INCLUDE%
55if not "%LIB%"=="" set IWMAKE_OLD_LIB=%LIB%
56
57set PATH=%IWMAKE_BUILD%\bin;%PATH%
58set QTDIR=%IWMAKE_BUILD%
59
60if "%IWMAKE_COMPILER%"=="vs2003" goto VS2003Env
61if "%IWMAKE_COMPILER%"=="vs2002" goto VS2002Env
62if "%IWMAKE_COMPILER%"=="vs2005" goto VS2005Env
63if "%IWMAKE_COMPILER%"=="vc60" goto VC60Env
64if "%IWMAKE_COMPILER%"=="mingw" goto MinGWEnv
65goto :eof
66
67:VS2003Env
68set QMAKESPEC=win32-msvc.net
69if not exist "%VS71COMNTOOLS%vsvars32.bat" echo VS2003 not found >> %IWMAKE_LOGFILE% & exit /b 1
70call "%VS71COMNTOOLS%vsvars32.bat" >> %IWMAKE_LOGFILE%
71set IWMAKE_MAKE=nmake
72goto :eof
73
74:VS2002Env
75set QMAKESPEC=win32-msvc.net
76if not exist "%VSCOMNTOOLS%vsvars32.bat" echo VS2002 not found >> %IWMAKE_LOGFILE% & exit /b 1
77call "%VSCOMNTOOLS%vsvars32.bat" >> %IWMAKE_LOGFILE%
78set IWMAKE_MAKE=nmake
79goto :eof
80
81:VS2005Env
82set QMAKESPEC=win32-msvc2005
83if not exist "%VS80COMNTOOLS%vsvars32.bat" echo VS2005 not found >> %IWMAKE_LOGFILE% & exit /b 1
84call "%VS80COMNTOOLS%vsvars32.bat" >> %IWMAKE_LOGFILE%
85set IWMAKE_MAKE=nmake
86goto :eof
87
88:VC60Env
89set QMAKESPEC=win32-msvc
90if not exist "%ProgramFiles%\Microsoft Visual Studio\VC98\Bin\vcvars32.bat" echo VC60 not found >> %IWMAKE_LOGFILE% & exit /b 1
91call "%ProgramFiles%\Microsoft Visual Studio\VC98\Bin\vcvars32.bat" >> %IWMAKE_LOGFILE%
92set IWMAKE_MAKE=nmake
93goto :eof
94
95:MinGWEnv
96set QMAKESPEC=win32-g++
97if not exist %IWMAKE_MINGWPATH%\bin\gcc.exe echo MinGW not found in %IWMAKE_MINGWPATH% >> %IWMAKE_LOGFILE% & exit /b 1
98set PATH=%IWMAKE_MINGWPATH%\bin;%PATH%
99set IWMAKE_MAKE=mingw32-make
100goto :eof
101
102:finish
103 if not "%IWMAKE_OLD_PATH%"=="" set PATH=%IWMAKE_OLD_PATH%& set IWMAKE_OLD_PATH=
104 if not "%IWMAKE_OLD_QMAKESPEC%"=="" set QMAKESPEC=%IWMAKE_OLD_QMAKESPEC%& set IWMAKE_OLD_QMAKESPEC=
105 if not "%IWMAKE_OLD_QTDIR%"=="" set QTDIR=%IWMAKE_OLD_QTDIR%& set IWMAKE_OLD_QTDIR=
106 if not "%IWMAKE_OLD_INCLUDE%"=="" set INCLUDE=%IWMAKE_OLD_INCLUDE%& set IWMAKE_OLD_INCLUDE=
107 if not "%IWMAKE_OLD_LIB%"=="" set LIB=%IWMAKE_OLD_LIB%& set IWMAKE_OLD_LIB=
108goto :eof
109
110:configure
111 pushd %IWMAKE_BUILD%
112 configure %~1 >> %IWMAKE_LOGFILE% 2>&1
113 popd
114goto :eof
115
116:bin
117 pushd %IWMAKE_BUILD%
118 %IWMAKE_MAKE% %~1 >>%IWMAKE_LOGFILE% 2>&1
119 popd
120goto :eof
121
122:binInDir
123 for /F "tokens=1*" %%m in ("%~1") do set IWMAKE_TMP=%%~m& set IWMAKE_TMP2=%%~n
124 pushd %IWMAKE_BUILD%\%IWMAKE_TMP%
125 %IWMAKE_MAKE% %IWMAKE_TMP2% >> %IWMAKE_LOGFILE% 2>&1
126 popd
127goto :eof
128
129:DBPlugins
130 call "%IWMAKE_SCRIPTDIR%\batch\copy.bat" extsync sql
131 set IWMAKE_SQL_OLD_LIB=%LIB%
132 pushd %IWMAKE_BUILD%\src\plugins\sqldrivers\mysql
133 set LIB=%IWMAKE_ROOT%\sql\mysql\lib\debug;%IWMAKE_SQL_OLD_LIB%
134 qmake "INCLUDEPATH+=%IWMAKE_ROOT%\sql\mysql\include" "LIBS+=libmysql.lib ws2_32.lib advapi32.lib user32.lib" >> %IWMAKE_LOGFILE% 2>&1
135 %IWMAKE_MAKE% debug >> %IWMAKE_LOGFILE% 2>&1
136 set LIB=%IWMAKE_ROOT%\sql\mysql\lib\opt;%IWMAKE_SQL_OLD_LIB%
137 qmake "INCLUDEPATH+=%IWMAKE_ROOT%\sql\mysql\include" "LIBS+=libmysql.lib ws2_32.lib advapi32.lib" >> %IWMAKE_LOGFILE% 2>&1
138 %IWMAKE_MAKE% release >> %IWMAKE_LOGFILE% 2>&1
139 popd
140
141 set LIB=%IWMAKE_ROOT%\sql\%IWMAKE_COMPILER%;%IWMAKE_SQL_OLD_LIB%
142 pushd %IWMAKE_BUILD%\src\plugins\sqldrivers\psql
143 qmake "INCLUDEPATH+=%IWMAKE_ROOT%\sql\include\psql" "LIBS+=libpqd.lib ws2_32.lib advapi32.lib shfolder.lib shell32.lib" >> %IWMAKE_LOGFILE% 2>&1
144 %IWMAKE_MAKE% debug >> %IWMAKE_LOGFILE% 2>&1
145 qmake "INCLUDEPATH+=%IWMAKE_ROOT%\sql\include\psql" "LIBS+=libpq.lib ws2_32.lib advapi32.lib shfolder.lib shell32.lib" >> %IWMAKE_LOGFILE% 2>&1
146 %IWMAKE_MAKE% release >> %IWMAKE_LOGFILE% 2>&1
147 popd
148 set LIB=%IWMAKE_SQL_OLD_LIB%
149 set IWMAKE_SQL_OLD_LIB=
150goto :eof
151
152:root
153 set IWMAKE_BUILD=%~1
154 if not exist %IWMAKE_BUILD% mkdir %IWMAKE_BUILD%
155goto :eof
156
157:END
  
1:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
2::
3:: Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
4:: All rights reserved.
5:: Contact: Nokia Corporation (qt-info@nokia.com)
6::
7:: This file is part of the tools applications of the Qt Toolkit.
8::
9:: $QT_BEGIN_LICENSE:LGPL$
10:: No Commercial Usage
11:: This file contains pre-release code and may not be distributed.
12:: You may use this file in accordance with the terms and conditions
13:: contained in the Technology Preview License Agreement accompanying
14:: this package.
15::
16:: GNU Lesser General Public License Usage
17:: Alternatively, this file may be used under the terms of the GNU Lesser
18:: General Public License version 2.1 as published by the Free Software
19:: Foundation and appearing in the file LICENSE.LGPL included in the
20:: packaging of this file. Please review the following information to
21:: ensure the GNU Lesser General Public License version 2.1 requirements
22:: will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
23::
24:: In addition, as a special exception, Nokia gives you certain additional
25:: rights. These rights are described in the Nokia Qt LGPL Exception
26:: version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
27::
28:: If you have questions regarding the use of this file, please contact
29:: Nokia at qt-info@nokia.com.
30::
31::
32::
33::
34::
35::
36::
37::
38:: $QT_END_LICENSE$
39::
40:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
41call :%1 %2
42goto END
43
44:dest
45 set IWMAKE_OUTDIR=%IWMAKE_ROOT%\%~1
46 if not exist %IWMAKE_OUTDIR% mkdir %IWMAKE_OUTDIR%
47goto :eof
48
49:src
50 set IWMAKE_SRCDIR=%IWMAKE_ROOT%\%~1
51 if not exist %IWMAKE_SRCDIR% mkdir %IWMAKE_SRCDIR%
52goto :eof
53
54:destAbs
55 set IWMAKE_OUTDIR=%1
56 if not exist %IWMAKE_OUTDIR% mkdir %IWMAKE_OUTDIR%
57goto :eof
58
59:srcAbs
60 set IWMAKE_SRCDIR=%1
61 if not exist %IWMAKE_SRCDIR% mkdir %IWMAKE_SRCDIR%
62goto :eof
63
64:extsync
65 if exist %IWMAKE_ROOT%\%~1 rd /S /Q %IWMAKE_ROOT%\%~1 >> %IWMAKE_LOGFILE%
66 xcopy /H /Y /Q /I /R /E %IWMAKE_EXTERNAL%\%~1 %IWMAKE_ROOT%\%~1 >> %IWMAKE_LOGFILE%
67goto :eof
68
69:all
70 xcopy /H /Y /Q /I /R /S %IWMAKE_SRCDIR%\%~1 %IWMAKE_OUTDIR%\ >> %IWMAKE_LOGFILE%
71goto :eof
72
73:filesEx
74 for /F "tokens=1,2*" %%m in ("%~1") do set IWMAKE_TMP=%%~m& set IWMAKE_TMP2=%%~n& set IWMAKE_TMP3=%%~o
75 echo %IWMAKE_TMP3% > %IWMAKE_ROOT%\iwmake_exclude
76 xcopy /H /Y /Q /I /R /S /EXCLUDE:%IWMAKE_ROOT%\iwmake_exclude %IWMAKE_SRCDIR%\%IWMAKE_TMP% %IWMAKE_OUTDIR%\%IWMAKE_TMP2% >> %IWMAKE_LOGFILE%
77goto :eof
78
79:file
80 set IWMAKE_TMP=%~1
81 set IWMAKE_TMP2=%~nx1
82 echo set IWMAKE_TMP3=%%IWMAKE_TMP:%IWMAKE_TMP2%=%%>"%IWMAKE_ROOT%\iwmake_tmp.bat"
83 call %IWMAKE_ROOT%\iwmake_tmp.bat
84 if not exist "%IWMAKE_OUTDIR%\%IWMAKE_TMP3%" mkdir "%IWMAKE_OUTDIR%\%IWMAKE_TMP3%"
85 xcopy /H /Y /Q /I /R %IWMAKE_SRCDIR%\%IWMAKE_TMP% %IWMAKE_OUTDIR%\%IWMAKE_TMP3% >> %IWMAKE_LOGFILE%
86goto :eof
87
88:fileAndRename
89 for /F "tokens=1*" %%m in ("%~1") do set IWMAKE_TMP=%%~m& set IWMAKE_TMP2=%%~n& set IWMAKE_TMP4=%%~nxn
90 echo set IWMAKE_TMP3=%%IWMAKE_TMP2:%IWMAKE_TMP4%=%%>"%IWMAKE_ROOT%\iwmake_tmp.bat"
91 call %IWMAKE_ROOT%\iwmake_tmp.bat
92 if not exist "%IWMAKE_OUTDIR%\%IWMAKE_TMP3%" mkdir "%IWMAKE_OUTDIR%\%IWMAKE_TMP3%"
93 echo > %IWMAKE_OUTDIR%\%IWMAKE_TMP2%
94 xcopy /H /Y /Q /R %IWMAKE_SRCDIR%\%IWMAKE_TMP% %IWMAKE_OUTDIR%\%IWMAKE_TMP2% >> %IWMAKE_LOGFILE%
95 set IWMAKE_TMP4=
96goto :eof
97
98:files
99 for /F "tokens=1*" %%m in ("%~1") do set IWMAKE_TMP=%%~m& set IWMAKE_TMP2=%%~n
100 if not exist "%IWMAKE_OUTDIR%\%IWMAKE_TMP2%" mkdir "%IWMAKE_OUTDIR%\%IWMAKE_TMP2%"
101 xcopy /H /Y /Q /I /R /S %IWMAKE_SRCDIR%\%IWMAKE_TMP% %IWMAKE_OUTDIR%\%IWMAKE_TMP2% >> %IWMAKE_LOGFILE%
102goto :eof
103
104:runtime
105 for /F "tokens=1*" %%m in ("%~1") do set IWMAKE_TMP=%%~m& set IWMAKE_TMP2=%%~n
106 if "%IWMAKE_TMP2%" == "" set IWMAKE_TMP2=bin
107 xcopy /H /Y /Q /I /R %SystemRoot%\system32\msvcr%IWMAKE_TMP%.dll %IWMAKE_OUTDIR%\%IWMAKE_TMP2%\ >> %IWMAKE_LOGFILE%
108 xcopy /H /Y /Q /I /R %SystemRoot%\system32\msvcp%IWMAKE_TMP%.dll %IWMAKE_OUTDIR%\%IWMAKE_TMP2%\ >> %IWMAKE_LOGFILE%
109goto :eof
110
111:syncqt
112 pushd %IWMAKE_OUTDIR%
113 if exist "include" rd /S /Q include
114 if not "%QTDIR%"=="" set IWMAKE_OLD_QTDIR=%QTDIR%
115 set QTDIR=%IWMAKE_OUTDIR%
116 "%IWMAKE_PERLPATH%\perl" %QTDIR%\bin\syncqt -copy >> %IWMAKE_LOGFILE% 2>&1
117 if not "%IWMAKE_OLD_QTDIR%"=="" set QTDIR=%IWMAKE_OLD_QTDIR%
118 popd
119goto :eof
120
121:END
  
1:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
2::
3:: Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
4:: All rights reserved.
5:: Contact: Nokia Corporation (qt-info@nokia.com)
6::
7:: This file is part of the tools applications of the Qt Toolkit.
8::
9:: $QT_BEGIN_LICENSE:LGPL$
10:: No Commercial Usage
11:: This file contains pre-release code and may not be distributed.
12:: You may use this file in accordance with the terms and conditions
13:: contained in the Technology Preview License Agreement accompanying
14:: this package.
15::
16:: GNU Lesser General Public License Usage
17:: Alternatively, this file may be used under the terms of the GNU Lesser
18:: General Public License version 2.1 as published by the Free Software
19:: Foundation and appearing in the file LICENSE.LGPL included in the
20:: packaging of this file. Please review the following information to
21:: ensure the GNU Lesser General Public License version 2.1 requirements
22:: will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
23::
24:: In addition, as a special exception, Nokia gives you certain additional
25:: rights. These rights are described in the Nokia Qt LGPL Exception
26:: version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
27::
28:: If you have questions regarding the use of this file, please contact
29:: Nokia at qt-info@nokia.com.
30::
31::
32::
33::
34::
35::
36::
37::
38:: $QT_END_LICENSE$
39::
40:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
41call :%1 %2
42goto END
43
44:destDir
45 if exist "%IWMAKE_OUTDIR%\%~1" rd /S /Q %IWMAKE_OUTDIR%\%~1
46goto :eof
47
48:dir
49 if exist "%IWMAKE_ROOT%\%~1" rd /S /Q %IWMAKE_ROOT%\%~1
50goto :eof
51
52:dirAbs
53 if exist "%~1" rd /S /Q %~1
54goto :eof
55
56:file
57 del /Q /F %IWMAKE_OUTDIR%\%~1 >> %IWMAKE_LOGFILE% 2>&1
58 exit /b 0
59goto :eof
60
61:files
62 del /S /Q /F %IWMAKE_OUTDIR%\%~1 >> %IWMAKE_LOGFILE% 2>&1
63 exit /b 0
64goto :eof
65
66:line
67 for /F "tokens=1*" %%m in ("%~1") do set IWMAKE_TMP=%%~m& set IWMAKE_TMP2=%%~n
68 if exist "%IWMAKE_ROOT%\tmp_line.txt" del /Q /F "%IWMAKE_ROOT%\tmp_line.txt" >> %IWMAKE_LOGFILE%
69 type "%IWMAKE_ROOT%\%IWMAKE_TMP%" | find /V "%IWMAKE_TMP2%" >> "%IWMAKE_ROOT%\tmp_line.txt"
70 xcopy /Y /Q /R %IWMAKE_ROOT%\tmp_line.txt %IWMAKE_ROOT%\%IWMAKE_TMP% >> %IWMAKE_LOGFILE%
71goto :eof
72
73:END
  
1:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
2::
3:: Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
4:: All rights reserved.
5:: Contact: Nokia Corporation (qt-info@nokia.com)
6::
7:: This file is part of the tools applications of the Qt Toolkit.
8::
9:: $QT_BEGIN_LICENSE:LGPL$
10:: No Commercial Usage
11:: This file contains pre-release code and may not be distributed.
12:: You may use this file in accordance with the terms and conditions
13:: contained in the Technology Preview License Agreement accompanying
14:: this package.
15::
16:: GNU Lesser General Public License Usage
17:: Alternatively, this file may be used under the terms of the GNU Lesser
18:: General Public License version 2.1 as published by the Free Software
19:: Foundation and appearing in the file LICENSE.LGPL included in the
20:: packaging of this file. Please review the following information to
21:: ensure the GNU Lesser General Public License version 2.1 requirements
22:: will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
23::
24:: In addition, as a special exception, Nokia gives you certain additional
25:: rights. These rights are described in the Nokia Qt LGPL Exception
26:: version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
27::
28:: If you have questions regarding the use of this file, please contact
29:: Nokia at qt-info@nokia.com.
30::
31::
32::
33::
34::
35::
36::
37::
38:: $QT_END_LICENSE$
39::
40:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
41call :%1 %2
42goto END
43
44:setglobals
45set IWMAKE_PARSESECTION=1
46set IWMAKE_MINGWPATH=c:\MinGW\bin
47set IWMAKE_STARTDIR=%CD%
48set IWMAKE_NSISCONF=%IWMAKE_SCRIPTDIR%\nsis\config.nsh
49set IWMAKE_ROOT=c:\package
50set IWMAKE_OUTDIR=%IWMAKE_ROOT%
51set IWMAKE_SRCDIR=%IWMAKE_ROOT%
52set IWMAKE_EXTRACTDEST=%IWMAKE_ROOT%
53set IWMAKE_NSISPATH=%PROGRAMFILES%\NSIS
54call %IWMAKE_SCRIPTDIR%\batch\log.bat fileAbs "%IWMAKE_STARTDIR%\log.txt"
55goto :eof
56
57:signPath
58 set IWMAKE_SIGNPATH=%~1
59goto :eof
60
61:wgetPath
62 set IWMAKE_WGET=%~1
63goto :eof
64
65:wgetDir
66 set IWMAKE_WGET=%IWMAKE_ROOT%\%~1
67goto :eof
68
69:NSISPath
70 set IWMAKE_NSISPATH=%~1
71goto :eof
72
73:PerlPath
74 set IWMAKE_PERLPATH=%~1
75goto :eof
76
77:MinGWPath
78 set IWMAKE_MINGWPATH=%~1
79goto :eof
80
81:unzipApp
82 set IWMAKE_UNZIPAPP=%~1
83goto :eof
84
85:releaseLocation
86 set IWMAKE_WGETUSER=
87 set IWMAKE_WGETPASS=
88 for /F "tokens=1,2*" %%m in ("%~1") do set IWMAKE_TMP=%%~m& if not "%%~n"=="" set IWMAKE_TMP2=%%~n& if not "%%~o"=="" set IWMAKE_TMP3=%%~o
89 if not "%IWMAKE_TMP2%"=="" set IWMAKE_WGETUSER=--http-user=%IWMAKE_TMP2%
90 if not "%IWMAKE_TMP3%"=="" set IWMAKE_WGETPASS=--http-passwd=%IWMAKE_TMP3%
91 set IWMAKE_RELEASELOCATION=%IWMAKE_TMP%
92goto :eof
93
94:removeglobals
95if not "%IWMAKE_OLD_PATH%"=="" call %IWMAKE_SCRIPTDIR%\batch\build.bat finish
96set IWMAKE_RELEASELOCATION=
97set IWMAKE_NSISPATH=
98set IWMAKE_SECTION=
99set IWMAKE_WGET=
100set IWMAKE_WGETUSER=
101set IWMAKE_WGETPASS=
102set IWMAKE_UNZIPAPP=
103set IWMAKE_MINGWPATH=
104set IWMAKE_MAKE=
105set IWMAKE_PERLPATH=
106set IWMAKE_STARTDIR=
107set IWMAKE_SCRIPTDIR=
108set IWMAKE_NSISCONF=
109set IWMAKE_RESULT=
110set IWMAKE_TMP=
111set IWMAKE_TMP2=
112set IWMAKE_TMP3=
113set IWMAKE_STATUS=
114set IWMAKE_LOGFILE=
115set IWMAKE_BUILD=
116set IWMAKE_ROOT=
117set IWMAKE_OUTDIR=
118set IWMAKE_EXTERNAL=
119set IWMAKE_OLD_PATH=
120set IWMAKE_OLD_QMAKESPEC=
121set IWMAKE_OLD_QTDIR=
122set IWMAKE_OLD_INCLUDE=
123set IWMAKE_OLD_LIB=
124set IWMAKE_COMPILER=
125set IWMAKE_SRCDIR=
126set IWMAKE_EXTRACTSRC=
127set IWMAKE_EXTRACTDEST=
128set IWMAKE_PARSESECTION=
129set IWMAKE_OUTPUT_FILE=
130set IWMAKE_SIGNPATH=
131goto :eof
132
133:root
134set IWMAKE_ROOT=%~1
135goto :eof
136
137:extroot
138set IWMAKE_EXTERNAL=%~1
139goto :eof
140
141:END
  
1:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
2::
3:: Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
4:: All rights reserved.
5:: Contact: Nokia Corporation (qt-info@nokia.com)
6::
7:: This file is part of the tools applications of the Qt Toolkit.
8::
9:: $QT_BEGIN_LICENSE:LGPL$
10:: No Commercial Usage
11:: This file contains pre-release code and may not be distributed.
12:: You may use this file in accordance with the terms and conditions
13:: contained in the Technology Preview License Agreement accompanying
14:: this package.
15::
16:: GNU Lesser General Public License Usage
17:: Alternatively, this file may be used under the terms of the GNU Lesser
18:: General Public License version 2.1 as published by the Free Software
19:: Foundation and appearing in the file LICENSE.LGPL included in the
20:: packaging of this file. Please review the following information to
21:: ensure the GNU Lesser General Public License version 2.1 requirements
22:: will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
23::
24:: In addition, as a special exception, Nokia gives you certain additional
25:: rights. These rights are described in the Nokia Qt LGPL Exception
26:: version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
27::
28:: If you have questions regarding the use of this file, please contact
29:: Nokia at qt-info@nokia.com.
30::
31::
32::
33::
34::
35::
36::
37::
38:: $QT_END_LICENSE$
39::
40:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
41call :%1 %2
42goto END
43
44:dest
45 set IWMAKE_EXTRACTDEST=%IWMAKE_ROOT%\%~1
46goto :eof
47
48:extUnpack
49 set IWMAKE_EXTRACTSRC=%~n1
50 pushd %IWMAKE_ROOT%
51 if exist "%IWMAKE_EXTRACTSRC%.zip" del /Q /F "%IWMAKE_EXTRACTSRC%.zip"
52 %IWMAKE_WGET%\wget %IWMAKE_WGETUSER% %IWMAKE_WGETPASS% %IWMAKE_RELEASELOCATION%/%IWMAKE_EXTRACTSRC%.zip >> %IWMAKE_LOGFILE% 2>&1
53 popd
54 call :unpack "%~1"
55goto :eof
56
57:unpack
58 set IWMAKE_EXTRACTSRC=%~n1
59 pushd %IWMAKE_ROOT%
60 if exist "%IWMAKE_EXTRACTDEST%" rd /S /Q %IWMAKE_EXTRACTDEST% >> %IWMAKE_LOGFILE% 2>&1
61 if exist "%IWMAKE_EXTRACTSRC%" rd /S /Q %IWMAKE_EXTRACTSRC% >> %IWMAKE_LOGFILE% 2>&1
62 %IWMAKE_UNZIPAPP% %IWMAKE_EXTRACTSRC%.zip >> %IWMAKE_LOGFILE%
63 popd
64 move %IWMAKE_ROOT%\%IWMAKE_EXTRACTSRC% %IWMAKE_EXTRACTDEST% >> %IWMAKE_LOGFILE%
65goto :eof
66
67:extPatch
68 pushd %IWMAKE_ROOT%
69 if exist "%~1" del /Q /F "%~1"
70 %IWMAKE_WGET%\wget %IWMAKE_WGETUSER% %IWMAKE_WGETPASS% %IWMAKE_RELEASELOCATION%/%~1 >> %IWMAKE_LOGFILE% 2>&1
71 popd
72 call :patch "%~1"
73goto :eof
74
75:patch
76 pushd %IWMAKE_ROOT%
77 %IWMAKE_UNZIPAPP% %~1 >> %IWMAKE_LOGFILE%
78 popd
79 xcopy /R /I /S /Q /Y %IWMAKE_ROOT%\%IWMAKE_EXTRACTSRC%\*.* %IWMAKE_EXTRACTDEST%\ >> %IWMAKE_LOGFILE%
80 rd /S /Q %IWMAKE_ROOT%\%IWMAKE_EXTRACTSRC% >> %IWMAKE_LOGFILE%
81goto :eof
82
83:END
  
1:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
2::
3:: Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
4:: All rights reserved.
5:: Contact: Nokia Corporation (qt-info@nokia.com)
6::
7:: This file is part of the tools applications of the Qt Toolkit.
8::
9:: $QT_BEGIN_LICENSE:LGPL$
10:: No Commercial Usage
11:: This file contains pre-release code and may not be distributed.
12:: You may use this file in accordance with the terms and conditions
13:: contained in the Technology Preview License Agreement accompanying
14:: this package.
15::
16:: GNU Lesser General Public License Usage
17:: Alternatively, this file may be used under the terms of the GNU Lesser
18:: General Public License version 2.1 as published by the Free Software
19:: Foundation and appearing in the file LICENSE.LGPL included in the
20:: packaging of this file. Please review the following information to
21:: ensure the GNU Lesser General Public License version 2.1 requirements
22:: will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
23::
24:: In addition, as a special exception, Nokia gives you certain additional
25:: rights. These rights are described in the Nokia Qt LGPL Exception
26:: version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
27::
28:: If you have questions regarding the use of this file, please contact
29:: Nokia at qt-info@nokia.com.
30::
31::
32::
33::
34::
35::
36::
37::
38:: $QT_END_LICENSE$
39::
40:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
41call :%1 %2
42goto END
43
44:begin
45 call :reset
46 echo !define PRODUCT_NAME "%~1" >> %IWMAKE_NSISCONF%
47 echo !define INSTALL_ROOT "%IWMAKE_ROOT%" >> %IWMAKE_NSISCONF%
48goto :eof
49
50:output
51 set IWMAKE_OUTPUT_FILE=%~1
52 echo !define OUTPUT_FILE "%~1" >> %IWMAKE_NSISCONF%
53goto :eof
54
55:module
56 call "%IWMAKE_SCRIPTDIR%\batch\toupper.bat" %~1
57 echo !define MODULE_%IWMAKE_RESULT% >> %IWMAKE_NSISCONF%
58goto :eof
59
60:enable
61 call "%IWMAKE_SCRIPTDIR%\batch\toupper.bat" %~1
62 echo !define USE_%IWMAKE_RESULT:"=% >> %IWMAKE_NSISCONF%
63goto :eof
64
65:disable
66 call "%IWMAKE_SCRIPTDIR%\batch\toupper.bat" %~1
67 echo !undef USE_%IWMAKE_RESULT:"=% >> %IWMAKE_NSISCONF%
68goto :eof
69
70:startmenu
71 echo !define DEFAULT_STARTMENU_STRING "%~1" >> %IWMAKE_NSISCONF%
72goto :eof
73
74:reset
75 if exist "%IWMAKE_NSISCONF%" del /Q /F "%IWMAKE_NSISCONF%"
76goto :eof
77
78:instdir
79 for /F "tokens=1,2*" %%m in ("%~1") do set IWMAKE_TMP=%%~m& set IWMAKE_TMP2=%%~n& set IWMAKE_TMP3="%%~o"
80 call "%IWMAKE_SCRIPTDIR%\batch\toupper.bat" %IWMAKE_TMP%
81 echo !define INSTDIR_%IWMAKE_TMP2% %IWMAKE_RESULT:"=% >> "%IWMAKE_NSISCONF%"
82 echo !define INSTDIR_%IWMAKE_TMP2%_TEXT %IWMAKE_TMP3% >> "%IWMAKE_NSISCONF%"
83goto :eof
84
85:version
86 echo !define PRODUCT_VERSION "%~1" >> "%IWMAKE_NSISCONF%"
87goto :eof
88
89:readme
90 echo !define README_FILE "%~1" >> "%IWMAKE_NSISCONF%"
91goto :eof
92
93:licenseFile
94 echo !define LICENSE_FILE "%~1" >> "%IWMAKE_NSISCONF%"
95goto :eof
96
97:runfunction
98 echo !define RUN_FUNCTION "%~1" >> "%IWMAKE_NSISCONF%"
99goto :eof
100
101:readmefunction
102 echo !define README_FUNCTION "%~1" >> "%IWMAKE_NSISCONF%"
103goto :eof
104
105:welcomenote
106 echo !define WELCOME_NOTE "%~1" >> "%IWMAKE_NSISCONF%"
107goto :eof
108
109:updateplugins
110 call "%IWMAKE_SCRIPTDIR%\batch\copy.bat" extsync INetLoad
111 xcopy /Q /Y /R "%IWMAKE_ROOT%\INetLoad\INetLoad.dll" "%IWMAKE_NSISPATH%\Plugins\" >> %IWMAKE_LOGFILE%
112:: xcopy /Q /Y /R "%IWMAKE_SCRIPTDIR%\nsis\qtnsisext\qtnsisext.dll" "%IWMAKE_NSISPATH%\Plugins\" >> %IWMAKE_LOGFILE%
113goto :eof
114
115:defineDir
116 for /F "tokens=1,2*" %%m in ("%~1") do set IWMAKE_TMP=%%~m& set IWMAKE_TMP2=%%~n& set IWMAKE_TMP3=%%~o
117 call "%IWMAKE_SCRIPTDIR%\batch\toupper.bat" %IWMAKE_TMP%
118 set IWMAKE_TMP=%IWMAKE_RESULT%
119 call "%IWMAKE_SCRIPTDIR%\batch\toupper.bat" %IWMAKE_TMP2%
120 set IWMAKE_TMP2=%IWMAKE_RESULT%
121 echo !define MODULE_%IWMAKE_TMP%_%IWMAKE_TMP2% "%IWMAKE_ROOT%\%IWMAKE_TMP3%" >> "%IWMAKE_NSISCONF%"
122goto :eof
123
124:define
125 for /F "tokens=1,2*" %%m in ("%~1") do set IWMAKE_TMP=%%~m& set IWMAKE_TMP2=%%~n& set IWMAKE_TMP3="%%~o"
126 call "%IWMAKE_SCRIPTDIR%\batch\toupper.bat" %IWMAKE_TMP%
127 set IWMAKE_TMP=%IWMAKE_RESULT%
128 call "%IWMAKE_SCRIPTDIR%\batch\toupper.bat" %IWMAKE_TMP2%
129 set IWMAKE_TMP2=%IWMAKE_RESULT%
130 if %IWMAKE_TMP3%=="" set IWMAKE_TMP3=
131 echo !define MODULE_%IWMAKE_TMP%_%IWMAKE_TMP2% %IWMAKE_TMP3% >> "%IWMAKE_NSISCONF%"
132goto :eof
133
134:src
135 for /F "tokens=1*" %%m in ("%~1") do set IWMAKE_TMP=%%~m& set IWMAKE_TMP2=%%~n
136 call "%IWMAKE_SCRIPTDIR%\batch\toupper.bat" %IWMAKE_TMP%
137 set IWMAKE_TMP=%IWMAKE_RESULT%
138 set IWMAKE_TMP3="%IWMAKE_ROOT%\%IWMAKE_TMP2%"
139 echo !define MODULE_%IWMAKE_TMP%_ROOT %IWMAKE_TMP3% >> "%IWMAKE_NSISCONF%"
140goto :eof
141
142:buildDir
143 for /F "tokens=1*" %%m in ("%~1") do set IWMAKE_TMP=%%~m& set IWMAKE_TMP2=%%~n
144 call "%IWMAKE_SCRIPTDIR%\batch\toupper.bat" %IWMAKE_TMP%
145 set IWMAKE_TMP=%IWMAKE_RESULT%
146 set IWMAKE_TMP3="%IWMAKE_ROOT%\%IWMAKE_TMP2%"
147 echo !define MODULE_%IWMAKE_TMP%_BUILDDIR %IWMAKE_TMP3% >> "%IWMAKE_NSISCONF%"
148 for /F "eol=- tokens=1,2,3" %%m in ('%SystemRoot%\system32\find "QT_PACKAGEDATE_STR" %IWMAKE_ROOT%\%IWMAKE_TMP2%\src\corelib\global\qglobal.h') do echo !define MODULE_LICENSECHECK_PACKAGEDATE %%o >> "%IWMAKE_NSISCONF%"
149goto :eof
150
151:compile
152 call :required
153 pushd %IWMAKE_SCRIPTDIR%\nsis
154 "%IWMAKE_NSISPATH%\makensis.exe" installer.nsi >> %IWMAKE_LOGFILE%
155 popd
156goto :eof
157
158:required
159 call :setrequired PRODUCT_NAME
160 call :setrequired INSTALL_ROOT
161 call :setrequired PRODUCT_VERSION
162 call :setrequired OUTPUT_FILE
163 call :setrequired INSTDIR_0
164 call :setrequired DEFAULT_STARTMENU_STRING
165goto :eof
166
167:setrequired
168 echo !ifndef %1 >> "%IWMAKE_NSISCONF%"
169 echo !error "%1 must be in the .conf file..." >> "%IWMAKE_NSISCONF%"
170 echo !endif >> "%IWMAKE_NSISCONF%"
171goto :eof
172
173:makeFileList
174 for /F "tokens=1*" %%m in ("%~1") do set IWMAKE_TMP=%%~m& set IWMAKE_TMP2=%%~n
175 call "%IWMAKE_SCRIPTDIR%\batch\toupper.bat" %IWMAKE_TMP%
176 set IWMAKE_TMP=%IWMAKE_RESULT%
177 set IWMAKE_TMP3="%IWMAKE_ROOT%\%IWMAKE_TMP2%"
178
179
180 echo !macro MODULE_%IWMAKE_TMP%_INSTALLFILES >> "%IWMAKE_NSISCONF%"
181
182 pushd %IWMAKE_TMP3%
183
184 echo set IWMAKE_TMP2=%%IWMAKE_TMP2:%CD%\=%% > "%IWMAKE_ROOT%\iwmake_tmp.bat"
185
186 dir /AD /B /S | %SystemRoot%\system32\sort /R > "%IWMAKE_ROOT%\iwmake_tmp.txt"
187 for /F "tokens=1" %%m in (%IWMAKE_ROOT%\iwmake_tmp.txt) do call :addInstallDirectory "%%m"
188
189
190 dir /A-D /B /S > "%IWMAKE_ROOT%\iwmake_tmp.txt"
191 for /F "tokens=1" %%m in (%IWMAKE_ROOT%\iwmake_tmp.txt) do call :addInstallFile "%%m"
192
193 popd
194 echo !macroend >> "%IWMAKE_NSISCONF%"
195
196
197 echo !macro MODULE_%IWMAKE_TMP%_REMOVE removepath >> "%IWMAKE_NSISCONF%"
198 echo strcmp ${removepath} "" MODULE_%IWMAKE_TMP%_REMOVE_SAFETYLABEL >> "%IWMAKE_NSISCONF%"
199 pushd %IWMAKE_TMP3%
200
201 echo set IWMAKE_TMP2=%%IWMAKE_TMP2:%CD%\=%% > "%IWMAKE_ROOT%\iwmake_tmp.bat"
202
203 dir /A-D /B /S > "%IWMAKE_ROOT%\iwmake_tmp.txt"
204 for /F "tokens=1" %%m in (%IWMAKE_ROOT%\iwmake_tmp.txt) do call :addRemoveFiles "%%m"
205
206 dir /AD /B /S | %SystemRoot%\system32\sort /R > "%IWMAKE_ROOT%\iwmake_tmp.txt"
207 for /F "tokens=1" %%m in (%IWMAKE_ROOT%\iwmake_tmp.txt) do call :addRemoveDirectory "%%m"
208
209 popd
210 echo MODULE_%IWMAKE_TMP%_REMOVE_SAFETYLABEL: >> "%IWMAKE_NSISCONF%"
211 echo !macroend >> "%IWMAKE_NSISCONF%"
212goto :eof
213
214:addInstallFile
215 set IWMAKE_TMP2=%~1
216 call "%IWMAKE_ROOT%\iwmake_tmp.bat"
217 echo File "/oname=%IWMAKE_TMP2%" "%~1" >> "%IWMAKE_NSISCONF%"
218goto :eof
219
220:addInstallDirectory
221 set IWMAKE_TMP2=%~1
222 call "%IWMAKE_ROOT%\iwmake_tmp.bat"
223 echo CreateDirectory "$OUTDIR\%IWMAKE_TMP2%" >> "%IWMAKE_NSISCONF%"
224goto :eof
225
226:addRemoveDirectory
227 set IWMAKE_TMP2=%~1
228 call "%IWMAKE_ROOT%\iwmake_tmp.bat"
229 echo RMDir ${removepath}\%IWMAKE_TMP2% >> "%IWMAKE_NSISCONF%"
230goto :eof
231
232:addRemoveFiles
233 set IWMAKE_TMP2=%~1
234 call "%IWMAKE_ROOT%\iwmake_tmp.bat"
235 echo Delete ${removepath}\%IWMAKE_TMP2% >> "%IWMAKE_NSISCONF%"
236goto :eof
237
238:sign
239 echo Signing Installer ...
240 %IWMAKE_SIGNPATH%\signtool.exe sign /v /t http://timestamp.verisign.com/scripts/timestamp.dll /f "%IWMAKE_SIGNPATH%\keys.pfx" "%IWMAKE_OUTPUT_FILE%" >> %IWMAKE_LOGFILE%
241goto :eof
242
243:openpackage
244 echo !define OPENSOURCE_BUILD >> "%IWMAKE_NSISCONF%"
245goto :eof
246
247:END
  
1:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
2::
3:: Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
4:: All rights reserved.
5:: Contact: Nokia Corporation (qt-info@nokia.com)
6::
7:: This file is part of the tools applications of the Qt Toolkit.
8::
9:: $QT_BEGIN_LICENSE:LGPL$
10:: No Commercial Usage
11:: This file contains pre-release code and may not be distributed.
12:: You may use this file in accordance with the terms and conditions
13:: contained in the Technology Preview License Agreement accompanying
14:: this package.
15::
16:: GNU Lesser General Public License Usage
17:: Alternatively, this file may be used under the terms of the GNU Lesser
18:: General Public License version 2.1 as published by the Free Software
19:: Foundation and appearing in the file LICENSE.LGPL included in the
20:: packaging of this file. Please review the following information to
21:: ensure the GNU Lesser General Public License version 2.1 requirements
22:: will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
23::
24:: In addition, as a special exception, Nokia gives you certain additional
25:: rights. These rights are described in the Nokia Qt LGPL Exception
26:: version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
27::
28:: If you have questions regarding the use of this file, please contact
29:: Nokia at qt-info@nokia.com.
30::
31::
32::
33::
34::
35::
36::
37::
38:: $QT_END_LICENSE$
39::
40:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
41call :%1 %2
42goto END
43
44:file
45set IWMAKE_LOGFILE=%IWMAKE_ROOT%\%~1
46call :reset
47goto :eof
48
49:fileAbs
50set IWMAKE_LOGFILE=%1
51call :reset
52goto :eof
53
54:reset
55date /T > %IWMAKE_LOGFILE%
56goto :eof
57
58:END
  
1:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
2::
3:: Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
4:: All rights reserved.
5:: Contact: Nokia Corporation (qt-info@nokia.com)
6::
7:: This file is part of the tools applications of the Qt Toolkit.
8::
9:: $QT_BEGIN_LICENSE:LGPL$
10:: No Commercial Usage
11:: This file contains pre-release code and may not be distributed.
12:: You may use this file in accordance with the terms and conditions
13:: contained in the Technology Preview License Agreement accompanying
14:: this package.
15::
16:: GNU Lesser General Public License Usage
17:: Alternatively, this file may be used under the terms of the GNU Lesser
18:: General Public License version 2.1 as published by the Free Software
19:: Foundation and appearing in the file LICENSE.LGPL included in the
20:: packaging of this file. Please review the following information to
21:: ensure the GNU Lesser General Public License version 2.1 requirements
22:: will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
23::
24:: In addition, as a special exception, Nokia gives you certain additional
25:: rights. These rights are described in the Nokia Qt LGPL Exception
26:: version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
27::
28:: If you have questions regarding the use of this file, please contact
29:: Nokia at qt-info@nokia.com.
30::
31::
32::
33::
34::
35::
36::
37::
38:: $QT_END_LICENSE$
39::
40:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
41set IWMAKE_RESULT=%1
42if [%IWMAKE_RESULT%]==[] goto :eof
43set IWMAKE_RESULT=%IWMAKE_RESULT:a=A%
44set IWMAKE_RESULT=%IWMAKE_RESULT:b=B%
45set IWMAKE_RESULT=%IWMAKE_RESULT:c=C%
46set IWMAKE_RESULT=%IWMAKE_RESULT:d=D%
47set IWMAKE_RESULT=%IWMAKE_RESULT:e=E%
48set IWMAKE_RESULT=%IWMAKE_RESULT:f=F%
49set IWMAKE_RESULT=%IWMAKE_RESULT:g=G%
50set IWMAKE_RESULT=%IWMAKE_RESULT:h=H%
51set IWMAKE_RESULT=%IWMAKE_RESULT:i=I%
52set IWMAKE_RESULT=%IWMAKE_RESULT:j=J%
53set IWMAKE_RESULT=%IWMAKE_RESULT:k=K%
54set IWMAKE_RESULT=%IWMAKE_RESULT:l=L%
55set IWMAKE_RESULT=%IWMAKE_RESULT:m=M%
56set IWMAKE_RESULT=%IWMAKE_RESULT:n=N%
57set IWMAKE_RESULT=%IWMAKE_RESULT:o=O%
58set IWMAKE_RESULT=%IWMAKE_RESULT:p=P%
59set IWMAKE_RESULT=%IWMAKE_RESULT:q=Q%
60set IWMAKE_RESULT=%IWMAKE_RESULT:r=R%
61set IWMAKE_RESULT=%IWMAKE_RESULT:s=S%
62set IWMAKE_RESULT=%IWMAKE_RESULT:t=T%
63set IWMAKE_RESULT=%IWMAKE_RESULT:u=U%
64set IWMAKE_RESULT=%IWMAKE_RESULT:v=V%
65set IWMAKE_RESULT=%IWMAKE_RESULT:w=W%
66set IWMAKE_RESULT=%IWMAKE_RESULT:x=X%
67set IWMAKE_RESULT=%IWMAKE_RESULT:y=Y%
68set IWMAKE_RESULT=%IWMAKE_RESULT:z=Z%
  
1#############################################################################
2##
3## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
4## All rights reserved.
5## Contact: Nokia Corporation (qt-info@nokia.com)
6##
7## This file is part of the tools applications of the Qt Toolkit.
8##
9## $QT_BEGIN_LICENSE:LGPL$
10## No Commercial Usage
11## This file contains pre-release code and may not be distributed.
12## You may use this file in accordance with the terms and conditions
13## contained in the Technology Preview License Agreement accompanying
14## this package.
15##
16## GNU Lesser General Public License Usage
17## Alternatively, this file may be used under the terms of the GNU Lesser
18## General Public License version 2.1 as published by the Free Software
19## Foundation and appearing in the file LICENSE.LGPL included in the
20## packaging of this file. Please review the following information to
21## ensure the GNU Lesser General Public License version 2.1 requirements
22## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
23##
24## In addition, as a special exception, Nokia gives you certain additional
25## rights. These rights are described in the Nokia Qt LGPL Exception
26## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
27##
28## If you have questions regarding the use of this file, please contact
29## Nokia at qt-info@nokia.com.
30##
31##
32##
33##
34##
35##
36##
37##
38## $QT_END_LICENSE$
39##
40#############################################################################
41
42# root directory
43# Describes the directory where temporary folder, build directory and
44# package will be located at.
45env root "c:\qt_packages"
46
47# where to find all external files
48# To resolve the external dependencies specify a server, where to get
49# required tools like wget, sign, etc.
50env extroot "\\someshare\tools\"
51
52# Location of the installed MinGW to build binaries
53env mingwPath "c:\mingw"
54
55# Location to NSIS package creator
56env NSISPath "%ProgramFiles%\NSIS"
57
58# Location to the install path of PERL
59env perlPath "c:\Perl\bin"
60
61# source package directory
62# Describe the directory where compressed source package is located at.
63# The installer script uses this one for building and creating a package.
64env releaseLocation "http://your.source.server/somepath"
  
1#############################################################################
2##
3## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
4## All rights reserved.
5## Contact: Nokia Corporation (qt-info@nokia.com)
6##
7## This file is part of the tools applications of the Qt Toolkit.
8##
9## $QT_BEGIN_LICENSE:LGPL$
10## No Commercial Usage
11## This file contains pre-release code and may not be distributed.
12## You may use this file in accordance with the terms and conditions
13## contained in the Technology Preview License Agreement accompanying
14## this package.
15##
16## GNU Lesser General Public License Usage
17## Alternatively, this file may be used under the terms of the GNU Lesser
18## General Public License version 2.1 as published by the Free Software
19## Foundation and appearing in the file LICENSE.LGPL included in the
20## packaging of this file. Please review the following information to
21## ensure the GNU Lesser General Public License version 2.1 requirements
22## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
23##
24## In addition, as a special exception, Nokia gives you certain additional
25## rights. These rights are described in the Nokia Qt LGPL Exception
26## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
27##
28## If you have questions regarding the use of this file, please contact
29## Nokia at qt-info@nokia.com.
30##
31##
32##
33##
34##
35##
36##
37##
38## $QT_END_LICENSE$
39##
40#############################################################################
41#extracts the package to buildDir
42
43#extract dest "build_mingw_opensource"
44#Section EXTRACT
45#extract extUnpack "qt-win-opensource-src-%VERSION%.zip"
46#SectionEnd
47
48#build the binaries
49#build begin mingw "build_mingw_opensource"
50
51#Section CONFIGURE
52#build configure "-confirm-license -release -plugin-sql-sqlite -qt-libpng -qt-libjpeg"
53#SectionEnd
54
55#Section BUILD
56#build bin
57#SectionEnd
58
59#build finish
60
61# organize release files
62#Section ORGANIZE
63#delete dir "release_mingw_opensource"
64
65#copy dest "release_mingw_opensource"
66#copy src "build_mingw_opensource"
67
68# extract everything once more
69#extract dest "release_mingw_opensource"
70#extract unpack "qt-win-opensource-src-4.4.3.zip"
71
72# qconfig.h
73#copy file "src\corelib\global\qconfig.h"
74#copy file "include\QtCore\qconfig.h"
75#copy file "include\Qt\qconfig.h"
76
77# qconfig.pri
78#copy file "mkspecs\qconfig.pri"
79
80# .qmake.cache
81#copy file ".qmake.cache"
82
83# default mkspec
84#copy files "mkspecs\default\*" "mkspecs\default\"
85
86# copy all binary files
87#copy all "*.a"
88#copy all "*.exe"
89#copy all "*.dll"
90
91# .prl files
92#copy files "lib\*.prl" "lib\"
93
94# remove unused stuff
95#delete files "lib\*.dll"
96
97# copy InetLoad license info
98#copy files "..\INetLoad\Readme.txt" "src\3rdparty\InetLoad\"
99
100#SectionEnd
101
102Section NSIS
103# general installer options
104installer begin "Qt OpenSource"
105installer version "4.4.3"
106installer output "c:\iwmake\qt-win-opensource-4.4.3-mingw.exe"
107installer startmenu "Qt by Nokia v4.4.3 (OpenSource)"
108installer enable component_page
109installer enable directory_page
110installer enable startmenu_page
111installer instdir mingw 0 "Qt Installation Directory"
112installer licenseFile "%IWMAKE_ROOT%\release_mingw_opensource\LICENSE.GPL"
113#installer licenseFile "%IWMAKE_ROOT%\release_mingw_opensource\LICENSE.PREVIEW.OPENSOURCE"
114
115installer runfunction "Run Examples and Demos"
116installer readmefunction "Show Documentation"
117
118installer module registeruiext
119installer module opensource
120
121# mingw options
122installer module mingw
123installer src mingw "release_mingw_opensource"
124installer makeFileList mingw "release_mingw_opensource"
125installer buildDir mingw "build_mingw_opensource"
126installer enable nodirlengthcheck
127
128# public generatable package
129installer openpackage
130
131SectionEnd
132
133# compile the package
134Section NSIS_COMPILE
135installer compile
136SectionEnd
  
1:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
2::
3:: Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
4:: All rights reserved.
5:: Contact: Nokia Corporation (qt-info@nokia.com)
6::
7:: This file is part of the tools applications of the Qt Toolkit.
8::
9:: $QT_BEGIN_LICENSE:LGPL$
10:: No Commercial Usage
11:: This file contains pre-release code and may not be distributed.
12:: You may use this file in accordance with the terms and conditions
13:: contained in the Technology Preview License Agreement accompanying
14:: this package.
15::
16:: GNU Lesser General Public License Usage
17:: Alternatively, this file may be used under the terms of the GNU Lesser
18:: General Public License version 2.1 as published by the Free Software
19:: Foundation and appearing in the file LICENSE.LGPL included in the
20:: packaging of this file. Please review the following information to
21:: ensure the GNU Lesser General Public License version 2.1 requirements
22:: will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
23::
24:: In addition, as a special exception, Nokia gives you certain additional
25:: rights. These rights are described in the Nokia Qt LGPL Exception
26:: version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
27::
28:: If you have questions regarding the use of this file, please contact
29:: Nokia at qt-info@nokia.com.
30::
31::
32::
33::
34::
35::
36::
37::
38:: $QT_END_LICENSE$
39::
40:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
41rem @echo off
42call :init
43if "%IWMAKE_STATUS%"=="failed" goto FAILED
44if not exist "%IWMAKE_SCRIPTDIR%\config\%1.conf" goto FAILED
45if not "%~2"=="" set IWMAKE_SECTION=%~2
46for /F "eol=# tokens=1,2*" %%i in (%IWMAKE_SCRIPTDIR%\config\config.default) do set IWMAKE_TMP=%%k& call :func_delegate %%i %%j
47if "%IWMAKE_STATUS%"=="failed" goto FAILED
48if exist "%IWMAKE_SCRIPTDIR%\config\config.%COMPUTERNAME%" for /F "eol=# tokens=1,2*" %%i in (%IWMAKE_SCRIPTDIR%\config\config.%COMPUTERNAME%) do set IWMAKE_TMP=%%k& call :func_delegate %%i %%j
49if "%IWMAKE_STATUS%"=="failed" goto FAILED
50call :checkrequirements
51if "%IWMAKE_STATUS%"=="failed" goto FAILED
52for /F "eol=# tokens=1,2*" %%i in (%IWMAKE_SCRIPTDIR%\config\%1.conf) do set IWMAKE_TMP=%%k& call :func_delegate %%i %%j
53if "%IWMAKE_STATUS%"=="failed" goto FAILED
54goto DONE
55
56:func_delegate
57if "%IWMAKE_STATUS%"=="failed" goto :eof
58set IWMAKE_TMP="%IWMAKE_TMP:"=%"
59
60if /i "%1"=="sectionend" echo Leaving Section& set IWMAKE_PARSESECTION=1& goto :eof
61if /i not "%1"=="section" goto callScript
62echo Entering Section %~2
63for %%m in (%IWMAKE_SECTION%) do call :checkSection %%m %~2
64goto :eof
65
66:callScript
67if "%IWMAKE_PARSESECTION%"=="0" goto :eof
68
69call "%IWMAKE_SCRIPTDIR%\batch\%1.bat" %2 %IWMAKE_TMP%
70if not "%errorlevel%"=="0" echo %1 %2 failed! >> %IWMAKE_LOGFILE%& set IWMAKE_STATUS=failed
71goto :eof
72
73:checkSection
74 if /i "%1"=="%2" echo Skipping Section& set IWMAKE_PARSESECTION=0
75goto :eof
76
77:checkrequirements
78 if not exist %IWMAKE_ROOT% mkdir %IWMAKE_ROOT%
79 if not "%IWMAKE_SIGNPATH%"=="" goto CheckSIGNOK
80 call "%IWMAKE_SCRIPTDIR%\batch\copy.bat" extsync sign
81 call "%IWMAKE_SCRIPTDIR%\batch\env.bat" signPath "%IWMAKE_ROOT%\sign"
82:CheckSIGNOK
83 if not "%IWMAKE_WGET%"=="" goto CheckWGETOK
84 call "%IWMAKE_SCRIPTDIR%\batch\copy.bat" extsync wget
85 call "%IWMAKE_SCRIPTDIR%\batch\env.bat" wgetDir wget
86:CheckWGETOK
87 if exist "%IWMAKE_PERLPATH%\perl.exe" goto CheckPerlOK
88 set IWMAKE_STATUS=failed
89 echo Perl not found in %IWMAKE_PERLPATH%! (check your config file)
90:CheckPerlOK
91 if not "%IWMAKE_UNZIPAPP%"=="" goto CheckUNZIPOK
92 call "%IWMAKE_SCRIPTDIR%\batch\copy.bat" extsync unzip
93 call "%IWMAKE_SCRIPTDIR%\batch\env.bat" unzipApp "%IWMAKE_ROOT%\unzip\unzip.exe"
94:CheckUNZIPOK
95 if exist "%IWMAKE_NSISPATH%\makensis.exe" goto CheckNSISOK
96 set IWMAKE_STATUS=failed
97 echo NSIS not found! (check your config file)
98:CheckNSISOK
99 call "%IWMAKE_SCRIPTDIR%\batch\installer.bat" updateplugins
100goto :eof
101
102:init
103 set IWMAKE_SCRIPTDIR=%~dp0
104 set IWMAKE_SCRIPTDIR=%IWMAKE_SCRIPTDIR:~0,-1%
105 call "%IWMAKE_SCRIPTDIR%\batch\env.bat" setglobals
106goto :eof
107
108:cleanup
109 pushd "%IWMAKE_STARTDIR%"
110 call "%IWMAKE_SCRIPTDIR%\batch\env.bat" removeglobals
111 popd
112goto :eof
113
114:FAILED
115 call :cleanup
116 echo Failed!
117goto END
118
119:DONE
120 call :cleanup
121 echo Done!
122goto END
123
124:END
  
1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2;;
3;; Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
4;; All rights reserved.
5;; Contact: Nokia Corporation (qt-info@nokia.com)
6;;
7;; This file is part of the tools applications of the Qt Toolkit.
8;;
9;; $QT_BEGIN_LICENSE:LGPL$
10;; No Commercial Usage
11;; This file contains pre-release code and may not be distributed.
12;; You may use this file in accordance with the terms and conditions
13;; contained in the Technology Preview License Agreement accompanying
14;; this package.
15;;
16;; GNU Lesser General Public License Usage
17;; Alternatively, this file may be used under the terms of the GNU Lesser
18;; General Public License version 2.1 as published by the Free Software
19;; Foundation and appearing in the file LICENSE.LGPL included in the
20;; packaging of this file. Please review the following information to
21;; ensure the GNU Lesser General Public License version 2.1 requirements
22;; will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
23;;
24;; In addition, as a special exception, Nokia gives you certain additional
25;; rights. These rights are described in the Nokia Qt LGPL Exception
26;; version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
27;;
28;; If you have questions regarding the use of this file, please contact
29;; Nokia at qt-info@nokia.com.
30;;
31;;
32;;
33;;
34;;
35;;
36;;
37;;
38;; $QT_END_LICENSE$
39;;
40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
41; Ini file generated by the HM NIS Edit IO designer.
42[Settings]
43NumFields=2
44
45[Field 1]
46Type=Label
47Text=The following components will be uninstalled:
48Left=1
49Right=298
50Top=1
51Bottom=12
52
53[Field 2]
54Type=Label
55Left=16
56Right=298
57Top=16
58Bottom=136
  
1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2;;
3;; Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
4;; All rights reserved.
5;; Contact: Nokia Corporation (qt-info@nokia.com)
6;;
7;; This file is part of the tools applications of the Qt Toolkit.
8;;
9;; $QT_BEGIN_LICENSE:LGPL$
10;; No Commercial Usage
11;; This file contains pre-release code and may not be distributed.
12;; You may use this file in accordance with the terms and conditions
13;; contained in the Technology Preview License Agreement accompanying
14;; this package.
15;;
16;; GNU Lesser General Public License Usage
17;; Alternatively, this file may be used under the terms of the GNU Lesser
18;; General Public License version 2.1 as published by the Free Software
19;; Foundation and appearing in the file LICENSE.LGPL included in the
20;; packaging of this file. Please review the following information to
21;; ensure the GNU Lesser General Public License version 2.1 requirements
22;; will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
23;;
24;; In addition, as a special exception, Nokia gives you certain additional
25;; rights. These rights are described in the Nokia Qt LGPL Exception
26;; version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
27;;
28;; If you have questions regarding the use of this file, please contact
29;; Nokia at qt-info@nokia.com.
30;;
31;;
32;;
33;;
34;;
35;;
36;;
37;;
38;; $QT_END_LICENSE$
39;;
40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
41; Ini file generated by the HM NIS Edit IO designer.
42[Settings]
43NumFields=9
44
45[Field 1]
46Type=Groupbox
47Text=Find MinGW
48Left=0
49Right=299
50Top=49
51Bottom=91
52
53[Field 2]
54Type=Label
55Text=Please specify a directory where to find MinGW (for instance: C:\\MinGW). If you do not have MinGW installed, you can let the installer download and install it for you.
56Left=2
57Right=298
58Top=1
59Bottom=27
60
61[Field 3]
62Type=DirRequest
63Left=8
64Right=290
65Top=68
66Bottom=81
67
68[Field 4]
69Type=Groupbox
70Text=Download and install MinGW
71Left=0
72Right=299
73Top=94
74Bottom=137
75
76[Field 5]
77Type=Label
78Text=Previously installed MinGW:
79Left=8
80Right=286
81Top=60
82Bottom=68
83
84[Field 6]
85Type=DirRequest
86Left=8
87Right=290
88Top=116
89Bottom=129
90Flags=DISABLED
91
92[Field 7]
93Type=Label
94Text=Installation directory:
95Left=8
96Right=124
97Top=107
98Bottom=115
99Flags=DISABLED
100
101[Field 8]
102Type=Checkbox
103Text=Download and install minimal MinGW installation.
104Left=8
105Right=172
106Top=28
107Bottom=40
108Flags=NOTIFY
109
110[Field 9]
111Type=Link
112Text=(http://www.mingw.org)
113Left=174
114Right=260
115Top=30
116Bottom=38
117State=http://www.mingw.org
  
1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2;;
3;; Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
4;; All rights reserved.
5;; Contact: Nokia Corporation (qt-info@nokia.com)
6;;
7;; This file is part of the tools applications of the Qt Toolkit.
8;;
9;; $QT_BEGIN_LICENSE:LGPL$
10;; No Commercial Usage
11;; This file contains pre-release code and may not be distributed.
12;; You may use this file in accordance with the terms and conditions
13;; contained in the Technology Preview License Agreement accompanying
14;; this package.
15;;
16;; GNU Lesser General Public License Usage
17;; Alternatively, this file may be used under the terms of the GNU Lesser
18;; General Public License version 2.1 as published by the Free Software
19;; Foundation and appearing in the file LICENSE.LGPL included in the
20;; packaging of this file. Please review the following information to
21;; ensure the GNU Lesser General Public License version 2.1 requirements
22;; will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
23;;
24;; In addition, as a special exception, Nokia gives you certain additional
25;; rights. These rights are described in the Nokia Qt LGPL Exception
26;; version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
27;;
28;; If you have questions regarding the use of this file, please contact
29;; Nokia at qt-info@nokia.com.
30;;
31;;
32;;
33;;
34;;
35;;
36;;
37;;
38;; $QT_END_LICENSE$
39;;
40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
41; Ini file generated by the HM NIS Edit IO designer.
42[Settings]
43NumFields=3
44
45[Field 1]
46Type=Label
47Text=Select a mirror where to download MinGW:
48Left=0
49Right=211
50Top=0
51Bottom=8
52
53[Field 2]
54Type=Checkbox
55Text=Download MinGW source code. (You don't need this to compile Qt)
56Left=4
57Right=296
58Top=124
59Bottom=134
60
61[Field 3]
62Type=Listbox
63Left=0
64Right=299
65Top=9
66Bottom=118
Binary files differ
  
1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2;;
3;; Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
4;; All rights reserved.
5;; Contact: Nokia Corporation (qt-info@nokia.com)
6;;
7;; This file is part of the tools applications of the Qt Toolkit.
8;;
9;; $QT_BEGIN_LICENSE:LGPL$
10;; No Commercial Usage
11;; This file contains pre-release code and may not be distributed.
12;; You may use this file in accordance with the terms and conditions
13;; contained in the Technology Preview License Agreement accompanying
14;; this package.
15;;
16;; GNU Lesser General Public License Usage
17;; Alternatively, this file may be used under the terms of the GNU Lesser
18;; General Public License version 2.1 as published by the Free Software
19;; Foundation and appearing in the file LICENSE.LGPL included in the
20;; packaging of this file. Please review the following information to
21;; ensure the GNU Lesser General Public License version 2.1 requirements
22;; will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
23;;
24;; In addition, as a special exception, Nokia gives you certain additional
25;; rights. These rights are described in the Nokia Qt LGPL Exception
26;; version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
27;;
28;; If you have questions regarding the use of this file, please contact
29;; Nokia at qt-info@nokia.com.
30;;
31;;
32;;
33;;
34;;
35;;
36;;
37;;
38;; $QT_END_LICENSE$
39;;
40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
41!include "StrFunc.nsh"
42!include "includes\list.nsh"
43
44${StrCase}
45${StrTrimNewLines}
46${StrStr}
47${StrRep}
48${UnStrRep}
49
50var STARTMENU_STRING
51var PRODUCT_UNIQUE_KEY
52var RUNNING_AS_ADMIN
53
54!ifndef MODULE_MINGW
55 !ifdef MODULE_MSVC_VC60
56 !define INSTALL_COMPILER "vc60"
57 !else
58 !ifdef MODULE_MSVC_VS2002
59 !define INSTALL_COMPILER "vs2002"
60 !else
61 !ifdef MODULE_MSVC_VS2005
62 !define INSTALL_COMPILER "vs2005"
63 !else
64 !define INSTALL_COMPILER "vs2003"
65 !endif
66 !endif
67 !endif
68!else
69 !define INSTALL_COMPILER "mingw"
70!endif
71
72; ADDIN\INTEGRATION
73var VS_VERSION
74var VS_VERSION_SHORT
75var ADDIN_INSTDIR
76var VSIP_INSTDIR
77var HELP_INSTDIR
78var ECLIPSE_INSTDIR
79var QTJAMBIECLIPSE_INSTDIR
80
81; LICENSECHECK
82var LICENSE_KEY
83var LICENSEE
84var LICENSE_PRODUCT
85var LICENSE_FILE
86
87; MSVC
88!ifdef MODULE_MSVC
89 !define MSVC_ValidateDirectory
90 var MSVC_INSTDIR
91!endif
92
93; MINGW
94!ifdef MODULE_MINGW
95 !define MINGW_ValidateDirectory
96 var MINGW_INSTDIR
97!endif
98
99; QSA
100var QSA_INSTDIR
101
102; QTDIR PAGE
103var QTDIR_SELECTED
104var COMPILER_SELECTED
105
106; used by addin7x and vsip
107!ifndef MODULE_VSIP_ROOT
108 !define MODULE_VSIP_ROOT "${INSTALL_ROOT}\vsip"
109!endif
110
111; add to confirm path
112var UninstallerConfirmProduct
113
114Function un.ConfirmOnDelete
115 exch $0
116 push $1
117
118 push "$0"
119 push "$UninstallerConfirmProduct"
120 call un.ItemInList
121 pop $1
122 IntCmp $1 1 ConfirmOnDeleteDone
123
124 strcmp "$UninstallerConfirmProduct" "" 0 +3
125 strcpy $UninstallerConfirmProduct "$0"
126 goto +2
127 strcpy $UninstallerConfirmProduct "$UninstallerConfirmProduct$\r$\n$0"
128
129 ConfirmOnDeleteDone:
130 pop $1
131 pop $0
132FunctionEnd
133
134!macro ConfirmOnRemove REG_KEY PRODUCT_NAME
135 push $0
136 ClearErrors
137 ReadRegDWORD $0 SHCTX "$PRODUCT_UNIQUE_KEY" "${REG_KEY}"
138 intcmp $0 1 0 +3
139 push "${PRODUCT_NAME}"
140 call un.ConfirmOnDelete
141 ClearErrors
142 pop $0
143!macroend
  
1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2;;
3;; Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
4;; All rights reserved.
5;; Contact: Nokia Corporation (qt-info@nokia.com)
6;;
7;; This file is part of the tools applications of the Qt Toolkit.
8;;
9;; $QT_BEGIN_LICENSE:LGPL$
10;; No Commercial Usage
11;; This file contains pre-release code and may not be distributed.
12;; You may use this file in accordance with the terms and conditions
13;; contained in the Technology Preview License Agreement accompanying
14;; this package.
15;;
16;; GNU Lesser General Public License Usage
17;; Alternatively, this file may be used under the terms of the GNU Lesser
18;; General Public License version 2.1 as published by the Free Software
19;; Foundation and appearing in the file LICENSE.LGPL included in the
20;; packaging of this file. Please review the following information to
21;; ensure the GNU Lesser General Public License version 2.1 requirements
22;; will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
23;;
24;; In addition, as a special exception, Nokia gives you certain additional
25;; rights. These rights are described in the Nokia Qt LGPL Exception
26;; version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
27;;
28;; If you have questions regarding the use of this file, please contact
29;; Nokia at qt-info@nokia.com.
30;;
31;;
32;;
33;;
34;;
35;;
36;;
37;;
38;; $QT_END_LICENSE$
39;;
40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
41!ifndef INSTDIR_1
42 !macro INSTDIR_INITIALIZE
43 !define MUI_DIRECTORYPAGE_VARIABLE $${INSTDIR_0}_INSTDIR
44 !ifdef ${INSTDIR_0}_ValidateDirectory
45 !define MUI_PAGE_CUSTOMFUNCTION_LEAVE "${INSTDIR_0}_ValidateDirectoryFunc"
46 !endif
47 !insertmacro MUI_PAGE_DIRECTORY
48 !macroend
49 !macro INSTDIR_FUNCTIONS
50 !macroend
51 !macro INSTDIR_STARTUP
52 !macroend
53!else
54!macro INSTDIR_INITIALIZE
55 !define INSTDIR_INI_FILE "instdir.ini"
56 !define INSTDIR_0_DIRFIELD "Field 10"
57 !define INSTDIR_0_TEXTFIELD "Field 13"
58 !define INSTDIR_1_DIRFIELD "Field 7"
59 !define INSTDIR_1_TEXTFIELD "Field 11"
60 !define INSTDIR_2_DIRFIELD "Field 5"
61 !define INSTDIR_2_TEXTFIELD "Field 8"
62 !define INSTDIR_3_DIRFIELD "Field 3"
63 !define INSTDIR_3_TEXTFIELD "Field 6"
64 !define INSTDIR_4_DIRFIELD "Field 2"
65 !define INSTDIR_4_TEXTFIELD "Field 4"
66 !define INSTDIR_5_DIRFIELD "Field 9"
67 !define INSTDIR_5_TEXTFIELD "Field 12"
68 !define INSTDIR_DIRHEIGHT 18
69
70 Page custom InitInstDirs UpdateInstDirs
71
72 LangString InstDirLicenseTitle ${LANG_ENGLISH} "Installation Directories"
73 LangString InstDirLicenseTitleDescription ${LANG_ENGLISH} "Select the directories where you want the software installed."
74!macroend
75
76!macro INSTDIR_FUNCTIONS
77 Function InitInstDirs
78 push $0
79 push $1
80 push $2
81 push $3
82
83 !insertmacro MUI_HEADER_TEXT "$(InstDirLicenseTitle)" "$(InstDirLicenseTitleDescription)"
84 strcpy $0 "129"
85
86!ifdef INSTDIR_0
87 SectionGetFlags ${${INSTDIR_0}_SEC01} $1
88!ifdef ${INSTDIR_0}_SEC02
89 SectionGetFlags ${${INSTDIR_0}_SEC02} $3
90 IntOp $1 $1 | $3
91!endif
92 IntOp $2 $1 & 1 ;just care about the first flag
93 StrCpy $1 "READONLY"
94 StrCmp "$2" "1" +2
95 StrCpy $1 "DISABLED"
96 !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_0_TEXTFIELD}" "Flags" "$1"
97 !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_0_DIRFIELD}" "Flags" "$1"
98 !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_0_TEXTFIELD}" "Text" "${INSTDIR_0_TEXT}"
99 !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_0_DIRFIELD}" "State" $${INSTDIR_0}_INSTDIR
100!else
101 !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_0_DIRFIELD}" "Type" "Unknown"
102 !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_0_TEXTFIELD}" "Type" "Unknown"
103 intop $0 $0 - ${INSTDIR_DIRHEIGHT}
104!endif
105!ifdef INSTDIR_1
106 SectionGetFlags ${${INSTDIR_1}_SEC01} $1
107!ifdef ${INSTDIR_1}_SEC02
108 SectionGetFlags ${${INSTDIR_1}_SEC02} $3
109 IntOp $1 $1 | $3
110!endif
111 IntOp $2 $1 & 1 ;just care about the first flag
112 StrCpy $1 "READONLY"
113 StrCmp "$2" "1" +2
114 StrCpy $1 "DISABLED"
115 !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_1_TEXTFIELD}" "Flags" "$1"
116 !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_1_DIRFIELD}" "Flags" "$1"
117 !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_1_TEXTFIELD}" "Text" "${INSTDIR_1_TEXT}"
118 !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_1_DIRFIELD}" "State" $${INSTDIR_1}_INSTDIR
119!else
120 !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_1_DIRFIELD}" "Type" "Unknown"
121 !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_1_TEXTFIELD}" "Type" "Unknown"
122 intop $0 $0 - ${INSTDIR_DIRHEIGHT}
123!endif
124!ifdef INSTDIR_2
125 SectionGetFlags ${${INSTDIR_2}_SEC01} $1
126!ifdef ${INSTDIR_2}_SEC02
127 SectionGetFlags ${${INSTDIR_2}_SEC02} $3
128 IntOp $1 $1 | $3
129!endif
130 IntOp $2 $1 & 1 ;just care about the first flag
131 StrCpy $1 "READONLY"
132 StrCmp "$2" "1" +2
133 StrCpy $1 "DISABLED"
134 !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_2_TEXTFIELD}" "Flags" "$1"
135 !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_2_DIRFIELD}" "Flags" "$1"
136 !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_2_TEXTFIELD}" "Text" "${INSTDIR_2_TEXT}"
137 !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_2_DIRFIELD}" "State" $${INSTDIR_2}_INSTDIR
138!else
139 !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_2_DIRFIELD}" "Type" "Unknown"
140 !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_2_TEXTFIELD}" "Type" "Unknown"
141 intop $0 $0 - ${INSTDIR_DIRHEIGHT}
142!endif
143!ifdef INSTDIR_3
144 SectionGetFlags ${${INSTDIR_3}_SEC01} $1
145!ifdef ${INSTDIR_3}_SEC02
146 SectionGetFlags ${${INSTDIR_3}_SEC02} $3
147 IntOp $1 $1 | $3
148!endif
149 IntOp $2 $1 & 1 ;just care about the first flag
150 StrCpy $1 "READONLY"
151 StrCmp "$2" "1" +2
152 StrCpy $1 "DISABLED"
153 !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_3_TEXTFIELD}" "Flags" "$1"
154 !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_3_DIRFIELD}" "Flags" "$1"
155 !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_3_TEXTFIELD}" "Text" "${INSTDIR_3_TEXT}"
156 !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_3_DIRFIELD}" "State" $${INSTDIR_3}_INSTDIR
157!else
158 !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_3_DIRFIELD}" "Type" "Unknown"
159 !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_3_TEXTFIELD}" "Type" "Unknown"
160 intop $0 $0 - ${INSTDIR_DIRHEIGHT}
161!endif
162!ifdef INSTDIR_4
163 SectionGetFlags ${${INSTDIR_4}_SEC01} $1
164!ifdef ${INSTDIR_4}_SEC02
165 SectionGetFlags ${${INSTDIR_4}_SEC02} $3
166 IntOp $1 $1 | $3
167!endif
168 IntOp $2 $1 & 1 ;just care about the first flag
169 StrCpy $1 "READONLY"
170 StrCmp "$2" "1" +2
171 StrCpy $1 "DISABLED"
172 !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_4_TEXTFIELD}" "Flags" "$1"
173 !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_4_DIRFIELD}" "Flags" "$1"
174 !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_4_TEXTFIELD}" "Text" "${INSTDIR_4_TEXT}"
175 !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_4_DIRFIELD}" "State" $${INSTDIR_4}_INSTDIR
176!else
177 !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_4_DIRFIELD}" "Type" "Unknown"
178 !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_4_TEXTFIELD}" "Type" "Unknown"
179 intop $0 $0 - ${INSTDIR_DIRHEIGHT}
180!endif
181!ifdef INSTDIR_5
182 SectionGetFlags ${${INSTDIR_5}_SEC01} $1
183!ifdef ${INSTDIR_5}_SEC02
184 SectionGetFlags ${${INSTDIR_5}_SEC02} $3
185 IntOp $1 $1 | $3
186!endif
187 IntOp $2 $1 & 1 ;just care about the first flag
188 StrCpy $1 "READONLY"
189 StrCmp "$2" "1" +2
190 StrCpy $1 "DISABLED"
191 !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_5_TEXTFIELD}" "Flags" "$1"
192 !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_5_DIRFIELD}" "Flags" "$1"
193 !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_5_TEXTFIELD}" "Text" "${INSTDIR_5_TEXT}"
194 !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_5_DIRFIELD}" "State" $${INSTDIR_5}_INSTDIR
195!else
196 !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_5_DIRFIELD}" "Type" "Unknown"
197 !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_5_TEXTFIELD}" "Type" "Unknown"
198 intop $0 $0 - ${INSTDIR_DIRHEIGHT}
199!endif
200
201 !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "Field 1" "Bottom" "$0"
202 !insertmacro MUI_INSTALLOPTIONS_DISPLAY "${INSTDIR_INI_FILE}"
203
204 pop $3
205 pop $2
206 pop $1
207 pop $0
208 FunctionEnd
209
210 Function UpdateInstDirs
211!ifdef INSTDIR_0
212 !insertmacro MUI_INSTALLOPTIONS_READ $${INSTDIR_0}_INSTDIR "${INSTDIR_INI_FILE}" "${INSTDIR_0_DIRFIELD}" "State"
213 !ifdef ${INSTDIR_0}_ValidateDirectory
214 call ${INSTDIR_0}_ValidateDirectoryFunc
215 !endif
216!endif
217!ifdef INSTDIR_1
218 !insertmacro MUI_INSTALLOPTIONS_READ $${INSTDIR_1}_INSTDIR "${INSTDIR_INI_FILE}" "${INSTDIR_1_DIRFIELD}" "State"
219 !ifdef ${INSTDIR_1}_ValidateDirectory
220 call ${INSTDIR_1}_ValidateDirectoryFunc
221 !endif
222!endif
223!ifdef INSTDIR_2
224 !insertmacro MUI_INSTALLOPTIONS_READ $${INSTDIR_2}_INSTDIR "${INSTDIR_INI_FILE}" "${INSTDIR_2_DIRFIELD}" "State"
225 !ifdef ${INSTDIR_2}_ValidateDirectory
226 call ${INSTDIR_2}_ValidateDirectoryFunc
227 !endif
228!endif
229!ifdef INSTDIR_3
230 !insertmacro MUI_INSTALLOPTIONS_READ $${INSTDIR_3}_INSTDIR "${INSTDIR_INI_FILE}" "${INSTDIR_3_DIRFIELD}" "State"
231 !ifdef ${INSTDIR_3}_ValidateDirectory
232 call ${INSTDIR_3}_ValidateDirectoryFunc
233 !endif
234!endif
235!ifdef INSTDIR_4
236 !insertmacro MUI_INSTALLOPTIONS_READ $${INSTDIR_4}_INSTDIR "${INSTDIR_INI_FILE}" "${INSTDIR_4_DIRFIELD}" "State"
237 !ifdef ${INSTDIR_4}_ValidateDirectory
238 call ${INSTDIR_4}_ValidateDirectoryFunc
239 !endif
240!endif
241!ifdef INSTDIR_5
242 !insertmacro MUI_INSTALLOPTIONS_READ $${INSTDIR_5}_INSTDIR "${INSTDIR_INI_FILE}" "${INSTDIR_5_DIRFIELD}" "State"
243 !ifdef ${INSTDIR_5}_ValidateDirectory
244 call ${INSTDIR_5}_ValidateDirectoryFunc
245 !endif
246!endif
247 FunctionEnd
248!macroend
249
250!macro INSTDIR_STARTUP
251 !insertmacro MUI_INSTALLOPTIONS_EXTRACT "${INSTDIR_INI_FILE}"
252!macroend
253
254!endif ;ifndef INSTDIR_1
  
1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2;;
3;; Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
4;; All rights reserved.
5;; Contact: Nokia Corporation (qt-info@nokia.com)
6;;
7;; This file is part of the tools applications of the Qt Toolkit.
8;;
9;; $QT_BEGIN_LICENSE:LGPL$
10;; No Commercial Usage
11;; This file contains pre-release code and may not be distributed.
12;; You may use this file in accordance with the terms and conditions
13;; contained in the Technology Preview License Agreement accompanying
14;; this package.
15;;
16;; GNU Lesser General Public License Usage
17;; Alternatively, this file may be used under the terms of the GNU Lesser
18;; General Public License version 2.1 as published by the Free Software
19;; Foundation and appearing in the file LICENSE.LGPL included in the
20;; packaging of this file. Please review the following information to
21;; ensure the GNU Lesser General Public License version 2.1 requirements
22;; will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
23;;
24;; In addition, as a special exception, Nokia gives you certain additional
25;; rights. These rights are described in the Nokia Qt LGPL Exception
26;; version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
27;;
28;; If you have questions regarding the use of this file, please contact
29;; Nokia at qt-info@nokia.com.
30;;
31;;
32;;
33;;
34;;
35;;
36;;
37;;
38;; $QT_END_LICENSE$
39;;
40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
41!ifndef LIST_INCLUDE
42!define LIST_INCLUDE
43
44; usage:
45; push item
46; push list
47; call ItemInList
48; returns 1 or 0
49!macro ItemInList UN
50Function ${UN}ItemInList
51 exch $0 ;list
52 exch
53 exch $1 ;item
54 push $2 ;counter
55 push $3 ;substr
56 push $4 ;char
57
58 strcpy $3 ""
59 strcpy $2 "0"
60
61 loop:
62 strcpy $4 $0 1 $2
63 strcmp "$4" "" atend
64 intop $2 $2 + 1
65
66 strcmp "$4" "|" 0 +4
67 strcmp "$3" "$1" found
68 strcpy $3 "" ;reset substr
69 goto +2
70 strcpy $3 "$3$4" ;append char to substr
71 goto loop
72
73 found:
74 strcpy $0 "1"
75 goto done
76
77 atend:
78 strcmp "$3" "$1" found
79 strcpy $0 "0"
80
81 done:
82 pop $4
83 pop $3
84 pop $2
85 pop $1
86 exch $0
87FunctionEnd
88!macroend
89
90!insertmacro ItemInList ""
91!insertmacro ItemInList "un."
92
93Function GetItemInList
94 exch $0 ;list
95 exch
96 exch $1 ;index
97 push $2 ;counter
98 push $3 ;substr
99 push $4 ;char
100 push $5 ;current index
101
102 strcpy $3 ""
103 strcpy $2 "0"
104 strcpy $5 "1"
105
106 loop:
107 strcpy $4 $0 1 $2
108 strcmp "$4" "" atend
109 intop $2 $2 + 1
110
111 strcmp "$4" "|" 0 +5
112 strcmp "$5" "$1" found
113 strcpy $3 "" ;reset substr
114 intop $5 $5 + 1
115 goto +2
116 strcpy $3 "$3$4" ;append char to substr
117 goto loop
118
119 found:
120 strcpy $0 "$3"
121 goto done
122
123 atend:
124 strcmp "$5" "$1" found
125 strcpy $0 ""
126
127 done:
128 pop $5
129 pop $4
130 pop $3
131 pop $2
132 pop $1
133 exch $0
134FunctionEnd
135
136!endif ;LIST_INCLUDE
  
1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2;;
3;; Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
4;; All rights reserved.
5;; Contact: Nokia Corporation (qt-info@nokia.com)
6;;
7;; This file is part of the tools applications of the Qt Toolkit.
8;;
9;; $QT_BEGIN_LICENSE:LGPL$
10;; No Commercial Usage
11;; This file contains pre-release code and may not be distributed.
12;; You may use this file in accordance with the terms and conditions
13;; contained in the Technology Preview License Agreement accompanying
14;; this package.
15;;
16;; GNU Lesser General Public License Usage
17;; Alternatively, this file may be used under the terms of the GNU Lesser
18;; General Public License version 2.1 as published by the Free Software
19;; Foundation and appearing in the file LICENSE.LGPL included in the
20;; packaging of this file. Please review the following information to
21;; ensure the GNU Lesser General Public License version 2.1 requirements
22;; will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
23;;
24;; In addition, as a special exception, Nokia gives you certain additional
25;; rights. These rights are described in the Nokia Qt LGPL Exception
26;; version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
27;;
28;; If you have questions regarding the use of this file, please contact
29;; Nokia at qt-info@nokia.com.
30;;
31;;
32;;
33;;
34;;
35;;
36;;
37;;
38;; $QT_END_LICENSE$
39;;
40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
41!ifndef QTCOMMON_INCLUDE
42!define QTCOMMON_INCLUDE
43
44!macro MakeQtDirectory UN
45Function ${UN}MakeQtDirectory
46 exch $0
47
48 push $0
49 push " " #replace
50 push "-" #with
51 call ${UN}ReplaceString
52 pop $0
53
54 push $0
55 push "(" #replace
56 push "" #with
57 call ${UN}ReplaceString
58 pop $0
59
60 push $0
61 push ")" #replace
62 push "" #with
63 call ${UN}ReplaceString
64 pop $0
65
66 exch $0
67FunctionEnd
68!macroend
69!insertmacro MakeQtDirectory ""
70!insertmacro MakeQtDirectory "un."
71
72Function AddStartmenuApplication
73 exch $0
74 IfFileExists "$0\assistant.exe" 0 +2
75 CreateShortCut "$SMPROGRAMS\$STARTMENU_STRING\Assistant.lnk" "$0\assistant.exe"
76 IfFileExists "$0\designer.exe" 0 +2
77 CreateShortCut "$SMPROGRAMS\$STARTMENU_STRING\Designer.lnk" "$0\designer.exe"
78 IfFileExists "$0\linguist.exe" 0 +2
79 CreateShortCut "$SMPROGRAMS\$STARTMENU_STRING\Linguist.lnk" "$0\linguist.exe"
80 IfFileExists "$0\qtdemo.exe" 0 +2
81 CreateShortCut "$SMPROGRAMS\$STARTMENU_STRING\Examples and Demos.lnk" "$0\qtdemo.exe"
82 IfFileExists "$0\..\README" 0 ReadMeShortCutFinished
83 IfFileExists "$WINDIR\notepad.exe" +3
84 CreateShortCut "$SMPROGRAMS\$STARTMENU_STRING\Qt Readme.lnk" "$SYSDIR\notepad.exe" "$0\..\README"
85 goto ReadMeShortCutFinished
86 CreateShortCut "$SMPROGRAMS\$STARTMENU_STRING\Qt Readme.lnk" "$WINDIR\notepad.exe" "$0\..\README"
87 ReadMeShortCutFinished:
88 pop $0
89FunctionEnd
90
91Function un.RemoveStartmenuApplication
92 Delete "$SMPROGRAMS\$STARTMENU_STRING\Assistant.lnk"
93 Delete "$SMPROGRAMS\$STARTMENU_STRING\Designer.lnk"
94 Delete "$SMPROGRAMS\$STARTMENU_STRING\Linguist.lnk"
95 Delete "$SMPROGRAMS\$STARTMENU_STRING\Examples and Demos.lnk"
96 Delete "$SMPROGRAMS\$STARTMENU_STRING\Qt Readme.lnk"
97FunctionEnd
98
99#patch the licence information
100Function PatchLicenseInformation
101 exch $0
102 push $1
103 push $2
104
105 DetailPrint "Patching license information..."
106
107 IfFileExists "$0\src\corelib\global\qconfig.h" 0 +3
108 strcpy $2 "$0\src\corelib\global\qconfig.h"
109 goto PatchLicensee
110
111 IfFileExists "$0\include\Qt\qconfig.h" 0 PatchConfigPriFile
112 strcpy $2 "$0\include\Qt\qconfig.h"
113
114 PatchLicensee:
115 push $2
116 push '#define QT_PRODUCT_LICENSEE "'
117 push '#define QT_PRODUCT_LICENSEE "$LICENSEE"$\r$\n'
118 call PatchLine
119
120 push $2
121 push '#define QT_PRODUCT_LICENSE "'
122 push '#define QT_PRODUCT_LICENSE "$LICENSE_PRODUCT"$\r$\n'
123 call PatchLine
124
125 push $2
126 ${StrCase} $1 "$LICENSE_PRODUCT" "U"
127 push '# define QT_EDITION QT_EDITION_'
128 push '# define QT_EDITION QT_EDITION_$1$\r$\n'
129 call PatchLine
130
131 PatchConfigPriFile:
132 IfFileExists "$0\mkspecs\qconfig.pri" 0 PatchLicenseProductDone
133 push "$0\mkspecs\qconfig.pri"
134 push "QT_EDITION = "
135 push "QT_EDITION = $LICENSE_PRODUCT$\r$\n"
136 call PatchLine
137
138 PatchLicenseProductDone:
139 pop $2
140 pop $1
141 pop $0
142FunctionEnd
143
144Function PatchCommonBinaryFiles
145 exch $2
146 push $0
147 push $1
148
149 IfFileExists "$2\bin\qmake.exe" 0 +5
150 DetailPrint "Patching paths in qmake..."
151 push $2
152 push "$2\bin\qmake.exe"
153 call PatchBinaryPaths
154
155 DetailPrint "Patching paths in core..."
156 FindFirst $0 $1 "$2\bin\QtCore*.dll"
157 StrCmp $1 "" ErrorPatching
158 push $2
159 push "$2\bin\$1"
160 call PatchBinaryPaths
161
162 FindNext $0 $1
163 StrCmp $1 "" ErrorPatching
164 push $2
165 push "$2\bin\$1"
166 call PatchBinaryPaths
167
168 ErrorPatching:
169
170 pop $1
171 pop $0
172 pop $2
173FunctionEnd
174
175Function PatchBinaryPaths
176 exch $0
177 exch
178 exch $2
179 push $1
180
181!ifndef OPENSOURCE_BUILD
182 qtnsisext::PatchBinary /NOUNLOAD $0 "qt_prfxpath=" "qt_prfxpath=$2"
183 qtnsisext::PatchBinary /NOUNLOAD $0 "qt_docspath=" "qt_docspath=$2\doc"
184 qtnsisext::PatchBinary /NOUNLOAD $0 "qt_hdrspath=" "qt_hdrspath=$2\include"
185 qtnsisext::PatchBinary /NOUNLOAD $0 "qt_libspath=" "qt_libspath=$2\lib"
186 qtnsisext::PatchBinary /NOUNLOAD $0 "qt_binspath=" "qt_binspath=$2\bin"
187 qtnsisext::PatchBinary /NOUNLOAD $0 "qt_plugpath=" "qt_plugpath=$2\plugins"
188 qtnsisext::PatchBinary /NOUNLOAD $0 "qt_datapath=" "qt_datapath=$2"
189 qtnsisext::PatchBinary /NOUNLOAD $0 "qt_trnspath=" "qt_trnspath=$2\translations"
190 qtnsisext::PatchBinary /NOUNLOAD $0 "qt_xmplpath=" "qt_xmplpath=$2\examples"
191!ifdef MODULE_LICENSECHECK
192 qtnsisext::PatchBinary /NOUNLOAD $0 "qt_lcnsuser=" "qt_lcnsuser=$LICENSEE"
193 qtnsisext::PatchBinary /NOUNLOAD $0 "qt_lcnsprod=" "qt_lcnsprod=$LICENSE_PRODUCT"
194!endif
195 qtnsisext::PatchBinary $0 "qt_demopath=" "qt_demopath=$2\demos"
196!endif
197
198 pop $1
199 pop $2
200 pop $0
201FunctionEnd
202
203#patching the prl files
204Function PatchPrlFiles
205 exch $2
206 exch
207 exch $3 ;buildDir
208 push $0
209 push $1
210
211 FindFirst $0 $1 "$2\lib\*.prl"
212 loop:
213 StrCmp $1 "" done
214 DetailPrint "Patching $1..."
215
216 push "$2\lib\$1"
217 push $3
218 push $2
219 call PatchPath
220
221 FindNext $0 $1
222 Goto loop
223 done:
224 pop $1
225 pop $0
226 pop $3
227 pop $2
228FunctionEnd
229
230#
231# patch line in text files
232# push "qtcore4.prl" #Filename
233# push "#define ..." #START WITH
234# push "c:\qt" #REPLACE WITH
235# call PatchLine
236#
237Function PatchLine
238 exch $2 ;replacement line
239 exch 2
240 exch $1 ;Filename
241 exch
242 exch $0 ;start with
243 push $3 ; tmp filename
244 push $4 ; handle (tmp)
245 push $5 ; handle (org)
246 push $6 ; string
247
248 ClearErrors
249 GetTempFileName $3
250 IfErrors done
251 FileOpen $4 $3 w
252 IfErrors done
253 FileOpen $5 $1 r
254 IfErrors done
255
256nextline:
257 FileRead $5 $6
258 IfErrors renameFile
259 push $6
260 push $0
261 push $2
262 call ReplaceLine
263 pop $6
264 FileWrite $4 $6
265 goto nextline
266
267renameFile:
268 FileClose $4
269 FileClose $5
270 SetDetailsPrint none
271 Delete $1
272 Rename $3 $1
273 SetDetailsPrint both
274
275 done:
276 pop $6
277 pop $5
278 pop $4
279 pop $3
280 pop $0
281 pop $1
282 pop $2
283FunctionEnd
284
285#
286# replaces a string that starts with something, with another string
287# push string
288# push "#define ..." #START WITH
289# push "c:\qt" #REPLACE WITH
290# call ReplaceLine
291# pop $0 #new string
292#
293Function ReplaceLine
294 exch $2 ;new line
295 exch 2
296 exch $1 ;string
297 exch
298 exch $0 ;start with
299
300 push $3 ; tmp string
301 push $4 ; counter
302 push $5 ; strlen
303
304 StrCpy $4 "-1"
305 StrLen $5 $1
306
307 loop:
308 IntOp $4 $4 + 1 ;increase counter
309 StrCpy $3 $1 $4 ;get substring
310 IntCmp $4 $5 copystring ; check for end
311 StrCmp $3 $0 done ;start with found
312 goto loop
313
314 copystring:
315 StrCpy $2 $1
316 goto done
317
318 done:
319 pop $5
320 pop $4
321 pop $3
322 pop $0
323 pop $1
324 exch $2
325FunctionEnd
326
327#
328# patch paths in text files
329# push "qtcore4.prl" #Filename
330# push "c:\compile" #OLD_QTDIR
331# push "c:\qt" #QTDIR
332# call PatchPath
333#
334Function PatchPath
335 exch $2 ;NEW
336 exch 2
337 exch $1 ;Filename
338 exch
339 exch $0 ;OLD
340 push $3 ;readline
341 push $4 ;file 1
342 push $5 ;file 2
343 push $6 ;tmpfilename
344
345 push $7 ;forward slash NEW
346 push $8 ;forward slash OLD
347
348 push $2
349 push "\"
350 push "/"
351 call ReplaceString
352 pop $7
353
354 push $0
355 push "\"
356 push "/"
357 call ReplaceString
358 pop $8
359
360 ClearErrors
361 GetTempFileName $6
362 IfErrors done
363 FileOpen $5 $6 w
364 IfErrors done
365 FileOpen $4 $1 r
366 IfErrors done
367
368nextline:
369 FileRead $4 $3
370 IfErrors renameFile
371 push $3
372 push $0
373 push $2
374 call ReplaceString ;replace backward slash path
375 push $8
376 push $7
377 call ReplaceString ;replace forward slash path
378 pop $3
379 FileWrite $5 $3
380 goto nextline
381
382renameFile:
383 FileClose $5
384 FileClose $4
385 SetDetailsPrint none
386 Delete $1
387 Rename $6 $1
388 SetDetailsPrint both
389
390done:
391 pop $8
392 pop $7
393 pop $6
394 pop $5
395 pop $4
396 pop $3
397 pop $0
398 pop $1
399 pop $2
400FunctionEnd
401
402#
403# replaces a string with another string
404# push string
405# push "c:\qt" #replace
406# push "c:\compile" #with
407# call ReplaceString
408# pop $0 #new string
409#
410!macro ReplaceString UN
411Function ${UN}ReplaceString
412 exch $2 ;NEW
413 exch 2
414 exch $1 ;string
415 exch
416 exch $0 ;OLD
417
418 push $3 ; tmp string
419 push $4 ; counter
420 push $5 ; result
421
422 push $6 ; old strlen
423
424 StrCpy $4 "-1"
425 StrCpy $5 ""
426
427 StrLen $6 $0
428
429 loop:
430 IntOp $4 $4 + 1 ;increase counter
431 StrCpy $3 $1 $6 $4 ;get substring
432 StrCmp $3 "" done ; check for end
433 StrCmp $3 $0 replace ;replace if old
434 StrCpy $3 $1 "1" $4
435 StrCpy $5 $5$3 ;append character to result
436 goto loop
437
438 replace:
439 StrCpy $5 $5$2 ;insert new qtdir
440 IntOp $4 $4 + $6 ;increase offset
441 IntOp $4 $4 - 1 ;decrease offset one more
442 goto loop
443
444 done:
445 StrCpy $2 $5
446 pop $6
447 pop $5
448 pop $4
449 pop $3
450 pop $0
451 pop $1
452 exch $2
453FunctionEnd
454!macroend
455!insertmacro ReplaceString ""
456!insertmacro ReplaceString "un."
457
458Function CommonCheckDirectory
459 exch $4
460 exch
461 exch $5
462 push $0
463 push $1
464 push $2
465 push $3
466
467 ; check if qt is already installed
468 IfFileExists "$4\bin\qmake.exe" 0 +2
469 IfFileExists "$4\uninst.exe" qtExistsError
470
471 ; check if directory is empty
472 FindFirst $0 $1 "$4\*"
473 CommonCheckDirectory_FileSearchLoop:
474 StrCmp $1 "" CommonCheckDirectory_DirDoesNotExist
475 StrCmp $1 "." CommonCheckDirectory_ContinueSearchLoop
476 StrCmp $1 ".." CommonCheckDirectory_ContinueSearchLoop
477 goto CommonCheckDirectory_FoundFile
478 CommonCheckDirectory_ContinueSearchLoop:
479 FindNext $0 $1
480 goto CommonCheckDirectory_FileSearchLoop
481
482CommonCheckDirectory_FoundFile:
483 FindClose $0
484 MessageBox MB_YESNO|MB_ICONEXCLAMATION "This directory already has contents. Are you sure you want to use this directory?" IDYES CommonCheckDirectory_DirDoesNotExist
485 Goto errorInDirectory
486CommonCheckDirectory_DirDoesNotExist:
487 FindClose $0
488
489 GetInstDirError $0
490 IntCmp 0 $0 0 instDirError
491
492 StrLen $0 $4
493
494!ifdef USE_NODIRLENGTHCHECK
495 StrCpy $1 "400"
496!else
497 StrLen $1 $5
498!endif
499
500 IntCmp $1 $0 0 directoryToLong
501
502 ;check for spaces
503 StrCpy $2 "-1"
504 StrCpy $3 ""
505
506 loop:
507 IntOp $2 $2 + 1 ;increase counter
508 StrCpy $3 $4 "1" $2 ;get char
509 StrCmp $3 "" directoryOk ; check for end
510 StrCmp $3 " " spaceInDirectory ;check for space
511 goto loop
512
513qtExistsError:
514 MessageBox MB_OK|MB_ICONEXCLAMATION "Qt is already installed in this directory. Please uninstall the previous version and try again."
515 Goto errorInDirectory
516
517instDirError:
518 MessageBox MB_OK|MB_ICONEXCLAMATION "This is not a valid installation directory."
519 Goto errorInDirectory
520
521spaceInDirectory:
522 MessageBox MB_OK|MB_ICONEXCLAMATION "The installation path can't contain spaces."
523 Goto errorInDirectory
524
525directoryToLong:
526 MessageBox MB_OK|MB_ICONEXCLAMATION "The installation directory is to long."
527 Goto errorInDirectory
528
529errorInDirectory:
530 pop $3
531 pop $2
532 pop $1
533 pop $0
534 pop $5
535 pop $4
536 Abort
537 goto done
538
539directoryOk:
540 pop $3
541 pop $2
542 pop $1
543 pop $0
544 pop $5
545 pop $4
546done:
547FunctionEnd
548
549!endif ;QTCOMMON_INCLUDE
  
1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2;;
3;; Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
4;; All rights reserved.
5;; Contact: Nokia Corporation (qt-info@nokia.com)
6;;
7;; This file is part of the tools applications of the Qt Toolkit.
8;;
9;; $QT_BEGIN_LICENSE:LGPL$
10;; No Commercial Usage
11;; This file contains pre-release code and may not be distributed.
12;; You may use this file in accordance with the terms and conditions
13;; contained in the Technology Preview License Agreement accompanying
14;; this package.
15;;
16;; GNU Lesser General Public License Usage
17;; Alternatively, this file may be used under the terms of the GNU Lesser
18;; General Public License version 2.1 as published by the Free Software
19;; Foundation and appearing in the file LICENSE.LGPL included in the
20;; packaging of this file. Please review the following information to
21;; ensure the GNU Lesser General Public License version 2.1 requirements
22;; will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
23;;
24;; In addition, as a special exception, Nokia gives you certain additional
25;; rights. These rights are described in the Nokia Qt LGPL Exception
26;; version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
27;;
28;; If you have questions regarding the use of this file, please contact
29;; Nokia at qt-info@nokia.com.
30;;
31;;
32;;
33;;
34;;
35;;
36;;
37;;
38;; $QT_END_LICENSE$
39;;
40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
41!ifndef QTENV_INCLUDE
42!define QTENV_INCLUDE
43#
44# creates a qtvars.bat file in $QTDIR\bin
45# push "vs2003" #compiler
46# push "c:\qt" #QTDIR
47# call MakeQtVarsFile
48#
49Function MakeQtVarsFile
50 exch $1 ; QTDIR
51 exch
52 exch $3 ; vs version
53 push $0 ; file handle
54 push $2
55 push $4
56
57 push $3
58 call GetMkSpec
59 pop $2
60
61 ClearErrors
62 FileOpen $0 "$1\bin\qtvars.bat" w
63 IfErrors done
64 FileWrite $0 "@echo off$\r$\n"
65 FileWrite $0 "rem$\r$\n"
66 FileWrite $0 "rem This file is generated$\r$\n"
67 FileWrite $0 "rem$\r$\n"
68 FileWrite $0 "$\r$\n"
69 FileWrite $0 "echo Setting up a Qt environment...$\r$\n"
70 FileWrite $0 "echo -- QTDIR set to $1$\r$\n"
71 FileWrite $0 "echo -- Added $1\bin to PATH$\r$\n"
72 FileWrite $0 "echo -- QMAKESPEC set to $2$\r$\n"
73 FileWrite $0 "$\r$\n"
74 FileWrite $0 "set QTDIR=$1$\r$\n"
75 FileWrite $0 "set PATH=$1\bin;%PATH%$\r$\n"
76 FileWrite $0 "set QMAKESPEC=$2$\r$\n"
77
78 call IsExpressVersion
79 pop $4
80 strcmp $4 "" noExpressVersion
81 FileWrite $0 "$\r$\n"
82 FileWrite $0 'regedit /e S$$D$$K$$ "HKEY_LOCAL_MACHINE\Software\Microsoft\MicrosoftSDK"$\r$\n'
83 Filewrite $0 'if not exist S$$D$$K$$ goto ENDSDK\r$\n'
84 FileWrite $0 'find "Install Dir" < S$$D$$K$$ > D$$I$$R$$$\r$\n'
85 FileWrite $0 'del S$$D$$K$$$\r$\n'
86 FileWrite $0 'for /f "tokens=2 delims==" %%i in (D$$I$$R$$) do call %%i\setenv$\r$\n'
87 FileWrite $0 'del D$$I$$R$$$\r$\n'
88 Filewrite $0 ':ENDSDK\r$\n'
89 noExpressVersion:
90
91 push $3
92 call GetVSVarsFile
93 pop $2
94 strcmp $2 "" novsvars
95 FileWrite $0 "$\r$\n"
96 FileWrite $0 'if not "%1"=="vsvars" goto END$\r$\n'
97 FileWrite $0 'call "$2"$\r$\n'
98 FileWrite $0 ":END$\r$\n"
99
100 FileWrite $0 "$\r$\n"
101 FileWrite $0 'if not "%1"=="vsstart" goto ENDSTARTVS$\r$\n'
102 FileWrite $0 'call "$2"$\r$\n'
103
104 strcmp $3 "vc60" vc60startup
105 FileWrite $0 "devenv /useenv$\r$\n"
106 Goto donevsstartup
107 vc60startup:
108 FileWrite $0 "msdev /useenv$\r$\n"
109 donevsstartup:
110
111 FileWrite $0 ":ENDSTARTVS$\r$\n"
112
113 novsvars:
114 FileWrite $0 "$\r$\n"
115 FileClose $0
116 done:
117 pop $4
118 pop $2
119 pop $0
120 pop $3
121 pop $1
122FunctionEnd
123
124Function GetMkSpec
125 exch $0
126 StrCmp $0 "mingw" MINGW
127 StrCmp $0 "vs2005" VS2005
128 StrCmp $0 "vs2003" VS2003
129 StrCmp $0 "vs2002" VS2002
130 StrCmp $0 "vc60" VS60
131 StrCmp $0 "icc" ICC
132
133 MINGW:
134 pop $0
135 push "win32-g++"
136 goto done
137
138 VS2005:
139 pop $0
140 push "win32-msvc2005"
141 goto done
142
143 VS2003:
144 pop $0
145 push "win32-msvc.net"
146 goto done
147
148 VS2002:
149 pop $0
150 push "win32-msvc.net"
151 goto done
152
153 VS60:
154 pop $0
155 push "win32-msvc"
156 goto done
157
158 ICC:
159 pop $0
160 push "win32-icc"
161 goto done
162
163 done:
164FunctionEnd
165
166!define AD_COMPILER_NAME_VS2005 "Visual Studio .NET 2005"
167!define AD_COMPILER_NAME_VS2005_EXPRESS "Visual C++ 2005 Express Edition"
168!define AD_COMPILER_NAME_VS2003 "Visual Studio .NET 2003"
169!define AD_COMPILER_NAME_VS2002 "Visual Studio .NET 2002"
170!define AD_COMPILER_NAME_VC60 "Visual Studio 6.0"
171!define AD_COMPILER_NAME_ICC "Intel C++ Compiler"
172!define AD_COMPILER_NAME_MINGW "MinGW (Must be in PATH!)"
173
174Function GetShortCompilerName
175 exch $0
176
177 strcmp "$0" "${AD_COMPILER_NAME_VS2005}" 0 +3
178 strcpy $0 "vs2005"
179 goto done
180
181 strcmp "$0" "${AD_COMPILER_NAME_VS2005_EXPRESS}" 0 +3
182 strcpy $0 "vs2005"
183 goto done
184
185 strcmp "$0" "${AD_COMPILER_NAME_VS2003}" 0 +3
186 strcpy $0 "vs2003"
187 goto done
188
189 strcmp "$0" "${AD_COMPILER_NAME_VS2002}" 0 +3
190 strcpy $0 "vs2002"
191 goto done
192
193 strcmp "$0" "${AD_COMPILER_NAME_VC60}" 0 +3
194 strcpy $0 "vc60"
195 goto done
196
197 strcmp "$0" "${AD_COMPILER_NAME_ICC}" 0 +3
198 strcpy $0 "icc"
199 goto done
200
201 strcmp "$0" "${AD_COMPILER_NAME_MINGW}" 0 +3
202 strcpy $0 "mingw"
203 goto done
204
205 strcpy $0 "" ;this is bad!
206
207 done:
208 exch $0
209FunctionEnd
210
211Function IsExpressVersion
212 push $0
213 ReadRegStr $0 HKLM "Software\Microsoft\VCExpress\8.0" "InstallDir"
214 ClearErrors
215 exch $0
216FunctionEnd
217
218Function AutoDetectCompilers
219 push $0
220 push $1
221
222 strcpy $1 ""
223
224 ReadRegStr $0 HKLM "Software\Microsoft\VisualStudio\8.0" "InstallDir"
225 strcmp $0 "" +2
226 strcpy $1 "$1${AD_COMPILER_NAME_VS2005}|"
227
228 ReadRegStr $0 HKLM "Software\Microsoft\VCExpress\8.0" "InstallDir"
229 strcmp $0 "" +2
230 strcpy $1 "$1${AD_COMPILER_NAME_VS2005_EXPRESS}|"
231
232 ReadRegStr $0 HKLM "Software\Microsoft\VisualStudio\7.1" "InstallDir"
233 strcmp $0 "" +2
234 strcpy $1 "$1${AD_COMPILER_NAME_VS2003}|"
235
236 ReadRegStr $0 HKLM "Software\Microsoft\VisualStudio\7.0" "InstallDir"
237 strcmp $0 "" +2
238 strcpy $1 "$1${AD_COMPILER_NAME_VS2002}|"
239
240 ReadRegStr $0 HKLM "Software\Microsoft\VisualStudio\6.0\Setup" "VsCommonDir"
241 strcmp $0 "" +2
242 strcpy $1 "$1${AD_COMPILER_NAME_VC60}|"
243
244 ReadRegStr $0 HKLM "Software\Intel\Compilers\C++\80" "Major Version"
245 strcmp $0 "" +2
246 strcpy $1 "$1${AD_COMPILER_NAME_ICC}|"
247
248 strcpy $1 "$1${AD_COMPILER_NAME_MINGW}"
249
250 exch
251 pop $0
252 exch $1
253FunctionEnd
254
255Function GetVSVarsFile
256 exch $1
257 push $0
258
259 StrCmp $1 "vs2005" VS2005
260 StrCmp $1 "vs2003" VS2003
261 StrCmp $1 "vs2002" VS2002
262 StrCmp $1 "vc60" VS60
263
264 push "" ;empty string if not found
265 goto done
266
267 VS2005:
268 ReadRegStr $0 HKLM "Software\Microsoft\VisualStudio\8.0\Setup\VS" "ProductDir"
269 StrCmp $0 "" +1 foundVSDir ; found msvc.net 2005
270
271 ReadRegStr $0 HKLM "Software\Microsoft\VCExpress\8.0\Setup\VS" "ProductDir"
272 StrCmp $0 "" +1 foundVSDir ; found msvc.net 2005 epress
273
274 VS2003:
275 ReadRegStr $0 HKLM "Software\Microsoft\VisualStudio\7.1\Setup\VS" "ProductDir"
276 StrCmp $0 "" +1 foundVSDir ; found msvc.net 2003
277
278 VS2002:
279 ReadRegStr $0 HKLM "Software\Microsoft\VisualStudio\7.0\Setup\VS" "ProductDir"
280 StrCmp $0 "" +1 foundVSDir ; found msvc.net 2002
281
282 VS60:
283 ReadRegStr $0 HKLM "Software\Microsoft\VisualStudio\6.0\Setup\Microsoft Visual C++" "ProductDir"
284 StrCmp $0 "" +1 foundVCDir ; found msvc 6.0
285
286 push "" ;empty string if not found
287 goto done
288
289 foundVSDir:
290 push "$0\Common7\Tools\vsvars32.bat"
291 goto done
292
293 foundVCDir:
294 push "$0\bin\vcvars32.bat"
295
296 done:
297 exch
298 pop $0
299 exch
300 pop $1
301FunctionEnd
302
303!endif ;QTENV_INCLUDE
  
1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2;;
3;; Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
4;; All rights reserved.
5;; Contact: Nokia Corporation (qt-info@nokia.com)
6;;
7;; This file is part of the tools applications of the Qt Toolkit.
8;;
9;; $QT_BEGIN_LICENSE:LGPL$
10;; No Commercial Usage
11;; This file contains pre-release code and may not be distributed.
12;; You may use this file in accordance with the terms and conditions
13;; contained in the Technology Preview License Agreement accompanying
14;; this package.
15;;
16;; GNU Lesser General Public License Usage
17;; Alternatively, this file may be used under the terms of the GNU Lesser
18;; General Public License version 2.1 as published by the Free Software
19;; Foundation and appearing in the file LICENSE.LGPL included in the
20;; packaging of this file. Please review the following information to
21;; ensure the GNU Lesser General Public License version 2.1 requirements
22;; will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
23;;
24;; In addition, as a special exception, Nokia gives you certain additional
25;; rights. These rights are described in the Nokia Qt LGPL Exception
26;; version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
27;;
28;; If you have questions regarding the use of this file, please contact
29;; Nokia at qt-info@nokia.com.
30;;
31;;
32;;
33;;
34;;
35;;
36;;
37;;
38;; $QT_END_LICENSE$
39;;
40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
41!ifndef SYSTEM_INCLUDE
42!define SYSTEM_INCLUDE
43
44!define QTVSIP2003_GUID "{789202F4-94F5-4f0a-AA00-73295FEBFD68}"
45!define QTVSIP2005_GUID "{789202F4-94F5-4f0a-AA00-73295FEBFD69}"
46
47!define QMSNET2002_GUID "{C174ACCD-D856-4B60-9887-0FF9E841E0EC}"
48!define QMSNET2003_GUID "{C174ACCE-D857-4B61-9888-0FF9E841E0ED}"
49!define QMSNET2005_GUID "{14E98DB4-A232-49a4-8EC1-8CE4F6985C73}"
50
51!macro GetVSInstallationDir UN
52; Usage:
53;
54; push "7.0"
55; call GetVSInstallationDir
56; pop $0
57;
58; If the requested VS version can be found, its
59; installation directory is returned.
60Function ${UN}GetVSInstallationDir
61 Exch $0
62 Push $1
63 ReadRegStr $1 HKLM "Software\Microsoft\VisualStudio\$0" "InstallDir"
64 StrCpy $0 $1
65 StrCmp $0 "" 0 +2
66 SetErrors
67 Pop $1
68 Exch $0
69FunctionEnd
70!macroend
71
72!insertmacro GetVSInstallationDir ""
73!insertmacro GetVSInstallationDir "un."
74
75
76!macro IsDotNETInstalled UN
77; Usage:
78;
79; push "8.0"
80; call IsDotNETInstalled
81; pop $0
82;
83; $0 contains the path where the .NET framework is installed.
84; If not installation can be found $0 is empty.
85Function ${UN}IsDotNETInstalled
86 Exch $0
87 Push $1
88 Push $2
89 Push $3
90 Push $4
91 Push $5
92
93 StrCpy $5 $0
94
95 ReadRegStr $4 HKEY_LOCAL_MACHINE "Software\Microsoft\.NETFramework" "InstallRoot"
96 Push $4
97 Exch $EXEDIR
98 Exch $EXEDIR
99 Pop $4
100
101 IfFileExists $4 0 noDotNET
102 StrCpy $0 0
103
104 EnumStart:
105 EnumRegKey $2 HKEY_LOCAL_MACHINE "Software\Microsoft\.NETFramework\Policy" $0
106 IntOp $0 $0 + 1
107 StrCmp $2 "" noDotNET
108 StrCpy $1 0
109
110 EnumPolicy:
111 EnumRegValue $3 HKEY_LOCAL_MACHINE "Software\Microsoft\.NETFramework\Policy\$2" $1
112 IntOp $1 $1 + 1
113 StrCmp $3 "" EnumStart
114
115 StrCmp $5 "8.0" 0 +2
116 StrCmp $2 "v2.0" 0 EnumPolicy
117
118 IfFileExists "$4\$2.$3" foundDotNET EnumPolicy
119
120 noDotNET:
121 StrCpy $0 0
122 Goto done
123
124 foundDotNET:
125 StrCpy $0 "$4\$2.$3"
126
127 done:
128 Pop $5
129 Pop $4
130 Pop $3
131 Pop $2
132 Pop $1
133 Exch $0
134FunctionEnd
135!macroend
136
137!insertmacro IsDotNETInstalled ""
138!insertmacro IsDotNETInstalled "un."
139
140!macro IsQMsNetInstalled UN
141; Usage:
142;
143; push "8.0"
144; call IsQMsNetInstalled
145; pop $0
146Function ${UN}IsQMsNetInstalled
147 Exch $0
148 Push $1
149 Push $2
150 Push $3
151
152 StrCmp $0 "7.0" 0 +2
153 StrCpy $2 "${QMSNET2002_GUID}"
154 StrCmp $0 "7.1" 0 +2
155 StrCpy $2 "${QMSNET2003_GUID}"
156 StrCmp $0 "8.0" 0 +2
157 StrCpy $2 "${QMSNET2005_GUID}"
158
159 StrCpy $3 0
160
161 ReadRegStr $1 HKLM "SOFTWARE\Microsoft\VisualStudio\$0\NewProjectTemplates\TemplateDirs\$2\/2" "TemplatesDir"
162 StrCmp $1 "" +3
163 StrCpy $3 1
164 goto done
165
166 ReadRegStr $1 HKCU "SOFTWARE\Microsoft\VisualStudio\$0\NewProjectTemplates\TemplateDirs\$2\/2" "TemplatesDir"
167 StrCmp $1 "" +2
168 StrCpy $3 1
169
170done:
171 StrCpy $0 $3
172
173 Pop $3
174 Pop $2
175 Pop $1
176 Exch $0
177FunctionEnd
178!macroend
179
180!insertmacro IsQMsNetInstalled ""
181!insertmacro IsQMsNetInstalled "un."
182
183!macro IsQMsDevInstalled UN
184; Usage:
185;
186; call IsQMsDevInstalled
187; pop $0
188Function ${UN}IsQMsDevInstalled
189 Push $0
190 Push $1
191 Push $2
192
193 StrCpy $0 0
194
195 ReadRegStr $1 HKLM "SOFTWARE\Microsoft\DevStudio\6.0\AddIns\q4msdev.Q4MsDev.1" "Filename"
196 StrCmp $1 "" +3
197 StrCpy $0 1
198 goto done
199
200 ReadRegStr $1 HKCU "SOFTWARE\Microsoft\DevStudio\6.0\AddIns\q4msdev.Q4MsDev.1" "Filename"
201 StrCmp $1 "" +2
202 StrCpy $0 1
203
204done:
205 Pop $2
206 Pop $1
207 Exch $0
208FunctionEnd
209!macroend
210
211!insertmacro IsQMsDevInstalled ""
212!insertmacro IsQMsDevInstalled "un."
213
214!macro IsIntegrationInstalled UN
215; Usage:
216;
217; push "8.0"
218; call IsIntegrationInstalled
219; pop $0
220Function ${UN}IsIntegrationInstalled
221 Exch $0
222 Push $1
223 Push $2
224
225 StrCmp $0 "7.1" 0 +2
226 StrCpy $2 "${QTVSIP2003_GUID}"
227 StrCmp $0 "8.0" 0 +2
228 StrCpy $2 "${QTVSIP2005_GUID}"
229
230 ReadRegStr $1 HKLM "SOFTWARE\Microsoft\VisualStudio\$0\Packages\$2" "ProductName"
231
232 StrCpy $0 0
233 StrCmp $1 "" done
234 StrCpy $0 1
235
236done:
237 Pop $2
238 Pop $1
239 Exch $0
240FunctionEnd
241!macroend
242
243!insertmacro IsIntegrationInstalled ""
244!insertmacro IsIntegrationInstalled "un."
245
246!macro AdministratorRights UN
247Function ${UN}HasAdminRights
248 push $0
249 ClearErrors
250 UserInfo::GetAccountType
251 IfErrors Yes ;It's probably Win95
252 pop $0
253 StrCmp $0 "Admin" Yes
254 StrCmp $0 "Power" Yes
255
256 StrCpy $0 "false"
257 goto Done
258
259 Yes:
260 StrCpy $0 "true"
261
262 Done:
263 exch $0
264FunctionEnd
265!macroend
266!insertmacro AdministratorRights ""
267!insertmacro AdministratorRights "un."
268
269!endif ;SYSTEM_INCLUDE
  
1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2;;
3;; Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
4;; All rights reserved.
5;; Contact: Nokia Corporation (qt-info@nokia.com)
6;;
7;; This file is part of the tools applications of the Qt Toolkit.
8;;
9;; $QT_BEGIN_LICENSE:LGPL$
10;; No Commercial Usage
11;; This file contains pre-release code and may not be distributed.
12;; You may use this file in accordance with the terms and conditions
13;; contained in the Technology Preview License Agreement accompanying
14;; this package.
15;;
16;; GNU Lesser General Public License Usage
17;; Alternatively, this file may be used under the terms of the GNU Lesser
18;; General Public License version 2.1 as published by the Free Software
19;; Foundation and appearing in the file LICENSE.LGPL included in the
20;; packaging of this file. Please review the following information to
21;; ensure the GNU Lesser General Public License version 2.1 requirements
22;; will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
23;;
24;; In addition, as a special exception, Nokia gives you certain additional
25;; rights. These rights are described in the Nokia Qt LGPL Exception
26;; version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
27;;
28;; If you have questions regarding the use of this file, please contact
29;; Nokia at qt-info@nokia.com.
30;;
31;;
32;;
33;;
34;;
35;;
36;;
37;;
38;; $QT_END_LICENSE$
39;;
40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
41; Script generated by the HM NIS Edit Script Wizard.
42
43!include "config.nsh"
44!include "includes\global.nsh"
45
46!define PRODUCT_PUBLISHER "Nokia Corporation and/or its subsidiary(-ies)"
47!define PRODUCT_WEB_SITE "http://qt.nokia.com"
48
49!define INSTALL_ICON "images\install.ico"
50!define WELCOME_PAGE_ICON "images\qt-wizard.bmp"
51!define PAGE_HEADER_ICON "images\qt-header.bmp"
52
53!include "MUI.nsh"
54
55; modules
56!include "modules\mingw.nsh"
57!include "modules\opensource.nsh"
58!include "includes\instdir.nsh"
59!include "modules\environment.nsh"
60!include "modules\registeruiext.nsh"
61!ifndef OPENSOURCE_BUILD
62!include "modules\msvc.nsh"
63!include "modules\addin7x.nsh"
64!include "modules\qsa.nsh"
65!include "modules\addin60.nsh"
66!include "modules\debugext.nsh"
67!include "modules\license.nsh"
68!include "modules\vsip.nsh"
69!include "modules\help.nsh"
70!include "modules\evaluation.nsh"
71!include "modules\eclipse.nsh"
72!include "modules\qtjambieclipse.nsh"
73!endif
74
75; MUI Settings
76!define MUI_ABORTWARNING
77!define MUI_ICON "${INSTALL_ICON}"
78!define MUI_UNICON "${INSTALL_ICON}"
79
80!define MUI_HEADERIMAGE
81!define MUI_HEADERIMAGE_BITMAP "${PAGE_HEADER_ICON}"
82!define MUI_HEADERIMAGE_UNBITMAP "${PAGE_HEADER_ICON}"
83
84!define MUI_WELCOMEFINISHPAGE_BITMAP "${WELCOME_PAGE_ICON}"
85!define MUI_UNWELCOMEFINISHPAGE_BITMAP "${WELCOME_PAGE_ICON}"
86
87!ifdef WELCOME_NOTE
88 !define MUI_WELCOMEPAGE_TEXT "${WELCOME_NOTE}"
89!endif
90!insertmacro MUI_PAGE_WELCOME
91!insertmacro OPENSOURCE_INITIALIZE
92!ifndef OPENSOURCE_BUILD
93!insertmacro EVALUATION_INITIALIZE
94!insertmacro LICENSECHECK_INITIALIZE
95!insertmacro MSVC_INITIALIZE
96!insertmacro ADDIN7X_INITIALIZE
97!insertmacro ADDIN60_INITIALIZE
98!insertmacro DEBUGEXT_INITIALIZE
99!insertmacro HELP_INITIALIZE
100!insertmacro VSIP_INITIALIZE
101!endif
102
103!ifdef USE_COMPONENT_PAGE
104 !insertmacro MUI_PAGE_COMPONENTS
105!endif
106
107!ifdef USE_DIRECTORY_PAGE
108 !insertmacro INSTDIR_INITIALIZE
109!endif
110
111!ifdef USE_STARTMENU_PAGE
112 !define MUI_STARTMENUPAGE_NODISABLE
113 !define MUI_STARTMENUPAGE_DEFAULTFOLDER "${DEFAULT_STARTMENU_STRING}"
114 !insertmacro MUI_PAGE_STARTMENU 1 $STARTMENU_STRING
115!endif
116
117!insertmacro MINGW_INITIALIZE
118!insertmacro ENVIRONMENT_INITIALIZE
119!insertmacro REGISTERUIEXT_INITIALIZE
120!ifndef OPENSOURCE_BUILD
121!insertmacro QSA_INITIALIZE
122!insertmacro ECLIPSE_INITIALIZE
123!insertmacro QTJAMBIECLIPSE_INITIALIZE
124!endif
125
126!define MUI_FINISHPAGE_NOAUTOCLOSE
127
128!insertmacro MUI_PAGE_INSTFILES
129!ifdef README_FILE
130 !define MUI_FINISHPAGE_SHOWREADME ${README_FILE}
131!else
132 !ifdef README_FUNCTION
133 !define MUI_FINISHPAGE_SHOWREADME
134 !define MUI_FINISHPAGE_SHOWREADME_TEXT "${README_FUNCTION}"
135 !define MUI_FINISHPAGE_SHOWREADME_FUNCTION "CommonReadmeFunction"
136 !endif
137!endif
138!ifdef RUN_FUNCTION
139 !define MUI_FINISHPAGE_RUN
140 !define MUI_FINISHPAGE_RUN_TEXT "${RUN_FUNCTION}"
141 !define MUI_FINISHPAGE_RUN_FUNCTION "CommonRunFunction"
142!endif
143!insertmacro MUI_PAGE_FINISH
144
145!insertmacro MUI_UNPAGE_WELCOME
146!define UNINSTALLER_CONFIRM_PAGE "confirmpage.ini"
147UninstPage custom un.UninstallerConfirmPage
148!insertmacro MUI_UNPAGE_INSTFILES
149
150!insertmacro MUI_UNPAGE_FINISH
151
152!insertmacro MUI_LANGUAGE "English"
153
154Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
155OutFile ${OUTPUT_FILE}
156
157Section -PreCommonSection
158!ifdef INSTDIR_0 ;the default one, must exist
159 strcpy $INSTDIR $${INSTDIR_0}_INSTDIR
160 ${StrRep} $PRODUCT_UNIQUE_KEY "${PRODUCT_NAME} ${PRODUCT_VERSION} - $INSTDIR" "\" "_"
161 strcpy $PRODUCT_UNIQUE_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\$PRODUCT_UNIQUE_KEY"
162 WriteRegStr SHCTX "$PRODUCT_UNIQUE_KEY" "${INSTDIR_0}_INSTDIR" "$${INSTDIR_0}_INSTDIR"
163!endif
164!ifdef INSTDIR_1
165 WriteRegStr SHCTX "$PRODUCT_UNIQUE_KEY" "${INSTDIR_1}_INSTDIR" "$${INSTDIR_1}_INSTDIR"
166!endif
167!ifdef INSTDIR_2
168 WriteRegStr SHCTX "$PRODUCT_UNIQUE_KEY" "${INSTDIR_2}_INSTDIR" "$${INSTDIR_2}_INSTDIR"
169!endif
170!ifdef INSTDIR_3
171 WriteRegStr SHCTX "$PRODUCT_UNIQUE_KEY" "${INSTDIR_3}_INSTDIR" "$${INSTDIR_3}_INSTDIR"
172!endif
173!ifdef INSTDIR_4
174 WriteRegStr SHCTX "$PRODUCT_UNIQUE_KEY" "${INSTDIR_4}_INSTDIR" "$${INSTDIR_4}_INSTDIR"
175!endif
176!ifdef INSTDIR_5
177 WriteRegStr SHCTX "$PRODUCT_UNIQUE_KEY" "${INSTDIR_5}_INSTDIR" "$${INSTDIR_5}_INSTDIR"
178!endif
179
180 WriteRegStr SHCTX "$PRODUCT_UNIQUE_KEY" "StartMenu" "$STARTMENU_STRING"
181 CreateDirectory "$SMPROGRAMS\$STARTMENU_STRING"
182SectionEnd
183
184!insertmacro OPENSOURCE_SECTIONS
185!insertmacro MINGW_SECTIONS
186!insertmacro ENVIRONMENT_SECTIONS
187!insertmacro REGISTERUIEXT_SECTIONS
188!ifndef OPENSOURCE_BUILD
189!insertmacro MSVC_SECTIONS
190!insertmacro ADDIN7X_SECTIONS
191!insertmacro ADDIN60_SECTIONS
192!insertmacro VSIP_SECTIONS
193!insertmacro HELP_SECTIONS
194!insertmacro DEBUGEXT_SECTIONS
195!insertmacro LICENSECHECK_SECTIONS
196!insertmacro QSA_SECTIONS
197!insertmacro EVALUATION_SECTIONS
198!insertmacro ECLIPSE_SECTIONS
199!insertmacro QTJAMBIECLIPSE_SECTIONS
200!endif
201
202!insertmacro INSTDIR_FUNCTIONS
203
204Section -CommonSection
205 WriteUninstaller "$INSTDIR\uninst.exe"
206
207 WriteRegStr SHCTX "$PRODUCT_UNIQUE_KEY" "DisplayName" "$(^Name)"
208 WriteRegStr SHCTX "$PRODUCT_UNIQUE_KEY" "UninstallString" "$INSTDIR\uninst.exe"
209 WriteRegStr SHCTX "$PRODUCT_UNIQUE_KEY" "DisplayVersion" "${PRODUCT_VERSION}"
210 WriteRegStr SHCTX "$PRODUCT_UNIQUE_KEY" "URLInfoAbout" "${PRODUCT_WEB_SITE}"
211 WriteRegStr SHCTX "$PRODUCT_UNIQUE_KEY" "Publisher" "${PRODUCT_PUBLISHER}"
212
213 WriteIniStr "$INSTDIR\${PRODUCT_NAME}.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}"
214 CreateShortCut "$SMPROGRAMS\$STARTMENU_STRING\qt.nokia.com.lnk" "$INSTDIR\${PRODUCT_NAME}.url"
215 CreateShortCut "$SMPROGRAMS\$STARTMENU_STRING\Uninstall ${PRODUCT_NAME} ${PRODUCT_VERSION}.lnk" "$INSTDIR\uninst.exe"
216 SetOutPath "$INSTDIR"
217SectionEnd
218
219Function CheckLocalLicenseProduct
220!ifdef MODULE_LICENSECHECK
221 !insertmacro QSA_CHECKLICENSEPRODUCT
222!endif
223FunctionEnd
224
225Function .onInit
226 StrCpy $STARTMENU_STRING "${DEFAULT_STARTMENU_STRING}"
227
228!ifdef USE_UNINSTALL_PREVIOUS
229 push "${PRODUCT_NAME}"
230 call GetExistsPreviousInstallationOfProduct
231 exch $0
232 StrCmp $0 true 0 +3
233 MessageBox MB_OK|MB_ICONSTOP "A previous installation of ${PRODUCT_NAME} was detected.$\nPlease uninstall it before running this installer."
234 Abort
235 pop $0
236!endif
237
238 call SetAdminVar
239 StrCmp "$RUNNING_AS_ADMIN" "false" 0 common_running_as_admin
240!ifdef USE_ADMIN_CHECK
241 MessageBox MB_OK|MB_ICONSTOP "You need to have administrator rights to install this software!"
242 Abort
243!endif
244 SetShellVarContext current
245 goto common_admin_check_done
246 common_running_as_admin:
247 SetShellVarContext all
248 common_admin_check_done:
249
250 !insertmacro INSTDIR_STARTUP
251
252 !insertmacro OPENSOURCE_STARTUP
253 !insertmacro ENVIRONMENT_STARTUP
254 !insertmacro REGISTERUIEXT_STARTUP
255 !insertmacro MINGW_STARTUP
256!ifndef OPENSOURCE_BUILD
257 !insertmacro LICENSECHECK_STARTUP
258 !insertmacro MSVC_STARTUP
259 !insertmacro EVALUATION_STARTUP
260 !insertmacro ADDIN7X_STARTUP
261 !insertmacro ADDIN60_STARTUP
262 !insertmacro DEBUGEXT_STARTUP
263 !insertmacro VSIP_STARTUP
264 !insertmacro HELP_STARTUP
265 !insertmacro QSA_STARTUP
266 !insertmacro ECLIPSE_STARTUP
267 !insertmacro QTJAMBIECLIPSE_STARTUP
268!endif
269FunctionEnd
270
271Function .onInstSuccess
272 !insertmacro ENVIRONMENT_FINISH
273 !insertmacro REGISTERUIEXT_FINISH
274 !insertmacro OPENSOURCE_FINISH
275 !insertmacro MINGW_FINISH
276!ifndef OPENSOURCE_BUILD
277 !insertmacro LICENSECHECK_FINISH
278 !insertmacro MSVC_FINISH
279 !insertmacro EVALUATION_FINISH
280 !insertmacro ADDIN7X_FINISH
281 !insertmacro ADDIN60_FINISH
282 !insertmacro DEBUGEXT_FINISH
283 !insertmacro VSIP_FINISH
284 !insertmacro HELP_FINISH
285 !insertmacro QSA_FINISH
286 !insertmacro ECLIPSE_FINISH
287 !insertmacro QTJAMBIECLIPSE_FINISH
288!endif
289FunctionEnd
290
291Function un.onUninstSuccess
292 !insertmacro ENVIRONMENT_UNFINISH
293 !insertmacro REGISTERUIEXT_UNFINISH
294 !insertmacro OPENSOURCE_UNFINISH
295 !insertmacro MINGW_UNFINISH
296!ifndef OPENSOURCE_BUILD
297 !insertmacro LICENSECHECK_UNFINISH
298 !insertmacro MSVC_UNFINISH
299 !insertmacro EVALUATION_UNFINISH
300 !insertmacro ADDIN7X_UNFINISH
301 !insertmacro ADDIN60_UNFINISH
302 !insertmacro DEBUGEXT_UNFINISH
303 !insertmacro VSIP_UNFINISH
304 !insertmacro HELP_UNFINISH
305 !insertmacro QSA_UNFINISH
306 !insertmacro ECLIPSE_UNFINISH
307 !insertmacro QTJAMBIECLIPSE_UNFINISH
308!endif
309FunctionEnd
310
311Function un.onInit
312 call un.SetAdminVar
313 StrCmp "$RUNNING_AS_ADMIN" "false" 0 common_running_as_admin
314!ifdef USE_ADMIN_CHECK
315 MessageBox MB_OK|MB_ICONSTOP "You do not have the required access rights to uninstall this package."
316 Abort
317!endif
318 SetShellVarContext current
319 goto common_admin_check_done
320 common_running_as_admin:
321 SetShellVarContext all
322 common_admin_check_done:
323
324 ${UnStrRep} $PRODUCT_UNIQUE_KEY "${PRODUCT_NAME} ${PRODUCT_VERSION} - $INSTDIR" "\" "_"
325 strcpy $PRODUCT_UNIQUE_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\$PRODUCT_UNIQUE_KEY"
326
327 push $0
328 ClearErrors
329 ReadRegStr $0 SHCTX "$PRODUCT_UNIQUE_KEY" "DisplayName"
330 IfErrors 0 +3
331 MessageBox MB_OK|MB_ICONSTOP "The uninstaller was unable to find the product to uninstall."
332 Abort
333 pop $0
334
335 ReadRegStr $STARTMENU_STRING SHCTX "$PRODUCT_UNIQUE_KEY" "StartMenu"
336 StrCmp "$STARTMENU_STRING" "" 0 +2
337 StrCpy $STARTMENU_STRING "${DEFAULT_STARTMENU_STRING}"
338
339!ifdef INSTDIR_0 ;the default one, must exist
340 ReadRegStr $${INSTDIR_0}_INSTDIR SHCTX "$PRODUCT_UNIQUE_KEY" "${INSTDIR_0}_INSTDIR"
341!endif
342!ifdef INSTDIR_1
343 ReadRegStr $${INSTDIR_1}_INSTDIR SHCTX "$PRODUCT_UNIQUE_KEY" "${INSTDIR_1}_INSTDIR"
344!endif
345!ifdef INSTDIR_2
346 ReadRegStr $${INSTDIR_2}_INSTDIR SHCTX "$PRODUCT_UNIQUE_KEY" "${INSTDIR_2}_INSTDIR"
347!endif
348!ifdef INSTDIR_3
349 ReadRegStr $${INSTDIR_3}_INSTDIR SHCTX "$PRODUCT_UNIQUE_KEY" "${INSTDIR_3}_INSTDIR"
350!endif
351!ifdef INSTDIR_4
352 ReadRegStr $${INSTDIR_4}_INSTDIR SHCTX "$PRODUCT_UNIQUE_KEY" "${INSTDIR_4}_INSTDIR"
353!endif
354!ifdef INSTDIR_5
355 ReadRegStr $${INSTDIR_5}_INSTDIR SHCTX "$PRODUCT_UNIQUE_KEY" "${INSTDIR_5}_INSTDIR"
356!endif
357
358 !insertmacro ENVIRONMENT_UNSTARTUP
359 !insertmacro REGISTERUIEXT_UNSTARTUP
360 !insertmacro OPENSOURCE_UNSTARTUP
361 !insertmacro MINGW_UNSTARTUP
362!ifndef OPENSOURCE_BUILD
363 !insertmacro LICENSECHECK_UNSTARTUP
364 !insertmacro MSVC_UNSTARTUP
365 !insertmacro EVALUATION_UNSTARTUP
366 !insertmacro ADDIN7X_UNSTARTUP
367 !insertmacro ADDIN60_UNSTARTUP
368 !insertmacro DEBUGEXT_UNSTARTUP
369 !insertmacro VSIP_UNSTARTUP
370 !insertmacro HELP_UNSTARTUP
371 !insertmacro QSA_UNSTARTUP
372 !insertmacro ECLIPSE_UNSTARTUP
373 !insertmacro QTJAMBIECLIPSE_UNSTARTUP
374!endif
375
376 !insertmacro MUI_INSTALLOPTIONS_EXTRACT "${UNINSTALLER_CONFIRM_PAGE}"
377FunctionEnd
378
379!insertmacro OPENSOURCE_UNINSTALL
380!insertmacro ENVIRONMENT_UNINSTALL
381!insertmacro REGISTERUIEXT_UNINSTALL
382!insertmacro MINGW_UNINSTALL
383!ifndef OPENSOURCE_BUILD
384!insertmacro HELP_UNINSTALL
385!insertmacro DEBUGEXT_UNINSTALL
386!insertmacro MSVC_UNINSTALL
387!insertmacro EVALUATION_UNINSTALL
388!insertmacro QSA_UNINSTALL
389!insertmacro ECLIPSE_UNINSTALL
390!insertmacro QTJAMBIECLIPSE_UNINSTALL
391!endif
392
393Section Uninstall
394 !ifndef OPENSOURCE_BUILD
395 !insertmacro LICENSECHECK_UNINSTALL
396 !insertmacro ADDIN7X_UNINSTALL
397 !insertmacro ADDIN60_UNINSTALL
398 !insertmacro VSIP_UNINSTALL
399 !endif
400
401 ; COMMON
402 Delete "$INSTDIR\${PRODUCT_NAME}.url"
403 Delete "$INSTDIR\uninst.exe"
404 Delete "$SMPROGRAMS\$STARTMENU_STRING\Uninstall ${PRODUCT_NAME} ${PRODUCT_VERSION}.lnk"
405 Delete "$SMPROGRAMS\$STARTMENU_STRING\qt.nokia.com.lnk"
406
407 RMDir "$SMPROGRAMS\$STARTMENU_STRING"
408 RMDir "$INSTDIR"
409
410 DeleteRegKey SHCTX "$PRODUCT_UNIQUE_KEY"
411SectionEnd
412
413Function CommonRunFunction
414 !ifndef OPENSOURCE_BUILD
415 !insertmacro MSVC_RUN_FUNCTION
416 !insertmacro QSA_RUN_FUNCTION
417 !endif
418 !insertmacro MINGW_RUN_FUNCTION
419 DoneRunFunction:
420FunctionEnd
421
422Function CommonReadmeFunction
423 !ifndef OPENSOURCE_BUILD
424 !insertmacro MSVC_README_FUNCTION
425 !endif
426 !insertmacro MINGW_README_FUNCTION
427 DoneReadmeFunction:
428FunctionEnd
429
430Function un.UninstallerConfirmPage
431 !insertmacro MUI_HEADER_TEXT "Confirm" "Confirm Uninstallation Directories"
432 !insertmacro MUI_INSTALLOPTIONS_WRITE "${UNINSTALLER_CONFIRM_PAGE}" "Field 2" "Text" "$UninstallerConfirmProduct"
433 !insertmacro MUI_INSTALLOPTIONS_DISPLAY "${UNINSTALLER_CONFIRM_PAGE}"
434FunctionEnd
435
436;pops product name from stack and as result pushes TRUE or FALSE on stack
437Function GetExistsPreviousInstallationOfProduct
438 exch $0
439 push $1
440 push $2
441 push $3
442
443 StrCpy $1 0
444 loop:
445 EnumRegKey $2 HKLM Software\Microsoft\Windows\CurrentVersion\Uninstall $1
446 StrCmp $2 "" no_reg_key_found
447 ${StrStr} $3 $2 $0
448 StrCmp $3 $2 reg_key_found
449 IntOp $1 $1 + 1
450 goto loop
451
452 reg_key_found:
453 push true
454 goto done
455
456 no_reg_key_found:
457 push false
458
459 done:
460 exch
461 pop $3
462 exch
463 pop $2
464 exch
465 pop $1
466 exch
467 pop $0
468FunctionEnd
469
470;pops product name from stack
471Function WarnIfInstalledProductDetected
472 exch $0
473 push $0
474 call GetExistsPreviousInstallationOfProduct
475 exch $1
476 StrCmp $1 true +1 +3
477 MessageBox MB_YESNO|MB_ICONQUESTION "An existing installation of $0 was detected.$\nIt is recommended to deinstall $0 before continuing.$\nDo you want to continue this installation nevertheless?" IDYES +2 IDNO +1
478 Abort
479 pop $1
480 pop $0
481FunctionEnd
482
483;sets $RUNNING_AS_ADMIN to "true" if Admin or Power user
484!macro SetAdminVar UN
485Function ${UN}SetAdminVar
486 push $0
487 ClearErrors
488 UserInfo::GetAccountType
489 IfErrors Admin ;It's probably Win95
490 pop $0
491 StrCmp $0 "Admin" Admin
492 StrCmp $0 "Power" Admin
493
494 StrCpy $RUNNING_AS_ADMIN "false"
495 goto Done
496
497 Admin:
498 StrCpy $RUNNING_AS_ADMIN "true"
499
500 Done:
501 pop $0
502FunctionEnd
503!macroend
504!insertmacro SetAdminVar ""
505!insertmacro SetAdminVar "un."
506
507!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
508 !insertmacro OPENSOURCE_DESCRIPTION
509 !insertmacro ENVIRONMENT_DESCRIPTION
510 !insertmacro REGISTERUIEXT_DESCRIPTION
511 !insertmacro MINGW_DESCRIPTION
512 !ifndef OPENSOURCE_BUILD
513 !insertmacro MSVC_DESCRIPTION
514 !insertmacro EVALUATION_DESCRIPTION
515 !insertmacro ADDIN7X_DESCRIPTION
516 !insertmacro ADDIN60_DESCRIPTION
517 !insertmacro DEBUGEXT_DESCRIPTION
518 !insertmacro HELP_DESCRIPTION
519 !insertmacro VSIP_DESCRIPTION
520 !insertmacro QSA_DESCRIPTION
521 !insertmacro ECLIPSE_DESCRIPTION
522 !insertmacro QTJAMBIECLIPSE_DESCRIPTION
523 !endif
524!insertmacro MUI_FUNCTION_DESCRIPTION_END
  
1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2;;
3;; Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
4;; All rights reserved.
5;; Contact: Nokia Corporation (qt-info@nokia.com)
6;;
7;; This file is part of the tools applications of the Qt Toolkit.
8;;
9;; $QT_BEGIN_LICENSE:LGPL$
10;; No Commercial Usage
11;; This file contains pre-release code and may not be distributed.
12;; You may use this file in accordance with the terms and conditions
13;; contained in the Technology Preview License Agreement accompanying
14;; this package.
15;;
16;; GNU Lesser General Public License Usage
17;; Alternatively, this file may be used under the terms of the GNU Lesser
18;; General Public License version 2.1 as published by the Free Software
19;; Foundation and appearing in the file LICENSE.LGPL included in the
20;; packaging of this file. Please review the following information to
21;; ensure the GNU Lesser General Public License version 2.1 requirements
22;; will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
23;;
24;; In addition, as a special exception, Nokia gives you certain additional
25;; rights. These rights are described in the Nokia Qt LGPL Exception
26;; version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
27;;
28;; If you have questions regarding the use of this file, please contact
29;; Nokia at qt-info@nokia.com.
30;;
31;;
32;;
33;;
34;;
35;;
36;;
37;;
38;; $QT_END_LICENSE$
39;;
40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
41!ifdef MODULE_ENVIRONMENT
42!macro ENVIRONMENT_INITIALIZE
43 !include "includes\writeEnvStr.nsh"
44 !include "includes\writePathStr.nsh"
45
46 !ifndef MODULE_ENVIRONMENT_QTDIR
47 !ifdef MODULE_MINGW
48 !define MODULE_ENVIRONMENT_QTDIR $MINGW_INSTDIR
49 !endif
50
51 !ifdef MODULE_MSVC
52 !define MODULE_ENVIRONMENT_QTDIR $MSVC_INSTDIR
53 !endif
54 !endif
55
56 !define MODULE_ENVIRONMENT_PAGE "envpage.ini"
57 var MODULE_ENVIRONMENT_SET
58 var MODULE_ENVIRONMENT_OLD
59 LangString ModuleEnvironmentTitle ${LANG_ENGLISH} "Configure Environment"
60 LangString ModuleEnvironmentDescription ${LANG_ENGLISH} "Configure Qt environment variables"
61
62 Page custom ModuleEnvironmentPageEnter ModuleEnvironmentPageExit
63!macroend
64!macro ENVIRONMENT_SECTIONS
65 Section -ModuleEnvironmentRegister
66 push "${MODULE_ENVIRONMENT_QTDIR}"
67 call RegisterQtEnvVariables
68 SectionEnd
69
70 Function ModuleEnvironmentPageEnter
71 push $0
72 Call IsNT
73 pop $0
74 strcmp "$0" "1" +2
75 abort
76 pop $0
77
78 !insertmacro MUI_HEADER_TEXT "$(ModuleEnvironmentTitle)" "$(ModuleEnvironmentDescription)"
79
80 strcmp $MODULE_ENVIRONMENT_SET "1" 0 envCheckNo
81 !insertmacro MUI_INSTALLOPTIONS_WRITE "${MODULE_ENVIRONMENT_PAGE}" "Field 2" "State" "1"
82 goto showEnvPage
83 envCheckNo:
84 !insertmacro MUI_INSTALLOPTIONS_WRITE "${MODULE_ENVIRONMENT_PAGE}" "Field 2" "State" "0"
85
86 showEnvPage:
87 !insertmacro MUI_INSTALLOPTIONS_DISPLAY "${MODULE_ENVIRONMENT_PAGE}"
88 FunctionEnd
89
90 Function ModuleEnvironmentPageExit
91 !insertmacro MUI_INSTALLOPTIONS_READ $MODULE_ENVIRONMENT_SET "${MODULE_ENVIRONMENT_PAGE}" "Field 2" "State"
92 FunctionEnd
93
94 Function RegisterQtEnvVariables
95 exch $2 ; the installation path = QTDIR
96 push $0 ; I think WriteEnvStr mixes up $0 and $1
97 push $1
98
99 WriteRegDWORD SHCTX "$PRODUCT_UNIQUE_KEY" "QtEnvSet" $MODULE_ENVIRONMENT_SET
100
101 strcmp $MODULE_ENVIRONMENT_SET "1" 0 noenv
102
103 StrCmp $MODULE_ENVIRONMENT_OLD "0" +4
104 DetailPrint "Removing $MODULE_ENVIRONMENT_OLD\bin from PATH"
105 push "$MODULE_ENVIRONMENT_OLD\bin"
106 Call RemoveFromPath ; remove old qtdir
107
108 DetailPrint "Setting QTDIR to $2"
109 push "QTDIR"
110 push $2
111 Call WriteEnvStr ; set the QTDIR
112
113 DetailPrint "Adding $2\bin to PATH"
114 push "$2\bin"
115 Call AddToPath ; set the PATH
116
117
118 push "QMAKESPEC"
119 push ${INSTALL_COMPILER}
120 Call GetMkSpec
121 pop $0
122 DetailPrint "Setting QMAKESPEC to $0"
123 push $0
124 Call WriteEnvStr ; set the QMAKESPEC
125
126 noenv:
127 pop $1
128 pop $0
129 pop $2
130 FunctionEnd
131
132 Function un.RegisterQtEnvVariables
133 exch $0 ; QTDIR
134 push $1
135
136 ClearErrors
137 ReadRegDWORD $MODULE_ENVIRONMENT_SET SHCTX "$PRODUCT_UNIQUE_KEY" "QtEnvSet"
138 intcmp $MODULE_ENVIRONMENT_SET 0 noenv
139
140 DetailPrint "Removing $0\bin from the PATH"
141 push "$0\bin"
142 Call un.RemoveFromPath ; removes qt from the path
143
144 ;Check if QTDIR is equal to installdir
145 ExpandEnvStrings $1 "%QTDIR%"
146
147 StrCmp "$0" "$1" removeenv
148 StrCmp "$0\" "$1" removeenv
149 StrCmp "$0" "$1\" removeenv
150 Goto noenv
151
152 removeenv:
153 DetailPrint "Removing QTDIR"
154 push "QTDIR"
155 Call un.DeleteEnvStr ; removes QTDIR
156
157 DetailPrint "Removing QMAKESPEC"
158 push "QMAKESPEC"
159 Call un.DeleteEnvStr ; removes QMAKESPEC
160
161 noenv:
162 pop $1
163 pop $0
164 FunctionEnd
165!macroend
166!macro ENVIRONMENT_DESCRIPTION
167!macroend
168!macro ENVIRONMENT_STARTUP
169 !insertmacro MUI_INSTALLOPTIONS_EXTRACT "${MODULE_ENVIRONMENT_PAGE}"
170 push $0
171 ExpandEnvStrings $0 "%QTDIR%"
172
173 StrCmp $0 "%QTDIR%" +4
174 strcpy $MODULE_ENVIRONMENT_SET "0" ;QTDIR exists
175 strcpy $MODULE_ENVIRONMENT_OLD $0
176 Goto +3
177 strcpy $MODULE_ENVIRONMENT_SET "1" ;no QTDIR
178 strcpy $MODULE_ENVIRONMENT_OLD "0"
179
180 Call IsNT
181 pop $0
182 strcmp "$0" "1" +2
183 strcpy $MODULE_ENVIRONMENT_SET "0"
184 pop $0
185!macroend
186!macro ENVIRONMENT_FINISH
187!macroend
188!macro ENVIRONMENT_UNSTARTUP
189!macroend
190!macro ENVIRONMENT_UNINSTALL
191 Section -un.ModuleEnvironmentRegister
192 push "${MODULE_ENVIRONMENT_QTDIR}"
193 call un.RegisterQtEnvVariables
194 SectionEnd
195!macroend
196!macro ENVIRONMENT_UNFINISH
197!macroend
198!else ;MODULE_ENVIRONMENT
199!macro ENVIRONMENT_INITIALIZE
200!macroend
201!macro ENVIRONMENT_SECTIONS
202!macroend
203!macro ENVIRONMENT_DESCRIPTION
204!macroend
205!macro ENVIRONMENT_STARTUP
206!macroend
207!macro ENVIRONMENT_FINISH
208!macroend
209!macro ENVIRONMENT_UNSTARTUP
210!macroend
211!macro ENVIRONMENT_UNINSTALL
212!macroend
213!macro ENVIRONMENT_UNFINISH
214!macroend
215!endif ;MODULE_ENVIRONMENT
  
1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2;;
3;; Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
4;; All rights reserved.
5;; Contact: Nokia Corporation (qt-info@nokia.com)
6;;
7;; This file is part of the tools applications of the Qt Toolkit.
8;;
9;; $QT_BEGIN_LICENSE:LGPL$
10;; No Commercial Usage
11;; This file contains pre-release code and may not be distributed.
12;; You may use this file in accordance with the terms and conditions
13;; contained in the Technology Preview License Agreement accompanying
14;; this package.
15;;
16;; GNU Lesser General Public License Usage
17;; Alternatively, this file may be used under the terms of the GNU Lesser
18;; General Public License version 2.1 as published by the Free Software
19;; Foundation and appearing in the file LICENSE.LGPL included in the
20;; packaging of this file. Please review the following information to
21;; ensure the GNU Lesser General Public License version 2.1 requirements
22;; will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
23;;
24;; In addition, as a special exception, Nokia gives you certain additional
25;; rights. These rights are described in the Nokia Qt LGPL Exception
26;; version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
27;;
28;; If you have questions regarding the use of this file, please contact
29;; Nokia at qt-info@nokia.com.
30;;
31;;
32;;
33;;
34;;
35;;
36;;
37;;
38;; $QT_END_LICENSE$
39;;
40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
41!ifdef MODULE_MINGW
42!macro MINGW_INITIALIZE
43!include "includes\qtcommon.nsh"
44!ifndef MODULE_MINGW_NAME
45 !define MODULE_MINGW_NAME "Qt"
46!endif
47!ifndef MODULE_MINGW_VERSION
48 !define MODULE_MINGW_VERSION "${PRODUCT_VERSION}"
49!endif
50!ifndef MODULE_MINGW_BUILDDIR
51 !error "MODULE_MINGW_BUILDDIR not defined!"
52!endif
53!ifndef MODULE_MINGW_ROOT
54 !error "MODULE_MINGW_ROOT not defined!"
55!endif
56!ifndef MODULE_MINGW_URL
57 !define MODULE_MINGW_URL "ftp://ftp.qt.nokia.com/misc"
58!endif
59!ifndef MODULE_MINGW_COMPILERVERSION
60 !define MODULE_MINGW_COMPILERVERSION "3.4.2"
61!endif
62!ifndef MODULE_MINGW_LICENSE
63 !define MODULE_MINGW_LICENSE "C:\MinGW\COPYING"
64!endif
65
66!define MODULE_MINGW_DOWNLOADPAGE "gwdownload.ini"
67!define MODULE_MINGW_MIRRORPAGE "gwmirror.ini"
68!define MODULE_MINGW_RUNTIME_LIB "mingw*.dll"
69!define MODULE_MINGW_DOWNLOADFILE "MinGW-${MODULE_MINGW_COMPILERVERSION}"
70
71var MODULE_MINGW_DOWNLOAD
72var MODULE_MINGW_SOURCEDOWNLOAD
73var MODULE_MINGW_MIRRORS
74var MODULE_MINGW_INSTOK
75var MODULE_MINGW_COMPILERINSTDIR
76
77LangString ModuleMinGWTitle ${LANG_ENGLISH} "MinGW Installation"
78LangString ModuleMinGWDescription ${LANG_ENGLISH} "You need MinGW to be able to compile Qt applications."
79LangString ModuleMinGWMirrorTitle ${LANG_ENGLISH} "MinGW Download Mirror"
80LangString ModuleMinGWMirrorDescription ${LANG_ENGLISH} "Select a download mirror."
81
82Page custom ModuleMinGWDownloadPageEnter ModuleMinGWDownloadPageExit
83!define MUI_PAGE_CUSTOMFUNCTION_PRE ModuleMinGWLicensePageEnter
84!define MUI_PAGE_HEADER_TEXT "MinGW License Agreement"
85!define MUI_PAGE_HEADER_SUBTEXT "Please review the license terms before installing MinGW."
86!define MUI_LICENSEPAGE_TEXT_TOP "MinGW License Information"
87!insertmacro MUI_PAGE_LICENSE "${MODULE_MINGW_LICENSE}"
88Page custom ModuleMinGWMirrorPageEnter ModuleMinGWMirrorPageExit
89
90!include "includes\qtenv.nsh"
91!macroend
92
93!macro MINGW_SECTIONS
94Section "${MODULE_MINGW_NAME} ${MODULE_MINGW_VERSION}" MINGW_SEC01
95 strcmp "$MINGW_INSTDIR" "" 0 +5
96 StrCpy $MINGW_INSTDIR "$INSTDIR\${MODULE_MINGW_NAME} ${MODULE_MINGW_VERSION}"
97 push $MINGW_INSTDIR
98 call MakeQtDirectory
99 pop $MINGW_INSTDIR
100
101 WriteRegDWORD SHCTX "$PRODUCT_UNIQUE_KEY" "MINGWInstalled" 1
102
103 SetOutPath "$MINGW_INSTDIR"
104 SetOverwrite ifnewer
105 !insertmacro MODULE_MINGW_INSTALLFILES
106
107 push "$MINGW_INSTDIR\bin"
108 call AddStartmenuApplication
109
110 push ${MODULE_MINGW_BUILDDIR}
111 push "$MINGW_INSTDIR"
112 call PatchPrlFiles
113
114 IfFileExists "$MINGW_INSTDIR\.qmake.cache" 0 +5
115 push "$MINGW_INSTDIR\.qmake.cache"
116 push ${MODULE_MINGW_BUILDDIR}
117 push $MINGW_INSTDIR
118 call PatchPath
119
120 IfFileExists "$MINGW_INSTDIR\mkspecs\default\qmake.conf" 0 +5
121 push "$MINGW_INSTDIR\mkspecs\default\qmake.conf"
122 push ${MODULE_MINGW_BUILDDIR}
123 push $MINGW_INSTDIR
124 call PatchPath
125
126 push $MINGW_INSTDIR
127 call PatchCommonBinaryFiles
128
129 push $MINGW_INSTDIR
130 call PatchLicenseInformation
131
132 WriteRegStr SHCTX "SOFTWARE\Trolltech\Common\${MODULE_MINGW_VERSION}\$LICENSE_PRODUCT" "Key" "$LICENSE_KEY"
133
134 push $MINGW_INSTDIR
135 call ModuleMinGWMakeEnvFile
136 CreateShortCut "$SMPROGRAMS\$STARTMENU_STRING\${MODULE_MINGW_NAME} ${MODULE_MINGW_VERSION} Command Prompt.lnk" "%COMSPEC%" '/k "$MINGW_INSTDIR\bin\qtvars.bat"'
137 CreateShortCut "$SMPROGRAMS\$STARTMENU_STRING\${MODULE_MINGW_NAME} ${MODULE_MINGW_VERSION} (Build Debug Libraries).lnk" "%COMSPEC%" '/k "$MINGW_INSTDIR\bin\qtvars.bat compile_debug"'
138
139 push $0
140 strcmp $MODULE_MINGW_DOWNLOAD "no" DoneMinGWInstall
141 DetailPrint "Installing MinGW into $MODULE_MINGW_COMPILERINSTDIR"
142 WriteRegStr SHCTX "$PRODUCT_UNIQUE_KEY" "MinGWInstDir" "$MODULE_MINGW_COMPILERINSTDIR"
143 nsExec::ExecToLog '"$MINGW_INSTDIR\downloads\${MODULE_MINGW_DOWNLOADFILE}.exe" /S /D=$MODULE_MINGW_COMPILERINSTDIR'
144 pop $0
145 strcmp $MODULE_MINGW_SOURCEDOWNLOAD "no" DoneMinGWInstall
146 DetailPrint "Installing MinGW sources into $MODULE_MINGW_COMPILERINSTDIR\src"
147 WriteRegDWORD SHCTX "$PRODUCT_UNIQUE_KEY" "MinGWSources" 1
148 nsExec::ExecToLog '"$MINGW_INSTDIR\downloads\${MODULE_MINGW_DOWNLOADFILE}-src.exe" /S /D=$MODULE_MINGW_COMPILERINSTDIR\src'
149 pop $0
150 DoneMinGWInstall:
151 pop $0
152
153 DetailPrint "Copying MinGW runtime..."
154 SetDetailsPrint none
155 CopyFiles /SILENT "$MODULE_MINGW_COMPILERINSTDIR\bin\${MODULE_MINGW_RUNTIME_LIB}" "$MINGW_INSTDIR\bin"
156 SetDetailsPrint both
157SectionEnd
158
159Function EnableButtons
160 Push $0
161 GetDlgItem $0 $HWNDPARENT 3
162 EnableWindow $0 1
163 GetDlgItem $0 $HWNDPARENT 1
164 EnableWindow $0 1
165 GetDlgItem $0 $HWNDPARENT 2
166 EnableWindow $0 1
167 Pop $0
168FunctionEnd
169
170Function DisableButtons
171 Push $0
172 GetDlgItem $0 $HWNDPARENT 3
173 EnableWindow $0 0
174 GetDlgItem $0 $HWNDPARENT 1
175 EnableWindow $0 0
176 GetDlgItem $0 $HWNDPARENT 2
177 EnableWindow $0 0
178 Pop $0
179FunctionEnd
180
181Function ModuleMinGWDownloadPageEnter
182 strcmp $MODULE_MINGW_INSTOK "yes" 0 +2
183 Abort
184
185 !insertmacro MUI_HEADER_TEXT "$(ModuleMinGWTitle)" "$(ModuleMinGWTitleDescription)"
186 Call UpdateCtrlStates
187 !insertmacro MUI_INSTALLOPTIONS_DISPLAY "${MODULE_MINGW_DOWNLOADPAGE}"
188 !insertmacro MUI_INSTALLOPTIONS_WRITE "${MODULE_MINGW_DOWNLOADPAGE}" "Field 8" "State" "0"
189FunctionEnd
190
191Function ModuleMinGWMirrorPageEnter
192 strcmp $MODULE_MINGW_DOWNLOAD "yes" +2
193 Abort
194
195 !insertmacro MUI_HEADER_TEXT "$(ModuleMinGWMirrorTitle)" "$(ModuleMinGWMirrorDescription)"
196 !insertmacro MUI_INSTALLOPTIONS_DISPLAY "${MODULE_MINGW_MIRRORPAGE}"
197FunctionEnd
198
199Function ModuleMinGWLicensePageEnter
200 strcmp $MODULE_MINGW_DOWNLOAD "yes" +2
201 Abort
202FunctionEnd
203
204Function UpdateCtrlStates
205 push $0
206 push $1
207 push $2
208
209 !insertmacro MUI_INSTALLOPTIONS_READ $0 "${MODULE_MINGW_DOWNLOADPAGE}" "Field 8" "State"
210 intop $0 $0 !
211 FindWindow $2 "#32770" "" $HWNDPARENT
212 GetDlgItem $1 $2 1205
213 EnableWindow $1 $0
214 GetDlgItem $1 $2 1202
215 EnableWindow $1 $0
216 GetDlgItem $1 $2 1203
217 EnableWindow $1 $0
218
219 intop $0 $0 !
220 GetDlgItem $1 $2 1206
221 EnableWindow $1 $0
222 GetDlgItem $1 $2 1207
223 EnableWindow $1 $0
224 GetDlgItem $1 $2 1208
225 EnableWindow $1 $0
226
227 GetDlgItem $1 $HWNDPARENT 1
228 IntCmp $0 0 +3
229 SendMessage $1 ${WM_SETTEXT} 0 "STR:Next >"
230 Goto +2
231 SendMessage $1 ${WM_SETTEXT} 0 "STR:Install"
232
233 pop $2
234 pop $1
235 pop $0
236FunctionEnd
237
238Function ModuleMinGWDownloadPageExit
239 push $0
240 push $1
241
242 !insertmacro MUI_INSTALLOPTIONS_READ $0 "${MODULE_MINGW_DOWNLOADPAGE}" "Settings" "State"
243 strcmp "$0" "8" 0 NoNotify
244 Call UpdateCtrlStates
245 abort
246 NoNotify:
247
248 !insertmacro MUI_INSTALLOPTIONS_READ $0 "${MODULE_MINGW_DOWNLOADPAGE}" "Field 8" "State"
249 strcmp "$0" "0" noDownload doDownload
250
251doDownload:
252 !insertmacro MUI_INSTALLOPTIONS_READ $0 "${MODULE_MINGW_DOWNLOADPAGE}" "Field 6" "State"
253 strcmp $0 "" 0 +3
254 MessageBox MB_ICONEXCLAMATION|MB_OK "You need to specify an installation directory!"
255 goto tryAgain
256
257 strcpy $MODULE_MINGW_COMPILERINSTDIR $0
258 strcpy $MODULE_MINGW_DOWNLOAD "yes"
259 CreateDirectory "$MINGW_INSTDIR\downloads"
260
261 Call DisableButtons
262 InetLoad::load /BANNER "Mirror Download" "Downloading mirrors from server..." "${MODULE_MINGW_URL}/${MODULE_MINGW_DOWNLOADFILE}.mirrors" "$MINGW_INSTDIR\downloads\${MODULE_MINGW_DOWNLOADFILE}.mirrors" /END
263 Pop $1 ;Get the return value
264 Call EnableButtons
265
266 StrCmp $1 "OK" +3
267 MessageBox MB_ICONEXCLAMATION|MB_RETRYCANCEL "Was not able to download mirror list ($1)." IDRETRY tryAgain 0
268 Quit
269
270 call ModuleMinGWReadMirrors
271 !insertmacro MUI_INSTALLOPTIONS_WRITE ${MODULE_MINGW_MIRRORPAGE} "Field 3" "ListItems" "$MODULE_MINGW_MIRRORS"
272 goto done
273
274noDownload:
275 strcpy $MODULE_MINGW_DOWNLOAD "no"
276 strcpy $MODULE_MINGW_SOURCEDOWNLOAD "no"
277 call ModuleMinGWChecking
278 strcmp $MODULE_MINGW_INSTOK "yes" done
279 MessageBox MB_ICONEXCLAMATION|MB_YESNO "There is a problem with your MinGW installation:$\r$\n$MODULE_MINGW_INSTOK$\r$\nDo you still want to continue? (Your installation may not work)" IDNO tryAgain
280 goto done
281
282tryAgain:
283 pop $1
284 pop $0
285 Abort
286
287done:
288 pop $1
289 pop $0
290FunctionEnd
291
292Function ModuleMinGWMirrorPageExit
293 push $0
294 push $2
295 push $1
296
297 !insertmacro MUI_INSTALLOPTIONS_READ $0 "${MODULE_MINGW_MIRRORPAGE}" "Field 3" "State"
298 strcmp "$0" "" 0 +3
299 MessageBox MB_ICONEXCLAMATION|MB_OK "You must select a mirror to download from!"
300 goto tryAgain
301
302 push $0
303 call ModuleMinGWGetMirror
304 pop $0
305
306 Call DisableButtons
307 InetLoad::load /BANNER "MinGW Download" "Downloading MinGW from server..." "$0/${MODULE_MINGW_DOWNLOADFILE}.exe" "$MINGW_INSTDIR\downloads\${MODULE_MINGW_DOWNLOADFILE}.exe" /END
308 Pop $2 ;get the return value
309 Call EnableButtons
310
311 StrCmp $2 "OK" +3
312 MessageBox MB_ICONEXCLAMATION|MB_OK "Was not able to download MinGW ($2). Please try another mirror."
313 Goto tryAgain
314
315 !insertmacro MUI_INSTALLOPTIONS_READ $1 "${MODULE_MINGW_MIRRORPAGE}" "Field 2" "State"
316 strcmp "$1" "0" done
317
318 Call DisableButtons
319 InetLoad::load /BANNER "MinGW Sources Download" "Downloading MinGW Sources from server..." "$0/${MODULE_MINGW_DOWNLOADFILE}-src.exe" "$MINGW_INSTDIR\downloads\${MODULE_MINGW_DOWNLOADFILE}-src.exe" /END
320 Pop $2
321 Call EnableButtons
322
323 strcpy $MODULE_MINGW_SOURCEDOWNLOAD "yes"
324
325 StrCmp $2 "OK" +3
326 MessageBox MB_ICONEXCLAMATION|MB_RETRYCANCEL "Was not able to download MinGW sources ($2). Please try another mirror?" IDRETRY tryAgain 0
327 Quit
328
329 goto done
330
331tryAgain:
332 pop $1
333 pop $2
334 pop $0
335 Abort
336
337done:
338 pop $1
339 pop $2
340 pop $0
341FunctionEnd
342
343Function ModuleMinGWReadMirrors
344 push $0 ;file handle
345 push $1 ;line
346
347 ClearErrors
348 FileOpen $0 "$MINGW_INSTDIR\downloads\${MODULE_MINGW_DOWNLOADFILE}.mirrors" r
349 IfErrors done
350
351 strcpy $MODULE_MINGW_MIRRORS ""
352
353nextline:
354 FileRead $0 $1
355 IfErrors done
356 push $1
357 call ModuleMinGWRemoveNewLine
358 pop $1
359 strcpy $MODULE_MINGW_MIRRORS "$MODULE_MINGW_MIRRORS|$1"
360 FileRead $0 $1 ;Jump over next line
361 IfErrors done
362 goto nextline
363
364done:
365 FileClose $0
366 strlen $1 $MODULE_MINGW_MIRRORS
367 intcmp $1 0 failed failed cleanup
368
369failed:
370 MessageBox MB_ICONSTOP|MB_OK "Unable to parse mirror list, exiting!"
371 Quit
372
373cleanup:
374 pop $1
375 pop $0
376FunctionEnd
377
378#this just removes the last two chars
379Function ModuleMinGWRemoveNewLine
380exch $0
381push $1
382push $2
383
384strlen $1 $0
385intop $1 $1 - 1
386strcpy $2 $0 1 $1 ;get last char
387
388strcmp "$2" "$\n" 0 +2
389intop $1 $1 - 1
390
391strcpy $2 $0 1 $1 ;get last char
392strcmp "$2" "$\r" 0 +2
393intop $1 $1 - 1
394
395intop $1 $1 + 1
396strcpy $0 $0 $1
397
398pop $2
399pop $1
400exch $0
401FunctionEnd
402
403#push serverid
404#call GetMirror
405#pop server
406Function ModuleMinGWGetMirror
407 exch $1 ;id
408 push $0 ;file handle
409 push $2 ;line
410 push $3 ;tmp
411
412 strcpy $3 ""
413
414 ClearErrors
415 FileOpen $0 "$MINGW_INSTDIR\downloads\${MODULE_MINGW_DOWNLOADFILE}.mirrors" r
416 IfErrors done
417
418nextline:
419 FileRead $0 $2
420 IfErrors done
421 push $2
422 call ModuleMinGWRemoveNewLine
423 pop $2
424 strcmp $1 $2 0 nextline
425 FileRead $0 $3
426 IfErrors done
427 push $3
428 call ModuleMinGWRemoveNewLine
429 pop $3
430
431done:
432 strcpy $1 $3
433 FileClose $0
434 strlen $2 $1
435 intcmp $2 0 failed failed cleanup
436
437failed:
438 MessageBox MB_ICONSTOP|MB_OK "Unable to parse mirror list, exiting!"
439 Quit
440
441cleanup:
442 pop $3
443 pop $2
444 pop $0
445 exch $1
446FunctionEnd
447
448Function ModuleMinGWChecking
449 push $0
450
451 ### update with plugin
452 strcpy $MODULE_MINGW_INSTOK "yes"
453 strcpy $MODULE_MINGW_COMPILERINSTDIR "C:\MinGW" ;fallback dir
454
455 !insertmacro MUI_INSTALLOPTIONS_READ $0 "${MODULE_MINGW_DOWNLOADPAGE}" "Field 3" "State"
456 strcmp "$0" "" +2
457 strcpy $MODULE_MINGW_COMPILERINSTDIR $0
458
459 IfFileExists "$MODULE_MINGW_COMPILERINSTDIR\bin\g++.exe" +3 0
460 strcpy $MODULE_MINGW_INSTOK "g++ not found in $MODULE_MINGW_COMPILERINSTDIR\bin\"
461 goto DoneChecking
462
463!ifndef OPENSOURCE_BUILD
464 ; check w32api.h
465 push $MODULE_MINGW_COMPILERINSTDIR
466 qtnsisext::HasValidWin32Library
467 pop $0
468 strcmp "$0" "1" +3 0
469 strcpy $MODULE_MINGW_INSTOK "The installer could not find a valid $MODULE_MINGW_COMPILERINSTDIR\include\w32api.h$\r$\n(The supported version is 3.2)"
470 goto DoneChecking
471
472 ; check version
473 push $MODULE_MINGW_COMPILERINSTDIR
474 qtnsisext::GetMinGWVersion
475 pop $0
476 strcmp "$0" "${MODULE_MINGW_COMPILERVERSION}" +3 0
477 strcpy $MODULE_MINGW_INSTOK "g++ version found does not match ${MODULE_MINGW_COMPILERVERSION} (Found version $0)."
478 goto DoneChecking
479!endif
480
481DoneChecking:
482 pop $0
483FunctionEnd
484
485#
486# creates a qtvars.bat file in $QTDIR\bin
487# push "c:\qt" #QTDIR
488# call MakeQtVarsFile
489#
490Function ModuleMinGWMakeEnvFile
491 push $0 ; file handle
492
493 ClearErrors
494 FileOpen $0 "$MINGW_INSTDIR\bin\qtvars.bat" w
495 IfErrors WriteMakeFile
496 FileWrite $0 "@echo off$\r$\n"
497 FileWrite $0 "rem$\r$\n"
498 FileWrite $0 "rem This file is generated$\r$\n"
499 FileWrite $0 "rem$\r$\n"
500 FileWrite $0 "$\r$\n"
501 FileWrite $0 "echo Setting up a MinGW/Qt only environment...$\r$\n"
502 FileWrite $0 "echo -- QTDIR set to $MINGW_INSTDIR$\r$\n"
503 FileWrite $0 "echo -- PATH set to $MINGW_INSTDIR\bin$\r$\n"
504 FileWrite $0 "echo -- Adding $MODULE_MINGW_COMPILERINSTDIR\bin to PATH$\r$\n"
505 FileWrite $0 "echo -- Adding %SystemRoot%\System32 to PATH$\r$\n"
506 FileWrite $0 "echo -- QMAKESPEC set to win32-g++$\r$\n"
507 FileWrite $0 "$\r$\n"
508 FileWrite $0 "set QTDIR=$MINGW_INSTDIR$\r$\n"
509 FileWrite $0 "set PATH=$MINGW_INSTDIR\bin$\r$\n"
510 FileWrite $0 "set PATH=%PATH%;$MODULE_MINGW_COMPILERINSTDIR\bin$\r$\n"
511 FileWrite $0 "set PATH=%PATH%;%SystemRoot%\System32$\r$\n"
512 FileWrite $0 "set QMAKESPEC=win32-g++$\r$\n"
513 FileWrite $0 "$\r$\n"
514
515 FileWrite $0 'if not "%1"=="compile_debug" goto END$\r$\n'
516 FileWrite $0 "cd %QTDIR%$\r$\n"
517 FileWrite $0 "echo This will configure and compile qt in debug.$\r$\n"
518 FileWrite $0 "echo The release libraries will not be recompiled.$\r$\n"
519 FileWrite $0 "pause$\r$\n"
520 FileWrite $0 "configure -plugin-sql-sqlite -plugin-sql-odbc -qt-libpng -qt-libjpeg$\r$\n"
521 FileWrite $0 "cd %QTDIR%\src$\r$\n"
522 FileWrite $0 "qmake$\r$\n"
523 FileWrite $0 "mingw32-make debug$\r$\n"
524 FileWrite $0 ":END$\r$\n"
525 FileClose $0
526
527WriteMakeFile:
528 ClearErrors
529 FileOpen $0 "$MINGW_INSTDIR\bin\make.bat" w
530 IfErrors done
531 FileWrite $0 "@echo off$\r$\n"
532 FileWrite $0 "mingw32-make %*$\r$\n"
533 FileClose $0
534
535done:
536; pop $1
537 pop $0
538FunctionEnd
539
540Function MINGW_ValidateDirectoryFunc
541 push "${MODULE_MINGW_BUILDDIR}"
542 push $MINGW_INSTDIR
543 call CommonCheckDirectory
544FunctionEnd
545!macroend
546
547!macro MINGW_DESCRIPTION
548 !insertmacro MUI_DESCRIPTION_TEXT ${MINGW_SEC01} "This installs ${MODULE_MINGW_NAME} version ${MODULE_MINGW_VERSION} on your system."
549!macroend
550
551!macro MINGW_STARTUP
552 !ifndef MODULE_MINGW_NODEFAULT
553 SectionSetFlags ${MINGW_SEC01} 17
554 !endif
555 strcpy $MINGW_INSTDIR "C:\Qt\${MODULE_MINGW_VERSION}"
556 push $MINGW_INSTDIR
557 call MakeQtDirectory
558 pop $MINGW_INSTDIR
559
560 !insertmacro MUI_INSTALLOPTIONS_EXTRACT "${MODULE_MINGW_DOWNLOADPAGE}"
561 !insertmacro MUI_INSTALLOPTIONS_EXTRACT "${MODULE_MINGW_MIRRORPAGE}"
562
563 !insertmacro MUI_INSTALLOPTIONS_WRITE "${MODULE_MINGW_DOWNLOADPAGE}" "Field 3" "State" "C:\MinGW"
564 !insertmacro MUI_INSTALLOPTIONS_WRITE "${MODULE_MINGW_DOWNLOADPAGE}" "Field 6" "State" "C:\MinGW"
565
566 strcpy $MODULE_MINGW_DOWNLOAD "no"
567 strcpy $MODULE_MINGW_SOURCEDOWNLOAD "no"
568!macroend
569
570!macro MINGW_FINISH
571!macroend
572
573!macro MINGW_RUN_FUNCTION
574 ReadRegDWORD $0 SHCTX "$PRODUCT_UNIQUE_KEY" "MINGWInstalled"
575 intcmp $0 1 0 DoneRunFunctionMINGW
576
577 IfFileExists "$MINGW_INSTDIR\bin\qtdemo.exe" 0 +2
578 Exec '$MINGW_INSTDIR\bin\qtdemo.exe'
579 goto DoneRunFunction ;don't run more applications
580
581 DoneRunFunctionMINGW:
582!macroend
583
584!macro MINGW_README_FUNCTION
585 ReadRegDWORD $0 SHCTX "$PRODUCT_UNIQUE_KEY" "MINGWInstalled"
586 intcmp $0 1 0 DoneReadmeFunctionMINGW
587
588 IfFileExists "$MINGW_INSTDIR\bin\assistant.exe" 0 +2
589 Exec '$MINGW_INSTDIR\bin\assistant.exe'
590 goto DoneReadmeFunction ;don't run more applications
591
592 DoneReadmeFunctionMINGW:
593!macroend
594
595!macro MINGW_UNSTARTUP
596 strcmp "$MINGW_INSTDIR" "" 0 +5
597 StrCpy $MINGW_INSTDIR "$INSTDIR\${MODULE_MINGW_NAME} ${MODULE_MINGW_VERSION}"
598 push $MINGW_INSTDIR
599 call un.MakeQtDirectory
600 pop $MINGW_INSTDIR
601
602 !insertmacro ConfirmOnRemove "MINGWInstalled" "- ${MODULE_MINGW_NAME} ${MODULE_MINGW_VERSION} in $MINGW_INSTDIR"
603!macroend
604
605!macro MINGW_UNINSTALL
606Section un.ModuleMinGW
607 push $0
608 push $1
609
610 ReadRegDWORD $0 SHCTX "$PRODUCT_UNIQUE_KEY" "MINGWInstalled"
611 intcmp $0 1 0 DoneUnInstallMINGW
612
613 Delete "$MINGW_INSTDIR\downloads\${MODULE_MINGW_DOWNLOADFILE}.mirrors"
614
615 ReadRegDWORD $0 SHCTX "$PRODUCT_UNIQUE_KEY" "MinGWSources"
616 strcmp $0 "" MinGWSourcesUninstallDone ;not installed
617 Delete "$MINGW_INSTDIR\downloads\${MODULE_MINGW_DOWNLOADFILE}-src.exe"
618 nsExec::ExecToLog '"$0\src\uninst.exe"'
619 pop $1
620 MinGWSourcesUninstallDone:
621
622 ReadRegStr $0 SHCTX "$PRODUCT_UNIQUE_KEY" "MinGWInstDir"
623 strcmp $0 "" MinGWUninstallDone ;not installed
624 Delete "$MINGW_INSTDIR\downloads\${MODULE_MINGW_DOWNLOADFILE}.exe"
625 nsExec::ExecToLog '"$0\uninst.exe"'
626 pop $1
627 MinGWUninstallDone:
628
629 DetailPrint "Removing start menu shortcuts"
630 call un.RemoveStartmenuApplication
631 Delete "$SMPROGRAMS\$STARTMENU_STRING\${MODULE_MINGW_NAME} ${MODULE_MINGW_VERSION} Command Prompt.lnk"
632 Delete "$SMPROGRAMS\$STARTMENU_STRING\${MODULE_MINGW_NAME} ${MODULE_MINGW_VERSION} (Build Debug Libraries).lnk"
633
634 Delete "$MINGW_INSTDIR\bin\${MODULE_MINGW_RUNTIME_LIB}"
635 Delete "$MINGW_INSTDIR\bin\make.bat"
636 Delete "$MINGW_INSTDIR\bin\qtvars.bat"
637
638 !insertmacro MODULE_MINGW_REMOVE "$MINGW_INSTDIR"
639 RMDir $MINGW_INSTDIR ;removes it if empty
640
641 DoneUnInstallMINGW:
642 pop $1
643 pop $0
644SectionEnd
645!macroend
646!macro MINGW_UNFINISH
647!macroend
648!else ;MODULE_MINGW
649!macro MINGW_INITIALIZE
650!macroend
651!macro MINGW_SECTIONS
652!macroend
653!macro MINGW_DESCRIPTION
654!macroend
655!macro MINGW_STARTUP
656!macroend
657!macro MINGW_FINISH
658!macroend
659!macro MINGW_RUN_FUNCTION
660!macroend
661!macro MINGW_README_FUNCTION
662!macroend
663!macro MINGW_UNSTARTUP
664!macroend
665!macro MINGW_UNINSTALL
666!macroend
667!macro MINGW_UNFINISH
668!macroend
669!endif ;MODULE_MINGW
  
1;;
2;; Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
3;; All rights reserved.
4;; Contact: Nokia Corporation (qt-info@nokia.com)
5;;
6;; This file is part of the tools applications of the Qt Toolkit.
7;;
8;; $QT_BEGIN_LICENSE:LGPL$
9;; No Commercial Usage
10;; This file contains pre-release code and may not be distributed.
11;; You may use this file in accordance with the terms and conditions
12;; contained in the Technology Preview License Agreement accompanying
13;; this package.
14;;
15;; GNU Lesser General Public License Usage
16;; Alternatively, this file may be used under the terms of the GNU Lesser
17;; General Public License version 2.1 as published by the Free Software
18;; Foundation and appearing in the file LICENSE.LGPL included in the
19;; packaging of this file. Please review the following information to
20;; ensure the GNU Lesser General Public License version 2.1 requirements
21;; will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
22;;
23;; In addition, as a special exception, Nokia gives you certain additional
24;; rights. These rights are described in the Nokia Qt LGPL Exception
25;; version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
26;;
27;; If you have questions regarding the use of this file, please contact
28;; Nokia at qt-info@nokia.com.
29;;
30;;
31;;
32;;
33;;
34;;
35;;
36;;
37;; $QT_END_LICENSE$
38;;
39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
40!ifdef MODULE_OPENSOURCE
41!macro OPENSOURCE_INITIALIZE
42 !define MODULE_OPENSOURCE_PAGE "opensource.ini"
43 page custom ModuleOpenSourceShowPage
44!macroend
45!macro OPENSOURCE_SECTIONS
46 Section -ModuleOpenSourceSection
47 !ifdef MODULE_OPENSOURCE_ROOT
48 SetOutPath "$INSTDIR"
49 File "${MODULE_OPENSOURCE_ROOT}\OPENSOURCE-NOTICE.TXT"
50 !endif
51 SectionEnd
52
53 Function ModuleOpenSourceShowPage
54 !insertmacro MUI_HEADER_TEXT "Open Source Edition" " "
55 !insertmacro MUI_INSTALLOPTIONS_DISPLAY "${MODULE_OPENSOURCE_PAGE}"
56 strcpy "$LICENSEE" "Open Source"
57 strcpy "$LICENSE_PRODUCT" "OpenSource"
58 FunctionEnd
59!macroend
60!macro OPENSOURCE_DESCRIPTION
61!macroend
62!macro OPENSOURCE_STARTUP
63 !insertmacro MUI_INSTALLOPTIONS_EXTRACT "${MODULE_OPENSOURCE_PAGE}"
64!macroend
65!macro OPENSOURCE_FINISH
66!macroend
67!macro OPENSOURCE_UNSTARTUP
68!macroend
69!macro OPENSOURCE_UNINSTALL
70 Section -un.ModuleOpenSourceSection
71 Delete "$SMPROGRAMS\$STARTMENU_STRING\OpenSource Notice.lnk"
72 SectionEnd
73!macroend
74!macro OPENSOURCE_UNFINISH
75!macroend
76!else ;MODULE_OPENSOURCE
77!macro OPENSOURCE_INITIALIZE
78!macroend
79!macro OPENSOURCE_SECTIONS
80!macroend
81!macro OPENSOURCE_DESCRIPTION
82!macroend
83!macro OPENSOURCE_STARTUP
84!macroend
85!macro OPENSOURCE_FINISH
86!macroend
87!macro OPENSOURCE_UNSTARTUP
88!macroend
89!macro OPENSOURCE_UNINSTALL
90!macroend
91!macro OPENSOURCE_UNFINISH
92!macroend
93!endif ;MODULE_OPENSOURCE
  
1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2;;
3;; Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
4;; All rights reserved.
5;; Contact: Nokia Corporation (qt-info@nokia.com)
6;;
7;; This file is part of the tools applications of the Qt Toolkit.
8;;
9;; $QT_BEGIN_LICENSE:LGPL$
10;; No Commercial Usage
11;; This file contains pre-release code and may not be distributed.
12;; You may use this file in accordance with the terms and conditions
13;; contained in the Technology Preview License Agreement accompanying
14;; this package.
15;;
16;; GNU Lesser General Public License Usage
17;; Alternatively, this file may be used under the terms of the GNU Lesser
18;; General Public License version 2.1 as published by the Free Software
19;; Foundation and appearing in the file LICENSE.LGPL included in the
20;; packaging of this file. Please review the following information to
21;; ensure the GNU Lesser General Public License version 2.1 requirements
22;; will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
23;;
24;; In addition, as a special exception, Nokia gives you certain additional
25;; rights. These rights are described in the Nokia Qt LGPL Exception
26;; version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
27;;
28;; If you have questions regarding the use of this file, please contact
29;; Nokia at qt-info@nokia.com.
30;;
31;;
32;;
33;;
34;;
35;;
36;;
37;;
38;; $QT_END_LICENSE$
39;;
40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
41; UI Extension Module
42
43!ifdef MODULE_REGISTERUIEXT
44
45;------------------------------------------------------------------------------------------------
46!macro REGISTERUIEXT_INITIALIZE
47 !include "includes\system.nsh"
48
49 !ifndef MODULE_REGISTERUIEXT_QTDIR
50 !ifdef MODULE_MINGW
51 !define MODULE_REGISTERUIEXT_QTDIR $MINGW_INSTDIR
52 !endif
53
54 !ifdef MODULE_MSVC
55 !define MODULE_REGISTERUIEXT_QTDIR $MSVC_INSTDIR
56 !endif
57 !endif
58
59 !define MODULE_REGISTERUIEXT_INTERNAL_DESC "Trolltech.DesignerForm"
60 !define MODULE_REGISTERUIEXT_DESC_DESIGNER "Open with Qt Designer"
61 !define MODULE_REGISTERUIEXT_DESC_DEVENV "Open with Visual Studio .NET"
62 !define MODULE_REGISTERUIEXT_FILE_DESC "Qt Designer File"
63!macroend
64
65;------------------------------------------------------------------------------------------------
66
67!macro REGISTERUIEXT_SECTIONS
68
69Function GetSelectedVSIP
70 Push $0
71 Push $1
72
73 StrCpy $0 ""
74!ifdef MODULE_VSIP
75!ifdef VSIP_SEC01
76 SectionGetFlags ${VSIP_SEC01} $1
77 IntOp $1 $1 & 1
78 IntCmp $1 0 +2
79 StrCpy $0 "7.1"
80!endif
81!ifdef VSIP_SEC02
82 SectionGetFlags ${VSIP_SEC02} $1
83 IntOp $1 $1 & 1
84 IntCmp $1 0 +2
85 StrCpy $0 "8.0"
86!endif
87!endif
88
89 Pop $1
90 Exch $0
91FunctionEnd
92
93SectionGroup "File Associations"
94Section "UI Files (*.ui)" REGISTERUIEXT_SEC01
95 call ModuleRegisterUI
96SectionEnd
97SectionGroupEnd
98
99Function ModuleRegisterUI
100 push $0
101 push $1
102
103 WriteRegDWORD SHCTX "$PRODUCT_UNIQUE_KEY" "UIExtRegistered" 1
104 WriteRegStr HKCR "${MODULE_REGISTERUIEXT_INTERNAL_DESC}" "" "${MODULE_REGISTERUIEXT_FILE_DESC}"
105 WriteRegStr HKCR "${MODULE_REGISTERUIEXT_INTERNAL_DESC}\shell" "" "open"
106
107 Call GetSelectedVSIP
108 Pop $1
109
110 StrCmp "$1" "" 0 RegisterVSIP
111 WriteRegStr HKCR "${MODULE_REGISTERUIEXT_INTERNAL_DESC}\shell\open" "" "${MODULE_REGISTERUIEXT_DESC_DESIGNER}"
112 WriteRegStr HKCR "${MODULE_REGISTERUIEXT_INTERNAL_DESC}\shell\open\command" "" "${MODULE_REGISTERUIEXT_QTDIR}\bin\designer.exe $\"%1$\""
113 WriteRegStr HKCR "${MODULE_REGISTERUIEXT_INTERNAL_DESC}\DefaultIcon" "" "${MODULE_REGISTERUIEXT_QTDIR}\bin\designer.exe,0"
114 goto RegisterFinished
115
116 RegisterVSIP:
117 Push $1
118 Call GetVSInstallationDir
119 Pop $0
120
121 WriteRegStr HKCR "${MODULE_REGISTERUIEXT_INTERNAL_DESC}\shell\open" "" "${MODULE_REGISTERUIEXT_DESC_DEVENV}"
122 WriteRegStr HKCR "${MODULE_REGISTERUIEXT_INTERNAL_DESC}\shell\${MODULE_REGISTERUIEXT_DESC_DEVENV}\command" "" "$0\devenv.exe $\"%1$\""
123 WriteRegStr HKCR "${MODULE_REGISTERUIEXT_INTERNAL_DESC}\DefaultIcon" "" "$VSIP_INSTDIR\ui.ico"
124 RegisterFinished:
125 WriteRegStr HKCR ".ui" "" "${MODULE_REGISTERUIEXT_INTERNAL_DESC}"
126
127 pop $1
128 pop $0
129FunctionEnd
130
131!macroend
132
133;------------------------------------------------------------------------------------------------
134
135!macro REGISTERUIEXT_DESCRIPTION
136 !insertmacro MUI_DESCRIPTION_TEXT ${REGISTERUIEXT_SEC01} "This will associate the file extention .ui with the Qt GUI editor."
137!macroend
138
139;------------------------------------------------------------------------------------------------
140
141!macro REGISTERUIEXT_STARTUP
142 StrCmp $RUNNING_AS_ADMIN "true" +2
143 SectionSetFlags ${REGISTERUIEXT_SEC01} 16
144!macroend
145
146;------------------------------------------------------------------------------------------------
147
148!macro REGISTERUIEXT_FINISH
149!macroend
150
151;------------------------------------------------------------------------------------------------
152
153!macro REGISTERUIEXT_UNSTARTUP
154!macroend
155
156;------------------------------------------------------------------------------------------------
157
158!macro REGISTERUIEXT_UNINSTALL
159Function un.ModuleRegisterUI
160 push $1
161 ReadRegStr $1 HKCR ".ui" ""
162 strcmp $1 "${MODULE_REGISTERUIEXT_INTERNAL_DESC}" 0 continue
163 ; do not delete this key since a subkey openwithlist
164 ; or open withprogid may exist
165 WriteRegStr HKCR ".ui" "" ""
166 continue:
167 ; just delete it since nobody else is supposed to use it
168 DeleteRegKey HKCR "${MODULE_REGISTERUIEXT_INTERNAL_DESC}"
169
170 pop $1
171FunctionEnd
172
173Section -un.ModuleRegisterUIExtSection
174 push $0
175 ReadRegDWORD $0 SHCTX "$PRODUCT_UNIQUE_KEY" "UIExtRegistered"
176 intcmp $0 1 0 DoneUnRegister
177 call un.ModuleRegisterUI
178 DoneUnRegister:
179 pop $0
180SectionEnd
181!macroend
182
183;------------------------------------------------------------------------------------------------
184
185!macro REGISTERUIEXT_UNFINISH
186!macroend
187
188;------------------------------------------------------------------------------------------------
189
190!else
191!macro REGISTERUIEXT_INITIALIZE
192!macroend
193!macro REGISTERUIEXT_SECTIONS
194!macroend
195!macro REGISTERUIEXT_DESCRIPTION
196!macroend
197!macro REGISTERUIEXT_STARTUP
198!macroend
199!macro REGISTERUIEXT_FINISH
200!macroend
201!macro REGISTERUIEXT_UNSTARTUP
202!macroend
203!macro REGISTERUIEXT_UNINSTALL
204!macroend
205!macro REGISTERUIEXT_UNFINISH
206!macroend
207!endif
  
1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2;;
3;; Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
4;; All rights reserved.
5;; Contact: Nokia Corporation (qt-info@nokia.com)
6;;
7;; This file is part of the tools applications of the Qt Toolkit.
8;;
9;; $QT_BEGIN_LICENSE:LGPL$
10;; No Commercial Usage
11;; This file contains pre-release code and may not be distributed.
12;; You may use this file in accordance with the terms and conditions
13;; contained in the Technology Preview License Agreement accompanying
14;; this package.
15;;
16;; GNU Lesser General Public License Usage
17;; Alternatively, this file may be used under the terms of the GNU Lesser
18;; General Public License version 2.1 as published by the Free Software
19;; Foundation and appearing in the file LICENSE.LGPL included in the
20;; packaging of this file. Please review the following information to
21;; ensure the GNU Lesser General Public License version 2.1 requirements
22;; will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
23;;
24;; In addition, as a special exception, Nokia gives you certain additional
25;; rights. These rights are described in the Nokia Qt LGPL Exception
26;; version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
27;;
28;; If you have questions regarding the use of this file, please contact
29;; Nokia at qt-info@nokia.com.
30;;
31;;
32;;
33;;
34;;
35;;
36;;
37;;
38;; $QT_END_LICENSE$
39;;
40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
41; Ini file generated by the HM NIS Edit IO designer.
42[Settings]
43NumFields=4
44
45[Field 1]
46Type=Label
47Text=You are now installing the Open Source Edition of Qt. It is licensed under GNU LGPL version 2.1 and the GPL version 3.
48Left=0
49Right=300
50Top=0
51Bottom=78
52
53[Field 2]
54Type=Link
55Text=http://qt.nokia.com/downloads
56State=http://qt.nokia.com/downloads
57Left=0
58Right=278
59Top=80
60Bottom=88
61
62[Field 3]
63Type=Link
64Text=http://qt.nokia.com/about
65State=http://qt.nokia.com/about
66Left=0
67Right=267
68Top=112
69Bottom=120
70
71[Field 4]
72Type=Label
73Text=To read more about Nokia's licensing, please go to:
74Left=0
75Right=278
76Top=97
77Bottom=105