summaryrefslogtreecommitdiffstats
path: root/src/gn/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'src/gn/CMakeLists.txt')
-rw-r--r--src/gn/CMakeLists.txt25
1 files changed, 23 insertions, 2 deletions
diff --git a/src/gn/CMakeLists.txt b/src/gn/CMakeLists.txt
index 3897e123d..0fe3e4e05 100644
--- a/src/gn/CMakeLists.txt
+++ b/src/gn/CMakeLists.txt
@@ -11,7 +11,12 @@ project(Gn
)
if(NOT DEFINED WEBENGINE_ROOT_SOURCE_DIR)
- get_filename_component(WEBENGINE_ROOT_SOURCE_DIR "${CMAKE_CURRENT_LIST_DIR}/../.." REALPATH)
+ set(path_mode REALPATH)
+ if(APPLE AND QT_ALLOW_SYMLINK_IN_PATHS)
+ set(path_mode ABSOLUTE)
+ endif()
+
+ get_filename_component(WEBENGINE_ROOT_SOURCE_DIR "${CMAKE_CURRENT_LIST_DIR}/../.." ${path_mode})
endif()
include(${WEBENGINE_ROOT_SOURCE_DIR}/.cmake.conf)
@@ -26,7 +31,7 @@ find_package(Ninja 1.7.2 REQUIRED)
if(WIN32)
set(GN_EXECUTABLE gn.exe)
- if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
+ if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND NOT MINGW)
# Use lld-link instead of clang-cl.
set(GN_LINKER ${CMAKE_LINKER})
endif()
@@ -35,6 +40,21 @@ else()
endif()
file(MAKE_DIRECTORY ${GN_BINARY_DIR})
+
+if((UNIX AND NOT APPLE) AND
+ (CMAKE_CXX_COMPILER_ID STREQUAL GNU OR
+ CMAKE_CXX_COMPILER_ID STREQUAL Clang))
+ set(platform linux)
+elseif(MSVC)
+ set(platform msvc)
+elseif(MINGW)
+ set(platform mingw)
+elseif(APPLE AND CMAKE_CXX_COMPILER_ID STREQUAL AppleClang)
+ set(platform darwin)
+else()
+ message(FATAL_ERROR "Unsupported gn platform !")
+endif()
+
add_custom_command(
OUTPUT ${GN_EXECUTABLE}
WORKING_DIRECTORY ${GN_BINARY_DIR}
@@ -44,6 +64,7 @@ add_custom_command(
--cc ${CMAKE_C_COMPILER}
--cxx ${CMAKE_CXX_COMPILER}
--ld ${GN_LINKER}
+ --platform ${platform}
--ar ${CMAKE_AR}
--qt-version "${QT_REPO_MODULE_VERSION}.qtwebengine.qt.io"
$<$<PLATFORM_ID:Darwin>:--isysroot>