diff options
-rw-r--r-- | CMakeLists.txt | 2 | ||||
-rw-r--r-- | cmake/FindGn.cmake | 25 | ||||
-rw-r--r-- | configure.cmake | 2 | ||||
-rw-r--r-- | src/core/CMakeLists.txt | 2 | ||||
-rw-r--r-- | src/gn/CMakeLists.txt | 14 |
5 files changed, 35 insertions, 10 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 1281ef59b..fb1050109 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -77,7 +77,7 @@ if(NOT Ninja_FOUND) CMAKE_ARGS -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DCMAKE_PREFIX_PATH:PATH=<INSTALL_DIR> -) + ) endif() ### GN diff --git a/cmake/FindGn.cmake b/cmake/FindGn.cmake index dfbe5b363..12a90778c 100644 --- a/cmake/FindGn.cmake +++ b/cmake/FindGn.cmake @@ -3,13 +3,32 @@ if (NOT DEFINED WEBENGINE_ROOT_BUILD_DIR) endif() set(CMAKE_PROGRAM_PATH ${WEBENGINE_ROOT_BUILD_DIR}/install/bin) + find_program(Gn_EXECUTABLE NAMES gn) +if(Gn_EXECUTABLE) + execute_process( + COMMAND ${Gn_EXECUTABLE} --version + OUTPUT_VARIABLE Gn_VERSION + ERROR_QUIET + OUTPUT_STRIP_TRAILING_WHITESPACE) +endif() + +string(REGEX MATCHALL "([1-9]\.[0-9]\.[0-9])\.qtwebengine\.qt\.io.*" Gn_QT_VERSION "${Gn_VERSION}") +if("${Gn_QT_VERSION}") + set(Gn_VERSION "${Gn_QT_VERSION}") +endif() + include(FindPackageHandleStandardArgs) -find_package_handle_standard_args( - Gn - REQUIRED_VARS Gn_EXECUTABLE) +find_package_handle_standard_args(Gn + FOUND_VAR + Gn_FOUND + VERSION_VAR + Gn_VERSION + REQUIRED_VARS + Gn_EXECUTABLE +) if(Gn_FOUND AND NOT TARGET Gn::gn) add_executable(Gn::gn IMPORTED) diff --git a/configure.cmake b/configure.cmake index fa8e6b9b0..539cdb907 100644 --- a/configure.cmake +++ b/configure.cmake @@ -3,7 +3,7 @@ #### Libraries find_package(Ninja 1.7.2) -find_package(Gn) +find_package(Gn ${QT_REPO_MODULE_VERSION} EXACT) find_package(Python2 2.7.5) find_package(GPerf) find_package(BISON) diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index 5017a552b..2a545f5b2 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt @@ -16,7 +16,7 @@ assertRunAsTopLevelBuild(TRUE) add_subdirectory(api) find_package(Qt6 ${PROJECT_VERSION} CONFIG REQUIRED COMPONENTS BuildInternals Core) -find_package(Gn REQUIRED) +find_package(Gn ${QT_REPO_MODULE_VERSION} EXACT REQUIRED) find_package(Ninja 1.7.2 REQUIRED) find_package(Python2 2.7.5 REQUIRED) find_package(Nodejs 12.0) diff --git a/src/gn/CMakeLists.txt b/src/gn/CMakeLists.txt index 9a11184c3..4d25debb9 100644 --- a/src/gn/CMakeLists.txt +++ b/src/gn/CMakeLists.txt @@ -7,9 +7,15 @@ project(Gn LANGUAGES CXX C ) -set(GN_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../3rdparty/gn) +if(NOT DEFINED WEBENGINE_ROOT_SOURCE_DIR) + get_filename_component(WEBENGINE_ROOT_SOURCE_DIR "${CMAKE_CURRENT_LIST_DIR}/../.." REALPATH) +endif() + +include(${WEBENGINE_ROOT_SOURCE_DIR}/.cmake.conf) + +set(GN_SOURCE_DIR ${WEBENGINE_ROOT_SOURCE_DIR}/src/3rdparty/gn) set(GN_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}) -set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/../../cmake") +set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${WEBENGINE_ROOT_SOURCE_DIR}/cmake") find_package(Python2 REQUIRED) find_package(Ninja 1.7.2 REQUIRED) @@ -30,6 +36,7 @@ add_custom_command( --cc ${CMAKE_C_COMPILER} --cxx ${CMAKE_CXX_COMPILER} --ld ${CMAKE_CXX_COMPILER} + --qt-version "${QT_REPO_MODULE_VERSION}.qtwebengine.qt.io" $<$<PLATFORM_ID:Darwin>:--isysroot> $<$<PLATFORM_ID:Darwin>:${CMAKE_OSX_SYSROOT}> COMMAND Ninja::ninja -C ${GN_BINARY_DIR}/$<CONFIG> ${GN_EXECUTABLE} @@ -38,7 +45,6 @@ add_custom_command( COMMAND_EXPAND_LISTS ) add_custom_target(Gn ALL DEPENDS ${GN_EXECUTABLE}) -install(FILES ${GN_BINARY_DIR}/$<CONFIG>/${GN_EXECUTABLE} - PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE +install(PROGRAMS ${GN_BINARY_DIR}/$<CONFIG>/${GN_EXECUTABLE} DESTINATION bin ) |