summaryrefslogtreecommitdiffstats
path: root/cmake/QtModuleConfig.cmake.in
diff options
context:
space:
mode:
authorKevin Funk <kevin.funk@kdab.com>2019-02-11 11:34:35 +0100
committerKevin Funk <kevin.funk@kdab.com>2019-02-11 17:13:51 +0000
commitc5e2838b642d2a50d951efe7b582d9261d55dfb7 (patch)
tree013c0d0086a4c0b0dacea625babb3f847757b82e /cmake/QtModuleConfig.cmake.in
parentc5697c85971ed76f8f89c3214d0f9a874fdb7350 (diff)
cmake: Make find_package(Qt5 ...) work properly
Introduce a new cached variable INSTALL_CMAKE_NAMESPACE for defining the prefix used for CMake config files (c.f. "${PREFIX}Core/${PREFIX}CoreConfig.cmake") Also make sure to `find_dependency(...)` the required packages inside the individual CMake config files. I.e. in Qt5WidgetsConfig.cmake, search for Qt5Core, etc. pp.. Change-Id: Idc027925fe9d5323091c4853803ad5ce44b1afc6 Reviewed-by: Jean-Michaƫl Celerier <jean-michael.celerier@kdab.com> Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Diffstat (limited to 'cmake/QtModuleConfig.cmake.in')
-rw-r--r--cmake/QtModuleConfig.cmake.in33
1 files changed, 27 insertions, 6 deletions
diff --git a/cmake/QtModuleConfig.cmake.in b/cmake/QtModuleConfig.cmake.in
index e08c4ff87f..e6a2d33983 100644
--- a/cmake/QtModuleConfig.cmake.in
+++ b/cmake/QtModuleConfig.cmake.in
@@ -1,13 +1,34 @@
@PACKAGE_INIT@
-find_package(Qt@PROJECT_VERSION_MAJOR@ QUIET)
+include(CMakeFindDependencyMacro)
-include("${CMAKE_CURRENT_LIST_DIR}/@module_versioned@Targets.cmake")
+get_filename_component(_import_prefix "${CMAKE_CURRENT_LIST_FILE}" PATH)
+get_filename_component(_import_prefix "${_import_prefix}" REALPATH)
-if (EXISTS "${CMAKE_CURRENT_LIST_DIR}/@module_versioned@Macros.cmake")
- include("${CMAKE_CURRENT_LIST_DIR}/@module_versioned@Macros.cmake")
+# note: target_deps example: "Qt5Core\;5.12.0;Qt5Gui\;5.12.0"
+set(_target_deps "@target_deps@")
+foreach(_target_dep ${_target_deps})
+ list(GET _target_dep 0 pkg)
+ list(GET _target_dep 1 version)
+
+ if (NOT ${pkg}_FOUND)
+ find_dependency(${pkg} ${version}
+ PATHS "${CMAKE_CURRENT_LIST_DIR}/.." NO_DEFAULT_PATH
+ )
+ endif()
+
+ if (NOT ${pkg}_FOUND)
+ set(@target@_FOUND FALSE)
+ return()
+ endif()
+endforeach()
+
+include("${CMAKE_CURRENT_LIST_DIR}/@INSTALL_CMAKE_NAMESPACE@@target@Targets.cmake")
+
+if (EXISTS "${CMAKE_CURRENT_LIST_DIR}/@INSTALL_CMAKE_NAMESPACE@@target@Macros.cmake")
+ include("${CMAKE_CURRENT_LIST_DIR}/@INSTALL_CMAKE_NAMESPACE@@target@Macros.cmake")
endif()
-include QtFeature
+include(${_import_prefix}/../@INSTALL_CMAKE_NAMESPACE@/QtFeature.cmake)
-qt_make_features_available(Qt::@module@)
+qt_make_features_available(Qt::@target@)