diff options
Diffstat (limited to 'cmake/mbgl.cmake')
-rw-r--r-- | cmake/mbgl.cmake | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/cmake/mbgl.cmake b/cmake/mbgl.cmake index 8c9aa0fe8f..429e4d6172 100644 --- a/cmake/mbgl.cmake +++ b/cmake/mbgl.cmake @@ -85,27 +85,28 @@ macro(set_xcode_property TARGET XCODE_PROPERTY XCODE_VALUE) set_property(TARGET ${TARGET} PROPERTY XCODE_ATTRIBUTE_${XCODE_PROPERTY} ${XCODE_VALUE}) endmacro (set_xcode_property) -function(_write_xcconfig_var target var) +function(_get_xcconfig_property 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") + set(${target}_${var} "${result}" PARENT_SCOPE) 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) +function(write_xcconfig_target_properties) + foreach(target ${ARGN}) + _get_xcconfig_property(${target} INCLUDE_DIRECTORIES) + _get_xcconfig_property(${target} LINK_LIBRARIES) + endforeach() + configure_file( + "${CMAKE_SOURCE_DIR}/scripts/config.xcconfig.in" + "${CMAKE_BINARY_DIR}/config.xcconfig" + @ONLY + ) 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") |