Previously we had complicated logic trying to differentiate between Qt targets, system libraries, vendored libraries, custom sbom targets, whether they are in external documents or not, when generating SBOM dependencies for a target. We also lacked the ability to handle regular non-Qt non-system libraries. This was discovered while creating the SBOM for Qt Creator, where the code treated all Creator helper libraries as system libraries rather than just regular dependencies. Simplify the code by unifying most of the code branches, removing nested ifs, and removing special handling of some targets when checking whether they are in external documents. Now system libraries are marked at qt_find_package time by setting the _qt_internal_sbom_is_system_library property on the target, rather than trying to infer it base on the target name and other markers. Now the logic goes as follows: - check if system library based on the presence of the _qt_internal_sbom_is_system_library property - check if it's a vendored lib based on walking its libs and checking if the _qt_module_is_3rdparty_library property is set - mark system libraries as consumed - if not a system library, handle it as a regular dependency, taking into account if it's external or not Also add some debug messages to help keep track of system libraries. And remove some of the unnecessary code in in _qt_internal_sbom_is_external_target_dependency and _qt_internal_sbom_add_external_target_dependency. Pick-to: 6.8 Task-number: QTBUG-122899 Change-Id: Ic43fe53446b74badee2cde6d18146e952587c292 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> (cherry picked from commit 66261ac0f1f2807916c80b2050536d52b8fe6d3a) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
…
…
Description
Languages
C++
84.3%
HTML
4.9%
C
3.9%
CMake
3.6%
Objective-C++
2%
Other
0.8%