summaryrefslogtreecommitdiffstats
path: root/cmake
diff options
context:
space:
mode:
authorAlexey Edelev <alexey.edelev@qt.io>2021-08-24 13:30:51 +0200
committerAlexey Edelev <alexey.edelev@qt.io>2021-08-24 20:58:39 +0200
commitabb19da5727c63783c64caefa11562a9086b4707 (patch)
treee7c840d0d776ca0cee083d0a32c388225a11d93a /cmake
parent41b56c31bc1ef5bead6a718f4080a61dcbd04686 (diff)
Add missing PRIVATE_MODULE_INTERFACEs to INTERNAL_MODULEs
To detect the internal module ouside the qt_internal_add_module function need to mark it with the property. This adds _qt_is_internal_module property to the Qt internal modules. Since PRIVATE_MODULE_INTERFACE only was applicable to pure Private modules, INTERNAL_MODULEs is missing those dependencies if they were specified. Add extra condition to qt_internal_extend_target to link PRIVATE_MODULE_INTERFACE libraries to internal modules as well. Pick-to: 6.2 6.1 Change-Id: I9c32fa5bad3aff365f5d7663349e5365d5f1d72d Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'cmake')
-rw-r--r--cmake/QtModuleHelpers.cmake4
-rw-r--r--cmake/QtTargetHelpers.cmake6
2 files changed, 10 insertions, 0 deletions
diff --git a/cmake/QtModuleHelpers.cmake b/cmake/QtModuleHelpers.cmake
index 634c4a4c33..47a02b1a00 100644
--- a/cmake/QtModuleHelpers.cmake
+++ b/cmake/QtModuleHelpers.cmake
@@ -129,6 +129,10 @@ function(qt_internal_add_module target)
qt_internal_module_info(module "${target}")
qt_internal_add_qt_repo_known_module("${target}")
+ if(arg_INTERNAL_MODULE)
+ set_target_properties(${target} PROPERTIES _qt_is_internal_module TRUE)
+ set_property(TARGET ${target} APPEND PROPERTY EXPORT_PROPERTIES _qt_is_internal_module)
+ endif()
if(NOT arg_CONFIG_MODULE_NAME)
set(arg_CONFIG_MODULE_NAME "${module_lower}")
diff --git a/cmake/QtTargetHelpers.cmake b/cmake/QtTargetHelpers.cmake
index f497d55924..cc7481aec1 100644
--- a/cmake/QtTargetHelpers.cmake
+++ b/cmake/QtTargetHelpers.cmake
@@ -101,6 +101,12 @@ function(qt_internal_extend_target target)
endforeach()
set(target_private "${target}Private")
+ get_target_property(is_internal_module ${target} _qt_is_internal_module)
+ # Internal modules don't have Private targets but we still need to
+ # propagate their private dependencies.
+ if(is_internal_module)
+ set(target_private "${target}")
+ endif()
if(TARGET "${target_private}")
target_link_libraries("${target_private}"
INTERFACE ${arg_PRIVATE_MODULE_INTERFACE})