blob: 905efed137076b94ae7806df574cc40ef8a950f7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
# Copyright (C) 2024 The Qt Company Ltd.
# SPDX-License-Identifier: BSD-3-Clause
# This is a wrapper around sbom.py which creates an SBOM document for a GN-based target.
if(NOT CMAKE_SCRIPT_MODE_FILE)
message(FATAL_ERROR "This file should run only in script mode")
return()
endif()
foreach(variable
Python3_EXECUTABLE SCRIPT_PATH GN_TARGET_LIST BUILD_DIR_LIST
PACKAGE_ID DOC_NAMESPACE OUTPUT)
if(NOT DEFINED ${variable} OR "${${variable}}" STREQUAL "")
message(FATAL_ERROR "\n${variable} not set (${${variable}})\n")
endif()
endforeach()
set(path_mode REALPATH)
if(APPLE AND QT_ALLOW_SYMLINK_IN_PATHS)
set(path_mode ABSOLUTE)
endif()
get_filename_component(WEBENGINE_ROOT_SOURCE_DIR "${CMAKE_CURRENT_LIST_DIR}/.." ${path_mode})
get_filename_component(WEBENGINE_ROOT_BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}" ${path_mode})
include(${WEBENGINE_ROOT_SOURCE_DIR}/.cmake.conf)
include(${WEBENGINE_ROOT_SOURCE_DIR}/cmake/QtBuildGnHelpers.cmake)
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR})
find_package(Gn ${QT_REPO_MODULE_VERSION} EXACT MODULE REQUIRED)
execute_process(
COMMAND "${Python3_EXECUTABLE}" "${SCRIPT_PATH}"
--gn-binary "${Gn_EXECUTABLE}"
--gn-target-list "${GN_TARGET_LIST}"
--build-dir-list "${BUILD_DIR_LIST}"
--gn-version ${Gn_VERSION}
--package-id ${PACKAGE_ID}
--namespace "${DOC_NAMESPACE}"
"${OUTPUT}"
RESULT_VARIABLE gn_result
OUTPUT_VARIABLE gn_output
ERROR_VARIABLE gn_error
TIMEOUT 600
)
if(NOT gn_result EQUAL 0)
string(REGEX REPLACE "\n$" "" gn_output "${gn_output}")
string(REGEX REPLACE "\n$" "" gn_error "${gn_error}")
message(FATAL_ERROR "\n-- SBOM generation FAILED\n${gn_output}\n${gn_error}\n-- Exit code: ${gn_result}\n")
endif()
|