summaryrefslogtreecommitdiffstats
path: root/cmake
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@qt.io>2019-06-25 14:44:29 +0200
committerSimon Hausmann <simon.hausmann@qt.io>2019-06-25 13:38:33 +0000
commit6290efc4ebbdf547e16f5728b8393d1e75a4ed89 (patch)
treee03beddec3f4e0aaa91f40a4b55840d51f259b1c /cmake
parente25f9e20081e83a2c98d4be436d2a79a5fdbbc83 (diff)
Fix building against an installed static Qt
For ICU we have multiple components, and ICU becomes a public dependency to QtCore. When storing the INTERFACE_QT_PACKAGE_COMPONENTS property, make sure to store the entire list of components, not just the first component -- by turning the semi-colon separated list into a space separated list. When processing the components at find_dependency time, we need to reverse that and pass COMPONENTS directly to ensure a correct parameter expansion. Change-Id: I24a0708520e7d5fba039395a151034aee4d4c0e2 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'cmake')
-rw-r--r--cmake/QtBuild.cmake6
-rw-r--r--cmake/QtModuleDependencies.cmake.in7
-rw-r--r--cmake/QtPluginDependencies.cmake.in11
3 files changed, 13 insertions, 11 deletions
diff --git a/cmake/QtBuild.cmake b/cmake/QtBuild.cmake
index 2eb20660c2..62117ce3c3 100644
--- a/cmake/QtBuild.cmake
+++ b/cmake/QtBuild.cmake
@@ -2174,9 +2174,9 @@ macro(qt_find_package)
endif()
if(arg_COMPONENTS)
- set_target_properties(${qt_find_package_target_name}
- PROPERTIES
- INTERFACE_QT_PACKAGE_COMPONENTS ${arg_COMPONENTS})
+ string(REPLACE ";" " " components_as_string "${arg_COMPONENTS}")
+ set_property(TARGET ${qt_find_package_target_name}
+ PROPERTY INTERFACE_QT_PACKAGE_COMPONENTS ${components_as_string})
endif()
get_property(is_global TARGET ${qt_find_package_target_name} PROPERTY
diff --git a/cmake/QtModuleDependencies.cmake.in b/cmake/QtModuleDependencies.cmake.in
index b4f27ba85c..81d6431c67 100644
--- a/cmake/QtModuleDependencies.cmake.in
+++ b/cmake/QtModuleDependencies.cmake.in
@@ -18,11 +18,12 @@ foreach(_target_dep ${_third_party_deps})
endif()
if(components)
- list(APPEND find_package_args "COMPONENTS" ${components})
+ string(REPLACE " " ";" components "${components}")
+ find_dependency(${find_package_args} COMPONENTS ${components})
+ else()
+ find_dependency(${find_package_args})
endif()
- find_dependency(${find_package_args})
-
if (NOT ${pkg}_FOUND)
set(@INSTALL_CMAKE_NAMESPACE@@target@_FOUND FALSE)
return()
diff --git a/cmake/QtPluginDependencies.cmake.in b/cmake/QtPluginDependencies.cmake.in
index b456db58c1..6ca392ec64 100644
--- a/cmake/QtPluginDependencies.cmake.in
+++ b/cmake/QtPluginDependencies.cmake.in
@@ -17,12 +17,13 @@ foreach(_target_dep ${_third_party_deps})
list(APPEND find_package_args "${version}")
endif()
- if(components)
- list(APPEND find_package_args "COMPONENTS" ${components})
- endif()
-
if (NOT ${pkg}_FOUND)
- find_dependency(${find_package_args})
+ if(components)
+ string(REPLACE " " ";" components "${components}")
+ find_dependency(${find_package_args} COMPONENTS ${components})
+ else()
+ find_dependency(${find_package_args})
+ endif()
endif()
if (NOT ${pkg}_FOUND)