Skip to content

Commit d704461

Browse files
authored
Merge pull request #85367 from edymtt/edymtt/link-client-retain-release-from-swift-core-in-runtimes-build-system
Runtimes: allow to link swiftSwiftDirectRuntime
2 parents bf32627 + 578b7f4 commit d704461

File tree

21 files changed

+174
-10
lines changed

21 files changed

+174
-10
lines changed

Runtimes/Core/CMakeLists.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ defaulted_option(SwiftCore_ENABLE_BACKDEPLOYMENT_SUPPORT "Add symbols for runtim
109109
defaulted_option(SwiftCore_ENABLE_STDLIB_TRACING "Enable tracing in the runtime. Assumes the presence of os_log(3) and the os_signpost(3) API.")
110110
defaulted_option(SwiftCore_ENABLE_CONCURRENCY "Enable Concurrency runtime support")
111111
defaulted_option(SwiftCore_ENABLE_REMOTE_MIRROR "Enable RemoteMirror runtime support")
112+
defaulted_option(SwiftCore_ENABLE_DIRECT_RETAIN_RELEASE "Use direct retain release in the runtime/stdlib")
112113
defaulted_set(SwiftCore_CONCURRENCY_GLOBAL_EXECUTOR STRING "Default Concurrency global executor implementation")
113114
option(SwiftCore_ENABLE_COMMANDLINE_SUPPORT "Enable command line argument support" ON)
114115
option(SwiftCore_ENABLE_UNICODE_DATA "Include unicode data in Swift runtimes" ON)
@@ -196,6 +197,11 @@ add_compile_options(
196197
"$<$<AND:$<BOOL:${SwiftCore_ENABLE_LIBRARY_EVOLUTION}>,$<COMPILE_LANGUAGE:Swift>>:-enable-library-evolution>"
197198
"$<$<AND:$<BOOL:${SwiftCore_ENABLE_PRESPECIALIZATION}>,$<COMPILE_LANGUAGE:Swift>>:SHELL:-Xfrontend -prespecialize-generic-metadata>")
198199

200+
if(SwiftCore_ENABLE_DIRECT_RETAIN_RELEASE)
201+
find_package(SwiftSwiftDirectRuntime REQUIRED)
202+
add_compile_options("$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -enable-direct-retain-release>")
203+
endif()
204+
199205
include(ExperimentalFeatures)
200206

201207
include_directories(include)

Runtimes/Core/Concurrency/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,7 @@ target_link_libraries(swift_Concurrency PRIVATE
139139
$<$<PLATFORM_ID:Android>:log>
140140
$<$<PLATFORM_ID:Windows>:Synchronization>
141141
$<$<PLATFORM_ID:Windows>:mincore>
142+
$<$<BOOL:${SwiftSwiftDirectRuntime_FOUND}>:swiftSwiftDirectRuntime>
142143
# Link to the runtime that we are just building.
143144
swiftCore)
144145
set_target_properties(swift_Concurrency PROPERTIES

Runtimes/Core/Core/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -337,6 +337,7 @@ target_link_libraries(swiftCore
337337
swiftStdlibStubs
338338
swiftThreading
339339
$<$<NOT:$<PLATFORM_ID:Darwin>>:swiftrt$<$<PLATFORM_ID:Windows>:T>>
340+
$<$<BOOL:${SwiftSwiftDirectRuntime_FOUND}>:swiftSwiftDirectRuntime>
340341
PUBLIC
341342
swiftShims
342343
INTERFACE

Runtimes/Core/SwiftOnoneSupport/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@ target_compile_definitions(swiftSwiftOnoneSupport PRIVATE
2929
target_link_libraries(swiftSwiftOnoneSupport
3030
PRIVATE
3131
swiftShims
32-
swiftCore)
32+
swiftCore
33+
$<$<BOOL:${SwiftSwiftDirectRuntime_FOUND}>:swiftSwiftDirectRuntime>)
3334

3435
install(TARGETS swiftSwiftOnoneSupport
3536
EXPORT SwiftCoreTargets

Runtimes/Core/cmake/interface/SwiftCoreConfig.cmake.in

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,5 @@ set(SwiftCore_ENABLE_LIBRARY_EVOLUTION @SwiftCore_ENABLE_LIBRARY_EVOLUTION@)
66
set(SwiftCore_ENABLE_VECTOR_TYPES @SwiftCore_ENABLE_VECTOR_TYPES@)
77

88
set(SwiftCore_ENABLE_BACKDEPLOYMENT_SUPPORT @SwiftCore_ENABLE_BACKDEPLOYMENT_SUPPORT@)
9+
10+
set(SwiftCore_ENABLE_DIRECT_RETAIN_RELEASE @SwiftCore_ENABLE_DIRECT_RETAIN_RELEASE@)

Runtimes/Core/cmake/modules/DefaultSettings.cmake

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,12 +46,15 @@ if(APPLE)
4646
set(SwiftCore_THREADING_PACKAGE_default "DARWIN")
4747
set(SwiftCore_ENABLE_PRESPECIALIZATION_default ON)
4848
set(SwiftCore_CONCURRENCY_GLOBAL_EXECUTOR_default "dispatch")
49+
# TODO we are not ready to enable it here
50+
set(SwiftCore_ENABLE_DIRECT_RETAIN_RELEASE_default OFF)
4951
elseif(CMAKE_SYSTEM_NAME STREQUAL "WASM")
5052
set(SwiftCore_OBJECT_FORMAT_default "elf")
5153
set(SwiftCore_THREADING_PACKAGE_default "NONE")
5254
set(SwiftCore_ENABLE_CONCURRENCY_default NO)
5355
set(SwiftCore_ENABLE_REMOTE_MIRROR_default NO)
5456
set(SwiftCore_CONCURRENCY_GLOBAL_EXECUTOR_default "none")
57+
set(SwiftCore_ENABLE_DIRECT_RETAIN_RELEASE_default OFF)
5558
elseif(LINUX OR ANDROID OR BSD)
5659
set(SwiftCore_OBJECT_FORMAT_default "elf")
5760

@@ -66,6 +69,7 @@ elseif(LINUX OR ANDROID OR BSD)
6669
set(SwiftCore_ENABLE_CONCURRENCY_default NO)
6770
set(SwiftCore_ENABLE_REMOTE_MIRROR_default NO)
6871
set(SwiftCore_CONCURRENCY_GLOBAL_EXECUTOR_default "dispatch")
72+
set(SwiftCore_ENABLE_DIRECT_RETAIN_RELEASE_default OFF)
6973
elseif(WIN32)
7074
set(SwiftCore_OBJECT_FORMAT_default "coff")
7175

@@ -80,6 +84,7 @@ elseif(WIN32)
8084
# errors
8185
set(SwiftCore_ENABLE_PRESPECIALIZATION_default OFF)
8286
set(SwiftCore_CONCURRENCY_GLOBAL_EXECUTOR_default "dispatch")
87+
set(SwiftCore_ENABLE_DIRECT_RETAIN_RELEASE_default OFF)
8388

8489
set(SwiftCore_ENABLE_VECTOR_TYPES_default ON)
8590
set(SwiftCore_ENABLE_FILESYSTEM_SUPPORT_default ON)

Runtimes/Overlay/CMakeLists.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,8 @@ option(SwiftOverlay_ENABLE_LIBRARY_EVOLUTION "Generate ABI resilient runtime lib
5959
${SwiftCore_ENABLE_LIBRARY_EVOLUTION})
6060
option(SwiftOverlay_ENABLE_BACKDEPLOYMENT_SUPPORT "Add symbols for runtime backdeployment"
6161
${SwiftCore_ENABLE_BACKDEPLOYMENT_SUPPORT})
62+
option(${PROJECT_NAME}_ENABLE_DIRECT_RETAIN_RELEASE "Use direct retain release in overlays"
63+
${SwiftCore_ENABLE_DIRECT_RETAIN_RELEASE})
6264

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

79+
if(${PROJECT_NAME}_ENABLE_DIRECT_RETAIN_RELEASE)
80+
find_package(SwiftSwiftDirectRuntime REQUIRED)
81+
add_compile_options("$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -enable-direct-retain-release>")
82+
endif()
83+
7784
include(ExperimentalFeatures)
7885

7986
# LNK4049: symbol 'symbol' defined in 'filename.obj' is imported

Runtimes/Overlay/Cxx/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ target_compile_options(swiftCxx PRIVATE
3636
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-enable-experimental-feature BuiltinModule>"
3737
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-enable-experimental-feature Lifetimes>")
3838
target_link_libraries(swiftCxx PRIVATE
39+
$<$<BOOL:${SwiftSwiftDirectRuntime_FOUND}>:swiftSwiftDirectRuntime>
3940
swiftCore)
4041

4142
install(TARGETS swiftCxx

Runtimes/Overlay/Cxx/std/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ target_compile_options(swiftCxxStdlib PRIVATE
2525
target_link_libraries(swiftCxxStdlib PRIVATE
2626
$<$<BOOL:${HAVE___GLIBCXX__}>:libstdcxx>
2727
$<$<NOT:$<PLATFORM_ID:Darwin>>:cxxshim>
28+
$<$<BOOL:${SwiftSwiftDirectRuntime_FOUND}>:swiftSwiftDirectRuntime>
2829
swiftCxx
2930
swiftCore
3031
swift_Builtin_float

Runtimes/Overlay/clang/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ target_compile_options(swift_Builtin_float PRIVATE
1212
$<$<COMPILE_LANGUAGE:Swift>:-autolink-force-load>)
1313
target_link_libraries(swift_Builtin_float PRIVATE
1414
$<$<PLATFORM_ID:Windows>:ClangModules>
15+
$<$<BOOL:${SwiftSwiftDirectRuntime_FOUND}>:swiftSwiftDirectRuntime>
1516
swiftCore)
1617

1718
install(TARGETS swift_Builtin_float

0 commit comments

Comments
 (0)