@@ -68,6 +68,9 @@ option(${PROJECT_NAME}_ENABLE_LIBRARY_EVOLUTION "Generate ABI resilient runtime
6868option (${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+
7174add_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
162171install (TARGETS swiftRuntime
163172 EXPORT SwiftRuntimeTargets
0 commit comments