From bb26830b3cd47588bf9cc64c02e156fca8c30bc7 Mon Sep 17 00:00:00 2001 From: Alexandru Croitor Date: Fri, 2 Aug 2024 15:06:31 +0200 Subject: [PATCH] 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. Task-number: QTBUG-122899 Change-Id: Ibf99f4481fbc1acca488fc96cca048298b080d35 Reviewed-by: Joerg Bornemann (cherry picked from commit b17dfbbb992b1d38d7a1aeb2b0109bab9cb1e4e3) Reviewed-by: Qt Cherry-pick Bot --- cmake/Qt3rdPartyLibraryHelpers.cmake | 1 + cmake/QtModuleHelpers.cmake | 8 +++++++- cmake/QtPublicSbomHelpers.cmake | 1 + 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/cmake/Qt3rdPartyLibraryHelpers.cmake b/cmake/Qt3rdPartyLibraryHelpers.cmake index b6efc2427df..77ddfc6588b 100644 --- a/cmake/Qt3rdPartyLibraryHelpers.cmake +++ b/cmake/Qt3rdPartyLibraryHelpers.cmake @@ -428,6 +428,7 @@ function(qt_internal_add_3rdparty_header_module target) _qt_internal_validate_all_args_are_parsed(arg) qt_internal_add_module(${target} + IS_QT_3RD_PARTY_HEADER_MODULE INTERNAL_MODULE HEADER_MODULE NO_CONFIG_HEADER_FILE diff --git a/cmake/QtModuleHelpers.cmake b/cmake/QtModuleHelpers.cmake index 7576b0b1c1b..8d09d1a34d8 100644 --- a/cmake/QtModuleHelpers.cmake +++ b/cmake/QtModuleHelpers.cmake @@ -918,7 +918,13 @@ set(QT_ALLOW_MISSING_TOOLS_PACKAGES TRUE)") if(QT_GENERATE_SBOM) 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) foreach(config IN LISTS configs) diff --git a/cmake/QtPublicSbomHelpers.cmake b/cmake/QtPublicSbomHelpers.cmake index 90249e280df..2d3d52a4cad 100644 --- a/cmake/QtPublicSbomHelpers.cmake +++ b/cmake/QtPublicSbomHelpers.cmake @@ -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_SUPPLIER SBOM_INCOMPLETE_3RD_PARTY_DEPENDENCIES + IS_QT_3RD_PARTY_HEADER_MODULE ) set(${single_args} PACKAGE_VERSION