diff options
author | Leander Beernaert <leander.beernaert@qt.io> | 2020-03-05 14:28:15 +0100 |
---|---|---|
committer | Leander Beernaert <leander.beernaert@qt.io> | 2020-03-05 16:14:15 +0100 |
commit | 98fb632f4744857c050e06cec790a6b76509c32a (patch) | |
tree | 66cffae6f78102a34193da324dec9c7233e23b89 /cmake | |
parent | af00402d6446c0f8f085a2a482fc83c4318aa457 (diff) |
Add QT_MODULE_SKIP_MODULE_INCLUDES property
When a Qt module has this property set, when we generate the
QtModuleDepends header file and find this module it will not be added.
This is required to be able to create a Core_qobject module, as it does
not have any headers.
Change-Id: Iaea1080919d05ace12e48693e02d8c0f4c669339
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/QtBuild.cmake | 5 | ||||
-rw-r--r-- | cmake/QtPostProcess.cmake | 9 |
2 files changed, 13 insertions, 1 deletions
diff --git a/cmake/QtBuild.cmake b/cmake/QtBuild.cmake index e62f5aa196..8de0abf25f 100644 --- a/cmake/QtBuild.cmake +++ b/cmake/QtBuild.cmake @@ -1561,7 +1561,7 @@ function(qt_add_module target) # Process arguments: qt_parse_all_arguments(arg "qt_add_module" - "NO_MODULE_HEADERS;STATIC;DISABLE_TOOLS_EXPORT;EXCEPTIONS;INTERNAL_MODULE;NO_SYNC_QT;NO_PRIVATE_MODULE;HEADER_MODULE;GENERATE_METATYPES;NO_CONFIG_HEADER_FILE" + "NO_MODULE_HEADERS;STATIC;DISABLE_TOOLS_EXPORT;EXCEPTIONS;INTERNAL_MODULE;NO_SYNC_QT;NO_PRIVATE_MODULE;HEADER_MODULE;GENERATE_METATYPES;NO_CONFIG_HEADER_FILE;SKIP_DEPENDS_INCLUDE" "CONFIG_MODULE_NAME;PRECOMPILED_HEADER" "${__default_private_args};${__default_public_args};${__default_private_module_args};QMAKE_MODULE_CONFIG;EXTRA_CMAKE_FILES;EXTRA_CMAKE_INCLUDES;NO_PCH_SOURCES" ${ARGN}) @@ -1639,6 +1639,9 @@ function(qt_add_module target) ) qt_handle_multi_config_output_dirs("${target}") + if (arg_SKIP_DEPENDS_INCLUDE) + set_target_properties(${target} PROPERTIES QT_MODULE_SKIP_DEPENDS_INCLUDE TRUE) + endif() if(is_framework) set_target_properties(${target} PROPERTIES OUTPUT_NAME Qt${target} diff --git a/cmake/QtPostProcess.cmake b/cmake/QtPostProcess.cmake index 65abd5f635..c4c4510c65 100644 --- a/cmake/QtPostProcess.cmake +++ b/cmake/QtPostProcess.cmake @@ -111,6 +111,15 @@ function(qt_internal_create_module_depends_file target) # Normalize module by stripping leading "Qt::" and trailing "Private" if (dep MATCHES "Qt::(.*)") set(dep "${CMAKE_MATCH_1}") + if (TARGET Qt::${dep}) + get_target_property(dep_type Qt::${dep} TYPE) + if (NOT dep_type STREQUAL "INTERFACE_LIBRARY") + get_target_property(skip_module_depends_include Qt::${dep} QT_MODULE_SKIP_DEPENDS_INCLUDE) + if (skip_module_depends_include) + continue() + endif() + endif() + endif() endif() if (dep MATCHES "(.*)Private") set(dep "${CMAKE_MATCH_1}") |