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 | |
parent | 67eb9e151f75ff1fc570c27ede7868f40ed299ff (diff) |
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>
-rw-r--r-- | cmake/Functions.cmake | 24 | ||||
-rw-r--r-- | cmake/License.cmake | 42 | ||||
-rw-r--r-- | src/core/api/CMakeLists.txt | 1 | ||||
-rw-r--r-- | src/pdf/CMakeLists.txt | 1 |
4 files changed, 58 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() diff --git a/src/core/api/CMakeLists.txt b/src/core/api/CMakeLists.txt index 86dfb9910..ba973fd32 100644 --- a/src/core/api/CMakeLists.txt +++ b/src/core/api/CMakeLists.txt @@ -95,6 +95,7 @@ add_code_attributions_target( ENTRY_TEMPLATE ../doc/about_credits_entry.tmpl BUILDDIR ${buildDir}/${config}/${arch} ) +add_dependencies(generate_chromium_attributions run_core_GnDone) add_dependencies(docs generate_chromium_attributions) ## diff --git a/src/pdf/CMakeLists.txt b/src/pdf/CMakeLists.txt index 492a5893c..e84248b6a 100644 --- a/src/pdf/CMakeLists.txt +++ b/src/pdf/CMakeLists.txt @@ -63,6 +63,7 @@ add_code_attributions_target( ENTRY_TEMPLATE doc/about_credits_entry.tmpl BUILDDIR ${buildDir}/${config}/${arch} ) +add_dependencies(generate_pdf_attributions run_pdf_GnDone) add_dependencies(docs generate_pdf_attributions) ## |