summaryrefslogtreecommitdiffstats
path: root/cmake
diff options
context:
space:
mode:
authorAlexandru Croitor <alexandru.croitor@qt.io>2020-07-14 11:25:47 +0200
committerAlexandru Croitor <alexandru.croitor@qt.io>2020-07-17 09:42:56 +0200
commitbc29555e6e2335e4079a9fd2f1a7e2991da87e46 (patch)
tree39e82fab5883e7ac20175551407385636f39aca4 /cmake
parent044ca0b8a8e638f8fa9e858f57b0d8a9040d4779 (diff)
CMake: Fix old style find_package(Qt6Foo) to work
Each module package needs to first find the Qt6 package to ensure that all the necessary info is setup for further depedencies to be found. Task-number: QTBUG-81672 Change-Id: I3ee608d24c1efbb63a063261fb36341bf52fb78d Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Diffstat (limited to 'cmake')
-rw-r--r--cmake/QtModuleDependencies.cmake.in9
-rw-r--r--cmake/QtPostProcess.cmake8
2 files changed, 16 insertions, 1 deletions
diff --git a/cmake/QtModuleDependencies.cmake.in b/cmake/QtModuleDependencies.cmake.in
index 5d94eb9a5d..4fdeb33c46 100644
--- a/cmake/QtModuleDependencies.cmake.in
+++ b/cmake/QtModuleDependencies.cmake.in
@@ -1,3 +1,12 @@
+# Make sure @INSTALL_CMAKE_NAMESPACE@ is found before anything else.
+find_dependency(@INSTALL_CMAKE_NAMESPACE@ @PROJECT_VERSION@
+ PATHS "${CMAKE_CURRENT_LIST_DIR}/.." ${QT_EXAMPLES_CMAKE_PREFIX_PATH} NO_DEFAULT_PATH
+)
+if (NOT @INSTALL_CMAKE_NAMESPACE@_FOUND)
+ set(@INSTALL_CMAKE_NAMESPACE@@target@_FOUND FALSE)
+ return()
+endif()
+
# note: _third_party_deps example: "ICU\\;1.0\\;i18n uc data;ZLIB\\;\\;"
set(_third_party_deps "@third_party_deps@")
diff --git a/cmake/QtPostProcess.cmake b/cmake/QtPostProcess.cmake
index b6cbe57d41..49bb5c268d 100644
--- a/cmake/QtPostProcess.cmake
+++ b/cmake/QtPostProcess.cmake
@@ -145,7 +145,7 @@ function(qt_internal_create_module_depends_file target)
"${INSTALL_CMAKE_NAMESPACE}${target}Tools\;${PROJECT_VERSION}")
endif()
- # Dirty hack because https://gitlab.kitware.com/cmake/cmake/issues/19200
+ # Dirty deduplication hack because of https://gitlab.kitware.com/cmake/cmake/issues/19200
foreach(dep ${target_deps})
if(dep)
list(FIND target_deps_seen "${dep}" dep_seen)
@@ -157,6 +157,12 @@ function(qt_internal_create_module_depends_file target)
list(GET dep 0 dep_name)
list(GET dep 1 dep_ver)
+ # Skip over Qt6 dependency, because we will manually handle it in the Dependencies
+ # file before everything else, to ensure that find_package(Qt6Core)-style works.
+ if(dep_name STREQUAL INSTALL_CMAKE_NAMESPACE)
+ continue()
+ endif()
+
list(APPEND target_deps_seen "${dep_name}\;${dep_ver}")
endif()
endif()