@@ -115,13 +115,15 @@ endfunction()
115
115
116
116
# Creates a library target for a vendored dependency
117
117
function (add_vendor_target NAME TYPE )
118
- add_library (${NAME} ${TYPE} "${CMAKE_CURRENT_SOURCE_DIR} /cmake/empty.cpp" )
119
118
set (INCLUDE_TYPE "INTERFACE" )
120
119
set (SOURCE_TYPE "INTERFACE" )
121
120
if (TYPE STREQUAL "STATIC" OR TYPE STREQUAL "SHARED" )
121
+ add_library (${NAME} ${TYPE} "${CMAKE_CURRENT_SOURCE_DIR} /cmake/empty.cpp" )
122
122
set (INCLUDE_TYPE "PUBLIC" )
123
123
set (SOURCE_TYPE "PRIVATE" )
124
124
set_target_properties (${NAME} PROPERTIES SOURCES "" )
125
+ else ()
126
+ add_library (${NAME} ${TYPE} )
125
127
endif ()
126
128
set_target_properties (${NAME} PROPERTIES INTERFACE_SOURCES "" )
127
129
file (STRINGS "${CMAKE_CURRENT_SOURCE_DIR} /vendor/${NAME} /files.txt" FILES )
@@ -137,48 +139,25 @@ macro(set_xcode_property TARGET XCODE_PROPERTY XCODE_VALUE)
137
139
set_property (TARGET ${TARGET} PROPERTY XCODE_ATTRIBUTE_${XCODE_PROPERTY} ${XCODE_VALUE} )
138
140
endmacro (set_xcode_property)
139
141
140
- function (_get_xcconfig_property target var)
141
- get_property (result TARGET ${target} PROPERTY INTERFACE_${var} SET)
142
- if (result)
143
- get_property (result TARGET ${target} PROPERTY INTERFACE_${var} )
144
- if (var STREQUAL "LINK_LIBRARIES" )
145
- # Remove target names from the list of linker flags, since Xcode can't deal with them.
146
- set (link_flags )
147
- foreach (item IN LISTS result)
148
- if (NOT TARGET ${item} )
149
- list (APPEND link_flags ${item} )
150
- endif ()
151
- endforeach ()
152
- set (result "${link_flags} " )
142
+ function (set_xcconfig_target_properties target )
143
+ # Create a list of linked libraries for use in the xcconfig generation script.
144
+ get_property (result TARGET ${target} PROPERTY INTERFACE_LINK_LIBRARIES)
145
+ string (GENEX_STRIP "${result} " result)
146
+ # Remove target names from the list of linker flags, since Xcode can't deal with them.
147
+ set (link_flags )
148
+ foreach (item IN LISTS result)
149
+ if (NOT TARGET ${item} )
150
+ list (APPEND link_flags ${item} )
153
151
endif ()
154
- string (REPLACE ";-framework " ";-framework;" result "${result} " )
155
- string (REPLACE ";" "\" \" " result "${result} " )
156
- string (REPLACE "-" "_" target "${target} " )
157
- set (${target} _${var} "${result} " PARENT_SCOPE)
158
- endif ()
159
- endfunction ()
160
-
161
- if (MBGL_PLATFORM STREQUAL "ios" )
162
- execute_process (
163
- COMMAND git submodule update --init platform/ios/vendor/mapbox-events-ios
164
- WORKING_DIRECTORY "${CMAKE_SOURCE_DIR} " )
165
- endif ()
166
-
167
- function (write_xcconfig_target_properties)
168
- foreach (target ${ARGN} )
169
- _get_xcconfig_property(${target} INCLUDE_DIRECTORIES )
170
- _get_xcconfig_property(${target} LINK_LIBRARIES )
171
152
endforeach ()
172
- configure_file (
173
- "${CMAKE_SOURCE_DIR} /scripts/config.xcconfig.in"
174
- "${CMAKE_BINARY_DIR} /config.xcconfig"
175
- @ONLY
176
- )
153
+ string (REPLACE ";-framework " ";-framework;" link_flags "${link_flags} " )
154
+ string (REPLACE ";" "\" \" " link_flags "${link_flags} " )
155
+ set_xcode_property(${target} XCCONFIG_LINK_LIBRARIES "${link_flags} " )
177
156
endfunction ()
178
157
179
158
# Set Xcode project build settings to be consistent with the CXX flags we're
180
159
# using. (Otherwise, Xcode's defaults may override some of these.)
181
- macro (initialize_xcode_cxx_build_settings target )
160
+ function (initialize_xcode_cxx_build_settings target )
182
161
# -Wall
183
162
set_xcode_property(${target} GCC_WARN_SIGN_COMPARE YES )
184
163
set_xcode_property(${target} GCC_WARN_UNINITIALIZED_AUTOS YES )
@@ -206,7 +185,7 @@ macro(initialize_xcode_cxx_build_settings target)
206
185
207
186
# -flto
208
187
set_xcode_property(${target} LLVM_LTO $<$<OR :$<CONFIG:Release>,$<CONFIG:RelWithDebugInfo>>:YES >)
209
- endmacro (initialize_xcode_cxx_build_settings )
188
+ endfunction ( )
210
189
211
190
# CMake 3.1 does not have this yet.
212
191
set (CMAKE_CXX14_STANDARD_COMPILE_OPTION "-std=c++14" )
0 commit comments