Răsfoiți Sursa

Utilities/Release: Update to Qt 6.10.1 on Windows builds

Now that we require Windows 10 for our official binaries,
we can use a more recent version of Qt.
Brad King 2 luni în urmă
părinte
comite
1fef953655

+ 3 - 1
.gitlab/ci/configure_windows_i386_package.cmake

@@ -9,5 +9,7 @@ set(CMAKE_C_FLAGS "-D_WIN32_WINNT=0x0A00 -DNTDDI_VERSION=0x0A000000" CACHE STRIN
 set(CMAKE_CXX_FLAGS "-GR -EHsc -D_WIN32_WINNT=0x0A00 -DNTDDI_VERSION=0x0A000000" CACHE STRING "")
 set(CMAKE_EXE_LINKER_FLAGS "-machine:x86 -subsystem:console,6.02" CACHE STRING "")
 
-include("${CMAKE_CURRENT_LIST_DIR}/configure_windows_package_common_x86.cmake")
+set(qt "$ENV{CI_PROJECT_DIR}/.gitlab/qt")
+set(CMAKE_PREFIX_PATH "${qt}" CACHE STRING "")
+
 include("${CMAKE_CURRENT_LIST_DIR}/configure_windows_package_common.cmake")

+ 0 - 13
.gitlab/ci/configure_windows_package_common_x86.cmake

@@ -1,13 +0,0 @@
-set(qt "$ENV{CI_PROJECT_DIR}/.gitlab/qt")
-set(CMake_QT_STATIC_QWindowsIntegrationPlugin_LIBRARIES
-  ${qt}/plugins/platforms/qwindows.lib
-  ${qt}/plugins/styles/qwindowsvistastyle.lib
-  ${qt}/lib/Qt5EventDispatcherSupport.lib
-  ${qt}/lib/Qt5FontDatabaseSupport.lib
-  ${qt}/lib/Qt5ThemeSupport.lib
-  ${qt}/lib/qtfreetype.lib
-  ${qt}/lib/qtlibpng.lib
-  imm32.lib
-  wtsapi32.lib
-  CACHE STRING "")
-set(CMAKE_PREFIX_PATH "${qt}" CACHE STRING "")

+ 3 - 1
.gitlab/ci/configure_windows_x86_64_package.cmake

@@ -9,5 +9,7 @@ set(CMAKE_C_FLAGS "-D_WIN32_WINNT=0x0A00 -DNTDDI_VERSION=0x0A000000" CACHE STRIN
 set(CMAKE_CXX_FLAGS "-GR -EHsc -D_WIN32_WINNT=0x0A00 -DNTDDI_VERSION=0x0A000000" CACHE STRING "")
 set(CMAKE_EXE_LINKER_FLAGS "-machine:x64 -subsystem:console,6.02" CACHE STRING "")
 
-include("${CMAKE_CURRENT_LIST_DIR}/configure_windows_package_common_x86.cmake")
+set(qt "$ENV{CI_PROJECT_DIR}/.gitlab/qt")
+set(CMAKE_PREFIX_PATH "${qt}" CACHE STRING "")
+
 include("${CMAKE_CURRENT_LIST_DIR}/configure_windows_package_common.cmake")

+ 8 - 8
.gitlab/ci/download_qt.cmake

@@ -17,16 +17,16 @@ if ("$ENV{CMAKE_CONFIGURATION}" MATCHES "windows.*package")
   set(qt_url_root "https://cmake.org/files/dependencies/qt")
   set(qt_url_path "")
   if ("$ENV{CMAKE_CONFIGURATION}" MATCHES "windows_x86_64_package")
-    list(APPEND qt_files "qt-5.15.10-win-x86_64-msvc_v142-1.zip")
-    set(qt_subdir "qt-5.15.10-win-x86_64-msvc_v142-1")
+    list(APPEND qt_files "qt-6.10.1-win-x86_64-msvc_v145-1.zip")
+    set(qt_subdir "qt-6.10.1-win-x86_64-msvc_v145-1")
   elseif ("$ENV{CMAKE_CONFIGURATION}" MATCHES "windows_i386_package")
-    list(APPEND qt_files "qt-5.15.10-win-i386-msvc_v142-1.zip")
-    set(qt_subdir "qt-5.15.10-win-i386-msvc_v142-1")
+    list(APPEND qt_files "qt-6.10.1-win-i386-msvc_v145-1.zip")
+    set(qt_subdir "qt-6.10.1-win-i386-msvc_v145-1")
   elseif ("$ENV{CMAKE_CONFIGURATION}" MATCHES "windows_arm64_package")
-    list(APPEND qt_files "qt-6.3.0-win-arm64-msvc_v143-1.zip")
-    set(qt_subdir "qt-6.3.0-win-arm64-msvc_v143-1")
-    list(APPEND qt_files "qt-6.3.0-win-x86_64-msvc_v143-1.zip")
-    set(qt_host_subdir "qt-6.3.0-win-x86_64-msvc_v143-1")
+    list(APPEND qt_files "qt-6.10.1-win-arm64-msvc_v145-1.zip")
+    set(qt_subdir "qt-6.10.1-win-arm64-msvc_v145-1")
+    list(APPEND qt_files "qt-6.10.1-win-x86_64-msvc_v145-1.zip")
+    set(qt_host_subdir "qt-6.10.1-win-x86_64-msvc_v145-1")
   else ()
     message(FATAL_ERROR "Unknown arch to use for Qt")
   endif()

+ 3 - 6
.gitlab/ci/download_qt_hashes.cmake

@@ -13,9 +13,6 @@ set("5.15.1-0-202009071110qtbase-MacOS-MacOS_10_13-Clang-MacOS-MacOS_10_13-X86_6
 set("qt-5.9.9-macosx10.10-x86_64-arm64.tar.xz_hash" d4449771afa0bc6a809c14f1e6d939e7732494cf059503ae451e2bfe8fc60cc1)
 set("6.9.3-0-202509261207qtbase-MacOS-MacOS_15-Clang-MacOS-MacOS_15-X86_64-ARM64.7z_hash" 805144e619b7c7b0e9c985d929e1f290241d88b884218db3ad7d56bd579d6b4a)
 
-set("qt-5.15.10-win-i386-msvc_v142-1.zip_hash" c158cebc054d3f4f09733772a8a04789e2884912d45782e8c0c5e6a0b2773e92)
-set("qt-5.15.10-win-x86_64-msvc_v142-1.zip_hash" d55c017aef359f6aa8c592b18ba13cc120c749417b55671548970690126cd139)
-
-set("qt-6.3.0-win-arm64-msvc_v143-1.zip_hash" f794c035fd4ff9f04468e1787a60d93d7496119c0060c3173a76d24a6b551b14)
-set("qt-6.3.0-win-i386-msvc_v143-1.zip_hash" 972bc707f78d11b44f360643ca4d0c898e761f7add43b96117d958c70d84a443)
-set("qt-6.3.0-win-x86_64-msvc_v143-1.zip_hash" 4fb0aaebe184f40392f1bb246469dca591bfdfb8f915e19f921476222473ac90)
+set("qt-6.10.1-win-arm64-msvc_v145-1.zip_hash" 59e150883f31c0e31a2890f06b6e434ad44505dba876fda4a7c0994c9b0bdfe1)
+set("qt-6.10.1-win-i386-msvc_v145-1.zip_hash" 09100628aecb7cdde07040d7437c09830ed8c17720960b10339b114cb4bbf18b)
+set("qt-6.10.1-win-x86_64-msvc_v145-1.zip_hash" 931f2354c715b30bc0ac35028f9d778aa552aa8a66580fc73c6a32384c5fa042)

+ 0 - 26
Utilities/Release/win/qt-5.15.10-win-x86-msvc-install.patch

@@ -1,26 +0,0 @@
-diff --git a/lib/cmake/Qt5Core/Qt5CoreConfig.cmake b/lib/cmake/Qt5Core/Qt5CoreConfig.cmake
-index 5bad1af..25bf3e3 100644
---- a/lib/cmake/Qt5Core/Qt5CoreConfig.cmake
-+++ b/lib/cmake/Qt5Core/Qt5CoreConfig.cmake
-@@ -264,7 +264,7 @@ if (NOT TARGET Qt5::Core)
-         return()
-     endif()
- 
--    set(_Qt5Core_LIB_DEPENDENCIES "")
-+    set(_Qt5Core_LIB_DEPENDENCIES "${_qt5Core_install_prefix}/lib/qtpcre2.lib;netapi32.lib;version.lib")
- 
- 
-     if(NOT Qt5_EXCLUDE_STATIC_DEPENDENCIES)
-diff --git a/lib/cmake/Qt5Widgets/Qt5WidgetsConfig.cmake b/lib/cmake/Qt5Widgets/Qt5WidgetsConfig.cmake
-index d9966ad..308e4cb 100644
---- a/lib/cmake/Qt5Widgets/Qt5WidgetsConfig.cmake
-+++ b/lib/cmake/Qt5Widgets/Qt5WidgetsConfig.cmake
-@@ -264,7 +264,7 @@ if (NOT TARGET Qt5::Widgets)
-         return()
-     endif()
- 
--    set(_Qt5Widgets_LIB_DEPENDENCIES "Qt5::Gui;Qt5::Core")
-+    set(_Qt5Widgets_LIB_DEPENDENCIES "Qt5::Gui;Qt5::Core;dwmapi.lib;uxtheme.lib")
- 
- 
-     if(NOT Qt5_EXCLUDE_STATIC_DEPENDENCIES)

+ 0 - 121
Utilities/Release/win/qt-5.15.10-win-x86-msvc.ps1

@@ -1,121 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
-# file LICENSE.rst or https://cmake.org/licensing for details.
-
-# Run this script on a Windows host to generate Qt binaries.
-# Set the PATH environment variable to contain the locations of cmake and git.
-
-param (
-  [string]$cmake = 'cmake',
-  [string]$git = 'git',
-  [switch]$trace
-)
-
-if ($trace -eq $true) {
-  Set-PSDebug -Trace 1
-}
-
-$ErrorActionPreference = 'Stop'
-$ProgressPreference = 'SilentlyContinue'
-
-if ($env:VSCMD_ARG_TGT_ARCH -eq "x64") {
-  $arch = "x86_64";
-} elseif ($env:VSCMD_ARG_TGT_ARCH -eq "x86") {
-  $arch = "i386";
-} else {
-  Write-Host "VSCMD_ARG_TGT_ARCH env var not recognized.  Run this from a Visual Studio Command Prompt."
-  exit 1
-}
-
-if ($env:VCToolsVersion -match '^(?<version>[0-9][0-9]\.[0-9])') {
-  $toolset = "msvc_v" + $Matches.version -replace '\.', ''
-} else {
-  Write-Host "VCToolsVersion env var not set.  Run this from a Visual Studio Command Prompt."
-}
-
-$srcname = "qt-everywhere-src-5.15.10"
-$pkgname = "qt-5.15.10-win-$arch-$toolset-1"
-$topdir = $pwd.Path
-$srcdir = Join-Path $topdir $srcname
-$blddir = Join-Path $topdir "$pkgname-build"
-$prefix = Join-Path $topdir $pkgname
-
-# JOM
-if ( -not (Test-Path -Path "jom")) {
-  Invoke-WebRequest -Uri "http://download.qt-project.org/official_releases/jom/jom_1_1_4.zip" -OutFile jom.zip
-  if ($(Get-FileHash "jom.zip").Hash -ne 'd533c1ef49214229681e90196ed2094691e8c4a0a0bef0b2c901debcb562682b') {
-      Write-Host "jom hash does not match"
-      exit 1
-  }
-  Expand-Archive -Path jom.zip -DestinationPath jom
-  Remove-Item jom.zip
-}
-$jom = "$topdir\jom\jom.exe"
-
-# Qt Source
-if ( -not (Test-Path -Path $srcdir)) {
-  Invoke-WebRequest -Uri "https://download.qt.io/archive/qt/5.15/5.15.10/single/qt-everywhere-opensource-src-5.15.10.tar.xz" -OutFile qt.tar.xz
-  if ($(Get-FileHash "qt.tar.xz").Hash -ne 'b545cb83c60934adc9a6bbd27e2af79e5013de77d46f5b9f5bb2a3c762bf55ca') {
-      Write-Host "qt hash does not match"
-      exit 1
-  }
-  & $cmake -E tar xvf qt.tar.xz
-  Remove-Item qt.tar.xz
-}
-
-# Build Qt
-if ( -not (Test-Path -Path $blddir)) {
-  New-Item -ItemType Directory -Path $blddir
-  Set-Location -Path "$blddir"
-  & ..\$srcname\configure.bat `
-    -prefix $prefix `
-    -static `
-    -static-runtime `
-    -release `
-    -opensource -confirm-license `
-    -platform win32-msvc `
-    -mp `
-    -gui `
-    -widgets `
-    -qt-pcre `
-    -qt-zlib `
-    -qt-libpng `
-    -qt-libjpeg `
-    -no-gif `
-    -no-icu `
-    -no-pch `
-    -no-angle `
-    -no-opengl `
-    -no-dbus `
-    -no-harfbuzz `
-    -no-accessibility `
-    -skip declarative `
-    -skip multimedia `
-    -skip qtcanvas3d `
-    -skip qtconnectivity `
-    -skip qtdeclarative `
-    -skip qtlocation `
-    -skip qtmultimedia `
-    -skip qtsensors `
-    -skip qtserialbus `
-    -skip qtserialport `
-    -skip qtsvg `
-    -skip qtwayland `
-    -skip qtwebchannel `
-    -skip qtwebengine `
-    -skip qtwebsockets `
-    -skip qtxmlpatterns `
-    -nomake examples -nomake tests
-  & $jom -J $env:NUMBER_OF_PROCESSORS
-}
-
-# Install Qt
-if ( -not (Test-Path -Path $prefix)) {
-  & $jom install
-  # Patch the installation.
-  Set-Location -Path $prefix
-  & $git apply -v (Join-Path $PSScriptRoot qt-5.15.10-win-x86-msvc-install.patch)
-}
-
-# Package Qt
-Set-Location -Path $topdir
-& $cmake -E tar cf "$pkgname.zip" "--format=zip" "$pkgname"

+ 6 - 13
Utilities/Release/win/qtbase-6.3.0-win-msvc.cmake → Utilities/Release/win/qtbase-6.10.1-win-msvc.cmake

@@ -23,30 +23,23 @@ else()
   return()
 endif()
 
-set(srcname "qtbase-everywhere-src-6.3.0")
-set(pkgname "qt-6.3.0-win-${arch}-${toolset}-1")
-set(pkgname_host "qt-6.3.0-win-x86_64-${toolset}-1")
+set(srcname "qtbase-everywhere-src-6.10.1")
+set(pkgname "qt-6.10.1-win-${arch}-${toolset}-1")
+set(pkgname_host "qt-6.10.1-win-x86_64-${toolset}-1")
 set(topdir "${CMAKE_CURRENT_BINARY_DIR}")
 set(srcdir "${topdir}/${srcname}")
-set(blddir "${topdir}/${pkgname}-build")
+set(blddir "${topdir}/${pkgname}-b")
 set(prefix "${topdir}/${pkgname}")
 set(prefix_host "${topdir}/${pkgname_host}")
 
 # Qt Source
 if (NOT EXISTS "${srcdir}")
-  file(DOWNLOAD "https://download.qt.io/official_releases/qt/6.3/6.3.0/submodules/qtbase-everywhere-src-6.3.0.tar.xz" qt.tar.xz
-       EXPECTED_HASH SHA256=b865aae43357f792b3b0a162899d9bf6a1393a55c4e5e4ede5316b157b1a0f99)
+  file(DOWNLOAD "https://download.qt.io/official_releases/qt/6.10/6.10.1/submodules/qtbase-everywhere-src-6.10.1.tar.xz" qt.tar.xz
+       EXPECTED_HASH SHA256=5a6226f7e23db51fdc3223121eba53f3f5447cf0cc4d6cb82a3a2df7a65d265d)
   file(ARCHIVE_EXTRACT INPUT qt.tar.xz)
   file(REMOVE qt.tar.xz)
 endif()
 
-# Download and use LLVM's clang-cl to compiler for arm64
-if (arch STREQUAL "arm64" AND CMAKE_ARGV3 STREQUAL "clang-cl")
-  set(ENV{PATH} "c:/Program Files/LLVM/bin;$ENV{PATH}")
-  set(ENV{CC} "clang-cl --target=arm64-pc-windows-msvc")
-  set(ENV{CXX} "clang-cl --target=arm64-pc-windows-msvc")
-endif()
-
 # Build Qt
 if (NOT EXISTS "${blddir}")
   file(MAKE_DIRECTORY "${blddir}")