CMake: Fix some policy CMP0174 warnings during SBOM generation

We should only forward arguments to cmake_parse_arguments options
that actually have values.

Pick-to: 6.8 6.9 6.10
Task-number: QTBUG-134894
Change-Id: I0e2eecc4c87378ee3c2eb44f693288c8c58f2d21
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
This commit is contained in:
Alexandru Croitor 2025-08-15 18:17:38 +02:00
parent 253a7f95bc
commit ecf1e021de
1 changed files with 31 additions and 12 deletions

View File

@ -83,12 +83,16 @@ function(_qt_internal_sbom_begin_project)
_qt_internal_sbom_get_root_project_name_for_spdx_id(repo_project_name_for_spdx_id) _qt_internal_sbom_get_root_project_name_for_spdx_id(repo_project_name_for_spdx_id)
_qt_internal_sbom_get_root_project_name_lower_case(repo_project_name_lowercase) _qt_internal_sbom_get_root_project_name_lower_case(repo_project_name_lowercase)
set(repo_supplier_url "") set(begin_project_generate_args "")
if(arg_SUPPLIER_URL) if(arg_SUPPLIER_URL)
set(repo_supplier_url "${arg_SUPPLIER_URL}") set(repo_supplier_url "${arg_SUPPLIER_URL}")
elseif(arg___QT_INTERNAL_HANDLE_QT_REPO) elseif(arg___QT_INTERNAL_HANDLE_QT_REPO)
_qt_internal_sbom_get_default_supplier_url(repo_supplier_url) _qt_internal_sbom_get_default_supplier_url(repo_supplier_url)
endif() endif()
if(repo_supplier_url)
list(APPEND begin_project_generate_args SUPPLIER_URL "${repo_supplier_url}")
endif()
# Manual override. # Manual override.
if(arg_VERSION) if(arg_VERSION)
@ -128,9 +132,13 @@ function(_qt_internal_sbom_begin_project)
if(arg_DOCUMENT_NAMESPACE) if(arg_DOCUMENT_NAMESPACE)
set(repo_spdx_namespace "${arg_DOCUMENT_NAMESPACE}") set(repo_spdx_namespace "${arg_DOCUMENT_NAMESPACE}")
else() else()
set(compute_project_namespace_args "")
if(repo_supplier_url)
list(APPEND compute_project_namespace_args SUPPLIER_URL "${repo_supplier_url}")
endif()
_qt_internal_sbom_compute_project_namespace(repo_spdx_namespace _qt_internal_sbom_compute_project_namespace(repo_spdx_namespace
PROJECT_NAME "${repo_project_name_lowercase}" PROJECT_NAME "${repo_project_name_lowercase}"
SUPPLIER_URL "${repo_supplier_url}" ${compute_project_namespace_args}
) )
endif() endif()
@ -150,9 +158,14 @@ function(_qt_internal_sbom_begin_project)
set(install_prefix "\${CMAKE_INSTALL_PREFIX}") set(install_prefix "\${CMAKE_INSTALL_PREFIX}")
endif() endif()
set(compute_project_file_name_args "")
if(not_git_version)
list(APPEND compute_project_file_name_args VERSION_SUFFIX "${not_git_version}")
endif()
_qt_internal_sbom_compute_project_file_name(repo_project_file_name _qt_internal_sbom_compute_project_file_name(repo_project_file_name
PROJECT_NAME "${repo_project_name_lowercase}" PROJECT_NAME "${repo_project_name_lowercase}"
VERSION_SUFFIX "${non_git_version}" ${compute_project_file_name_args}
) )
set(repo_spdx_relative_install_path set(repo_spdx_relative_install_path
@ -170,10 +183,8 @@ function(_qt_internal_sbom_begin_project)
# It's better to rely on the more granular package licenses. # It's better to rely on the more granular package licenses.
set(repo_license "") set(repo_license "")
endif() endif()
set(repo_license_option "")
if(repo_license) if(repo_license)
set(repo_license_option "LICENSE" "${repo_license}") list(APPEND begin_project_generate_args LICENSE "${repo_license}")
endif() endif()
if(arg_COPYRIGHTS) if(arg_COPYRIGHTS)
@ -182,12 +193,19 @@ function(_qt_internal_sbom_begin_project)
elseif(arg___QT_INTERNAL_HANDLE_QT_REPO) elseif(arg___QT_INTERNAL_HANDLE_QT_REPO)
_qt_internal_sbom_get_default_qt_copyright_header(repo_copyright) _qt_internal_sbom_get_default_qt_copyright_header(repo_copyright)
endif() endif()
if(repo_copyright)
list(APPEND begin_project_generate_args COPYRIGHT "${repo_copyright}")
endif()
if(arg_SUPPLIER) if(arg_SUPPLIER)
set(repo_supplier "${arg_SUPPLIER}") set(repo_supplier "${arg_SUPPLIER}")
elseif(arg___QT_INTERNAL_HANDLE_QT_REPO) elseif(arg___QT_INTERNAL_HANDLE_QT_REPO)
_qt_internal_sbom_get_default_supplier(repo_supplier) _qt_internal_sbom_get_default_supplier(repo_supplier)
endif() endif()
if(repo_supplier)
# This must not contain spaces!
list(APPEND begin_project_generate_args SUPPLIER "${repo_supplier}")
endif()
if(arg_CPE) if(arg_CPE)
set(qt_cpe "${arg_CPE}") set(qt_cpe "${arg_CPE}")
@ -196,12 +214,18 @@ function(_qt_internal_sbom_begin_project)
else() else()
set(qt_cpe "") set(qt_cpe "")
endif() endif()
if(qt_cpe)
list(APPEND begin_project_generate_args CPE "${qt_cpe}")
endif()
if(arg_DOWNLOAD_LOCATION) if(arg_DOWNLOAD_LOCATION)
set(download_location "${arg_DOWNLOAD_LOCATION}") set(download_location "${arg_DOWNLOAD_LOCATION}")
elseif(arg___QT_INTERNAL_HANDLE_QT_REPO) elseif(arg___QT_INTERNAL_HANDLE_QT_REPO)
_qt_internal_sbom_get_qt_repo_source_download_location(download_location) _qt_internal_sbom_get_qt_repo_source_download_location(download_location)
endif() endif()
if(download_location)
list(APPEND begin_project_generate_args DOWNLOAD_LOCATION "${download_location}")
endif()
set(project_comment "") set(project_comment "")
@ -223,16 +247,11 @@ function(_qt_internal_sbom_begin_project)
_qt_internal_sbom_begin_project_generate( _qt_internal_sbom_begin_project_generate(
OUTPUT "${repo_spdx_install_path}" OUTPUT "${repo_spdx_install_path}"
OUTPUT_RELATIVE_PATH "${repo_spdx_relative_install_path}" OUTPUT_RELATIVE_PATH "${repo_spdx_relative_install_path}"
${repo_license_option}
COPYRIGHT "${repo_copyright}"
SUPPLIER "${repo_supplier}" # This must not contain spaces!
SUPPLIER_URL "${repo_supplier_url}"
DOWNLOAD_LOCATION "${download_location}"
PROJECT "${repo_project_name_lowercase}" PROJECT "${repo_project_name_lowercase}"
${project_comment} ${project_comment}
PROJECT_FOR_SPDX_ID "${repo_project_name_for_spdx_id}" PROJECT_FOR_SPDX_ID "${repo_project_name_for_spdx_id}"
NAMESPACE "${repo_spdx_namespace}" NAMESPACE "${repo_spdx_namespace}"
CPE "${qt_cpe}" ${begin_project_generate_args}
OUT_VAR_PROJECT_SPDX_ID repo_project_spdx_id OUT_VAR_PROJECT_SPDX_ID repo_project_spdx_id
) )