diff options
Diffstat (limited to 'src/CMakeLists.txt')
-rw-r--r-- | src/CMakeLists.txt | 56 |
1 files changed, 42 insertions, 14 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index e7600542e..0084697f2 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,9 +1,14 @@ +# Copyright (C) 2022 The Qt Company Ltd. +# SPDX-License-Identifier: BSD-3-Clause + ## # MAIN CONFIGURE ## -get_filename_component(WEBENGINE_ROOT_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/.." REALPATH) -get_filename_component(WEBENGINE_ROOT_BUILD_DIR "${PROJECT_BINARY_DIR}" REALPATH) +qt_internal_get_filename_path_mode(path_mode) + +get_filename_component(WEBENGINE_ROOT_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/.." ${path_mode}) +get_filename_component(WEBENGINE_ROOT_BUILD_DIR "${PROJECT_BINARY_DIR}" ${path_mode}) # Note this is configure that does not belong to any module qt_feature_module_begin(ONLY_EVALUATE_FEATURES) @@ -73,13 +78,13 @@ if(QT_FEATURE_qtpdf_build) add_subdirectory(pdf) # keep log order, pdf build after webengine if(QT_FEATURE_qtwebengine_core_build) - add_dependencies(run_pdf_GnReady WebEngineCore) + add_dependencies(run_pdf_NinjaReady WebEngineCore) endif() if(QT_FEATURE_qtwebengine_widgets_build) - add_dependencies(run_pdf_GnReady WebEngineWidgets) + add_dependencies(run_pdf_NinjaReady WebEngineWidgets) endif() if(QT_FEATURE_qtwebengine_quick_build) - add_dependencies(run_pdf_GnReady WebEngineQuick) + add_dependencies(run_pdf_NinjaReady WebEngineQuick) endif() if(QT_FEATURE_qtpdf_widgets_build) add_subdirectory(pdfwidgets) @@ -137,6 +142,7 @@ if(NOT Gn_FOUND) -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DCMAKE_PREFIX_PATH:PATH=<INSTALL_DIR> -DWEBENGINE_ROOT_BUILD_DIR=${PROJECT_BINARY_DIR} + -DQT_ALLOW_SYMLINK_IN_PATHS=${QT_ALLOW_SYMLINK_IN_PATHS} ) if(QT_FEATURE_qtwebengine_core_build) add_dependencies(run_core_GnReady gn) @@ -146,7 +152,8 @@ if(NOT Gn_FOUND) endif() endif() -if(NOT Gn_FOUND OR Gn_EXECUTABLE MATCHES "^${installDir}") +string(REGEX REPLACE "(.)" "\\\\\\1" path_to_match "${installDir}") +if(NOT Gn_FOUND OR Gn_EXECUTABLE MATCHES "^${path_to_match}") set(INSTALL_GN 1 CACHE INTERNAL "") endif() @@ -166,7 +173,8 @@ if(CMAKE_CROSSCOMPILING AND NOT IOS AND NOT MACOS) PREFIX host USES_TERMINAL_BUILD TRUE EXCLUDE_FROM_ALL TRUE - CMAKE_ARGS -DCMAKE_TOOLCHAIN_FILE=${QT_HOST_PATH}/lib/cmake/Qt6/qt.toolchain.cmake + CMAKE_ARGS -DCMAKE_TOOLCHAIN_FILE=${QT_HOST_PATH_CMAKE_DIR}/Qt6/qt.toolchain.cmake + -DQT_USE_ORIGINAL_COMPILER=ON -DWEBENGINE_ROOT_BUILD_DIR=${PROJECT_BINARY_DIR} -DWEBENGINE_ROOT_SOURCE_DIR=${WEBENGINE_ROOT_SOURCE_DIR} -DGN_TARGET_CPU=${TEST_architecture_arch} @@ -184,12 +192,32 @@ if(CMAKE_CROSSCOMPILING AND NOT IOS AND NOT MACOS) endif() # install gn for cross build -if((LINUX OR MACOS) AND INSTALL_GN) - get_install_config(installConfig) - install( - PROGRAMS ${installDir}/bin/gn - CONFIGURATIONS ${installConfig} - RUNTIME DESTINATION "${INSTALL_LIBEXECDIR}" - ) +if((LINUX OR MACOS OR WIN32) AND INSTALL_GN) + if(NOT QT_WILL_INSTALL) + set(copyOutput + ${QT_BUILD_DIR}/${INSTALL_LIBEXECDIR}/gn${CMAKE_EXECUTABLE_SUFFIX} + ) + if(Gn_FOUND) + set(copyInput ${Gn_EXECUTABLE}) + set(copyDep ${Gn_EXECUTABLE}) + else() + set(copyInput ${installDir}/bin/gn${CMAKE_EXECUTABLE_SUFFIX}) + set(copyDep gn) + endif() + add_custom_target(copy-gn ALL DEPENDS ${copyOutput}) + add_custom_command( + OUTPUT ${copyOutput} + COMMAND ${CMAKE_COMMAND} -E copy ${copyInput} ${QT_BUILD_DIR}/${INSTALL_LIBEXECDIR} + DEPENDS ${copyDep} + USES_TERMINAL + ) + else() + get_install_config(installConfig) + install( + PROGRAMS "${installDir}/bin/gn${CMAKE_EXECUTABLE_SUFFIX}" + CONFIGURATIONS ${installConfig} + RUNTIME DESTINATION "${INSTALL_LIBEXECDIR}" + ) + endif() endif() |