Skip to content

Commit 12a98f8

Browse files
committed
Allow to link SwiftSwiftDirectRuntime in Supplemental build system
Addresses rdar://164174616
1 parent 25071dd commit 12a98f8

File tree

10 files changed

+73
-9
lines changed

10 files changed

+73
-9
lines changed

Runtimes/Supplemental/Differentiation/CMakeLists.txt

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,8 @@ option(${PROJECT_NAME}_ENABLE_LIBRARY_EVOLUTION "Generate ABI resilient runtime
6161
option(${PROJECT_NAME}_ENABLE_VECTOR_TYPES "Enable vector support"
6262
${SwiftCore_ENABLE_VECTOR_TYPES})
6363

64+
option(${PROJECT_NAME}_ENABLE_DIRECT_RETAIN_RELEASE "Use direct retain release"
65+
${SwiftCore_ENABLE_DIRECT_RETAIN_RELEASE})
6466

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

82+
if(${PROJECT_NAME}_ENABLE_DIRECT_RETAIN_RELEASE)
83+
find_package(SwiftSwiftDirectRuntime REQUIRED)
84+
add_compile_options("$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -enable-direct-retain-release>")
85+
endif()
86+
8087
# LNK4049: symbol 'symbol' defined in 'filename.obj' is imported
8188
# LNK4286: symbol 'symbol' defined in 'filename_1.obj' is imported by 'filename_2.obj'
8289
# LNK4217: symbol 'symbol' defined in 'filename_1.obj' is imported by 'filename_2.obj' in function 'function'
@@ -120,7 +127,8 @@ set_target_properties(swift_Differentiation PROPERTIES
120127
target_link_libraries(swift_Differentiation PRIVATE
121128
swiftCore
122129
$<$<PLATFORM_ID:Android>:swiftAndroid>
123-
$<$<PLATFORM_ID:Windows>:swiftCRT>)
130+
$<$<PLATFORM_ID:Windows>:swiftCRT>
131+
$<$<BOOL:${SwiftSwiftDirectRuntime_FOUND}>:swiftSwiftDirectRuntime>)
124132

125133

126134
install(TARGETS swift_Differentiation

Runtimes/Supplemental/Distributed/CMakeLists.txt

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,9 @@ option(${PROJECT_NAME}_ENABLE_LIBRARY_EVOLUTION "Generate ABI resilient runtime
6565
option(${PROJECT_NAME}_ENABLE_PRESPECIALIZATION "Enable generic metadata prespecialization"
6666
${SwiftCore_ENABLE_PRESPECIALIZATION})
6767

68+
option(${PROJECT_NAME}_ENABLE_DIRECT_RETAIN_RELEASE "Use direct retain release"
69+
${SwiftCore_ENABLE_DIRECT_RETAIN_RELEASE})
70+
6871
add_compile_options(
6972
$<$<COMPILE_LANGUAGE:Swift>:-explicit-module-build>
7073
$<$<COMPILE_LANGUAGE:Swift>:-nostdlibimport>
@@ -84,6 +87,11 @@ add_compile_options(
8487
"$<$<AND:$<BOOL:${${PROJECT_NAME}_ENABLE_LIBRARY_EVOLUTION}>,$<COMPILE_LANGUAGE:Swift>>:-enable-library-evolution>"
8588
"$<$<AND:$<BOOL:${${PROJECT_NAME}_ENABLE_PRESPECIALIZATION}>,$<COMPILE_LANGUAGE:Swift>>:SHELL:-Xfrontend -prespecialize-generic-metadata>")
8689

90+
if(${PROJECT_NAME}_ENABLE_DIRECT_RETAIN_RELEASE)
91+
find_package(SwiftSwiftDirectRuntime REQUIRED)
92+
add_compile_options("$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -enable-direct-retain-release>")
93+
endif()
94+
8795
# LNK4049: symbol 'symbol' defined in 'filename.obj' is imported
8896
# LNK4286: symbol 'symbol' defined in 'filename_1.obj' is imported by 'filename_2.obj'
8997
# LNK4217: symbol 'symbol' defined in 'filename_1.obj' is imported by 'filename_2.obj' in function 'function'
@@ -146,7 +154,8 @@ target_link_libraries(swiftDistributed PRIVATE
146154
swift_Concurrency
147155
swift_Builtin_float
148156
$<$<PLATFORM_ID:Android>:swiftAndroid>
149-
$<$<PLATFORM_ID:Windows>:swiftWinSDK>)
157+
$<$<PLATFORM_ID:Windows>:swiftWinSDK>
158+
$<$<BOOL:${SwiftSwiftDirectRuntime_FOUND}>:swiftSwiftDirectRuntime>)
150159

151160
install(TARGETS swiftDistributed
152161
EXPORT SwiftDistributedTargets

Runtimes/Supplemental/Observation/CMakeLists.txt

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,9 @@ option(${PROJECT_NAME}_ENABLE_LIBRARY_EVOLUTION "Generate ABI resilient runtime
6161
option(${PROJECT_NAME}_ENABLE_PRESPECIALIZATION "Enable generic metadata prespecialization"
6262
${SwiftCore_ENABLE_PRESPECIALIZATION})
6363

64+
option(${PROJECT_NAME}_ENABLE_DIRECT_RETAIN_RELEASE "Use direct retain release"
65+
${SwiftCore_ENABLE_DIRECT_RETAIN_RELEASE})
66+
6467
add_compile_options(
6568
$<$<COMPILE_LANGUAGE:Swift>:-explicit-module-build>
6669
$<$<COMPILE_LANGUAGE:Swift>:-nostdlibimport>
@@ -82,6 +85,11 @@ add_compile_options(
8285
"$<$<AND:$<BOOL:${${PROJECT_NAME}_ENABLE_LIBRARY_EVOLUTION}>,$<COMPILE_LANGUAGE:Swift>>:-enable-library-evolution>"
8386
"$<$<AND:$<BOOL:${${PROJECT_NAME}_ENABLE_PRESPECIALIZATION}>,$<COMPILE_LANGUAGE:Swift>>:SHELL:-Xfrontend -prespecialize-generic-metadata>")
8487

88+
if(${PROJECT_NAME}_ENABLE_DIRECT_RETAIN_RELEASE)
89+
find_package(SwiftSwiftDirectRuntime REQUIRED)
90+
add_compile_options("$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -enable-direct-retain-release>")
91+
endif()
92+
8593
# LNK4049: symbol 'symbol' defined in 'filename.obj' is imported
8694
# LNK4286: symbol 'symbol' defined in 'filename_1.obj' is imported by 'filename_2.obj'
8795
# LNK4217: symbol 'symbol' defined in 'filename_1.obj' is imported by 'filename_2.obj' in function 'function'
@@ -116,7 +124,8 @@ target_link_libraries(swiftObservation PRIVATE
116124
swift_Concurrency
117125
$<$<PLATFORM_ID:Android>:swiftAndroid>
118126
$<$<PLATFORM_ID:Linux>:swiftGlibc>
119-
$<$<PLATFORM_ID:Windows>:swiftWinSDK>)
127+
$<$<PLATFORM_ID:Windows>:swiftWinSDK>
128+
$<$<BOOL:${SwiftSwiftDirectRuntime_FOUND}>:swiftSwiftDirectRuntime>)
120129

121130
install(TARGETS swiftObservation
122131
EXPORT SwiftObservationTargets

Runtimes/Supplemental/Runtime/CMakeLists.txt

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,9 @@ option(${PROJECT_NAME}_ENABLE_LIBRARY_EVOLUTION "Generate ABI resilient runtime
6868
option(${PROJECT_NAME}_ENABLE_PRESPECIALIZATION "Enable generic metadata prespecialization"
6969
${SwiftCore_ENABLE_PRESPECIALIZATION})
7070

71+
option(${PROJECT_NAME}_ENABLE_DIRECT_RETAIN_RELEASE "Use direct retain release"
72+
${SwiftCore_ENABLE_DIRECT_RETAIN_RELEASE})
73+
7174
add_compile_options(
7275
$<$<COMPILE_LANGUAGE:Swift>:-explicit-module-build>
7376
$<$<COMPILE_LANGUAGE:Swift>:-nostdlibimport>
@@ -92,6 +95,11 @@ add_compile_options(
9295
"$<$<AND:$<BOOL:${${PROJECT_NAME}_ENABLE_LIBRARY_EVOLUTION}>,$<COMPILE_LANGUAGE:Swift>>:-enable-library-evolution>"
9396
"$<$<AND:$<BOOL:${${PROJECT_NAME}_ENABLE_PRESPECIALIZATION}>,$<COMPILE_LANGUAGE:Swift>>:SHELL:-Xfrontend -prespecialize-generic-metadata>")
9497

98+
if(${PROJECT_NAME}_ENABLE_DIRECT_RETAIN_RELEASE)
99+
find_package(SwiftSwiftDirectRuntime REQUIRED)
100+
add_compile_options("$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -enable-direct-retain-release>")
101+
endif()
102+
95103
# LNK4049: symbol 'symbol' defined in 'filename.obj' is imported
96104
# LNK4286: symbol 'symbol' defined in 'filename_1.obj' is imported by 'filename_2.obj'
97105
# LNK4217: symbol 'symbol' defined in 'filename_1.obj' is imported by 'filename_2.obj' in function 'function'
@@ -157,7 +165,8 @@ target_link_libraries(swiftRuntime PRIVATE
157165
$<$<PLATFORM_ID:Android>:swiftAndroid>
158166
$<$<PLATFORM_ID:Darwin>:swiftDarwin>
159167
$<$<PLATFORM_ID:Linux>:swiftGlibc>
160-
$<$<PLATFORM_ID:Windows>:swiftWinSDK>)
168+
$<$<PLATFORM_ID:Windows>:swiftWinSDK>
169+
$<$<BOOL:${SwiftSwiftDirectRuntime_FOUND}>:swiftSwiftDirectRuntime>)
161170

162171
install(TARGETS swiftRuntime
163172
EXPORT SwiftRuntimeTargets

Runtimes/Supplemental/StringProcessing/CMakeLists.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,9 @@ option(${PROJECT_NAME}_ENABLE_LIBRARY_EVOLUTION "Generate ABI resilient runtime
5050
option(${PROJECT_NAME}_ENABLE_PRESPECIALIZATION "Enable generic metadata prespecialization"
5151
${SwiftCore_ENABLE_PRESPECIALIZATION})
5252

53+
option(${PROJECT_NAME}_ENABLE_DIRECT_RETAIN_RELEASE "Use direct retain release"
54+
${SwiftCore_ENABLE_DIRECT_RETAIN_RELEASE})
55+
5356
add_compile_options(
5457
$<$<COMPILE_LANGUAGE:Swift>:-explicit-module-build>
5558
$<$<COMPILE_LANGUAGE:Swift>:-nostdlibimport>
@@ -59,6 +62,11 @@ add_compile_options(
5962
"$<$<AND:$<BOOL:${${PROJECT_NAME}_ENABLE_LIBRARY_EVOLUTION}>,$<COMPILE_LANGUAGE:Swift>>:-enable-library-evolution>"
6063
"$<$<AND:$<BOOL:${${PROJECT_NAME}_ENABLE_PRESPECIALIZATION}>,$<COMPILE_LANGUAGE:Swift>>:SHELL:-Xfrontend -prespecialize-generic-metadata>")
6164

65+
if(${PROJECT_NAME}_ENABLE_DIRECT_RETAIN_RELEASE)
66+
find_package(SwiftSwiftDirectRuntime REQUIRED)
67+
add_compile_options("$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -enable-direct-retain-release>")
68+
endif()
69+
6270
# LNK4049: symbol 'symbol' defined in 'filename.obj' is imported
6371
# LNK4286: symbol 'symbol' defined in 'filename_1.obj' is imported by 'filename_2.obj'
6472
# LNK4217: symbol 'symbol' defined in 'filename_1.obj' is imported by 'filename_2.obj' in function 'function'

Runtimes/Supplemental/StringProcessing/RegexBuilder/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ set_target_properties(swiftRegexBuilder PROPERTIES
1212
target_link_libraries(swiftRegexBuilder PRIVATE
1313
swift_RegexParser
1414
swift_StringProcessing
15-
swiftCore)
15+
swiftCore
16+
$<$<BOOL:${SwiftSwiftDirectRuntime_FOUND}>:swiftSwiftDirectRuntime>)
1617

1718
install(TARGETS swiftRegexBuilder
1819
ARCHIVE DESTINATION "${SwiftStringProcessing_INSTALL_LIBDIR}"

Runtimes/Supplemental/StringProcessing/_RegexParser/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@ add_library(swift_RegexParser
3232
Utility/MissingUnicode.swift)
3333

3434
target_link_libraries(swift_RegexParser PRIVATE
35-
swiftCore)
35+
swiftCore
36+
$<$<BOOL:${SwiftSwiftDirectRuntime_FOUND}>:swiftSwiftDirectRuntime>)
3637

3738
set_target_properties(swift_RegexParser PROPERTIES
3839
Swift_MODULE_NAME _RegexParser)

Runtimes/Supplemental/StringProcessing/_StringProcessing/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,8 @@ set_target_properties(swift_StringProcessing PROPERTIES
7777

7878
target_link_libraries(swift_StringProcessing PRIVATE
7979
swift_RegexParser
80-
swiftCore)
80+
swiftCore
81+
$<$<BOOL:${SwiftSwiftDirectRuntime_FOUND}>:swiftSwiftDirectRuntime>)
8182

8283
install(TARGETS swift_StringProcessing
8384
ARCHIVE DESTINATION "${SwiftStringProcessing_INSTALL_LIBDIR}"

Runtimes/Supplemental/Synchronization/CMakeLists.txt

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,9 @@ option(${PROJECT_NAME}_ENABLE_LIBRARY_EVOLUTION "Generate ABI resilient runtime
6565
option(${PROJECT_NAME}_ENABLE_PRESPECIALIZATION "Enable generic metadata prespecialization"
6666
${SwiftCore_ENABLE_PRESPECIALIZATION})
6767

68+
option(${PROJECT_NAME}_ENABLE_DIRECT_RETAIN_RELEASE "Use direct retain release"
69+
${SwiftCore_ENABLE_DIRECT_RETAIN_RELEASE})
70+
6871
option(${PROJECT_NAME}_SINGLE_THREADED_MODE "Build Synchronization assuming it will be used in an environment with only a single thread" OFF)
6972

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

101+
if(${PROJECT_NAME}_ENABLE_DIRECT_RETAIN_RELEASE)
102+
find_package(SwiftSwiftDirectRuntime REQUIRED)
103+
add_compile_options("$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -enable-direct-retain-release>")
104+
endif()
105+
98106
# LNK4049: symbol 'symbol' defined in 'filename.obj' is imported
99107
# LNK4286: symbol 'symbol' defined in 'filename_1.obj' is imported by 'filename_2.obj'
100108
# LNK4217: symbol 'symbol' defined in 'filename_1.obj' is imported by 'filename_2.obj' in function 'function'
@@ -143,7 +151,8 @@ target_link_libraries(swiftSynchronization PRIVATE
143151
swiftCore
144152
$<$<PLATFORM_ID:Android>:swiftAndroid>
145153
$<$<PLATFORM_ID:Darwin>:swiftDarwin>
146-
$<$<PLATFORM_ID:Windows>:ClangModules>)
154+
$<$<PLATFORM_ID:Windows>:ClangModules>
155+
$<$<BOOL:${SwiftSwiftDirectRuntime_FOUND}>:swiftSwiftDirectRuntime>)
147156

148157
if(WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL i686)
149158
# FIXME(#83765) `-whole-module-optimization` should not be needed. However,

Runtimes/Supplemental/Volatile/CMakeLists.txt

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,13 +63,21 @@ option(${PROJECT_NAME}_ENABLE_LIBRARY_EVOLUTION "Generate ABI resilient runtime
6363
option(${PROJECT_NAME}_ENABLE_PRESPECIALIZATION "Enable generic metadata prespecialization"
6464
${SwiftCore_ENABLE_PRESPECIALIZATION})
6565

66+
option(${PROJECT_NAME}_ENABLE_DIRECT_RETAIN_RELEASE "Use direct retain release"
67+
${SwiftCore_ENABLE_DIRECT_RETAIN_RELEASE})
68+
6669
add_compile_options(
6770
$<$<COMPILE_LANGUAGE:Swift>:-explicit-module-build>
6871
$<$<COMPILE_LANGUAGE:Swift>:-nostdlibimport>
6972
$<$<COMPILE_LANGUAGE:Swift>:-strict-memory-safety>
7073
"$<$<AND:$<BOOL:${${PROJECT_NAME}_ENABLE_LIBRARY_EVOLUTION}>,$<COMPILE_LANGUAGE:Swift>>:-enable-library-evolution>"
7174
"$<$<AND:$<BOOL:${${PROJECT_NAME}_ENABLE_PRESPECIALIZATION}>,$<COMPILE_LANGUAGE:Swift>>:SHELL:-Xfrontend -prespecialize-generic-metadata>")
7275

76+
if(${PROJECT_NAME}_ENABLE_DIRECT_RETAIN_RELEASE)
77+
find_package(SwiftSwiftDirectRuntime REQUIRED)
78+
add_compile_options("$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -enable-direct-retain-release>")
79+
endif()
80+
7381
# LNK4049: symbol 'symbol' defined in 'filename.obj' is imported
7482
# LNK4286: symbol 'symbol' defined in 'filename_1.obj' is imported by 'filename_2.obj'
7583
# LNK4217: symbol 'symbol' defined in 'filename_1.obj' is imported by 'filename_2.obj' in function 'function'
@@ -88,7 +96,8 @@ set_target_properties(swift_Volatile PROPERTIES
8896
target_compile_options(swift_Volatile PRIVATE
8997
-parse-stdlib)
9098
target_link_libraries(swift_Volatile PRIVATE
91-
swiftCore)
99+
swiftCore
100+
$<$<BOOL:${SwiftSwiftDirectRuntime_FOUND}>:swiftSwiftDirectRuntime>)
92101

93102
install(TARGETS swift_Volatile
94103
EXPORT SwiftVolatileTargets

0 commit comments

Comments
 (0)