summaryrefslogtreecommitdiffstats
path: root/cmake/QtPostProcess.cmake
diff options
context:
space:
mode:
authorJean-Michaël Celerier <jeanmichael.celerier@gmail.com>2019-05-03 11:38:41 +0200
committerJean-Michaël Celerier <jean-michael.celerier@kdab.com>2019-05-03 12:42:43 +0000
commit753d35cd56184a699288578cd728d17f8798088d (patch)
tree934362716c9cd253223dd07ef6b5d14513277401 /cmake/QtPostProcess.cmake
parent914b367c7f6a117130b8a56338c46a8102a1f77f (diff)
cmake: move dependencies accumulation in QtPostProcess.cmake
This is needed because dependencies added after add_qt_module with extend_target are currently not taken into account. Task-number: QTBUG-75538 Change-Id: I2c72207fb88b2480e41a2c8550978fb194275617 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'cmake/QtPostProcess.cmake')
-rw-r--r--cmake/QtPostProcess.cmake24
1 files changed, 23 insertions, 1 deletions
diff --git a/cmake/QtPostProcess.cmake b/cmake/QtPostProcess.cmake
index 40ac08396d..57d194c037 100644
--- a/cmake/QtPostProcess.cmake
+++ b/cmake/QtPostProcess.cmake
@@ -17,11 +17,15 @@ function(qt_internal_create_depends_files)
foreach (target ${QT_KNOWN_MODULES})
get_target_property(depends "${target}" LINK_LIBRARIES)
get_target_property(public_depends "${target}" INTERFACE_LINK_LIBRARIES)
+ get_target_property(target_deps "${target}" _qt_target_deps)
+ set(target_deps_seen "")
+
set(qtdeps "")
set(third_party_deps "")
set(third_party_deps_seen "")
set(tool_deps "")
set(tool_deps_seen "")
+
foreach (dep ${depends})
# Normalize module by stripping leading "Qt::" and trailing "Private"
if (dep MATCHES "Qt::(.*)")
@@ -82,6 +86,24 @@ function(qt_internal_create_depends_files)
"${INSTALL_CMAKE_NAMESPACE}${target}Tools\;${PROJECT_VERSION}")
endif()
+ # Dirty hack because https://gitlab.kitware.com/cmake/cmake/issues/19200
+ foreach(dep ${target_deps})
+ if(dep)
+ list(FIND target_deps_seen "${dep}" dep_seen)
+ if(dep_seen EQUAL -1)
+ list(LENGTH dep len)
+ if(NOT (len EQUAL 2))
+ message(FATAL_ERROR "List '${dep}' should look like QtFoo;version")
+ endif()
+ list(GET dep 0 dep_name)
+ list(GET dep 1 dep_ver)
+
+ list(APPEND target_deps_seen "${dep_name}\;${dep_ver}")
+ endif()
+ endif()
+ endforeach()
+ set(target_deps "${target_deps_seen}")
+
if (DEFINED qtdeps)
list(REMOVE_DUPLICATES qtdeps)
endif()
@@ -92,7 +114,7 @@ function(qt_internal_create_depends_files)
endif()
- if(third_party_deps OR main_module_tool_deps)
+ if(third_party_deps OR main_module_tool_deps OR target_deps)
# Configure and install ModuleDependencies file.
configure_file(
"${QT_CMAKE_DIR}/QtModuleDependencies.cmake.in"