summaryrefslogtreecommitdiffstats
path: root/cmake/QtTargetHelpers.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/QtTargetHelpers.cmake')
-rw-r--r--cmake/QtTargetHelpers.cmake61
1 files changed, 60 insertions, 1 deletions
diff --git a/cmake/QtTargetHelpers.cmake b/cmake/QtTargetHelpers.cmake
index 3740e85803..b90b95870d 100644
--- a/cmake/QtTargetHelpers.cmake
+++ b/cmake/QtTargetHelpers.cmake
@@ -45,6 +45,7 @@ function(qt_internal_extend_target target)
set(single_args
PRECOMPILED_HEADER
EXTRA_LINKER_SCRIPT_CONTENT
+ ATTRIBUTION_ENTRY_INDEX
)
set(multi_args
${__default_public_args}
@@ -54,6 +55,9 @@ function(qt_internal_extend_target target)
CONDITION_INDEPENDENT_SOURCES
COMPILE_FLAGS
EXTRA_LINKER_SCRIPT_EXPORTS
+ SBOM_DEPENDENCIES
+ ATTRIBUTION_FILE_PATHS
+ ATTRIBUTION_FILE_DIR_PATHS
)
cmake_parse_arguments(PARSE_ARGV 1 arg
@@ -210,6 +214,42 @@ function(qt_internal_extend_target target)
endif()
endforeach()
+ if(arg_LIBRARIES)
+ _qt_internal_append_to_target_property_without_duplicates(${target}
+ _qt_extend_target_libraries "${arg_LIBRARIES}"
+ )
+ endif()
+
+ if(arg_PUBLIC_LIBRARIES)
+ _qt_internal_append_to_target_property_without_duplicates(${target}
+ _qt_extend_target_public_libraries "${arg_PUBLIC_LIBRARIES}"
+ )
+ endif()
+
+ if(arg_SBOM_DEPENDENCIES)
+ _qt_internal_extend_sbom_dependencies(${target}
+ SBOM_DEPENDENCIES ${arg_SBOM_DEPENDENCIES}
+ )
+ endif()
+
+ if(NOT "${arg_ATTRIBUTION_ENTRY_INDEX}" STREQUAL "")
+ _qt_internal_extend_sbom(${target}
+ ATTRIBUTION_ENTRY_INDEX "${arg_ATTRIBUTION_ENTRY_INDEX}"
+ )
+ endif()
+
+ if(arg_ATTRIBUTION_FILE_PATHS)
+ _qt_internal_extend_sbom(${target}
+ ATTRIBUTION_FILE_PATHS ${arg_ATTRIBUTION_FILE_PATHS}
+ )
+ endif()
+
+ if(arg_ATTRIBUTION_FILE_DIR_PATHS)
+ _qt_internal_extend_sbom(${target}
+ ATTRIBUTION_FILE_DIR_PATHS ${arg_ATTRIBUTION_FILE_DIR_PATHS}
+ )
+ endif()
+
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
@@ -298,7 +338,7 @@ endfunction()
function(qt_get_install_target_default_args)
cmake_parse_arguments(PARSE_ARGV 0 arg
""
- "OUT_VAR;CMAKE_CONFIG;RUNTIME;LIBRARY;ARCHIVE;INCLUDES;BUNDLE"
+ "OUT_VAR;OUT_VAR_RUNTIME;CMAKE_CONFIG;RUNTIME;LIBRARY;ARCHIVE;INCLUDES;BUNDLE"
"ALL_CMAKE_CONFIGS")
_qt_internal_validate_all_args_are_parsed(arg)
@@ -348,6 +388,13 @@ function(qt_get_install_target_default_args)
BUNDLE DESTINATION "${bundle}${suffix}"
INCLUDES DESTINATION "${includes}${suffix}")
set(${arg_OUT_VAR} "${args}" PARENT_SCOPE)
+
+ if(arg_OUT_VAR_RUNTIME)
+ set(args
+ "${runtime}${suffix}"
+ )
+ set(${arg_OUT_VAR_RUNTIME} "${args}" PARENT_SCOPE)
+ endif()
endfunction()
macro(qt_internal_setup_default_target_function_options)
@@ -391,6 +438,15 @@ macro(qt_internal_setup_default_target_function_options)
TARGET_COPYRIGHT
)
+ set(__qt_internal_sbom_single_args
+ ATTRIBUTION_ENTRY_INDEX
+ )
+ set(__qt_internal_sbom_multi_args
+ SBOM_DEPENDENCIES
+ ATTRIBUTION_FILE_PATHS
+ ATTRIBUTION_FILE_DIR_PATHS
+ )
+
# Collection of arguments so they can be shared across qt_internal_add_executable
# and qt_internal_add_test_helper.
set(__qt_internal_add_executable_optional_args
@@ -408,10 +464,12 @@ macro(qt_internal_setup_default_target_function_options)
INSTALL_DIRECTORY
VERSION
${__default_target_info_args}
+ ${__qt_internal_sbom_single_args}
)
set(__qt_internal_add_executable_multi_args
${__default_private_args}
${__default_public_args}
+ ${__qt_internal_sbom_multi_args}
)
endmacro()
@@ -479,6 +537,7 @@ function(qt_internal_setup_cmake_config_postfix)
# If postfix is set by user avoid changing it, but save postfix variable that has
# a non-default value for further warning.
if("${${postfix_var}}" STREQUAL "")
+ set(${postfix_var} "${${default_postfix_var}}")
set(${postfix_var} "${${default_postfix_var}}" PARENT_SCOPE)
elseif(NOT "${${postfix_var}}" STREQUAL "${${default_postfix_var}}")
list(APPEND custom_postfix_vars ${postfix_var})