Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions Runtimes/Core/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,7 @@ defaulted_option(SwiftCore_ENABLE_BACKDEPLOYMENT_SUPPORT "Add symbols for runtim
defaulted_option(SwiftCore_ENABLE_STDLIB_TRACING "Enable tracing in the runtime. Assumes the presence of os_log(3) and the os_signpost(3) API.")
defaulted_option(SwiftCore_ENABLE_CONCURRENCY "Enable Concurrency runtime support")
defaulted_option(SwiftCore_ENABLE_REMOTE_MIRROR "Enable RemoteMirror runtime support")
defaulted_option(SwiftCore_ENABLE_DIRECT_RETAIN_RELEASE "Use direct retain release in the runtime/stdlib")
defaulted_set(SwiftCore_CONCURRENCY_GLOBAL_EXECUTOR STRING "Default Concurrency global executor implementation")
option(SwiftCore_ENABLE_COMMANDLINE_SUPPORT "Enable command line argument support" ON)
option(SwiftCore_ENABLE_UNICODE_DATA "Include unicode data in Swift runtimes" ON)
Expand Down Expand Up @@ -196,6 +197,11 @@ add_compile_options(
"$<$<AND:$<BOOL:${SwiftCore_ENABLE_LIBRARY_EVOLUTION}>,$<COMPILE_LANGUAGE:Swift>>:-enable-library-evolution>"
"$<$<AND:$<BOOL:${SwiftCore_ENABLE_PRESPECIALIZATION}>,$<COMPILE_LANGUAGE:Swift>>:SHELL:-Xfrontend -prespecialize-generic-metadata>")

if(SwiftCore_ENABLE_DIRECT_RETAIN_RELEASE)
find_package(SwiftSwiftDirectRuntime REQUIRED)
add_compile_options("$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -enable-direct-retain-release>")
endif()

include(ExperimentalFeatures)

include_directories(include)
Expand Down
1 change: 1 addition & 0 deletions Runtimes/Core/Concurrency/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,7 @@ target_link_libraries(swift_Concurrency PRIVATE
$<$<PLATFORM_ID:Android>:log>
$<$<PLATFORM_ID:Windows>:Synchronization>
$<$<PLATFORM_ID:Windows>:mincore>
$<$<BOOL:${SwiftSwiftDirectRuntime_FOUND}>:swiftSwiftDirectRuntime>
# Link to the runtime that we are just building.
swiftCore)
set_target_properties(swift_Concurrency PROPERTIES
Expand Down
1 change: 1 addition & 0 deletions Runtimes/Core/Core/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -337,6 +337,7 @@ target_link_libraries(swiftCore
swiftStdlibStubs
swiftThreading
$<$<NOT:$<PLATFORM_ID:Darwin>>:swiftrt$<$<PLATFORM_ID:Windows>:T>>
$<$<BOOL:${SwiftSwiftDirectRuntime_FOUND}>:swiftSwiftDirectRuntime>
PUBLIC
swiftShims
INTERFACE
Expand Down
3 changes: 2 additions & 1 deletion Runtimes/Core/SwiftOnoneSupport/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,8 @@ target_compile_definitions(swiftSwiftOnoneSupport PRIVATE
target_link_libraries(swiftSwiftOnoneSupport
PRIVATE
swiftShims
swiftCore)
swiftCore
$<$<BOOL:${SwiftSwiftDirectRuntime_FOUND}>:swiftSwiftDirectRuntime>)

install(TARGETS swiftSwiftOnoneSupport
EXPORT SwiftCoreTargets
Expand Down
2 changes: 2 additions & 0 deletions Runtimes/Core/cmake/interface/SwiftCoreConfig.cmake.in
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,5 @@ set(SwiftCore_ENABLE_LIBRARY_EVOLUTION @SwiftCore_ENABLE_LIBRARY_EVOLUTION@)
set(SwiftCore_ENABLE_VECTOR_TYPES @SwiftCore_ENABLE_VECTOR_TYPES@)

set(SwiftCore_ENABLE_BACKDEPLOYMENT_SUPPORT @SwiftCore_ENABLE_BACKDEPLOYMENT_SUPPORT@)

set(SwiftCore_ENABLE_DIRECT_RETAIN_RELEASE @SwiftCore_ENABLE_DIRECT_RETAIN_RELEASE@)
5 changes: 5 additions & 0 deletions Runtimes/Core/cmake/modules/DefaultSettings.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -46,12 +46,15 @@ if(APPLE)
set(SwiftCore_THREADING_PACKAGE_default "DARWIN")
set(SwiftCore_ENABLE_PRESPECIALIZATION_default ON)
set(SwiftCore_CONCURRENCY_GLOBAL_EXECUTOR_default "dispatch")
# TODO we are not ready to enable it here
set(SwiftCore_ENABLE_DIRECT_RETAIN_RELEASE_default OFF)
elseif(CMAKE_SYSTEM_NAME STREQUAL "WASM")
set(SwiftCore_OBJECT_FORMAT_default "elf")
set(SwiftCore_THREADING_PACKAGE_default "NONE")
set(SwiftCore_ENABLE_CONCURRENCY_default NO)
set(SwiftCore_ENABLE_REMOTE_MIRROR_default NO)
set(SwiftCore_CONCURRENCY_GLOBAL_EXECUTOR_default "none")
set(SwiftCore_ENABLE_DIRECT_RETAIN_RELEASE_default OFF)
elseif(LINUX OR ANDROID OR BSD)
set(SwiftCore_OBJECT_FORMAT_default "elf")

Expand All @@ -66,6 +69,7 @@ elseif(LINUX OR ANDROID OR BSD)
set(SwiftCore_ENABLE_CONCURRENCY_default NO)
set(SwiftCore_ENABLE_REMOTE_MIRROR_default NO)
set(SwiftCore_CONCURRENCY_GLOBAL_EXECUTOR_default "dispatch")
set(SwiftCore_ENABLE_DIRECT_RETAIN_RELEASE_default OFF)
elseif(WIN32)
set(SwiftCore_OBJECT_FORMAT_default "coff")

Expand All @@ -80,6 +84,7 @@ elseif(WIN32)
# errors
set(SwiftCore_ENABLE_PRESPECIALIZATION_default OFF)
set(SwiftCore_CONCURRENCY_GLOBAL_EXECUTOR_default "dispatch")
set(SwiftCore_ENABLE_DIRECT_RETAIN_RELEASE_default OFF)

set(SwiftCore_ENABLE_VECTOR_TYPES_default ON)
set(SwiftCore_ENABLE_FILESYSTEM_SUPPORT_default ON)
Expand Down
7 changes: 7 additions & 0 deletions Runtimes/Overlay/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,8 @@ option(SwiftOverlay_ENABLE_LIBRARY_EVOLUTION "Generate ABI resilient runtime lib
${SwiftCore_ENABLE_LIBRARY_EVOLUTION})
option(SwiftOverlay_ENABLE_BACKDEPLOYMENT_SUPPORT "Add symbols for runtime backdeployment"
${SwiftCore_ENABLE_BACKDEPLOYMENT_SUPPORT})
option(${PROJECT_NAME}_ENABLE_DIRECT_RETAIN_RELEASE "Use direct retain release in overlays"
${SwiftCore_ENABLE_DIRECT_RETAIN_RELEASE})

add_compile_definitions(
$<$<BOOL:${SwiftOverlay_ENABLE_BACKDEPLOYMENT_SUPPORT}>:SWIFT_STDLIB_SUPPORT_BACK_DEPLOYMENT>)
Expand All @@ -74,6 +76,11 @@ add_compile_options(
"$<$<AND:$<BOOL:${${PROJECT_NAME}_ENABLE_LIBRARY_EVOLUTION}>,$<COMPILE_LANGUAGE:Swift>>:-enable-library-evolution>"
"$<$<AND:$<BOOL:${${PROJECT_NAME}_ENABLE_PRESPECIALIZATION}>,$<COMPILE_LANGUAGE:Swift>>:SHELL:-Xfrontend -prespecialize-generic-metadata>")

if(${PROJECT_NAME}_ENABLE_DIRECT_RETAIN_RELEASE)
find_package(SwiftSwiftDirectRuntime REQUIRED)
add_compile_options("$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -enable-direct-retain-release>")
endif()

include(ExperimentalFeatures)

# LNK4049: symbol 'symbol' defined in 'filename.obj' is imported
Expand Down
1 change: 1 addition & 0 deletions Runtimes/Overlay/Cxx/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ target_compile_options(swiftCxx PRIVATE
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-enable-experimental-feature BuiltinModule>"
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-enable-experimental-feature Lifetimes>")
target_link_libraries(swiftCxx PRIVATE
$<$<BOOL:${SwiftSwiftDirectRuntime_FOUND}>:swiftSwiftDirectRuntime>
swiftCore)

install(TARGETS swiftCxx
Expand Down
1 change: 1 addition & 0 deletions Runtimes/Overlay/Cxx/std/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ target_compile_options(swiftCxxStdlib PRIVATE
target_link_libraries(swiftCxxStdlib PRIVATE
$<$<BOOL:${HAVE___GLIBCXX__}>:libstdcxx>
$<$<NOT:$<PLATFORM_ID:Darwin>>:cxxshim>
$<$<BOOL:${SwiftSwiftDirectRuntime_FOUND}>:swiftSwiftDirectRuntime>
swiftCxx
swiftCore
swift_Builtin_float
Expand Down
1 change: 1 addition & 0 deletions Runtimes/Overlay/clang/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ target_compile_options(swift_Builtin_float PRIVATE
$<$<COMPILE_LANGUAGE:Swift>:-autolink-force-load>)
target_link_libraries(swift_Builtin_float PRIVATE
$<$<PLATFORM_ID:Windows>:ClangModules>
$<$<BOOL:${SwiftSwiftDirectRuntime_FOUND}>:swiftSwiftDirectRuntime>
swiftCore)

install(TARGETS swift_Builtin_float
Expand Down
10 changes: 9 additions & 1 deletion Runtimes/Supplemental/Differentiation/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,8 @@ option(${PROJECT_NAME}_ENABLE_LIBRARY_EVOLUTION "Generate ABI resilient runtime
option(${PROJECT_NAME}_ENABLE_VECTOR_TYPES "Enable vector support"
${SwiftCore_ENABLE_VECTOR_TYPES})

option(${PROJECT_NAME}_ENABLE_DIRECT_RETAIN_RELEASE "Use direct retain release"
${SwiftCore_ENABLE_DIRECT_RETAIN_RELEASE})

add_compile_options(
$<$<COMPILE_LANGUAGE:Swift>:-explicit-module-build>
Expand All @@ -77,6 +79,11 @@ add_compile_options(
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -target-min-inlining-version -Xfrontend min>"
$<$<AND:$<BOOL:${${PROJECT_NAME}_ENABLE_LIBRARY_EVOLUTION}>,$<COMPILE_LANGUAGE:Swift>>:-enable-library-evolution>)

if(${PROJECT_NAME}_ENABLE_DIRECT_RETAIN_RELEASE)
find_package(SwiftSwiftDirectRuntime REQUIRED)
add_compile_options("$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -enable-direct-retain-release>")
endif()

# LNK4049: symbol 'symbol' defined in 'filename.obj' is imported
# LNK4286: symbol 'symbol' defined in 'filename_1.obj' is imported by 'filename_2.obj'
# LNK4217: symbol 'symbol' defined in 'filename_1.obj' is imported by 'filename_2.obj' in function 'function'
Expand Down Expand Up @@ -120,7 +127,8 @@ set_target_properties(swift_Differentiation PROPERTIES
target_link_libraries(swift_Differentiation PRIVATE
swiftCore
$<$<PLATFORM_ID:Android>:swiftAndroid>
$<$<PLATFORM_ID:Windows>:swiftCRT>)
$<$<PLATFORM_ID:Windows>:swiftCRT>
$<$<BOOL:${SwiftSwiftDirectRuntime_FOUND}>:swiftSwiftDirectRuntime>)


install(TARGETS swift_Differentiation
Expand Down
11 changes: 10 additions & 1 deletion Runtimes/Supplemental/Distributed/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,9 @@ option(${PROJECT_NAME}_ENABLE_LIBRARY_EVOLUTION "Generate ABI resilient runtime
option(${PROJECT_NAME}_ENABLE_PRESPECIALIZATION "Enable generic metadata prespecialization"
${SwiftCore_ENABLE_PRESPECIALIZATION})

option(${PROJECT_NAME}_ENABLE_DIRECT_RETAIN_RELEASE "Use direct retain release"
${SwiftCore_ENABLE_DIRECT_RETAIN_RELEASE})

add_compile_options(
$<$<COMPILE_LANGUAGE:Swift>:-explicit-module-build>
$<$<COMPILE_LANGUAGE:Swift>:-nostdlibimport>
Expand All @@ -84,6 +87,11 @@ add_compile_options(
"$<$<AND:$<BOOL:${${PROJECT_NAME}_ENABLE_LIBRARY_EVOLUTION}>,$<COMPILE_LANGUAGE:Swift>>:-enable-library-evolution>"
"$<$<AND:$<BOOL:${${PROJECT_NAME}_ENABLE_PRESPECIALIZATION}>,$<COMPILE_LANGUAGE:Swift>>:SHELL:-Xfrontend -prespecialize-generic-metadata>")

if(${PROJECT_NAME}_ENABLE_DIRECT_RETAIN_RELEASE)
find_package(SwiftSwiftDirectRuntime REQUIRED)
add_compile_options("$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -enable-direct-retain-release>")
endif()

# LNK4049: symbol 'symbol' defined in 'filename.obj' is imported
# LNK4286: symbol 'symbol' defined in 'filename_1.obj' is imported by 'filename_2.obj'
# LNK4217: symbol 'symbol' defined in 'filename_1.obj' is imported by 'filename_2.obj' in function 'function'
Expand Down Expand Up @@ -146,7 +154,8 @@ target_link_libraries(swiftDistributed PRIVATE
swift_Concurrency
swift_Builtin_float
$<$<PLATFORM_ID:Android>:swiftAndroid>
$<$<PLATFORM_ID:Windows>:swiftWinSDK>)
$<$<PLATFORM_ID:Windows>:swiftWinSDK>
$<$<BOOL:${SwiftSwiftDirectRuntime_FOUND}>:swiftSwiftDirectRuntime>)

install(TARGETS swiftDistributed
EXPORT SwiftDistributedTargets
Expand Down
11 changes: 10 additions & 1 deletion Runtimes/Supplemental/Observation/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,9 @@ option(${PROJECT_NAME}_ENABLE_LIBRARY_EVOLUTION "Generate ABI resilient runtime
option(${PROJECT_NAME}_ENABLE_PRESPECIALIZATION "Enable generic metadata prespecialization"
${SwiftCore_ENABLE_PRESPECIALIZATION})

option(${PROJECT_NAME}_ENABLE_DIRECT_RETAIN_RELEASE "Use direct retain release"
${SwiftCore_ENABLE_DIRECT_RETAIN_RELEASE})

add_compile_options(
$<$<COMPILE_LANGUAGE:Swift>:-explicit-module-build>
$<$<COMPILE_LANGUAGE:Swift>:-nostdlibimport>
Expand All @@ -82,6 +85,11 @@ add_compile_options(
"$<$<AND:$<BOOL:${${PROJECT_NAME}_ENABLE_LIBRARY_EVOLUTION}>,$<COMPILE_LANGUAGE:Swift>>:-enable-library-evolution>"
"$<$<AND:$<BOOL:${${PROJECT_NAME}_ENABLE_PRESPECIALIZATION}>,$<COMPILE_LANGUAGE:Swift>>:SHELL:-Xfrontend -prespecialize-generic-metadata>")

if(${PROJECT_NAME}_ENABLE_DIRECT_RETAIN_RELEASE)
find_package(SwiftSwiftDirectRuntime REQUIRED)
add_compile_options("$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -enable-direct-retain-release>")
endif()

# LNK4049: symbol 'symbol' defined in 'filename.obj' is imported
# LNK4286: symbol 'symbol' defined in 'filename_1.obj' is imported by 'filename_2.obj'
# LNK4217: symbol 'symbol' defined in 'filename_1.obj' is imported by 'filename_2.obj' in function 'function'
Expand Down Expand Up @@ -116,7 +124,8 @@ target_link_libraries(swiftObservation PRIVATE
swift_Concurrency
$<$<PLATFORM_ID:Android>:swiftAndroid>
$<$<PLATFORM_ID:Linux>:swiftGlibc>
$<$<PLATFORM_ID:Windows>:swiftWinSDK>)
$<$<PLATFORM_ID:Windows>:swiftWinSDK>
$<$<BOOL:${SwiftSwiftDirectRuntime_FOUND}>:swiftSwiftDirectRuntime>)

install(TARGETS swiftObservation
EXPORT SwiftObservationTargets
Expand Down
11 changes: 10 additions & 1 deletion Runtimes/Supplemental/Runtime/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,9 @@ option(${PROJECT_NAME}_ENABLE_LIBRARY_EVOLUTION "Generate ABI resilient runtime
option(${PROJECT_NAME}_ENABLE_PRESPECIALIZATION "Enable generic metadata prespecialization"
${SwiftCore_ENABLE_PRESPECIALIZATION})

option(${PROJECT_NAME}_ENABLE_DIRECT_RETAIN_RELEASE "Use direct retain release"
${SwiftCore_ENABLE_DIRECT_RETAIN_RELEASE})

add_compile_options(
$<$<COMPILE_LANGUAGE:Swift>:-explicit-module-build>
$<$<COMPILE_LANGUAGE:Swift>:-nostdlibimport>
Expand All @@ -92,6 +95,11 @@ add_compile_options(
"$<$<AND:$<BOOL:${${PROJECT_NAME}_ENABLE_LIBRARY_EVOLUTION}>,$<COMPILE_LANGUAGE:Swift>>:-enable-library-evolution>"
"$<$<AND:$<BOOL:${${PROJECT_NAME}_ENABLE_PRESPECIALIZATION}>,$<COMPILE_LANGUAGE:Swift>>:SHELL:-Xfrontend -prespecialize-generic-metadata>")

if(${PROJECT_NAME}_ENABLE_DIRECT_RETAIN_RELEASE)
find_package(SwiftSwiftDirectRuntime REQUIRED)
add_compile_options("$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -enable-direct-retain-release>")
endif()

# LNK4049: symbol 'symbol' defined in 'filename.obj' is imported
# LNK4286: symbol 'symbol' defined in 'filename_1.obj' is imported by 'filename_2.obj'
# LNK4217: symbol 'symbol' defined in 'filename_1.obj' is imported by 'filename_2.obj' in function 'function'
Expand Down Expand Up @@ -157,7 +165,8 @@ target_link_libraries(swiftRuntime PRIVATE
$<$<PLATFORM_ID:Android>:swiftAndroid>
$<$<PLATFORM_ID:Darwin>:swiftDarwin>
$<$<PLATFORM_ID:Linux>:swiftGlibc>
$<$<PLATFORM_ID:Windows>:swiftWinSDK>)
$<$<PLATFORM_ID:Windows>:swiftWinSDK>
$<$<BOOL:${SwiftSwiftDirectRuntime_FOUND}>:swiftSwiftDirectRuntime>)

install(TARGETS swiftRuntime
EXPORT SwiftRuntimeTargets
Expand Down
8 changes: 8 additions & 0 deletions Runtimes/Supplemental/StringProcessing/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,9 @@ option(${PROJECT_NAME}_ENABLE_LIBRARY_EVOLUTION "Generate ABI resilient runtime
option(${PROJECT_NAME}_ENABLE_PRESPECIALIZATION "Enable generic metadata prespecialization"
${SwiftCore_ENABLE_PRESPECIALIZATION})

option(${PROJECT_NAME}_ENABLE_DIRECT_RETAIN_RELEASE "Use direct retain release"
${SwiftCore_ENABLE_DIRECT_RETAIN_RELEASE})

add_compile_options(
$<$<COMPILE_LANGUAGE:Swift>:-explicit-module-build>
$<$<COMPILE_LANGUAGE:Swift>:-nostdlibimport>
Expand All @@ -59,6 +62,11 @@ add_compile_options(
"$<$<AND:$<BOOL:${${PROJECT_NAME}_ENABLE_LIBRARY_EVOLUTION}>,$<COMPILE_LANGUAGE:Swift>>:-enable-library-evolution>"
"$<$<AND:$<BOOL:${${PROJECT_NAME}_ENABLE_PRESPECIALIZATION}>,$<COMPILE_LANGUAGE:Swift>>:SHELL:-Xfrontend -prespecialize-generic-metadata>")

if(${PROJECT_NAME}_ENABLE_DIRECT_RETAIN_RELEASE)
find_package(SwiftSwiftDirectRuntime REQUIRED)
add_compile_options("$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -enable-direct-retain-release>")
endif()

# LNK4049: symbol 'symbol' defined in 'filename.obj' is imported
# LNK4286: symbol 'symbol' defined in 'filename_1.obj' is imported by 'filename_2.obj'
# LNK4217: symbol 'symbol' defined in 'filename_1.obj' is imported by 'filename_2.obj' in function 'function'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@ set_target_properties(swiftRegexBuilder PROPERTIES
target_link_libraries(swiftRegexBuilder PRIVATE
swift_RegexParser
swift_StringProcessing
swiftCore)
swiftCore
$<$<BOOL:${SwiftSwiftDirectRuntime_FOUND}>:swiftSwiftDirectRuntime>)

install(TARGETS swiftRegexBuilder
ARCHIVE DESTINATION "${SwiftStringProcessing_INSTALL_LIBDIR}"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,8 @@ add_library(swift_RegexParser
Utility/MissingUnicode.swift)

target_link_libraries(swift_RegexParser PRIVATE
swiftCore)
swiftCore
$<$<BOOL:${SwiftSwiftDirectRuntime_FOUND}>:swiftSwiftDirectRuntime>)

set_target_properties(swift_RegexParser PROPERTIES
Swift_MODULE_NAME _RegexParser)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,8 @@ set_target_properties(swift_StringProcessing PROPERTIES

target_link_libraries(swift_StringProcessing PRIVATE
swift_RegexParser
swiftCore)
swiftCore
$<$<BOOL:${SwiftSwiftDirectRuntime_FOUND}>:swiftSwiftDirectRuntime>)

install(TARGETS swift_StringProcessing
ARCHIVE DESTINATION "${SwiftStringProcessing_INSTALL_LIBDIR}"
Expand Down
11 changes: 10 additions & 1 deletion Runtimes/Supplemental/Synchronization/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,9 @@ option(${PROJECT_NAME}_ENABLE_LIBRARY_EVOLUTION "Generate ABI resilient runtime
option(${PROJECT_NAME}_ENABLE_PRESPECIALIZATION "Enable generic metadata prespecialization"
${SwiftCore_ENABLE_PRESPECIALIZATION})

option(${PROJECT_NAME}_ENABLE_DIRECT_RETAIN_RELEASE "Use direct retain release"
${SwiftCore_ENABLE_DIRECT_RETAIN_RELEASE})

option(${PROJECT_NAME}_SINGLE_THREADED_MODE "Build Synchronization assuming it will be used in an environment with only a single thread" OFF)

add_compile_options(
Expand Down Expand Up @@ -95,6 +98,11 @@ add_compile_options(
"$<$<AND:$<BOOL:${${PROJECT_NAME}_ENABLE_LIBRARY_EVOLUTION}>,$<COMPILE_LANGUAGE:Swift>>:-enable-library-evolution>"
"$<$<AND:$<BOOL:${${PROJECT_NAME}_ENABLE_PRESPECIALIZATION}>,$<COMPILE_LANGUAGE:Swift>>:SHELL:-Xfrontend -prespecialize-generic-metadata>")

if(${PROJECT_NAME}_ENABLE_DIRECT_RETAIN_RELEASE)
find_package(SwiftSwiftDirectRuntime REQUIRED)
add_compile_options("$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -enable-direct-retain-release>")
endif()

# LNK4049: symbol 'symbol' defined in 'filename.obj' is imported
# LNK4286: symbol 'symbol' defined in 'filename_1.obj' is imported by 'filename_2.obj'
# LNK4217: symbol 'symbol' defined in 'filename_1.obj' is imported by 'filename_2.obj' in function 'function'
Expand Down Expand Up @@ -143,7 +151,8 @@ target_link_libraries(swiftSynchronization PRIVATE
swiftCore
$<$<PLATFORM_ID:Android>:swiftAndroid>
$<$<PLATFORM_ID:Darwin>:swiftDarwin>
$<$<PLATFORM_ID:Windows>:ClangModules>)
$<$<PLATFORM_ID:Windows>:ClangModules>
$<$<BOOL:${SwiftSwiftDirectRuntime_FOUND}>:swiftSwiftDirectRuntime>)

if(WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL i686)
# FIXME(#83765) `-whole-module-optimization` should not be needed. However,
Expand Down
11 changes: 10 additions & 1 deletion Runtimes/Supplemental/Volatile/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -63,13 +63,21 @@ option(${PROJECT_NAME}_ENABLE_LIBRARY_EVOLUTION "Generate ABI resilient runtime
option(${PROJECT_NAME}_ENABLE_PRESPECIALIZATION "Enable generic metadata prespecialization"
${SwiftCore_ENABLE_PRESPECIALIZATION})

option(${PROJECT_NAME}_ENABLE_DIRECT_RETAIN_RELEASE "Use direct retain release"
${SwiftCore_ENABLE_DIRECT_RETAIN_RELEASE})

add_compile_options(
$<$<COMPILE_LANGUAGE:Swift>:-explicit-module-build>
$<$<COMPILE_LANGUAGE:Swift>:-nostdlibimport>
$<$<COMPILE_LANGUAGE:Swift>:-strict-memory-safety>
"$<$<AND:$<BOOL:${${PROJECT_NAME}_ENABLE_LIBRARY_EVOLUTION}>,$<COMPILE_LANGUAGE:Swift>>:-enable-library-evolution>"
"$<$<AND:$<BOOL:${${PROJECT_NAME}_ENABLE_PRESPECIALIZATION}>,$<COMPILE_LANGUAGE:Swift>>:SHELL:-Xfrontend -prespecialize-generic-metadata>")

if(${PROJECT_NAME}_ENABLE_DIRECT_RETAIN_RELEASE)
find_package(SwiftSwiftDirectRuntime REQUIRED)
add_compile_options("$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -enable-direct-retain-release>")
endif()

# LNK4049: symbol 'symbol' defined in 'filename.obj' is imported
# LNK4286: symbol 'symbol' defined in 'filename_1.obj' is imported by 'filename_2.obj'
# LNK4217: symbol 'symbol' defined in 'filename_1.obj' is imported by 'filename_2.obj' in function 'function'
Expand All @@ -88,7 +96,8 @@ set_target_properties(swift_Volatile PROPERTIES
target_compile_options(swift_Volatile PRIVATE
-parse-stdlib)
target_link_libraries(swift_Volatile PRIVATE
swiftCore)
swiftCore
$<$<BOOL:${SwiftSwiftDirectRuntime_FOUND}>:swiftSwiftDirectRuntime>)

install(TARGETS swift_Volatile
EXPORT SwiftVolatileTargets
Expand Down
Loading