diff options
author | Craig Scott <craig.scott@qt.io> | 2021-05-18 17:00:01 +1000 |
---|---|---|
committer | Craig Scott <craig.scott@qt.io> | 2021-05-18 23:59:24 +1000 |
commit | 21607d5db5e03a2784d588b21c59c70f7ad5cdc8 (patch) | |
tree | 3671f21d207bb5d05404e31273c1000698195acc /cmake/QtModuleHelpers.cmake | |
parent | 27d9c0542cb289098014df534e1672743fc44007 (diff) |
CMake: Provide supported qt_internal_add_module() args via a function
This is to allow other repos like qtdeclarative to more easily pass
through supported arguments to qt_internal_add_module() from their own
functions.
Task-number: QTBUG-88763
Change-Id: I965d593de4c6f9d5295a0d427c32dc3d5b1bb639
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'cmake/QtModuleHelpers.cmake')
-rw-r--r-- | cmake/QtModuleHelpers.cmake | 52 |
1 files changed, 46 insertions, 6 deletions
diff --git a/cmake/QtModuleHelpers.cmake b/cmake/QtModuleHelpers.cmake index 86408eca8d..4cb212c169 100644 --- a/cmake/QtModuleHelpers.cmake +++ b/cmake/QtModuleHelpers.cmake @@ -1,3 +1,37 @@ +macro(qt_internal_get_internal_add_module_keywords option_args single_args multi_args) + set(${option_args} + STATIC + EXCEPTIONS + INTERNAL_MODULE + HEADER_MODULE + DISABLE_TOOLS_EXPORT + SKIP_DEPENDS_INCLUDE + NO_MODULE_HEADERS + NO_SYNC_QT + NO_PRIVATE_MODULE + NO_CONFIG_HEADER_FILE + NO_ADDITIONAL_TARGET_INFO + NO_GENERATE_METATYPES + GENERATE_METATYPES # TODO: Remove once it is not used anymore + ) + set(${single_args} + MODULE_INCLUDE_NAME + CONFIG_MODULE_NAME + PRECOMPILED_HEADER + CONFIGURE_FILE_PATH + ${__default_target_info_args} + ) + set(${multi_args} + QMAKE_MODULE_CONFIG + EXTRA_CMAKE_FILES + EXTRA_CMAKE_INCLUDES + NO_PCH_SOURCES + ${__default_private_args} + ${__default_public_args} + ${__default_private_module_args} + ) +endmacro() + # This is the main entry function for creating a Qt module, that typically # consists of a library, public header files, private header files and configurable # features. @@ -17,12 +51,18 @@ function(qt_internal_add_module target) qt_internal_module_info(module "${target}") - # TODO: Remove GENERATE_METATYPES once it's not used anymore. - # 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_GENERATE_METATYPES;NO_CONFIG_HEADER_FILE;SKIP_DEPENDS_INCLUDE;NO_ADDITIONAL_TARGET_INFO" - "MODULE_INCLUDE_NAME;CONFIG_MODULE_NAME;PRECOMPILED_HEADER;CONFIGURE_FILE_PATH;${__default_target_info_args}" - "${__default_private_args};${__default_public_args};${__default_private_module_args};QMAKE_MODULE_CONFIG;EXTRA_CMAKE_FILES;EXTRA_CMAKE_INCLUDES;NO_PCH_SOURCES" ${ARGN}) + qt_internal_get_internal_add_module_keywords( + option_args + single_args + multi_args + ) + + qt_parse_all_arguments(arg "qt_internal_add_module" + "${option_args}" + "${single_args}" + "${multi_args}" + ${ARGN} + ) qt_internal_add_qt_repo_known_module("${target}") |