summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexandru Croitor <[email protected]>2024-03-07 18:02:56 +0100
committerAlexandru Croitor <[email protected]>2024-06-13 16:54:47 +0200
commit79f9b490e7f6e2746de36542cc4c7442dabe8315 (patch)
treecad1908c542ae4f289db5c48a1a96ea22c247eee
parent37a5e001277db9e1392a242171ab2b88cb6c3049 (diff)
CMake: Annotate some targets with SBOM information
Pick-to: 6.8 Task-number: QTBUG-122899 Change-Id: I2eb70ca4d52e30c8e15ca7b350df6965d93732f8 Reviewed-by: Alexey Edelev <[email protected]>
-rw-r--r--qmake/CMakeLists.txt4
-rw-r--r--src/3rdparty/CMakeLists.txt2
-rw-r--r--src/3rdparty/pcre2/CMakeLists.txt2
-rw-r--r--src/corelib/CMakeLists.txt28
-rw-r--r--src/corelib/configure.cmake6
-rw-r--r--src/gui/CMakeLists.txt30
-rw-r--r--src/gui/configure.cmake10
-rw-r--r--src/network/CMakeLists.txt4
-rw-r--r--src/plugins/platforms/wasm/CMakeLists.txt2
-rw-r--r--src/plugins/platforms/windows/CMakeLists.txt2
-rw-r--r--src/plugins/platforms/xcb/CMakeLists.txt4
-rw-r--r--src/plugins/sqldrivers/sqlite/CMakeLists.txt2
-rw-r--r--src/testlib/CMakeLists.txt2
-rw-r--r--src/tools/bootstrap/CMakeLists.txt6
-rw-r--r--src/tools/moc/CMakeLists.txt10
15 files changed, 113 insertions, 1 deletions
diff --git a/qmake/CMakeLists.txt b/qmake/CMakeLists.txt
index ee7a91eae6d..78e85c76964 100644
--- a/qmake/CMakeLists.txt
+++ b/qmake/CMakeLists.txt
@@ -15,6 +15,10 @@ qt_add_library(QtLibraryInfo OBJECT
propertyprinter.cpp propertyprinter.h
qmakelibraryinfo.cpp qmakelibraryinfo.h
)
+qt_internal_add_sbom(QtLibraryInfo
+ TYPE QT_MODULE
+ NO_INSTALL
+)
# Make sure we use same parameters when building QtLibraryInfo and other Qt libraries,
# otherwise some compilers may have compilation errors, such as clang-cl.
diff --git a/src/3rdparty/CMakeLists.txt b/src/3rdparty/CMakeLists.txt
index 493f6bddff4..f14da0e3c1e 100644
--- a/src/3rdparty/CMakeLists.txt
+++ b/src/3rdparty/CMakeLists.txt
@@ -8,6 +8,8 @@ if(QT_FEATURE_gui AND QT_FEATURE_jpeg AND NOT QT_FEATURE_system_jpeg)
endif()
qt_install_3rdparty_library_wrap_config_extra_file(BundledLibjpeg)
+# Needed for freetype, because it links against WrapPNG
+qt_find_package(WrapPNG PROVIDED_TARGETS WrapPNG::WrapPNG)
if(QT_FEATURE_gui AND QT_FEATURE_freetype AND NOT QT_FEATURE_system_freetype)
add_subdirectory(freetype)
endif()
diff --git a/src/3rdparty/pcre2/CMakeLists.txt b/src/3rdparty/pcre2/CMakeLists.txt
index 22b90a57e1a..ec549515d28 100644
--- a/src/3rdparty/pcre2/CMakeLists.txt
+++ b/src/3rdparty/pcre2/CMakeLists.txt
@@ -45,6 +45,8 @@ qt_internal_add_3rdparty_library(BundledPcre2
PCRE2_CODE_UNIT_WIDTH=16
PUBLIC_INCLUDE_DIRECTORIES
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src>
+ CPE_VENDOR "pcre"
+ CPE_PRODUCT "pcre2"
)
qt_disable_warnings(BundledPcre2)
qt_set_symbol_visibility_hidden(BundledPcre2)
diff --git a/src/corelib/CMakeLists.txt b/src/corelib/CMakeLists.txt
index b4c47e8bad8..b4e4cd2c7d8 100644
--- a/src/corelib/CMakeLists.txt
+++ b/src/corelib/CMakeLists.txt
@@ -2,7 +2,17 @@
# SPDX-License-Identifier: BSD-3-Clause
qt_find_package(WrapPCRE2 PROVIDED_TARGETS WrapPCRE2::WrapPCRE2)
+qt_internal_extend_sbom(WrapPCRE2::WrapPCRE2
+ CPE_VENDOR "pcre"
+ CPE_PRODUCT "pcre2"
+ DOWNLOAD_LOCATION "https://github.com/PCRE2Project/pcre2"
+)
qt_find_package(WrapZLIB PROVIDED_TARGETS WrapZLIB::WrapZLIB)
+qt_internal_extend_sbom(WrapZLIB::WrapZLIB
+ CPE_VENDOR "zlib"
+ CPE_PRODUCT "zlib"
+ DOWNLOAD_LOCATION "https://github.com/madler/zlib"
+)
if(ANDROID)
set(corelib_extra_cmake_files
@@ -347,6 +357,16 @@ qt_internal_add_module(Core
POLICIES
QTP0002
QTP0003
+ ATTRIBUTION_FILE_DIR_PATHS
+ text
+ tools
+ ../3rdparty/blake2
+ ../3rdparty/md4
+ ../3rdparty/md5
+ ../3rdparty/sha1
+ ../3rdparty/sha3
+ ../3rdparty/rfc6234
+ ../3rdparty/tinycbor
)
_qt_internal_setup_deploy_support()
@@ -610,6 +630,8 @@ qt_internal_extend_target(Core CONDITION APPLE
# This makes sure that the tst_qmakelib passes. For some reason,
# QtCore ends up returning a corrupted error message in
# write_file(): fail
+ ATTRIBUTION_FILE_DIR_PATHS
+ kernel
)
qt_internal_extend_target(Core CONDITION MACOS
@@ -779,6 +801,8 @@ qt_internal_extend_target(Core CONDITION QT_FEATURE_doubleconversion AND NOT QT_
INCLUDE_DIRECTORIES
../3rdparty/double-conversion/double-conversion
../3rdparty/double-conversion
+ ATTRIBUTION_FILE_DIR_PATHS
+ ../3rdparty/double-conversion
)
qt_internal_extend_target(Core CONDITION QT_FEATURE_system_libb2
@@ -790,6 +814,8 @@ qt_internal_extend_target(Core CONDITION QT_FEATURE_easingcurve
SOURCES
tools/qeasingcurve.cpp tools/qeasingcurve.h
tools/qtimeline.cpp tools/qtimeline.h
+ ATTRIBUTION_FILE_DIR_PATHS
+ ../3rdparty/easing
)
qt_internal_extend_target(Core CONDITION UNIX AND NOT HAIKU AND NOT INTEGRITY AND NOT VXWORKS AND NOT WASM AND NOT MACOS
@@ -1005,6 +1031,8 @@ qt_internal_extend_target(Core CONDITION QT_FEATURE_process AND UNIX
io/forkfd_qt.c
INCLUDE_DIRECTORIES
../3rdparty/forkfd
+ ATTRIBUTION_FILE_DIR_PATHS
+ ../3rdparty/forkfd
)
qt_internal_extend_target(Core CONDITION APPLE AND QT_FEATURE_processenvironment
diff --git a/src/corelib/configure.cmake b/src/corelib/configure.cmake
index b34086c8ada..93ccf87e11b 100644
--- a/src/corelib/configure.cmake
+++ b/src/corelib/configure.cmake
@@ -26,6 +26,9 @@ qt_find_package(WrapSystemDoubleConversion
PROVIDED_TARGETS WrapSystemDoubleConversion::WrapSystemDoubleConversion
MODULE_NAME core QMAKE_LIB doubleconversion)
qt_find_package(GLIB2 PROVIDED_TARGETS GLIB2::GLIB2 MODULE_NAME core QMAKE_LIB glib)
+qt_find_package_extend_sbom(TARGETS GLIB2::GLIB2
+ LICENSE_EXPRESSION "LGPL-2.1-or-later"
+)
qt_find_package(ICU 50.1 COMPONENTS i18n uc data PROVIDED_TARGETS ICU::i18n ICU::uc ICU::data
MODULE_NAME core QMAKE_LIB icu)
@@ -35,6 +38,9 @@ endif()
qt_find_package(Libsystemd PROVIDED_TARGETS PkgConfig::Libsystemd MODULE_NAME core QMAKE_LIB journald)
qt_find_package(WrapAtomic PROVIDED_TARGETS WrapAtomic::WrapAtomic MODULE_NAME core QMAKE_LIB libatomic)
qt_find_package(Libb2 PROVIDED_TARGETS Libb2::Libb2 MODULE_NAME core QMAKE_LIB libb2)
+qt_find_package_extend_sbom(TARGETS Libb2::Libb2
+ LICENSE_EXPRESSION "CC0-1.0"
+)
qt_find_package(WrapRt PROVIDED_TARGETS WrapRt::WrapRt MODULE_NAME core QMAKE_LIB librt)
qt_find_package(WrapSystemPCRE2 10.20 PROVIDED_TARGETS WrapSystemPCRE2::WrapSystemPCRE2 MODULE_NAME core QMAKE_LIB pcre2)
set_package_properties(WrapPCRE2 PROPERTIES TYPE REQUIRED)
diff --git a/src/gui/CMakeLists.txt b/src/gui/CMakeLists.txt
index af781277058..edf6ef09e99 100644
--- a/src/gui/CMakeLists.txt
+++ b/src/gui/CMakeLists.txt
@@ -294,6 +294,12 @@ qt_internal_add_module(Gui
"(^|/)qplatform.+\\.h$|(^|/)qwindowsystem.+\\.h$"
RHI_HEADER_FILTERS
"(^|/)qrhi\\.h$|(^|/)qrhi_platform\\.h$|(^|/)qshader\\.h$|(^|/)qshaderdescription\\.h$"
+ ATTRIBUTION_FILE_DIR_PATHS
+ rhi
+ opengl
+ painting
+ text
+ ../3rdparty/VulkanMemoryAllocator
)
# Resources:
@@ -305,6 +311,15 @@ if(QT_FEATURE_pdf)
"../3rdparty/icc/sRGB2014.icc"
"painting/qpdfa_metadata.xml"
)
+ qt_internal_extend_target(Gui
+ ATTRIBUTION_FILE_DIR_PATHS
+ ../3rdparty/icc
+ )
+ qt_internal_sbom_add_license(
+ LICENSE_ID "ICC-License"
+ LICENSE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../3rdparty/icc/LICENSE.txt"
+ )
+
qt_internal_add_resource(Gui "qpdf"
PREFIX
"/qpdf/"
@@ -463,6 +478,8 @@ qt_internal_extend_target(Gui CONDITION WIN32
dxgi
dxguid
d3d12
+ ATTRIBUTION_FILE_DIR_PATHS
+ ../3rdparty/D3D12MemoryAllocator
)
if(QT_FEATURE_graphicsframecapture)
@@ -719,6 +736,8 @@ qt_internal_extend_target(Gui CONDITION QT_FEATURE_textmarkdownreader AND NOT QT
MD4C_USE_UTF8
INCLUDE_DIRECTORIES
../3rdparty/md4c
+ ATTRIBUTION_FILE_DIR_PATHS
+ ../3rdparty/md4c
)
qt_internal_extend_target(Gui CONDITION QT_FEATURE_textmarkdownwriter
@@ -798,7 +817,12 @@ qt_internal_extend_target(Gui CONDITION MINGW AND WIN32
# Note: These helpers are only used for 16-bit surfaces, so excluding them does not generally
# exclude neon-drawhelpers on these platforms.
if(UNIX AND NOT ANDROID AND NOT INTEGRITY AND NOT (TEST_architecture_arch STREQUAL "arm64") AND NOT UIKIT AND NOT QT_IS_MACOS_UNIVERSAL)
- qt_internal_extend_target(Gui DEFINES ENABLE_PIXMAN_DRAWHELPERS)
+ qt_internal_extend_target(Gui
+ DEFINES
+ ENABLE_PIXMAN_DRAWHELPERS
+ ATTRIBUTION_FILE_DIR_PATHS
+ ../3rdparty/pixman
+ )
qt_internal_add_simd_part(Gui SIMD neon
SOURCES
../3rdparty/pixman/pixman-arm-neon-asm.S
@@ -823,6 +847,8 @@ qt_internal_extend_target(Gui CONDITION QT_FEATURE_system_zlib
qt_internal_extend_target(Gui CONDITION NOT QT_FEATURE_system_zlib
INCLUDE_DIRECTORIES
../3rdparty/zlib/src
+ ATTRIBUTION_FILE_DIR_PATHS
+ ../3rdparty/zlib
)
qt_internal_extend_target(Gui CONDITION NOT QT_FEATURE_system_zlib AND NOT no_core_dep
@@ -888,6 +914,8 @@ qt_internal_extend_target(Gui CONDITION QT_FEATURE_vulkan
vulkan/qvulkanfunctions.cpp
vulkan/qvulkaninstance.cpp vulkan/qvulkaninstance.h vulkan/qvulkaninstance_p.h
vulkan/qvulkanwindow.cpp vulkan/qvulkanwindow.h vulkan/qvulkanwindow_p.h
+ ATTRIBUTION_FILE_DIR_PATHS
+ vulkan
)
if(QT_FEATURE_vulkan)
qt_internal_add_target_include_dirs_and_optionally_propagate(
diff --git a/src/gui/configure.cmake b/src/gui/configure.cmake
index da08863ac69..d3773b3e15c 100644
--- a/src/gui/configure.cmake
+++ b/src/gui/configure.cmake
@@ -48,6 +48,16 @@ qt_add_qmake_lib_dependency(fontconfig freetype)
qt_find_package(gbm PROVIDED_TARGETS gbm::gbm MODULE_NAME gui QMAKE_LIB gbm)
qt_find_package(WrapSystemHarfbuzz 2.6.0 PROVIDED_TARGETS WrapSystemHarfbuzz::WrapSystemHarfbuzz MODULE_NAME gui QMAKE_LIB harfbuzz)
qt_find_package(Libinput PROVIDED_TARGETS Libinput::Libinput MODULE_NAME gui QMAKE_LIB libinput)
+qt_find_package_extend_sbom(TARGETS Libinput::Libinput
+ COPYRIGHTS
+ "Copyright © 2006-2009 Simon Thum"
+ "Copyright © 2008-2012 Kristian Høgsberg"
+ "Copyright © 2010-2012 Intel Corporation"
+ "Copyright © 2010-2011 Benjamin Franzke"
+ "Copyright © 2011-2012 Collabora, Ltd."
+ "Copyright © 2013-2014 Jonas Ådahl"
+ "Copyright © 2013-2015 Red Hat, Inc."
+)
qt_find_package(WrapSystemJpeg PROVIDED_TARGETS WrapSystemJpeg::WrapSystemJpeg MODULE_NAME gui QMAKE_LIB libjpeg)
qt_find_package(WrapSystemMd4c PROVIDED_TARGETS WrapSystemMd4c::WrapSystemMd4c MODULE_NAME gui QMAKE_LIB libmd4c)
qt_find_package(WrapSystemPNG PROVIDED_TARGETS WrapSystemPNG::WrapSystemPNG MODULE_NAME gui QMAKE_LIB libpng)
diff --git a/src/network/CMakeLists.txt b/src/network/CMakeLists.txt
index 2e028230bd6..7029548b180 100644
--- a/src/network/CMakeLists.txt
+++ b/src/network/CMakeLists.txt
@@ -166,6 +166,8 @@ qt_internal_extend_target(Network CONDITION QT_FEATURE_system_zlib
qt_internal_extend_target(Network CONDITION NOT QT_FEATURE_system_zlib
INCLUDE_DIRECTORIES
../3rdparty/zlib/src
+ ATTRIBUTION_FILE_DIR_PATHS
+ ../3rdparty/zlib
)
qt_internal_extend_target(Network CONDITION NOT QT_FEATURE_system_zlib AND NOT no_core_dep
@@ -179,6 +181,8 @@ qt_internal_extend_target(Network CONDITION QT_FEATURE_topleveldomain
../3rdparty/libpsl/src/lookup_string_in_fixed_set.c
INCLUDE_DIRECTORIES
../3rdparty/libpsl
+ ATTRIBUTION_FILE_DIR_PATHS
+ ../3rdparty/libpsl
)
qt_internal_extend_target(Network CONDITION QT_FEATURE_dnslookup
diff --git a/src/plugins/platforms/wasm/CMakeLists.txt b/src/plugins/platforms/wasm/CMakeLists.txt
index 775946aaf9a..caf5d3dff69 100644
--- a/src/plugins/platforms/wasm/CMakeLists.txt
+++ b/src/plugins/platforms/wasm/CMakeLists.txt
@@ -44,6 +44,8 @@ qt_internal_add_plugin(QWasmIntegrationPlugin
Qt::CorePrivate
Qt::Gui
Qt::GuiPrivate
+ ATTRIBUTION_FILE_DIR_PATHS
+ ../../../3rdparty/wasm
)
# Resources:
diff --git a/src/plugins/platforms/windows/CMakeLists.txt b/src/plugins/platforms/windows/CMakeLists.txt
index f2d46ed2659..bbb8c46cf67 100644
--- a/src/plugins/platforms/windows/CMakeLists.txt
+++ b/src/plugins/platforms/windows/CMakeLists.txt
@@ -131,6 +131,8 @@ qt_internal_extend_target(QWindowsIntegrationPlugin CONDITION QT_FEATURE_tablete
qwindowstabletsupport.cpp qwindowstabletsupport.h
INCLUDE_DIRECTORIES
${QtBase_SOURCE_DIR}/src/3rdparty/wintab
+ ATTRIBUTION_FILE_DIR_PATHS
+ ../../../3rdparty/wintab
)
qt_internal_extend_target(QWindowsIntegrationPlugin CONDITION QT_FEATURE_sessionmanager
diff --git a/src/plugins/platforms/xcb/CMakeLists.txt b/src/plugins/platforms/xcb/CMakeLists.txt
index 96758e71816..4fa6c1e9789 100644
--- a/src/plugins/platforms/xcb/CMakeLists.txt
+++ b/src/plugins/platforms/xcb/CMakeLists.txt
@@ -146,6 +146,10 @@ qt_internal_extend_target(XcbQpaPrivate CONDITION QT_FEATURE_fontconfig AND QT_F
if(QT_FEATURE_system_xcb_xinput)
qt_internal_extend_target(XcbQpaPrivate LIBRARIES XCB::XINPUT)
else()
+ qt_internal_extend_target(XcbQpaPrivate
+ ATTRIBUTION_FILE_DIR_PATHS
+ ../../../3rdparty/xcb
+ )
set(xinput_source "${PROJECT_SOURCE_DIR}/src/3rdparty/xcb/libxcb/xinput.c")
set_source_files_properties(
"${xinput_source}"
diff --git a/src/plugins/sqldrivers/sqlite/CMakeLists.txt b/src/plugins/sqldrivers/sqlite/CMakeLists.txt
index 4203a5c4374..e667034c2e5 100644
--- a/src/plugins/sqldrivers/sqlite/CMakeLists.txt
+++ b/src/plugins/sqldrivers/sqlite/CMakeLists.txt
@@ -60,6 +60,8 @@ qt_internal_extend_target(QSQLiteDriverPlugin CONDITION NOT QT_FEATURE_system_sq
SQLITE_OMIT_COMPLETE
INCLUDE_DIRECTORIES
../../../3rdparty/sqlite
+ ATTRIBUTION_FILE_DIR_PATHS
+ ../../../3rdparty/sqlite
)
qt_internal_extend_target(QSQLiteDriverPlugin CONDITION CMAKE_BUILD_TYPE STREQUAL Release AND NOT QT_FEATURE_system_sqlite
diff --git a/src/testlib/CMakeLists.txt b/src/testlib/CMakeLists.txt
index 76643671617..944bd9876d3 100644
--- a/src/testlib/CMakeLists.txt
+++ b/src/testlib/CMakeLists.txt
@@ -78,6 +78,8 @@ qt_internal_add_module(Test
Qt::Core
PRIVATE_MODULE_INTERFACE
Qt::CorePrivate
+ ATTRIBUTION_FILE_DIR_PATHS
+ 3rdparty
)
if(TARGET Gui)
diff --git a/src/tools/bootstrap/CMakeLists.txt b/src/tools/bootstrap/CMakeLists.txt
index 93e826fa224..ad95d77d00e 100644
--- a/src/tools/bootstrap/CMakeLists.txt
+++ b/src/tools/bootstrap/CMakeLists.txt
@@ -8,6 +8,10 @@
# The bootstrap library has a few manual tweaks compared to other
# libraries.
qt_add_library(Bootstrap STATIC)
+qt_internal_add_sbom(Bootstrap
+ TYPE QT_MODULE
+ NO_INSTALL
+)
qt_internal_add_sync_header_dependencies(Bootstrap Core)
@@ -199,6 +203,8 @@ qt_internal_extend_target(Bootstrap CONDITION CMAKE_CROSSCOMPILING OR NOT QT_FEA
PCRE2_DISABLE_JIT
PUBLIC_INCLUDE_DIRECTORIES
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../../3rdparty/pcre2/src>
+ ATTRIBUTION_FILE_DIR_PATHS
+ ../../3rdparty/pcre2
)
qt_internal_extend_target(Bootstrap
diff --git a/src/tools/moc/CMakeLists.txt b/src/tools/moc/CMakeLists.txt
index b98b7ab4e9b..14fc9762a5f 100644
--- a/src/tools/moc/CMakeLists.txt
+++ b/src/tools/moc/CMakeLists.txt
@@ -38,6 +38,16 @@ qt_internal_add_tool(${target_name}
)
qt_internal_return_unless_building_tools()
+qt_internal_extend_sbom(${target_name}
+ COPYRIGHTS
+ "Copyright (C) 2013 Olivier Goffart <[email protected]>"
+ "Copyright (C) 2014 Olivier Goffart <[email protected]>"
+ "Copyright (C) 2016 Intel Corporation."
+ "Copyright (C) 2018 Intel Corporation."
+ "Copyright (C) 2018 The Qt Company Ltd."
+ "Copyright (C) 2019 Olivier Goffart <[email protected]>"
+)
+
## Scopes:
#####################################################################