CMake: Conditionally generate SPDX fields if value is not given

Otherwise the file will not be valid.

Pick-to: 6.8 6.9 6.10
Task-number: QTBUG-134894
Change-Id: Ib5b94d24cfac1c11b8c4608872155a080b1e4f89
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
This commit is contained in:
Alexandru Croitor 2025-08-15 18:27:51 +02:00
parent ecf1e021de
commit 1f1a34f6be
1 changed files with 13 additions and 6 deletions

View File

@ -103,10 +103,19 @@ function(_qt_internal_sbom_begin_project_generate)
_qt_internal_sbom_set_default_option_value(NAMESPACE _qt_internal_sbom_set_default_option_value(NAMESPACE
"${arg_SUPPLIER}/spdxdocs/${arg_PROJECT}-${QT_SBOM_GIT_VERSION}") "${arg_SUPPLIER}/spdxdocs/${arg_PROJECT}-${QT_SBOM_GIT_VERSION}")
set(fields "")
if(arg_CPE) if(arg_CPE)
set(QT_SBOM_CPE "${arg_CPE}") set(fields "${fields}
else() ExternalRef: SECURITY cpe23Type ${arg_CPE}")
set(QT_SBOM_CPE "") endif()
set(purl_generic_id "pkg:generic/${arg_SUPPLIER}/${arg_PROJECT}@${QT_SBOM_GIT_VERSION}")
set(fields "${fields}
ExternalRef: PACKAGE-MANAGER purl ${purl_generic_id}")
if(QT_SBOM_GIT_VERSION)
set(fields "${fields}
PackageVersion: ${QT_SBOM_GIT_VERSION}")
endif() endif()
string(REGEX REPLACE "[^A-Za-z0-9.]+" "-" arg_PROJECT_FOR_SPDX_ID "${arg_PROJECT_FOR_SPDX_ID}") string(REGEX REPLACE "[^A-Za-z0-9.]+" "-" arg_PROJECT_FOR_SPDX_ID "${arg_PROJECT_FOR_SPDX_ID}")
@ -170,10 +179,8 @@ Relationship: SPDXRef-compiler BUILD_DEPENDENCY_OF ${project_spdx_id}
RelationshipComment: <text>${project_spdx_id} is built by compiler ${CMAKE_CXX_COMPILER_ID} version ${CMAKE_CXX_COMPILER_VERSION}</text> RelationshipComment: <text>${project_spdx_id} is built by compiler ${CMAKE_CXX_COMPILER_ID} version ${CMAKE_CXX_COMPILER_VERSION}</text>
PackageName: ${arg_PROJECT} PackageName: ${arg_PROJECT}
SPDXID: ${project_spdx_id} SPDXID: ${project_spdx_id}${fields}
ExternalRef: SECURITY cpe23Type ${QT_SBOM_CPE}
ExternalRef: PACKAGE-MANAGER purl pkg:generic/${arg_SUPPLIER}/${arg_PROJECT}@${QT_SBOM_GIT_VERSION} ExternalRef: PACKAGE-MANAGER purl pkg:generic/${arg_SUPPLIER}/${arg_PROJECT}@${QT_SBOM_GIT_VERSION}
PackageVersion: ${QT_SBOM_GIT_VERSION}
PackageSupplier: Organization: ${arg_SUPPLIER} PackageSupplier: Organization: ${arg_SUPPLIER}
PackageDownloadLocation: ${arg_DOWNLOAD_LOCATION} PackageDownloadLocation: ${arg_DOWNLOAD_LOCATION}
PackageLicenseConcluded: ${arg_LICENSE} PackageLicenseConcluded: ${arg_LICENSE}