aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoerg Bornemann <joerg.bornemann@qt.io>2019-06-07 11:07:35 +0200
committerJoerg Bornemann <joerg.bornemann@qt.io>2019-10-11 11:10:08 +0000
commite36f73945c6f8e374b931cc33f2708e696797d1b (patch)
treefbce80be575383a8afb4f8a441d519afb322b716
parent8a807533ae6b2cccb022ecc6cf436ac2f6a7339f (diff)
Update windowsservercore/Dockerfile
- Update qbs to 1.12.1 - Update Qt to 5.12.5 We're not using the installer anymore, because a) the unattended-install-hack doesn't work for newer Qt installers b) newer installers do not provide VS 2015 builds. c) it allows us to tailor the Qt build to our needs in the future. We're not building the documentation on Windows anymore due to the genius move to require libclang for qdoc. That means we need additional twiddling with the packages to add documentation that was built on an usable OS. Task-number: QBS-1438 Change-Id: I77a487562c2f5edd69b8b8a10ef3410ab599dc92 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
-rw-r--r--docker/docker.qbs2
-rw-r--r--docker/windowsservercore/Dockerfile54
-rw-r--r--docker/windowsservercore/build-qt.bat23
-rw-r--r--docker/windowsservercore/qtifwsilent.qs54
-rw-r--r--scripts/make-release-archives.bat2
5 files changed, 60 insertions, 75 deletions
diff --git a/docker/docker.qbs b/docker/docker.qbs
index d4bf181bb..5adc277e4 100644
--- a/docker/docker.qbs
+++ b/docker/docker.qbs
@@ -29,7 +29,7 @@ Project {
files: [
"windowsservercore/Dockerfile",
- "windowsservercore/qtifwsilent.qs",
+ "windowsservercore/build-qt.bat",
]
}
}
diff --git a/docker/windowsservercore/Dockerfile b/docker/windowsservercore/Dockerfile
index 61a363761..43cf93736 100644
--- a/docker/windowsservercore/Dockerfile
+++ b/docker/windowsservercore/Dockerfile
@@ -1,33 +1,49 @@
-FROM microsoft/windowsservercore:10.0.14393.1884
-LABEL Description="Windows Server Core development environment for Qbs with Qt 5.9, Chocolatey and various dependencies for testing Qbs modules and functionality"
+FROM microsoft/windowsservercore:10.0.14393.1884 as build-env
+LABEL Description="Windows Server Core development environment for Qbs with Qt, Chocolatey and various dependencies for testing Qbs modules and functionality"
# Disable crash dialog for release-mode runtimes
RUN reg add "HKLM\SOFTWARE\Microsoft\Windows\Windows Error Reporting" /v Disabled /t REG_DWORD /d 1 /f
RUN reg add "HKLM\SOFTWARE\Microsoft\Windows\Windows Error Reporting" /v DontShowUI /t REG_DWORD /d 1 /f
-COPY qtifwsilent.qs C:\qtifwsilent.qs
-RUN powershell -NoProfile -ExecutionPolicy Bypass -Command \
- $ErrorActionPreference = 'Stop'; \
- $Wc = New-Object System.Net.WebClient ; \
- $Wc.DownloadFile('https://download.qt.io/official_releases/qt/5.9/5.9.3/qt-opensource-windows-x86-5.9.3.exe', 'C:\qt.exe') ; \
- Echo 'Downloaded qt-opensource-windows-x86-5.9.3.exe' ; \
- $Env:QT_INSTALL_DIR = 'C:\\Qt' ; \
- Start-Process C:\qt.exe -ArgumentList '--verbose --script C:/qtifwsilent.qs' -NoNewWindow -Wait ; \
- Remove-Item C:\qt.exe -Force ; \
- Remove-Item C:\qtifwsilent.qs -Force
-ENV QTDIR C:\\Qt\\5.9.3\\msvc2015
-ENV QTDIR64 C:\\Qt\\5.9.3\\msvc2015_64
-RUN dir "%QTDIR%" && dir "%QTDIR64%" && dir "%QTDIR%\bin\Qt5Script.dll" && dir "%QTDIR64%\bin\Qt5Script.dll"
-
RUN @powershell -NoProfile -ExecutionPolicy Bypass -Command \
$Env:chocolateyVersion = '0.10.8' ; \
$Env:chocolateyUseWindowsCompression = 'false' ; \
"iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
RUN choco install -y python2 --version 2.7.14 && refreshenv && python --version && pip --version
-RUN choco install -y qbs --version 1.9.1 && qbs --version
-RUN choco install -y unzip --version 6.0 && unzip -v
+RUN choco install -y vcredist140
+RUN choco install -y qbs --version 1.12.1 && qbs --version
RUN choco install -y visualcpp-build-tools --version 14.0.25420.1 && dir "%PROGRAMFILES(X86)%\Microsoft Visual C++ Build Tools"
-RUN choco install -y zip --version 3.0 && zip -v
+RUN choco install -y unzip --version 6.0
+RUN choco install -y zip --version 3.0
+
+
+FROM build-env as qt-build-env
+LABEL Description="Environment for Building Qt"
+RUN choco install -y jom --version 1.1.2 && jom /version
+
+# Download and extract Qt source archives
+WORKDIR C:/
+RUN md src
+WORKDIR src
+COPY build-qt.bat .
+ADD http://download.qt.io/official_releases/qt/5.12/5.12.5/submodules/qtbase-everywhere-src-5.12.5.zip qtbase.zip
+ADD http://download.qt.io/official_releases/qt/5.12/5.12.5/submodules/qtscript-everywhere-src-5.12.5.zip qtscript.zip
+ADD http://download.qt.io/official_releases/qt/5.12/5.12.5/submodules/qttools-everywhere-src-5.12.5.zip qttools.zip
+RUN unzip qtbase.zip
+RUN unzip qtscript.zip
+RUN unzip qttools.zip
+RUN rename qtbase-everywhere-src-5.12.5 qtbase
+RUN rename qtscript-everywhere-src-5.12.5 qtscript
+RUN rename qttools-everywhere-src-5.12.5 qttools
+RUN build-qt.bat x86
+RUN build-qt.bat x64
+
+
+FROM build-env as qbs-build-env
+WORKDIR C:/
+COPY --from=qt-build-env C:/Qt C:/Qt/
+ENV QTDIR C:\\Qt\\x86
+ENV QTDIR64 C:\\Qt\\x64
# for building the documentation
RUN pip install beautifulsoup4 lxml
diff --git a/docker/windowsservercore/build-qt.bat b/docker/windowsservercore/build-qt.bat
new file mode 100644
index 000000000..0d7f432e6
--- /dev/null
+++ b/docker/windowsservercore/build-qt.bat
@@ -0,0 +1,23 @@
+setlocal
+set ARCH=%1
+call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" %ARCH%
+md %ARCH%
+cd %ARCH%
+md qtbase
+cd qtbase
+call C:\src\qtbase\configure -opensource -confirm-license -prefix C:\Qt\%ARCH% -opengl desktop -release -nomake tests -nomake examples
+jom
+jom install
+cd ..
+md qttools\src\windeployqt
+cd qttools\src\windeployqt
+C:\Qt\%ARCH%\bin\qmake C:\src\qttools\src\windeployqt\windeployqt.pro
+jom
+jom install
+cd ..
+md qtscript
+cd qtscript
+C:\Qt\%ARCH%\bin\qmake C:\src\qtscript\qtscript.pro
+jom
+jom install
+endlocal
diff --git a/docker/windowsservercore/qtifwsilent.qs b/docker/windowsservercore/qtifwsilent.qs
deleted file mode 100644
index 13b5f39ea..000000000
--- a/docker/windowsservercore/qtifwsilent.qs
+++ /dev/null
@@ -1,54 +0,0 @@
-function Controller() {
- installer.autoRejectMessageBoxes();
- installer.installationFinished.connect(function() {
- gui.clickButton(buttons.NextButton);
- })
-}
-
-Controller.prototype.WelcomePageCallback = function() {
- gui.clickButton(buttons.NextButton);
-}
-
-Controller.prototype.CredentialsPageCallback = function() {
- gui.clickButton(buttons.NextButton);
-}
-
-Controller.prototype.IntroductionPageCallback = function() {
- gui.clickButton(buttons.NextButton);
-}
-
-Controller.prototype.TargetDirectoryPageCallback = function() {
- gui.currentPageWidget().TargetDirectoryLineEdit.setText(installer.environmentVariable("QT_INSTALL_DIR"));
- gui.clickButton(buttons.NextButton);
-}
-
-Controller.prototype.ComponentSelectionPageCallback = function() {
- var widget = gui.currentPageWidget();
- widget.deselectAll();
- widget.selectComponent("qt.593.win32_msvc2015");
- widget.selectComponent("qt.593.win64_msvc2015_64");
- widget.selectComponent("qt.593.qtscript");
- widget.selectComponent("qt.tools.vcredist_msvc2015_x86");
- widget.selectComponent("qt.tools.vcredist_msvc2015_x64");
- gui.clickButton(buttons.NextButton);
-}
-
-Controller.prototype.LicenseAgreementPageCallback = function() {
- gui.currentPageWidget().AcceptLicenseRadioButton.setChecked(true);
- gui.clickButton(buttons.NextButton);
-}
-
-Controller.prototype.StartMenuDirectoryPageCallback = function() {
- gui.clickButton(buttons.NextButton);
-}
-
-Controller.prototype.ReadyForInstallationPageCallback = function() {
- gui.clickButton(buttons.NextButton);
-}
-
-Controller.prototype.FinishedPageCallback = function() {
- var checkBoxForm = gui.currentPageWidget().LaunchQtCreatorCheckBoxForm;
- if (checkBoxForm && checkBoxForm.launchQtCreatorCheckBox)
- checkBoxForm.launchQtCreatorCheckBox.checked = false;
- gui.clickButton(buttons.FinishButton);
-}
diff --git a/scripts/make-release-archives.bat b/scripts/make-release-archives.bat
index f4e85f63c..867fa773c 100644
--- a/scripts/make-release-archives.bat
+++ b/scripts/make-release-archives.bat
@@ -67,7 +67,7 @@ subst Q: "%CD%" && Q:
qbs build --settings-dir "%builddir%\.settings"^
-f qbs.qbs -d "%builddir%\build"^
- -p dist qbs.buildVariant:release "products.qbs archive.includeTopLevelDir:true"^
+ -p dist qbs.buildVariant:release project.withDocumentation:false "products.qbs archive.includeTopLevelDir:true"^
config:release "qbs.installRoot:%builddir%\qbs-windows-x86-%version%" profile:qt^
config:release-64 "qbs.installRoot:%builddir%\qbs-windows-x86_64-%version%" profile:qt64 || exit /b