summaryrefslogtreecommitdiffstats
path: root/cmake/QtPostProcess.cmake
diff options
context:
space:
mode:
authorTobias Hunger <tobias.hunger@qt.io>2018-10-30 15:25:53 +0100
committerTobias Hunger <tobias.hunger@qt.io>2018-11-01 11:48:55 +0000
commit8cea61e14d8425c7842b5fa85ca1883aca0df63c (patch)
treec7331e3d8f71f912ec283919077c71d1c24a84ff /cmake/QtPostProcess.cmake
parente9c45bbdddd4df005bdaa5eea9740d351e6eaea2 (diff)
QtPostProcess: Fix generation of *Depends header files
Normalize Qt module names before trying to match them. Deduplicate the names while at it. Change-Id: I5821c34fe5904cf9e9b986ac3ae4af2b248466b7 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'cmake/QtPostProcess.cmake')
-rw-r--r--cmake/QtPostProcess.cmake15
1 files changed, 14 insertions, 1 deletions
diff --git a/cmake/QtPostProcess.cmake b/cmake/QtPostProcess.cmake
index 5e563d4c91..48de9ef396 100644
--- a/cmake/QtPostProcess.cmake
+++ b/cmake/QtPostProcess.cmake
@@ -9,7 +9,7 @@ function(qt_internal_write_depends_file target)
endforeach()
string(APPEND contents "#endif\n")
- file(GENERATE OUTPUT ${outfile} CONTENT ${contents})
+ file(GENERATE OUTPUT "${outfile}" CONTENT "${contents}")
endfunction()
function(qt_internal_create_depends_files)
@@ -17,11 +17,24 @@ function(qt_internal_create_depends_files)
foreach (target ${KNOWN_QT_MODULES})
get_target_property(depends "${target}" LINK_LIBRARIES)
foreach (dep ${depends})
+ # Normalize module by stripping leading "Qt::" and trailing "Private"
+ if (dep MATCHES "Qt::(.*)")
+ set(dep "${CMAKE_MATCH_1}")
+ endif()
+ if (dep MATCHES "(.*)Private")
+ set(dep "${CMAKE_MATCH_1}")
+ endif()
+
list(FIND KNOWN_QT_MODULES "${dep}" _pos)
if (_pos GREATER -1)
list(APPEND qtdeps "${dep}")
endif()
endforeach()
+
+ if (DEFINED qtdeps)
+ list(REMOVE_DUPLICATES qtdeps)
+ endif()
+
get_target_property(hasModuleHeaders "${target}" MODULE_HAS_HEADERS)
if (${hasModuleHeaders})
qt_internal_write_depends_file("${target}" ${qtdeps})