CMake: Detect 3rd party header modules during SBOM generation

They should inherit the version of the 3rd party library they are part
of, and not be treated as Qt modules.

Pick-to: 6.8
Task-number: QTBUG-122899
Change-Id: Ibf99f4481fbc1acca488fc96cca048298b080d35
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
This commit is contained in:
Alexandru Croitor 2024-08-02 15:06:31 +02:00
parent 5daabb5a74
commit b17dfbbb99
3 changed files with 9 additions and 1 deletions

View File

@ -428,6 +428,7 @@ function(qt_internal_add_3rdparty_header_module target)
_qt_internal_validate_all_args_are_parsed(arg) _qt_internal_validate_all_args_are_parsed(arg)
qt_internal_add_module(${target} qt_internal_add_module(${target}
IS_QT_3RD_PARTY_HEADER_MODULE
INTERNAL_MODULE INTERNAL_MODULE
HEADER_MODULE HEADER_MODULE
NO_CONFIG_HEADER_FILE NO_CONFIG_HEADER_FILE

View File

@ -918,7 +918,13 @@ set(QT_ALLOW_MISSING_TOOLS_PACKAGES TRUE)")
if(QT_GENERATE_SBOM) if(QT_GENERATE_SBOM)
set(sbom_args "") set(sbom_args "")
list(APPEND sbom_args TYPE QT_MODULE)
# 3rd party header modules should not be treated as Qt modules.
if(arg_IS_QT_3RD_PARTY_HEADER_MODULE)
list(APPEND sbom_args TYPE QT_THIRD_PARTY_MODULE)
else()
list(APPEND sbom_args TYPE QT_MODULE)
endif()
qt_get_cmake_configurations(configs) qt_get_cmake_configurations(configs)
foreach(config IN LISTS configs) foreach(config IN LISTS configs)

View File

@ -318,6 +318,7 @@ macro(_qt_internal_get_sbom_add_target_common_options opt_args single_args multi
NO_DEFAULT_QT_PACKAGE_VERSION NO_DEFAULT_QT_PACKAGE_VERSION
NO_DEFAULT_QT_SUPPLIER NO_DEFAULT_QT_SUPPLIER
SBOM_INCOMPLETE_3RD_PARTY_DEPENDENCIES SBOM_INCOMPLETE_3RD_PARTY_DEPENDENCIES
IS_QT_3RD_PARTY_HEADER_MODULE
) )
set(${single_args} set(${single_args}
PACKAGE_VERSION PACKAGE_VERSION