Skip to content

Commit 11a34d5

Browse files
author
Martin Rotter
committed
5.15.2
1 parent 61a1f4a commit 11a34d5

File tree

2 files changed

+86
-7
lines changed

2 files changed

+86
-7
lines changed

msvc2019-build5.15.2-static.ps1

+59
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# 1. Start Visual Studio x64 Native Tools command line.
2+
# 2. Run powershell.exe from Native Tools cmd.
3+
# 3. cd to path of qt5-minimalistic-builds repo.
4+
5+
$version_base = "5.15"
6+
$version = "5.15.2"
7+
8+
$qt_sources_url = "https://download.qt.io/official_releases/qt/" + $version_base + "/" + $version + "/single/qt-everywhere-src-" + $version + ".zip"
9+
$qt_archive_file = $pwd.Path + "\qt-" + $version + ".zip"
10+
$qt_src_base_folder = $pwd.Path + "\qt-everywhere-src-" + $version
11+
12+
$tools_folder = $pwd.Path + "\tools\"
13+
$type = "static"
14+
$prefix_base_folder = "qt-" + $version + "-" + $type + "-msvc2019-x86_64"
15+
$prefix_folder = $pwd.Path + "\" + $prefix_base_folder
16+
$build_folder = $pwd.Path + "\bld"
17+
18+
# OpenSSL
19+
# 1.1.1d
20+
# Install steps:
21+
# 1. Download, unpack openssl to folder "C:\xx".
22+
# 2. Install system-wide perl, nasm.
23+
# 3. Run MVSC command prompt and navigate to "C:\xx" folder.
24+
# 4. Run "perl Configure VC-WIN64A --prefix=C:\xx --openssldir=C:\xx -static".
25+
# 5. Manually edit "makefile" and add /GL /MT to compiler flags and /LTCG to linker flags, then run "nmake" and "make install".
26+
$openssl_base_folder = "c:\Programy\OpenSSL\bin-static"
27+
$openssl_include_folder = $openssl_base_folder + "\include"
28+
$openssl_libs_folder = $openssl_base_folder + "\lib"
29+
$openssl_bin_folder = $openssl_base_folder + "\bin"
30+
31+
# Download Qt sources, unpack.
32+
$AllProtocols = [System.Net.SecurityProtocolType]'Ssl3,Tls,Tls11,Tls12'
33+
[System.Net.ServicePointManager]::SecurityProtocol = $AllProtocols
34+
35+
Invoke-WebRequest -Uri $qt_sources_url -OutFile $qt_archive_file
36+
& "$tools_folder\7za.exe" x $qt_archive_file
37+
38+
# Configure.
39+
mkdir $build_folder
40+
cd $build_folder
41+
42+
& "$qt_src_base_folder\configure.bat" -debug-and-release -opensource -confirm-license -platform win32-msvc2017 -opengl desktop -no-iconv -no-dbus -no-icu -no-fontconfig -no-freetype -qt-harfbuzz -qt-doubleconversion -nomake examples -nomake tests -skip qt3d -skip qtactiveqt -skip qtcanvas3d -skip qtconnectivity -skip qtdatavis3d -skip qtdoc -skip qtgamepad -skip qtgraphicaleffects -skip qtlocation -skip qtnetworkauth -skip qtpurchasing -skip qtquickcontrols -skip qtquickcontrols2 -skip qtremoteobjects -skip qtscxml -skip qtsensors -skip qtserialbus -skip qtserialport -skip qtspeech -skip qtvirtualkeyboard -skip qtwebview -skip qtscript -skip qtwebengine -mp -optimize-size -D "JAS_DLL=0" -static -feature-relocatable -ltcg -prefix $prefix_folder MYSQL_LIBS="-lAdvapi32 -lshlwapi -lWs2_32 -lmariadbclient" -openssl-linked -I $openssl_include_folder -L $openssl_libs_folder OPENSSL_LIBS="-lUser32 -lAdvapi32 -lGdi32 -lWS2_32 -lCRYPT32 -llibcrypto -llibssl"
43+
44+
# Compile.
45+
nmake
46+
nmake install
47+
48+
# Copy OpenSSL.
49+
cp "$tools_folder\qtbinpatcher.*" "$prefix_folder\bin\"
50+
cp "$openssl_libs_folder\*" "$prefix_folder\lib\" -Recurse
51+
cp "$openssl_include_folder\openssl" "$prefix_folder\include\" -Recurse
52+
53+
# Fixup OpenSSL DLL paths and MySQL paths.
54+
$openssl_libs_folder_esc = $openssl_libs_folder -replace '\\','\\'
55+
56+
gci -r -include "*.prl" $prefix_folder | foreach-object { $a = $_.fullname; (get-content $a).Replace($openssl_libs_folder_esc, '$$$$[QT_INSTALL_LIBS]\\') | set-content $a }
57+
58+
# Create final archive.
59+
& "$tools_folder\7za.exe" a -t7z "${prefix_base_folder}.7z" "$prefix_folder" -mmt -mx9

msvc2019-build5.15.2.ps1

+27-7
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,15 @@ $openssl_include_folder = $openssl_base_folder + "\include"
2727
$openssl_libs_folder = $openssl_base_folder + "\lib"
2828
$openssl_bin_folder = $openssl_base_folder + "\bin"
2929

30-
# MySQL
30+
# SQL.
3131
$mysql_include_folder = "c:\\Programy\\MariaDB\\include"
3232
$mysql_lib_folder = "c:\\Programy\\MariaDB\\lib"
3333

34+
$postgre_include_folder = "c:\Programy\PostgreSQL\include"
35+
$postgre_lib_folder = "c:\Programy\PostgreSQL\lib"
36+
$postgre_bin_folder = "c:\Programy\PostgreSQL\bin"
37+
$postgre_lib = "$postgre_lib_folder\libpq.lib"
38+
3439
# Download Qt sources, unpack.
3540
$AllProtocols = [System.Net.SecurityProtocolType]'Ssl3,Tls,Tls11,Tls12'
3641
[System.Net.ServicePointManager]::SecurityProtocol = $AllProtocols
@@ -42,31 +47,46 @@ Invoke-WebRequest -Uri $qt_sources_url -OutFile $qt_archive_file
4247
mkdir $build_folder
4348
cd $build_folder
4449

45-
& "$qt_src_base_folder\configure.bat" -debug-and-release -opensource -confirm-license -platform win32-msvc2017 -opengl desktop -no-iconv -no-dbus -no-icu -no-fontconfig -no-freetype -qt-harfbuzz -qt-doubleconversion -nomake examples -nomake tests -skip qt3d -skip qtactiveqt -skip qtcanvas3d -skip qtconnectivity -skip qtdatavis3d -skip qtdoc -skip qtgamepad -skip qtgraphicaleffects -skip qtlocation -skip qtnetworkauth -skip qtpurchasing -skip qtquickcontrols -skip qtquickcontrols2 -skip qtremoteobjects -skip qtscxml -skip qtsensors -skip qtserialbus -skip qtserialport -skip qtspeech -skip qtvirtualkeyboard -skip qtwebview -skip qtscript -no-feature-webengine-v8-snapshot-support -no-feature-webengine-geolocation -no-feature-webengine-pepper-plugins -no-feature-webengine-printing-and-pdf -no-feature-webengine-webchannel -no-feature-webengine-proprietary-codecs -no-feature-webengine-kerberos -no-feature-webengine-spellchecker -no-feature-webengine-webrtc -no-feature-webengine-sanitizer -no-feature-webengine-ui-delegates -no-feature-webengine-testsupport -mp -optimize-size -shared -prefix $prefix_folder -openssl-linked -I $mysql_include_folder -L $mysql_lib_folder MYSQL_LIBS="-llibmariadb" -I $openssl_include_folder -L $openssl_libs_folder OPENSSL_LIBS="-lUser32 -lAdvapi32 -lGdi32 -llibcrypto -llibssl"
50+
& "$qt_src_base_folder\configure.bat" -debug-and-release -opensource -confirm-license -platform win32-msvc2017 -opengl desktop -no-iconv -no-dbus -no-fontconfig -no-freetype -qt-harfbuzz -qt-doubleconversion -nomake examples -nomake tests -skip qt3d -skip qtactiveqt -skip qtcanvas3d -skip qtconnectivity -skip qtdatavis3d -skip qtdoc -skip qtgamepad -skip qtgraphicaleffects -skip qtlocation -skip qtnetworkauth -skip qtpurchasing -skip qtquickcontrols -skip qtquickcontrols2 -skip qtremoteobjects -skip qtscxml -skip qtsensors -skip qtserialbus -skip qtserialport -skip qtspeech -skip qtvirtualkeyboard -skip qtwebview -skip qtscript -no-feature-webengine-v8-snapshot-support -no-feature-webengine-geolocation -no-feature-webengine-pepper-plugins -no-feature-webengine-printing-and-pdf -no-feature-webengine-webchannel -no-feature-webengine-proprietary-codecs -no-feature-webengine-kerberos -no-feature-webengine-spellchecker -no-feature-webengine-webrtc -no-feature-webengine-sanitizer -no-feature-webengine-ui-delegates -no-feature-webengine-testsupport -mp -optimize-size -shared -prefix $prefix_folder -openssl-linked -I $mysql_include_folder -L $mysql_lib_folder MYSQL_LIBS="-llibmariadb" -I $postgre_include_folder -L $postgre_lib_folder -I $openssl_include_folder -L $openssl_libs_folder OPENSSL_LIBS="-lUser32 -lAdvapi32 -lGdi32 -llibcrypto -llibssl"
4651

4752
# Compile.
48-
#& "$tools_folder\jom.exe"
4953
nmake
5054
nmake install
5155

52-
# Copy qtbinpatcher, OpenSSL, MySQL.
53-
cp "$tools_folder\qtbinpatcher.*" "$prefix_folder\bin\"
56+
# Copy OpenSSL, SQL.
5457
cp "$openssl_bin_folder\*.dll" "$prefix_folder\bin\"
5558
cp "$openssl_bin_folder\*.exe" "$prefix_folder\bin\"
5659
cp "$openssl_bin_folder\*.pdb" "$prefix_folder\bin\"
5760
cp "$openssl_libs_folder\*" "$prefix_folder\lib\" -Recurse
5861
cp "$openssl_include_folder\openssl" "$prefix_folder\include\" -Recurse
5962

60-
cp "$mysql_lib_folder\libmaria*" "$prefix_folder\bin\"
61-
cp "$mysql_lib_folder\libmaria*" "$prefix_folder\lib\"
63+
mkdir "$prefix_folder\include\mysql"
64+
65+
cp "$mysql_lib_folder\libmaria*.dll" "$prefix_folder\bin\"
66+
cp "$mysql_lib_folder\libmaria*.pdb" "$prefix_folder\bin\"
67+
cp "$mysql_lib_folder\libmaria*.lib" "$prefix_folder\lib\"
68+
cp "$mysql_include_folder\*" "$prefix_folder\include\mysql" -Recurse
69+
70+
mkdir "$prefix_folder\include\psql"
71+
72+
cp "$postgre_lib_folder\libpq.lib" "$prefix_folder\lib\"
73+
cp "$postgre_lib_folder\libintl.lib" "$prefix_folder\lib\"
74+
cp "$postgre_lib_folder\iconv.lib" "$prefix_folder\lib\"
75+
cp "$postgre_bin_folder\libpq.dll" "$prefix_folder\bin\"
76+
cp "$postgre_bin_folder\libintl-8.dll" "$prefix_folder\bin\"
77+
cp "$postgre_bin_folder\libiconv-2.dll" "$prefix_folder\bin\"
78+
cp "$postgre_include_folder\*" "$prefix_folder\include\psql" -Recurse
6279

6380
# Fixup OpenSSL DLL paths and MySQL paths.
6481
$openssl_libs_folder_esc = $openssl_libs_folder -replace '\\','\\'
6582
$mysql_lib_folder_esc = $mysql_lib_folder -replace '\\','\\'
83+
$postgre_lib_folder_esc = $postgre_lib_folder -replace '\\','\\'
6684

6785
gci -r -include "*.prl" $prefix_folder | foreach-object { $a = $_.fullname; (get-content $a).Replace($openssl_libs_folder_esc, '$$$$[QT_INSTALL_LIBS]\\') | set-content $a }
6886

6987
gci -r -include "*.prl" $prefix_folder | foreach-object { $a = $_.fullname; (get-content $a).Replace($mysql_lib_folder_esc, '$$$$[QT_INSTALL_LIBS]\\') | set-content $a }
7088

89+
gci -r -include "*.prl" $prefix_folder | foreach-object { $a = $_.fullname; (get-content $a).Replace($postgre_lib_folder_esc, '$$$$[QT_INSTALL_LIBS]\\') | set-content $a }
90+
7191
# Create final archive.
7292
& "$tools_folder\7za.exe" a -t7z "${prefix_base_folder}.7z" "$prefix_folder" -mmt -mx9

0 commit comments

Comments
 (0)