summaryrefslogtreecommitdiff
path: root/cmake/mbgl.cmake
blob: 752f05619cbc944b1d7d57c3be2d727b2ff37f53 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
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")

set(CMAKE_OSX_DEPLOYMENT_TARGET 10.10)

# 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")