diff options
Diffstat (limited to 'src/gn/CMakeLists.txt')
-rw-r--r-- | src/gn/CMakeLists.txt | 25 |
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> |