Allow to link SwiftSwiftDirectRuntime in Supplemental build system

Addresses rdar://164174616
This commit is contained in:
Eric Miotto
2025-11-10 13:27:26 -08:00
parent b1f7f81c4e
commit 578b7f44fe
10 changed files with 73 additions and 9 deletions

View File

@@ -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>
@@ -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'
@@ -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

View File

@@ -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>
@@ -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'
@@ -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

View File

@@ -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>
@@ -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'
@@ -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

View File

@@ -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>
@@ -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'
@@ -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

View File

@@ -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>
@@ -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'

View File

@@ -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}"

View File

@@ -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)

View File

@@ -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}"

View File

@@ -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(
@@ -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'
@@ -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,

View File

@@ -63,6 +63,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>
@@ -70,6 +73,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'
@@ -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