51 lines
1.8 KiB
CMake
51 lines
1.8 KiB
CMake
if (NOT MBGL_PLATFORM)
|
|
if (CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin")
|
|
set(MBGL_PLATFORM "macos")
|
|
else()
|
|
set(MBGL_PLATFORM "linux")
|
|
endif()
|
|
endif()
|
|
|
|
if (NOT MASON_PLATFORM)
|
|
set(MASON_PLATFORM "${MBGL_PLATFORM}")
|
|
endif()
|
|
|
|
set(MBGL_GENERATED ${CMAKE_BINARY_DIR}/generated/${CMAKE_CFG_INTDIR})
|
|
|
|
# Generate source groups so the files are properly sorted in IDEs like Xcode.
|
|
function(create_source_groups target)
|
|
get_target_property(sources ${target} SOURCES)
|
|
foreach(file ${sources})
|
|
get_filename_component(file "${file}" ABSOLUTE)
|
|
string(REGEX REPLACE "^${CMAKE_SOURCE_DIR}/" "" group "${file}")
|
|
get_filename_component(group "${group}" DIRECTORY)
|
|
string(REPLACE "/" "\\" group "${group}")
|
|
source_group("${group}" FILES "${file}")
|
|
endforeach()
|
|
endfunction()
|
|
|
|
function(_write_xcconfig_var target var)
|
|
get_property(result TARGET ${target} PROPERTY INTERFACE_${var} SET)
|
|
if (result)
|
|
get_property(result TARGET ${target} PROPERTY INTERFACE_${var})
|
|
string(REPLACE ";" "\" \"" result "${result}")
|
|
string(REPLACE "-" "_" target "${target}")
|
|
file(APPEND "${CMAKE_BINARY_DIR}/config.xcconfig" "${target}_${var} = \"${result}\"\n")
|
|
endif()
|
|
endfunction()
|
|
|
|
function(target_append_xcconfig target)
|
|
file(APPEND "${CMAKE_BINARY_DIR}/config.xcconfig" "\n// ${target}\n")
|
|
_write_xcconfig_var(${target} INCLUDE_DIRECTORIES)
|
|
_write_xcconfig_var(${target} COMPILE_DEFINITIONS)
|
|
_write_xcconfig_var(${target} COMPILE_OPTIONS)
|
|
_write_xcconfig_var(${target} LINK_LIBRARIES)
|
|
endfunction()
|
|
|
|
# Start a new file when we're running CMake
|
|
file(WRITE "${CMAKE_BINARY_DIR}/config.xcconfig" "// Do not edit -- generated by CMake\n")
|
|
|
|
# CMake 3.1 does not have this yet.
|
|
set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "-std=c++14")
|
|
set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "-std=gnu++14")
|