Skip to content

Commit

Permalink
[Qt6] update to 6.3.0 (#23015)
Browse files Browse the repository at this point in the history
* [Qt6] Latest feature to 6.3.0

* move failing patch to !latest

* remove debug/include

* more fixes

* more fixes

* more fixes

* give me the binary names making it fail.

* add new binary

* fix qtimageformats

* fix regressions?

* retry qtopcua

* fix regressions

* correctly guard python

* more fixes

* add vcpkg-get-python-packages

* hack webengine build to see if it will work.

* move hack to a different position

* noramlize path

* update refs to 6.3 release

* fix details

* qtwebengine back to fail on baseline

* comment long path stuff out since qtwebengine cannot be build with VS 2022 any way

* update version to 6.3.0 in manifest files

* version stuff

Co-authored-by: Alexander Neumann <you@example.com>
  • Loading branch information
Neumann-A and Alexander Neumann committed Apr 21, 2022
1 parent ad58083 commit 9db088e
Show file tree
Hide file tree
Showing 86 changed files with 416 additions and 130 deletions.
2 changes: 1 addition & 1 deletion ports/qt/vcpkg.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "qt",
"version": "6.2.4",
"version": "6.3.0",
"description": "Qt",
"homepage": "https://www.qt.io/",
"license": null,
Expand Down
2 changes: 1 addition & 1 deletion ports/qt5compat/vcpkg.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "qt5compat",
"version": "6.2.4",
"version": "6.3.0",
"description": "The module contains unsupported Qt 5 APIs",
"homepage": "https://www.qt.io/",
"license": null,
Expand Down
2 changes: 1 addition & 1 deletion ports/qtactiveqt/vcpkg.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "qtactiveqt",
"version": "6.2.4",
"version": "6.3.0",
"description": "ActiveQt",
"homepage": "https://www.qt.io/",
"license": null,
Expand Down
2 changes: 1 addition & 1 deletion ports/qtapplicationmanager/vcpkg.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "qtapplicationmanager",
"version": "6.2.4",
"version": "6.3.0",
"description": "Qt component for application lifecycle management",
"homepage": "https://www.qt.io/",
"license": null,
Expand Down
17 changes: 14 additions & 3 deletions ports/qtbase/cmake/qt_install_submodule.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ function(qt_cmake_configure)
vcpkg_find_acquire_program(PERL) # Perl is probably required by all qt ports for syncqt
get_filename_component(PERL_PATH ${PERL} DIRECTORY)
vcpkg_add_to_path(${PERL_PATH})
if(NOT PORT STREQUAL "qtwebengine") # qtwebengine requires python2
if(NOT PORT STREQUAL "qtwebengine" OR QT_IS_LATEST) # qtwebengine requires python2; since 6.3 python3
vcpkg_find_acquire_program(PYTHON3) # Python is required by some qt ports
get_filename_component(PYTHON3_PATH ${PYTHON3} DIRECTORY)
vcpkg_add_to_path(${PYTHON3_PATH})
Expand Down Expand Up @@ -99,6 +99,14 @@ function(qt_cmake_configure)
list(TRANSFORM disabled_features REPLACE "(:BOOL)?=OFF" "")
list(APPEND _qarg_OPTIONS_MAYBE_UNUSED ${disabled_features})

if(QT_IS_LATEST)
list(APPEND _qarg_OPTIONS "-DQT_NO_FORCE_SET_CMAKE_BUILD_TYPE:BOOL=ON")
endif()

if(NOT PORT MATCHES "qtbase")
list(APPEND _qarg_OPTIONS "-DQT_MKSPECS_DIR:PATH=${CURRENT_HOST_INSTALLED_DIR}/share/Qt6/mkspecs")
endif()

vcpkg_cmake_configure(
SOURCE_PATH "${SOURCE_PATH}"
${ninja_option}
Expand Down Expand Up @@ -144,6 +152,7 @@ function(qt_cmake_configure)
INSTALL_INCLUDEDIR
HOST_PERL
QT_SYNCQT
QT_NO_FORCE_SET_CMAKE_BUILD_TYPE
${_qarg_OPTIONS_MAYBE_UNUSED}
)
set(Z_VCPKG_CMAKE_GENERATOR "${Z_VCPKG_CMAKE_GENERATOR}" PARENT_SCOPE)
Expand Down Expand Up @@ -256,12 +265,14 @@ function(qt_fixup_and_cleanup)
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/cmake/"
"${CURRENT_PACKAGES_DIR}/debug/share"
"${CURRENT_PACKAGES_DIR}/lib/cmake/"
"${CURRENT_PACKAGES_DIR}/debug/include"
)

if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
file(GLOB_RECURSE _bin_files "${CURRENT_PACKAGES_DIR}/bin/*")
debug_message("Files in bin: '${_bin_files}'")
if(NOT _bin_files) # Only clean if empty otherwise let vcpkg throw and error.
if(NOT _bin_files STREQUAL "")
message(STATUS "Remaining files in bin: '${_bin_files}'")
else() # Only clean if empty otherwise let vcpkg throw and error.
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin/" "${CURRENT_PACKAGES_DIR}/debug/bin/")
endif()
endif()
Expand Down
102 changes: 63 additions & 39 deletions ports/qtbase/cmake/qt_port_details-latest.cmake
Original file line number Diff line number Diff line change
@@ -1,18 +1,29 @@
set(QT_VERSION 6.2.0)
set(QT_VERSION 6.3.0)

if(PORT MATCHES "qtquickcontrols2")
set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
message(STATUS "qtquickcontrols2 is integrated in qtdeclarative since Qt 6.2. Please remove your dependency on it!")
return()
endif()
set(QT_GIT_TAG v${QT_VERSION})

### Setting up the git tag.
set(QT_FETCH_REF "")
set(QT_GIT_TAG "v${QT_VERSION}")
if(PORT MATCHES "qtdeviceutilities")
set(QT_FETCH_REF FETCH_REF "6.3.0")
set(QT_GIT_TAG "6.3.0")
endif()
if(PORT MATCHES "qtlocation")
set(QT_FETCH_REF FETCH_REF "${QT_VERSION}")
set(QT_GIT_TAG "${QT_VERSION}")
endif()

set(QT_IS_LATEST TRUE)
#set(QT_UPDATE_VERSION TRUE)
if(QT_UPDATE_VERSION)
function(vcpkg_extract_source_archive)
endfunction()
endif()
set(QT_IS_LATEST 1)

set(QT_PORTS qt
qtbase
Expand All @@ -35,13 +46,14 @@ set(QT_PORTS qt
## New in 6.1
qtactiveqt
qtdatavis3d
#qtdeviceutils
qtdeviceutilities
qtlottie
qtscxml
qtvirtualkeyboard
qtcharts
## New in 6.2
qtconnectivity
qtpositioning
qtlocation
qtmultimedia
qtremoteobjects
Expand All @@ -52,48 +64,60 @@ set(QT_PORTS qt
qtwebengine
qtwebsockets
qtwebview
## New in 6.2.2
qtinterfaceframework
qtapplicationmanager
)

foreach(_port IN LISTS QT_PORTS)
set(${_port}_TAG ${QT_GIT_TAG})
endforeach()
set(qtbase_REF 0c2d00de3488116db9f9d657fe18bcb972a83792)
set(qtshadertools_REF 119cd6e9c9e89f93b74db28f261382a2fcfe504e)
set(qtdeclarative_REF 37da36c97d9d557945abca3cea5c68d9985a06e3)
set(qt5compat_REF 291993c7813ec706e54069c7de339edfdd385c0d)
set(qttools_REF 00efbf90f978afefdcece314d19b79459eee2211) # Additional refs in portfile due to submodule
set(qtcoap_REF be7822dc920a3e3eb252d5693a7153aa606d3dc1)
set(qtdoc_REF 48a1fbab30a9f57f011fdea8ec2b47048dce4069)
set(qtimageformats_REF 7bb9dc839c0dd0806445fd475b027a82c961f686)
set(qtmqtt_REF 4fd647e23d95c522c45d86be584d18578f894823)
set(qtnetworkauth_REF aa23db40ca552d60383dea17d703b1cc0cbeace4)
set(qtopcua_REF cfb3767b2a6785e0437b99c015cb6aef7f40189c)
set(qtquicktimeline_REF e9578a6949f6192440df1cb261ed9de98a9de7d7)
set(qtquick3d_REF eaf9c60073b95b03c006279f08d4947699c32a4b)
set(qtsvg_REF cceecea040ca1247db0212217d07ec2c331004ba)
set(qttranslations_REF 03a146236e69ee41c0405a8b5707104b4ac0c6e8)
set(qtwayland_REF 8c4900dda393752faab14e39e60aec6b545c8a0f)
# set(qtquickcontrols2_REF 0) # Moved into qtdeclarative since Qt 6.2
set(qtbase_REF 0668a36d2804b300010d874f5ff4073c25c2784c)
set(qtshadertools_REF e526e8ca88197d82996818db1f00e8a3e07bf584)
set(qtdeclarative_REF cbe89ee41aa219ce7e90143e3cf54283e580f7c1)
set(qt5compat_REF 32db676ab6854633512181b2c40950c98525c5ba)
set(qttools_REF a0a9cf1d1338b3e7f868bc0840e1e9a096c86dfa) # Additional refs below
set(qtcoap_REF 4453575b94836cf1cd52642eceb1d6f5d16b26a9)
set(qtdoc_REF d0da4d47f152dc50fb672bc5011b61a5bbb36f43)
set(qtimageformats_REF 45cfb044698df541ced53e3523799232599712a6)
set(qtmqtt_REF 3174dc30d2b37c74ea685d27ab0030c7392032c0)
set(qtnetworkauth_REF 507214965cbcebbbd563904d615cf7ebc464cc48)
set(qtopcua_REF 2c7051d85f640e9afe6c3f8f718bb2152305467c)
set(qtquicktimeline_REF 16bc2eb9f5e84923dc04c3941f5347cbc1b0e5b0)
set(qtquick3d_REF bf912a678898dcde61f139f63b49e1e42717fa8d)
set(qtsvg_REF cf900932886ebdd3de6c3a4a7e63cf363663eb87)
set(qttranslations_REF 19701f38b9dc10d925c6974833d693b5038e1589)
set(qtwayland_REF 840673bf1849595869873bad15c52a312e849ffb)
### New in 6.1
set(qtactiveqt_REF 94c924a8501dba7487bf2648bdf06aefc33e726d)
set(qtcharts_REF d56b9f3de193cbf561f4b1ec332d8598dbdaaaca)
set(qtdatavis3d_REF 5c90e6642882b3b7440608f71b96ce28908f0ee8)
#set(qtdeviceutils_REF 0) #missing tag
set(qtlottie_REF 48df4f1067514a3ae8b895b5f78fca09029d9288)
set(qtscxml_REF 68ac6986b9a9b3acfcab1e445edc7c198bbf7344)
set(qtvirtualkeyboard_REF 0e49e057777cd6c3f93d123e59a9399a2cf0040f)
set(qtactiveqt_REF 747fdd27c413ea42fb730230331984f388d3826b)
set(qtcharts_REF 03929b43d8e2a5c9b1487fdc6b8a2b067ada16f8)
set(qtdatavis3d_REF 137ebda0932e6faf0fbd61b0beb3cfb4dac8efbd)
set(qtdeviceutilities_REF 0520d7fd121f7773d04a7d3318553ff7fed1b3a9) #
set(qtlottie_REF e68bf89fefd941a930c83e2c29b629fcfea03eb3)
set(qtscxml_REF 4f52a1b6e4f25f3473f42ce249c4c183c5910183)
set(qtvirtualkeyboard_REF 92aee38dab196e8b5ca436f9f20c0fc66d8155d5)
### New in 6.2
set(qtconnectivity_REF 78e7ffbe16469a19fa34cad711e0898d91bd2f30)
set(qtlocation_REF 47a945b0d054539eab3ba1cf3a1d7bf5977051d6)
set(qtmultimedia_REF d7d0e676abd4b280feb0d5105846378b64782487)
set(qtremoteobjects_REF 58932ba10420faa1cc989ed5bf101ff06475a4fc)
set(qtsensors_REF 192ca0fd252066101eb0456b957fdb51618fa7db)
set(qtserialbus_REF ce089bef29ca55d7fe46508d92d3e498eb5bb847)
set(qtserialport_REF 14dc155f3640af94c6ecff2de1489e14cd5b0047)
set(qtwebchannel_REF 09315a8d626e106953723ce68e68d6b4b97c2c52)
set(qtwebengine_REF 261d72c8afc72faf23d169a64749db216db68859) # Additional refs in portfile due to submodule
set(qtwebsockets_REF a01c2d6638fad700db23863258b7fc4a1ecdd542)
set(qtwebview_REF ca0053b6a5320046508e9ba205df775a62c1a211)
set(qtconnectivity_REF f62954bad729f7853c9fbe2ea0b3235cfae2701a)
set(qtmultimedia_REF 3d2dafab1eb60c17a30cf03213cd2f6f71185137)
set(qtremoteobjects_REF 2c53bf0e9262a24f8fc8553e5004e7d00bc7e556)
set(qtserialport_REF 7e44935b14b783add342a25f426fcdf299279024)
set(qtsensors_REF 3222894c246076c6e7bd151e638ce3eb4ce5c16b)
set(qtserialbus_REF 3ee1694d2a8fb0b755adce4b59001b784e9c301e)
set(qtlocation_REF 0) # Currently empty port
set(qtwebchannel_REF a85e05069a2b17ceb5b6332671a2eef261ec783f)
set(qtwebengine_REF 9158e7652f24800b2b7dbe59b7834687bc1baf13) # Additional refs below
set(qtwebsockets_REF 487116c9a85d8f5a920f47045dfce0b0defd5139)
set(qtwebview_REF d7498a108c67b21c39d8ba775330cc122ce21c1a)
set(qtpositioning_REF f61d2f336892b85cdcd5d508bb4a0db7f768d439)
### New in Qt 6.2.2
set(qtapplicationmanager_REF 68464eb2b3fa89c69cfc5fc4f19450af61116dd2) #
set(qtinterfaceframework_REF 7ddeb99d6215a4b63102d6a5bc73e50d77ddb3d7) #

#Submodule stuff:
set(qttools_qlitehtml_REF 4931b7aa30f256c20573d283561aa432fecf8f38)
set(qttools_litehtml_REF 6236113734bb0a28467e5999e86fdd2834be8e01)
set(qttools_litehtml_HASH 38effe92aaebd7113ad3bf3b70c1b3564d6226a766aa968c80ab35fa90ae78d601486226f97d16fa5bd3abf314db19f9f0c90e31de91e87bda82cde27f0a57dc)
set(qtwebengine_chromium_REF 2c9916de251f15369fa0f0c6bd3f45f5cf1a6f06)

if(QT_UPDATE_VERSION)
message(STATUS "Running Qt in automatic version port update mode!")
Expand Down
13 changes: 13 additions & 0 deletions ports/qtbase/dont_force_cmakecache_latest.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
diff --git a/cmake/QtPostProcessHelpers.cmake b/cmake/QtPostProcessHelpers.cmake
index 4f8106dfa..bec5c402e 100644
--- a/cmake/QtPostProcessHelpers.cmake
+++ b/cmake/QtPostProcessHelpers.cmake
@@ -414,7 +414,7 @@ function(qt_generate_install_prefixes out_var)

foreach(var ${vars})
get_property(docstring CACHE "${var}" PROPERTY HELPSTRING)
- string(APPEND content "set(${var} \"${${var}}\" CACHE STRING \"${docstring}\" FORCE)\n")
+ string(APPEND content "set(${var} \"${${var}}\" CACHE STRING \"${docstring}\")\n")
endforeach()

set(${out_var} "${content}" PARENT_SCOPE)
16 changes: 12 additions & 4 deletions ports/qtbase/portfile.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,10 @@
# Always check the toplevel CMakeLists.txt for the find_package call and search for linkage against the Qt:: targets
# Often enough certain (bigger) dependencies are only used to build examples and/or tests.
# As such getting the correct dependency information relevant for vcpkg requires a manual search/check

#set(QT_IS_LATEST ON)
set(QT_IS_LATEST ON)
if("latest" IN_LIST FEATURES)
set(QT_IS_LATEST ON)
endif()

## All above goes into the qt_port_hashes in the future
include("${CMAKE_CURRENT_LIST_DIR}/cmake/qt_install_submodule.cmake")
Expand All @@ -13,7 +15,6 @@ set(${PORT}_PATCHES
allow_outside_prefix.patch
clang-cl_source_location.patch
config_install.patch
dont_force_cmakecache.patch
fix_cmake_build.patch
harfbuzz.patch
fix_egl.patch
Expand All @@ -24,7 +25,12 @@ if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW)
endif()

if(NOT VCPKG_USE_HEAD_VERSION AND NOT QT_IS_LATEST)
list(APPEND ${PORT}_PATCHES
list(APPEND ${PORT}_PATCHES
dont_force_cmakecache.patch
)
else()
list(APPEND ${PORT}_PATCHES
dont_force_cmakecache_latest.patch
)
endif()

Expand Down Expand Up @@ -246,6 +252,8 @@ set(TOOL_NAMES
uic
qtpaths
qtpaths6
windeployqt
macdeployqt
)

qt_install_submodule(PATCHES ${${PORT}_PATCHES}
Expand Down
2 changes: 1 addition & 1 deletion ports/qtbase/vcpkg.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "qtbase",
"version": "6.2.4",
"version": "6.3.0",
"description": "Qt Application Framework Base Module. Includes Core, GUI, Widgets, Networking, SQL, Concurrent and other essential qt components.",
"homepage": "https://www.qt.io/",
"license": null,
Expand Down
2 changes: 1 addition & 1 deletion ports/qtcharts/vcpkg.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "qtcharts",
"version": "6.2.4",
"version": "6.3.0",
"description": "QtCharts module",
"homepage": "https://www.qt.io/",
"license": null,
Expand Down
2 changes: 1 addition & 1 deletion ports/qtcoap/vcpkg.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "qtcoap",
"version": "6.2.4",
"version": "6.3.0",
"description": "Qt CoAP client module",
"homepage": "https://www.qt.io/",
"license": null,
Expand Down
2 changes: 1 addition & 1 deletion ports/qtconnectivity/vcpkg.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "qtconnectivity",
"version": "6.2.4",
"version": "6.3.0",
"description": "Qt Connectivity",
"homepage": "https://www.qt.io/",
"license": null,
Expand Down
2 changes: 1 addition & 1 deletion ports/qtdatavis3d/vcpkg.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "qtdatavis3d",
"version": "6.2.4",
"version": "6.3.0",
"description": "Qt 3D data visualization framework",
"homepage": "https://www.qt.io/",
"license": null,
Expand Down
1 change: 1 addition & 0 deletions ports/qtdeclarative/portfile.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ include("${SCRIPT_PATH}/qt_install_submodule.cmake")
qmltime
qmltyperegistrar
qmldom
qmltc
)

qt_install_submodule(PATCHES ${${PORT}_PATCHES}
Expand Down
2 changes: 1 addition & 1 deletion ports/qtdeclarative/vcpkg.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "qtdeclarative",
"version": "6.2.4",
"version": "6.3.0",
"description": "Qt Declarative (Quick 2)",
"homepage": "https://www.qt.io/",
"license": null,
Expand Down
2 changes: 1 addition & 1 deletion ports/qtdeviceutilities/vcpkg.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "qtdeviceutilities",
"version": "6.2.4",
"version": "6.3.0",
"description": "Utils for Boot2Qt",
"homepage": "https://www.qt.io/",
"license": null,
Expand Down
2 changes: 1 addition & 1 deletion ports/qtdoc/vcpkg.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "qtdoc",
"version": "6.2.4",
"version": "6.3.0",
"description": "Qt Documentation",
"homepage": "https://www.qt.io/",
"license": null,
Expand Down
21 changes: 21 additions & 0 deletions ports/qtimageformats/no_target_promotion_latest.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7fdd7ddbd..f189c472c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -9,6 +9,15 @@ project(QtImageFormats # special case
HOMEPAGE_URL "https://qt.io/"
LANGUAGES CXX C
)
-
+find_package(Threads)
+set_property(TARGET Threads::Threads PROPERTY _qt_no_promote_global TRUE)
+find_package(ZLIB)
+if(TARGET ZLIB::ZLIB)
+ set_property(TARGET ZLIB::ZLIB PROPERTY _qt_no_promote_global TRUE)
+endif()
+find_package(JPEG)
+if(TARGET JPEG::JPEG)
+ set_property(TARGET JPEG::JPEG PROPERTY _qt_no_promote_global TRUE)
+endif()
find_package(Qt6 ${PROJECT_VERSION} CONFIG REQUIRED COMPONENTS BuildInternals Core) # special case
find_package(Qt6 ${PROJECT_VERSION} QUIET CONFIG OPTIONAL_COMPONENTS Gui) # special case
6 changes: 5 additions & 1 deletion ports/qtimageformats/portfile.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,11 @@ set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) # Only plugins
set(SCRIPT_PATH "${CURRENT_INSTALLED_DIR}/share/qtbase")
include("${SCRIPT_PATH}/qt_install_submodule.cmake")

set(${PORT}_PATCHES no_target_promotion.patch)
if(NOT VCPKG_USE_HEAD_VERSION AND NOT QT_IS_LATEST)
set(${PORT}_PATCHES no_target_promotion.patch)
else()
set(${PORT}_PATCHES no_target_promotion_latest.patch)
endif()

vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
FEATURES
Expand Down
2 changes: 1 addition & 1 deletion ports/qtimageformats/vcpkg.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "qtimageformats",
"version": "6.2.4",
"version": "6.3.0",
"description": "Additional Image Format plugins for Qt",
"homepage": "https://www.qt.io/",
"license": null,
Expand Down
Loading

0 comments on commit 9db088e

Please sign in to comment.