diff options
author | Alexey Edelev <alexey.edelev@qt.io> | 2021-08-24 13:30:51 +0200 |
---|---|---|
committer | Alexey Edelev <alexey.edelev@qt.io> | 2021-08-24 20:58:39 +0200 |
commit | abb19da5727c63783c64caefa11562a9086b4707 (patch) | |
tree | e7c840d0d776ca0cee083d0a32c388225a11d93a | |
parent | 41b56c31bc1ef5bead6a718f4080a61dcbd04686 (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>
-rw-r--r-- | cmake/QtModuleHelpers.cmake | 4 | ||||
-rw-r--r-- | cmake/QtTargetHelpers.cmake | 6 |
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}) |