Skip to content

Commit d19fd71

Browse files
committed
Runtimes: reorganise flags for swiftCore
This re-organises the file a small amount to put the source listing and additions together. Subsequently, apply compile definitions, options, and then link libraries and finally options
1 parent deb1d96 commit d19fd71

File tree

1 file changed

+19
-17
lines changed

1 file changed

+19
-17
lines changed

Runtimes/Core/core/CMakeLists.txt

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -250,8 +250,6 @@ if(NOT LINUX AND NOT ANDROID)
250250
target_sources(swiftCore PRIVATE ObjectIdentifier+DebugDescription.swift)
251251
endif()
252252

253-
set_target_properties(swiftCore PROPERTIES Swift_MODULE_NAME Swift)
254-
255253
if(SwiftCore_ENABLE_COMMANDLINE_SUPPORT)
256254
target_sources(swiftCore PRIVATE CommandLine.swift)
257255
target_link_libraries(swiftCore PRIVATE swiftCommandLineSupport)
@@ -271,11 +269,18 @@ if(SwiftCore_ENABLE_VECTOR_TYPES)
271269
"${CMAKE_CURRENT_BINARY_DIR}/SIMDVectorTypes.swift")
272270
endif()
273271

274-
if(APPLE AND BUILD_SHARED_LIBS)
275-
target_link_options(swiftCore PRIVATE "SHELL:-Xlinker -headerpad_max_install_names")
276-
endif()
272+
set_target_properties(swiftCore PROPERTIES Swift_MODULE_NAME Swift)
273+
274+
target_compile_definitions(swiftCore
275+
PRIVATE
276+
$<$<BOOL:${SwiftCore_ENABLE_REFLECTION}>:-DSWIFT_ENABLE_REFLECTION>
277+
$<$<BOOL:${SwiftCore_ENABLE_COMPACT_ABSOLUTE_FUNCTION_POINTERS}>:-DSWIFT_COMPACT_ABSOLUTE_FUNCTION_POINTER>
278+
$<$<COMPILE_LANGUAGE:C,CXX>:-DSWIFT_TARGET_LIBRARY_NAME=swiftCore>
279+
INTERFACE
280+
$<$<BOOL:${SwiftCore_ENABLE_VECTOR_TYPES}>:-DSWIFT_STDLIB_ENABLE_VECTOR_TYPES>)
277281

278282
target_compile_options(swiftCore PRIVATE
283+
"$<$<AND:$<COMPILE_LANGUAGE:Swift>,$<BOOL:${BUILD_SHARED_LIBS}>>:SHELL:-Xcc -DswiftCore_EXPORTS>"
279284
# STAGING: Temporarily avoids having to write #fileID in Swift.swiftinterface.
280285
# see also 327ea8bce2d1107a847d444651b19ca6a2901c9e
281286
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -enable-experimental-concise-pound-file>"
@@ -293,16 +298,6 @@ if(NOT "${CMAKE_BUILD_TYPE}" STREQUAL "MinSizeRel")
293298
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xllvm -sil-partial-specialization>")
294299
endif()
295300

296-
target_compile_definitions(swiftCore
297-
PRIVATE
298-
$<$<BOOL:${SwiftCore_ENABLE_REFLECTION}>:-DSWIFT_ENABLE_REFLECTION>
299-
$<$<BOOL:${SwiftCore_ENABLE_COMPACT_ABSOLUTE_FUNCTION_POINTERS}>:-DSWIFT_COMPACT_ABSOLUTE_FUNCTION_POINTER>
300-
$<$<COMPILE_LANGUAGE:C,CXX>:-DSWIFT_TARGET_LIBRARY_NAME=swiftCore>
301-
INTERFACE
302-
$<$<BOOL:${SwiftCore_ENABLE_VECTOR_TYPES}>:-DSWIFT_STDLIB_ENABLE_VECTOR_TYPES>)
303-
target_compile_options(swiftCore PRIVATE
304-
"$<$<AND:$<BOOL:${BUILD_SHARED_LIBS}>,$<COMPILE_LANGUAGE:Swift>>:SHELL:-Xcc -DswiftCore_EXPORTS>")
305-
306301
target_link_libraries(swiftCore
307302
PRIVATE
308303
swiftRuntime
@@ -313,8 +308,7 @@ target_link_libraries(swiftCore
313308
$<$<NOT:$<PLATFORM_ID:Darwin>>:swiftrt$<$<PLATFORM_ID:Windows>:T>>
314309
PUBLIC
315310
swiftShims)
316-
target_link_options(swiftCore PUBLIC
317-
$<$<LINK_LANGUAGE:Swift>:-nostartfiles>)
311+
318312
string(TOLOWER "${SwiftCore_OBJECT_FORMAT}" SwiftCore_OBJECT_FORMAT_lc)
319313
if("${SwiftCore_OBJECT_FORMAT_lc}" STREQUAL "elf")
320314
target_link_libraries(swiftCore INTERFACE
@@ -323,6 +317,10 @@ elseif("${SwiftCore_OBJECT_FORMAT_lc}" STREQUAL "coff")
323317
target_link_libraries(swiftCore INTERFACE
324318
swiftrt$<$<NOT:$<BOOL:${BUILD_SHARED_LIBS}>>:T>)
325319
endif()
320+
321+
target_link_options(swiftCore PUBLIC
322+
$<$<LINK_LANGUAGE:Swift>:-nostartfiles>)
323+
326324
if(NOT POLICY CMP0157)
327325
target_compile_options(swiftCore PRIVATE
328326
$<TARGET_OBJECTS:swiftRuntime>
@@ -337,6 +335,10 @@ if(NOT ANDROID AND NOT APPLE AND NOT LINUX AND NOT WIN32 AND UNIX)
337335
target_link_libraries(swiftCore PRIVATE "${EXECINFO_LIBRARY}")
338336
endif()
339337

338+
if(APPLE AND BUILD_SHARED_LIBS)
339+
target_link_options(swiftCore PRIVATE "SHELL:-Xlinker -headerpad_max_install_names")
340+
endif()
341+
340342
install(TARGETS swiftCore
341343
EXPORT SwiftCoreTargets
342344
COMPONENT SwiftCore_runtime

0 commit comments

Comments
 (0)