diff options
author | Joerg Bornemann <joerg.bornemann@qt.io> | 2019-06-07 11:07:35 +0200 |
---|---|---|
committer | Joerg Bornemann <joerg.bornemann@qt.io> | 2019-10-11 11:10:08 +0000 |
commit | e36f73945c6f8e374b931cc33f2708e696797d1b (patch) | |
tree | fbce80be575383a8afb4f8a441d519afb322b716 | |
parent | 8a807533ae6b2cccb022ecc6cf436ac2f6a7339f (diff) | |
download | qbs-e36f73945c6f8e374b931cc33f2708e696797d1b.tar.gz |
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.qbs | 2 | ||||
-rw-r--r-- | docker/windowsservercore/Dockerfile | 54 | ||||
-rw-r--r-- | docker/windowsservercore/build-qt.bat | 23 | ||||
-rw-r--r-- | docker/windowsservercore/qtifwsilent.qs | 54 | ||||
-rw-r--r-- | scripts/make-release-archives.bat | 2 |
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 |