diff options
author | Michal Klocek <michal.klocek@qt.io> | 2023-03-29 14:20:33 +0200 |
---|---|---|
committer | Michal Klocek <michal.klocek@qt.io> | 2023-03-30 01:17:04 +0200 |
commit | e368689df5566462ceea28c06803f9a0abf91cc5 (patch) | |
tree | 51f46594ccb747ddb74f27cc4660d3151412e5c5 /cmake | |
parent | 67eb9e151f75ff1fc570c27ede7868f40ed299ff (diff) | |
download | qtwebengine-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.cmake | 24 | ||||
-rw-r--r-- | cmake/License.cmake | 42 |
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() |