summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt2
-rw-r--r--cmake/FindGn.cmake25
-rw-r--r--configure.cmake2
-rw-r--r--src/core/CMakeLists.txt2
-rw-r--r--src/gn/CMakeLists.txt14
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
)