diff --git a/cmake/QtBuildRepoHelpers.cmake b/cmake/QtBuildRepoHelpers.cmake index fc8945d4c9c..bca25233365 100644 --- a/cmake/QtBuildRepoHelpers.cmake +++ b/cmake/QtBuildRepoHelpers.cmake @@ -756,6 +756,13 @@ macro(qt_build_tests) # Indicates that we are configuring tests now set(QT_INTERNAL_CONFIGURING_TESTS TRUE) + # Set this as a directory scoped variable, so we can easily check the variable in child + # directories, to prevent certain code from running, like sbom file checks for all targets + # created in tests subdir. + if(NOT QT_BUILD_TESTS_BY_DEFAULT) + set(QT_INTERNAL_TEST_TARGETS_EXCLUDE_FROM_ALL TRUE) + endif() + # Tests are not unity-ready. set(CMAKE_UNITY_BUILD OFF) diff --git a/cmake/QtPublicSbomFileHelpers.cmake b/cmake/QtPublicSbomFileHelpers.cmake index 3a06a670b31..1b2abc91af0 100644 --- a/cmake/QtPublicSbomFileHelpers.cmake +++ b/cmake/QtPublicSbomFileHelpers.cmake @@ -93,8 +93,8 @@ function(_qt_internal_sbom_handle_target_binary_files target) return() endif() - get_target_property(excluded ${target} _qt_internal_excluded_from_default_target) - if(excluded) + get_target_property(excluded_via_property ${target} _qt_internal_excluded_from_default_target) + if(excluded_via_property OR QT_INTERNAL_TEST_TARGETS_EXCLUDE_FROM_ALL) message(DEBUG "Target ${target} has no binary files to reference in the SBOM " "because it was excluded from the default 'all' target.") return()