summaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
authorMichal Klocek <michal.klocek@qt.io>2023-03-29 14:20:33 +0200
committerMichal Klocek <michal.klocek@qt.io>2023-03-30 01:17:04 +0200
commite368689df5566462ceea28c06803f9a0abf91cc5 (patch)
tree51f46594ccb747ddb74f27cc4660d3151412e5c5 /cmake
parent67eb9e151f75ff1fc570c27ede7868f40ed299ff (diff)
downloadqtwebengine-e368689df5566462ceea28c06803f9a0abf91cc5.tar.gz
Require gn for generating docs
Make sure gn is build before doc target, otherwise parallel top level build might not succeed. As configure runs the gn binary is not compiled so use scripting mode to execute gn call during build time. Pick-to: 6.5 Task-number: QTBUG-108751 Change-Id: I7e851de90e2a3ec52f5259d51f677b23d8245bcb Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io>
Diffstat (limited to 'cmake')
-rw-r--r--cmake/Functions.cmake24
-rw-r--r--cmake/License.cmake42
2 files changed, 56 insertions, 10 deletions
diff --git a/cmake/Functions.cmake b/cmake/Functions.cmake
index 8c666a7ac..7562bffb6 100644
--- a/cmake/Functions.cmake
+++ b/cmake/Functions.cmake
@@ -1335,17 +1335,21 @@ function(add_code_attributions_target)
get_filename_component(entryTemplate ${arg_ENTRY_TEMPLATE} ABSOLUTE)
add_custom_command(
OUTPUT ${arg_OUTPUT}
- COMMAND ${Python3_EXECUTABLE} ${WEBENGINE_ROOT_SOURCE_DIR}/src/3rdparty/chromium/tools/licenses.py
- --file-template ${fileTemplate}
- --entry-template ${entryTemplate}
- --gn-binary ${Gn_EXECUTABLE}
- --gn-target ${arg_GN_TARGET} --gn-out-dir ${arg_BUILDDIR}
- credits ${arg_OUTPUT}
- WORKING_DIRECTORY ${arg_BUILDDIR}
+ COMMAND ${CMAKE_COMMAND}
+ -DLICENSE_SCRIPT=${WEBENGINE_ROOT_SOURCE_DIR}/src/3rdparty/chromium/tools/licenses.py
+ -DFILE_TEMPLATE=${fileTemplate}
+ -DENTRY_TEMPLATE=${entryTemplate}
+ -DGN_TARGET=${arg_GN_TARGET}
+ -DBUILDDIR=${arg_BUILDDIR}
+ -DOUTPUT=${arg_OUTPUT}
+ -DPython3_EXECUTABLE=${Python3_EXECUTABLE}
+ -P ${WEBENGINE_ROOT_SOURCE_DIR}/cmake/License.cmake
+ WORKING_DIRECTORY ${WEBENGINE_ROOT_BUILD_DIR}
DEPENDS
- ${WEBENGINE_ROOT_SOURCE_DIR}/src/3rdparty/chromium/tools/licenses.py
- ${arg_FILE_TEMPLATE}
- ${arg_ENTRY_TEMPLATE}
+ ${WEBENGINE_ROOT_SOURCE_DIR}/src/3rdparty/chromium/tools/licenses.py
+ ${arg_FILE_TEMPLATE}
+ ${arg_ENTRY_TEMPLATE}
+ ${WEBENGINE_ROOT_SOURCE_DIR}/cmake/License.cmake
USES_TERMINAL
)
add_custom_target(${arg_TARGET} DEPENDS ${arg_OUTPUT})
diff --git a/cmake/License.cmake b/cmake/License.cmake
new file mode 100644
index 000000000..dc1e286f1
--- /dev/null
+++ b/cmake/License.cmake
@@ -0,0 +1,42 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
+if(NOT CMAKE_SCRIPT_MODE_FILE)
+ message("This files should run only in script mode")
+ return()
+endif()
+
+get_filename_component(WEBENGINE_ROOT_SOURCE_DIR "${CMAKE_CURRENT_LIST_DIR}/.." REALPATH)
+get_filename_component(WEBENGINE_ROOT_BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}" REALPATH)
+
+include(${WEBENGINE_ROOT_SOURCE_DIR}/.cmake.conf)
+include(${WEBENGINE_ROOT_SOURCE_DIR}/cmake/Functions.cmake)
+
+set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR})
+
+find_package(Gn ${QT_REPO_MODULE_VERSION} EXACT)
+if(NOT Python3_EXECUTABLE)
+ find_package(Python3 3.6 REQUIRED)
+endif()
+
+execute_process(
+ COMMAND ${Python3_EXECUTABLE} ${LICENSE_SCRIPT}
+ --file-template ${FILE_TEMPLATE}
+ --entry-template ${ENTRY_TEMPLATE}
+ --gn-binary ${Gn_EXECUTABLE}
+ --gn-target ${GN_TARGET}
+ --gn-out-dir ${BUILDDIR}
+ credits ${OUTPUT}
+ WORKING_DIRECTORY ${BUILDDIR}
+ RESULT_VARIABLE gnResult
+ OUTPUT_VARIABLE gnOutput
+ ERROR_VARIABLE gnError
+ TIMEOUT 600
+)
+
+if(NOT gnResult EQUAL 0)
+ message(FATAL_ERROR "\n-- License FAILED\n${gnOutput}\n${gnError}\n${gnResult}\n")
+else()
+ string(REGEX REPLACE "\n$" "" gnOutput "${gnOutput}")
+ message("-- License ${gnOutput}")
+endif()