mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
Merge pull request #85367 from edymtt/edymtt/link-client-retain-release-from-swift-core-in-runtimes-build-system
Runtimes: allow to link swiftSwiftDirectRuntime
This commit is contained in:
@@ -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_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_CONCURRENCY "Enable Concurrency runtime support")
|
||||||
defaulted_option(SwiftCore_ENABLE_REMOTE_MIRROR "Enable RemoteMirror 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")
|
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_COMMANDLINE_SUPPORT "Enable command line argument support" ON)
|
||||||
option(SwiftCore_ENABLE_UNICODE_DATA "Include unicode data in Swift runtimes" ON)
|
option(SwiftCore_ENABLE_UNICODE_DATA "Include unicode data in Swift runtimes" ON)
|
||||||
@@ -196,6 +197,11 @@ add_compile_options(
|
|||||||
"$<$<AND:$<BOOL:${SwiftCore_ENABLE_LIBRARY_EVOLUTION}>,$<COMPILE_LANGUAGE:Swift>>:-enable-library-evolution>"
|
"$<$<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>")
|
"$<$<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(ExperimentalFeatures)
|
||||||
|
|
||||||
include_directories(include)
|
include_directories(include)
|
||||||
|
|||||||
@@ -139,6 +139,7 @@ target_link_libraries(swift_Concurrency PRIVATE
|
|||||||
$<$<PLATFORM_ID:Android>:log>
|
$<$<PLATFORM_ID:Android>:log>
|
||||||
$<$<PLATFORM_ID:Windows>:Synchronization>
|
$<$<PLATFORM_ID:Windows>:Synchronization>
|
||||||
$<$<PLATFORM_ID:Windows>:mincore>
|
$<$<PLATFORM_ID:Windows>:mincore>
|
||||||
|
$<$<BOOL:${SwiftSwiftDirectRuntime_FOUND}>:swiftSwiftDirectRuntime>
|
||||||
# Link to the runtime that we are just building.
|
# Link to the runtime that we are just building.
|
||||||
swiftCore)
|
swiftCore)
|
||||||
set_target_properties(swift_Concurrency PROPERTIES
|
set_target_properties(swift_Concurrency PROPERTIES
|
||||||
|
|||||||
@@ -337,6 +337,7 @@ target_link_libraries(swiftCore
|
|||||||
swiftStdlibStubs
|
swiftStdlibStubs
|
||||||
swiftThreading
|
swiftThreading
|
||||||
$<$<NOT:$<PLATFORM_ID:Darwin>>:swiftrt$<$<PLATFORM_ID:Windows>:T>>
|
$<$<NOT:$<PLATFORM_ID:Darwin>>:swiftrt$<$<PLATFORM_ID:Windows>:T>>
|
||||||
|
$<$<BOOL:${SwiftSwiftDirectRuntime_FOUND}>:swiftSwiftDirectRuntime>
|
||||||
PUBLIC
|
PUBLIC
|
||||||
swiftShims
|
swiftShims
|
||||||
INTERFACE
|
INTERFACE
|
||||||
|
|||||||
@@ -29,7 +29,8 @@ target_compile_definitions(swiftSwiftOnoneSupport PRIVATE
|
|||||||
target_link_libraries(swiftSwiftOnoneSupport
|
target_link_libraries(swiftSwiftOnoneSupport
|
||||||
PRIVATE
|
PRIVATE
|
||||||
swiftShims
|
swiftShims
|
||||||
swiftCore)
|
swiftCore
|
||||||
|
$<$<BOOL:${SwiftSwiftDirectRuntime_FOUND}>:swiftSwiftDirectRuntime>)
|
||||||
|
|
||||||
install(TARGETS swiftSwiftOnoneSupport
|
install(TARGETS swiftSwiftOnoneSupport
|
||||||
EXPORT SwiftCoreTargets
|
EXPORT SwiftCoreTargets
|
||||||
|
|||||||
@@ -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_VECTOR_TYPES @SwiftCore_ENABLE_VECTOR_TYPES@)
|
||||||
|
|
||||||
set(SwiftCore_ENABLE_BACKDEPLOYMENT_SUPPORT @SwiftCore_ENABLE_BACKDEPLOYMENT_SUPPORT@)
|
set(SwiftCore_ENABLE_BACKDEPLOYMENT_SUPPORT @SwiftCore_ENABLE_BACKDEPLOYMENT_SUPPORT@)
|
||||||
|
|
||||||
|
set(SwiftCore_ENABLE_DIRECT_RETAIN_RELEASE @SwiftCore_ENABLE_DIRECT_RETAIN_RELEASE@)
|
||||||
|
|||||||
@@ -46,12 +46,15 @@ if(APPLE)
|
|||||||
set(SwiftCore_THREADING_PACKAGE_default "DARWIN")
|
set(SwiftCore_THREADING_PACKAGE_default "DARWIN")
|
||||||
set(SwiftCore_ENABLE_PRESPECIALIZATION_default ON)
|
set(SwiftCore_ENABLE_PRESPECIALIZATION_default ON)
|
||||||
set(SwiftCore_CONCURRENCY_GLOBAL_EXECUTOR_default "dispatch")
|
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")
|
elseif(CMAKE_SYSTEM_NAME STREQUAL "WASM")
|
||||||
set(SwiftCore_OBJECT_FORMAT_default "elf")
|
set(SwiftCore_OBJECT_FORMAT_default "elf")
|
||||||
set(SwiftCore_THREADING_PACKAGE_default "NONE")
|
set(SwiftCore_THREADING_PACKAGE_default "NONE")
|
||||||
set(SwiftCore_ENABLE_CONCURRENCY_default NO)
|
set(SwiftCore_ENABLE_CONCURRENCY_default NO)
|
||||||
set(SwiftCore_ENABLE_REMOTE_MIRROR_default NO)
|
set(SwiftCore_ENABLE_REMOTE_MIRROR_default NO)
|
||||||
set(SwiftCore_CONCURRENCY_GLOBAL_EXECUTOR_default "none")
|
set(SwiftCore_CONCURRENCY_GLOBAL_EXECUTOR_default "none")
|
||||||
|
set(SwiftCore_ENABLE_DIRECT_RETAIN_RELEASE_default OFF)
|
||||||
elseif(LINUX OR ANDROID OR BSD)
|
elseif(LINUX OR ANDROID OR BSD)
|
||||||
set(SwiftCore_OBJECT_FORMAT_default "elf")
|
set(SwiftCore_OBJECT_FORMAT_default "elf")
|
||||||
|
|
||||||
@@ -66,6 +69,7 @@ elseif(LINUX OR ANDROID OR BSD)
|
|||||||
set(SwiftCore_ENABLE_CONCURRENCY_default NO)
|
set(SwiftCore_ENABLE_CONCURRENCY_default NO)
|
||||||
set(SwiftCore_ENABLE_REMOTE_MIRROR_default NO)
|
set(SwiftCore_ENABLE_REMOTE_MIRROR_default NO)
|
||||||
set(SwiftCore_CONCURRENCY_GLOBAL_EXECUTOR_default "dispatch")
|
set(SwiftCore_CONCURRENCY_GLOBAL_EXECUTOR_default "dispatch")
|
||||||
|
set(SwiftCore_ENABLE_DIRECT_RETAIN_RELEASE_default OFF)
|
||||||
elseif(WIN32)
|
elseif(WIN32)
|
||||||
set(SwiftCore_OBJECT_FORMAT_default "coff")
|
set(SwiftCore_OBJECT_FORMAT_default "coff")
|
||||||
|
|
||||||
@@ -80,6 +84,7 @@ elseif(WIN32)
|
|||||||
# errors
|
# errors
|
||||||
set(SwiftCore_ENABLE_PRESPECIALIZATION_default OFF)
|
set(SwiftCore_ENABLE_PRESPECIALIZATION_default OFF)
|
||||||
set(SwiftCore_CONCURRENCY_GLOBAL_EXECUTOR_default "dispatch")
|
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_VECTOR_TYPES_default ON)
|
||||||
set(SwiftCore_ENABLE_FILESYSTEM_SUPPORT_default ON)
|
set(SwiftCore_ENABLE_FILESYSTEM_SUPPORT_default ON)
|
||||||
|
|||||||
@@ -59,6 +59,8 @@ option(SwiftOverlay_ENABLE_LIBRARY_EVOLUTION "Generate ABI resilient runtime lib
|
|||||||
${SwiftCore_ENABLE_LIBRARY_EVOLUTION})
|
${SwiftCore_ENABLE_LIBRARY_EVOLUTION})
|
||||||
option(SwiftOverlay_ENABLE_BACKDEPLOYMENT_SUPPORT "Add symbols for runtime backdeployment"
|
option(SwiftOverlay_ENABLE_BACKDEPLOYMENT_SUPPORT "Add symbols for runtime backdeployment"
|
||||||
${SwiftCore_ENABLE_BACKDEPLOYMENT_SUPPORT})
|
${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(
|
add_compile_definitions(
|
||||||
$<$<BOOL:${SwiftOverlay_ENABLE_BACKDEPLOYMENT_SUPPORT}>:SWIFT_STDLIB_SUPPORT_BACK_DEPLOYMENT>)
|
$<$<BOOL:${SwiftOverlay_ENABLE_BACKDEPLOYMENT_SUPPORT}>:SWIFT_STDLIB_SUPPORT_BACK_DEPLOYMENT>)
|
||||||
@@ -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_LIBRARY_EVOLUTION}>,$<COMPILE_LANGUAGE:Swift>>:-enable-library-evolution>"
|
||||||
"$<$<AND:$<BOOL:${${PROJECT_NAME}_ENABLE_PRESPECIALIZATION}>,$<COMPILE_LANGUAGE:Swift>>:SHELL:-Xfrontend -prespecialize-generic-metadata>")
|
"$<$<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)
|
include(ExperimentalFeatures)
|
||||||
|
|
||||||
# LNK4049: symbol 'symbol' defined in 'filename.obj' is imported
|
# LNK4049: symbol 'symbol' defined in 'filename.obj' is imported
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ target_compile_options(swiftCxx PRIVATE
|
|||||||
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-enable-experimental-feature BuiltinModule>"
|
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-enable-experimental-feature BuiltinModule>"
|
||||||
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-enable-experimental-feature Lifetimes>")
|
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-enable-experimental-feature Lifetimes>")
|
||||||
target_link_libraries(swiftCxx PRIVATE
|
target_link_libraries(swiftCxx PRIVATE
|
||||||
|
$<$<BOOL:${SwiftSwiftDirectRuntime_FOUND}>:swiftSwiftDirectRuntime>
|
||||||
swiftCore)
|
swiftCore)
|
||||||
|
|
||||||
install(TARGETS swiftCxx
|
install(TARGETS swiftCxx
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ target_compile_options(swiftCxxStdlib PRIVATE
|
|||||||
target_link_libraries(swiftCxxStdlib PRIVATE
|
target_link_libraries(swiftCxxStdlib PRIVATE
|
||||||
$<$<BOOL:${HAVE___GLIBCXX__}>:libstdcxx>
|
$<$<BOOL:${HAVE___GLIBCXX__}>:libstdcxx>
|
||||||
$<$<NOT:$<PLATFORM_ID:Darwin>>:cxxshim>
|
$<$<NOT:$<PLATFORM_ID:Darwin>>:cxxshim>
|
||||||
|
$<$<BOOL:${SwiftSwiftDirectRuntime_FOUND}>:swiftSwiftDirectRuntime>
|
||||||
swiftCxx
|
swiftCxx
|
||||||
swiftCore
|
swiftCore
|
||||||
swift_Builtin_float
|
swift_Builtin_float
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ target_compile_options(swift_Builtin_float PRIVATE
|
|||||||
$<$<COMPILE_LANGUAGE:Swift>:-autolink-force-load>)
|
$<$<COMPILE_LANGUAGE:Swift>:-autolink-force-load>)
|
||||||
target_link_libraries(swift_Builtin_float PRIVATE
|
target_link_libraries(swift_Builtin_float PRIVATE
|
||||||
$<$<PLATFORM_ID:Windows>:ClangModules>
|
$<$<PLATFORM_ID:Windows>:ClangModules>
|
||||||
|
$<$<BOOL:${SwiftSwiftDirectRuntime_FOUND}>:swiftSwiftDirectRuntime>
|
||||||
swiftCore)
|
swiftCore)
|
||||||
|
|
||||||
install(TARGETS swift_Builtin_float
|
install(TARGETS swift_Builtin_float
|
||||||
|
|||||||
@@ -61,6 +61,8 @@ option(${PROJECT_NAME}_ENABLE_LIBRARY_EVOLUTION "Generate ABI resilient runtime
|
|||||||
option(${PROJECT_NAME}_ENABLE_VECTOR_TYPES "Enable vector support"
|
option(${PROJECT_NAME}_ENABLE_VECTOR_TYPES "Enable vector support"
|
||||||
${SwiftCore_ENABLE_VECTOR_TYPES})
|
${SwiftCore_ENABLE_VECTOR_TYPES})
|
||||||
|
|
||||||
|
option(${PROJECT_NAME}_ENABLE_DIRECT_RETAIN_RELEASE "Use direct retain release"
|
||||||
|
${SwiftCore_ENABLE_DIRECT_RETAIN_RELEASE})
|
||||||
|
|
||||||
add_compile_options(
|
add_compile_options(
|
||||||
$<$<COMPILE_LANGUAGE:Swift>:-explicit-module-build>
|
$<$<COMPILE_LANGUAGE:Swift>:-explicit-module-build>
|
||||||
@@ -77,6 +79,11 @@ add_compile_options(
|
|||||||
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -target-min-inlining-version -Xfrontend min>"
|
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -target-min-inlining-version -Xfrontend min>"
|
||||||
$<$<AND:$<BOOL:${${PROJECT_NAME}_ENABLE_LIBRARY_EVOLUTION}>,$<COMPILE_LANGUAGE:Swift>>:-enable-library-evolution>)
|
$<$<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
|
# LNK4049: symbol 'symbol' defined in 'filename.obj' is imported
|
||||||
# LNK4286: symbol 'symbol' defined in 'filename_1.obj' is imported by 'filename_2.obj'
|
# 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'
|
# 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
|
target_link_libraries(swift_Differentiation PRIVATE
|
||||||
swiftCore
|
swiftCore
|
||||||
$<$<PLATFORM_ID:Android>:swiftAndroid>
|
$<$<PLATFORM_ID:Android>:swiftAndroid>
|
||||||
$<$<PLATFORM_ID:Windows>:swiftCRT>)
|
$<$<PLATFORM_ID:Windows>:swiftCRT>
|
||||||
|
$<$<BOOL:${SwiftSwiftDirectRuntime_FOUND}>:swiftSwiftDirectRuntime>)
|
||||||
|
|
||||||
|
|
||||||
install(TARGETS swift_Differentiation
|
install(TARGETS swift_Differentiation
|
||||||
|
|||||||
@@ -65,6 +65,9 @@ option(${PROJECT_NAME}_ENABLE_LIBRARY_EVOLUTION "Generate ABI resilient runtime
|
|||||||
option(${PROJECT_NAME}_ENABLE_PRESPECIALIZATION "Enable generic metadata prespecialization"
|
option(${PROJECT_NAME}_ENABLE_PRESPECIALIZATION "Enable generic metadata prespecialization"
|
||||||
${SwiftCore_ENABLE_PRESPECIALIZATION})
|
${SwiftCore_ENABLE_PRESPECIALIZATION})
|
||||||
|
|
||||||
|
option(${PROJECT_NAME}_ENABLE_DIRECT_RETAIN_RELEASE "Use direct retain release"
|
||||||
|
${SwiftCore_ENABLE_DIRECT_RETAIN_RELEASE})
|
||||||
|
|
||||||
add_compile_options(
|
add_compile_options(
|
||||||
$<$<COMPILE_LANGUAGE:Swift>:-explicit-module-build>
|
$<$<COMPILE_LANGUAGE:Swift>:-explicit-module-build>
|
||||||
$<$<COMPILE_LANGUAGE:Swift>:-nostdlibimport>
|
$<$<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_LIBRARY_EVOLUTION}>,$<COMPILE_LANGUAGE:Swift>>:-enable-library-evolution>"
|
||||||
"$<$<AND:$<BOOL:${${PROJECT_NAME}_ENABLE_PRESPECIALIZATION}>,$<COMPILE_LANGUAGE:Swift>>:SHELL:-Xfrontend -prespecialize-generic-metadata>")
|
"$<$<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
|
# LNK4049: symbol 'symbol' defined in 'filename.obj' is imported
|
||||||
# LNK4286: symbol 'symbol' defined in 'filename_1.obj' is imported by 'filename_2.obj'
|
# 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'
|
# 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_Concurrency
|
||||||
swift_Builtin_float
|
swift_Builtin_float
|
||||||
$<$<PLATFORM_ID:Android>:swiftAndroid>
|
$<$<PLATFORM_ID:Android>:swiftAndroid>
|
||||||
$<$<PLATFORM_ID:Windows>:swiftWinSDK>)
|
$<$<PLATFORM_ID:Windows>:swiftWinSDK>
|
||||||
|
$<$<BOOL:${SwiftSwiftDirectRuntime_FOUND}>:swiftSwiftDirectRuntime>)
|
||||||
|
|
||||||
install(TARGETS swiftDistributed
|
install(TARGETS swiftDistributed
|
||||||
EXPORT SwiftDistributedTargets
|
EXPORT SwiftDistributedTargets
|
||||||
|
|||||||
@@ -61,6 +61,9 @@ option(${PROJECT_NAME}_ENABLE_LIBRARY_EVOLUTION "Generate ABI resilient runtime
|
|||||||
option(${PROJECT_NAME}_ENABLE_PRESPECIALIZATION "Enable generic metadata prespecialization"
|
option(${PROJECT_NAME}_ENABLE_PRESPECIALIZATION "Enable generic metadata prespecialization"
|
||||||
${SwiftCore_ENABLE_PRESPECIALIZATION})
|
${SwiftCore_ENABLE_PRESPECIALIZATION})
|
||||||
|
|
||||||
|
option(${PROJECT_NAME}_ENABLE_DIRECT_RETAIN_RELEASE "Use direct retain release"
|
||||||
|
${SwiftCore_ENABLE_DIRECT_RETAIN_RELEASE})
|
||||||
|
|
||||||
add_compile_options(
|
add_compile_options(
|
||||||
$<$<COMPILE_LANGUAGE:Swift>:-explicit-module-build>
|
$<$<COMPILE_LANGUAGE:Swift>:-explicit-module-build>
|
||||||
$<$<COMPILE_LANGUAGE:Swift>:-nostdlibimport>
|
$<$<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_LIBRARY_EVOLUTION}>,$<COMPILE_LANGUAGE:Swift>>:-enable-library-evolution>"
|
||||||
"$<$<AND:$<BOOL:${${PROJECT_NAME}_ENABLE_PRESPECIALIZATION}>,$<COMPILE_LANGUAGE:Swift>>:SHELL:-Xfrontend -prespecialize-generic-metadata>")
|
"$<$<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
|
# LNK4049: symbol 'symbol' defined in 'filename.obj' is imported
|
||||||
# LNK4286: symbol 'symbol' defined in 'filename_1.obj' is imported by 'filename_2.obj'
|
# 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'
|
# 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
|
swift_Concurrency
|
||||||
$<$<PLATFORM_ID:Android>:swiftAndroid>
|
$<$<PLATFORM_ID:Android>:swiftAndroid>
|
||||||
$<$<PLATFORM_ID:Linux>:swiftGlibc>
|
$<$<PLATFORM_ID:Linux>:swiftGlibc>
|
||||||
$<$<PLATFORM_ID:Windows>:swiftWinSDK>)
|
$<$<PLATFORM_ID:Windows>:swiftWinSDK>
|
||||||
|
$<$<BOOL:${SwiftSwiftDirectRuntime_FOUND}>:swiftSwiftDirectRuntime>)
|
||||||
|
|
||||||
install(TARGETS swiftObservation
|
install(TARGETS swiftObservation
|
||||||
EXPORT SwiftObservationTargets
|
EXPORT SwiftObservationTargets
|
||||||
|
|||||||
@@ -68,6 +68,9 @@ option(${PROJECT_NAME}_ENABLE_LIBRARY_EVOLUTION "Generate ABI resilient runtime
|
|||||||
option(${PROJECT_NAME}_ENABLE_PRESPECIALIZATION "Enable generic metadata prespecialization"
|
option(${PROJECT_NAME}_ENABLE_PRESPECIALIZATION "Enable generic metadata prespecialization"
|
||||||
${SwiftCore_ENABLE_PRESPECIALIZATION})
|
${SwiftCore_ENABLE_PRESPECIALIZATION})
|
||||||
|
|
||||||
|
option(${PROJECT_NAME}_ENABLE_DIRECT_RETAIN_RELEASE "Use direct retain release"
|
||||||
|
${SwiftCore_ENABLE_DIRECT_RETAIN_RELEASE})
|
||||||
|
|
||||||
add_compile_options(
|
add_compile_options(
|
||||||
$<$<COMPILE_LANGUAGE:Swift>:-explicit-module-build>
|
$<$<COMPILE_LANGUAGE:Swift>:-explicit-module-build>
|
||||||
$<$<COMPILE_LANGUAGE:Swift>:-nostdlibimport>
|
$<$<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_LIBRARY_EVOLUTION}>,$<COMPILE_LANGUAGE:Swift>>:-enable-library-evolution>"
|
||||||
"$<$<AND:$<BOOL:${${PROJECT_NAME}_ENABLE_PRESPECIALIZATION}>,$<COMPILE_LANGUAGE:Swift>>:SHELL:-Xfrontend -prespecialize-generic-metadata>")
|
"$<$<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
|
# LNK4049: symbol 'symbol' defined in 'filename.obj' is imported
|
||||||
# LNK4286: symbol 'symbol' defined in 'filename_1.obj' is imported by 'filename_2.obj'
|
# 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'
|
# 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:Android>:swiftAndroid>
|
||||||
$<$<PLATFORM_ID:Darwin>:swiftDarwin>
|
$<$<PLATFORM_ID:Darwin>:swiftDarwin>
|
||||||
$<$<PLATFORM_ID:Linux>:swiftGlibc>
|
$<$<PLATFORM_ID:Linux>:swiftGlibc>
|
||||||
$<$<PLATFORM_ID:Windows>:swiftWinSDK>)
|
$<$<PLATFORM_ID:Windows>:swiftWinSDK>
|
||||||
|
$<$<BOOL:${SwiftSwiftDirectRuntime_FOUND}>:swiftSwiftDirectRuntime>)
|
||||||
|
|
||||||
install(TARGETS swiftRuntime
|
install(TARGETS swiftRuntime
|
||||||
EXPORT SwiftRuntimeTargets
|
EXPORT SwiftRuntimeTargets
|
||||||
|
|||||||
@@ -53,6 +53,9 @@ option(${PROJECT_NAME}_ENABLE_LIBRARY_EVOLUTION "Generate ABI resilient runtime
|
|||||||
option(${PROJECT_NAME}_ENABLE_PRESPECIALIZATION "Enable generic metadata prespecialization"
|
option(${PROJECT_NAME}_ENABLE_PRESPECIALIZATION "Enable generic metadata prespecialization"
|
||||||
${SwiftCore_ENABLE_PRESPECIALIZATION})
|
${SwiftCore_ENABLE_PRESPECIALIZATION})
|
||||||
|
|
||||||
|
option(${PROJECT_NAME}_ENABLE_DIRECT_RETAIN_RELEASE "Use direct retain release"
|
||||||
|
${SwiftCore_ENABLE_DIRECT_RETAIN_RELEASE})
|
||||||
|
|
||||||
add_compile_options(
|
add_compile_options(
|
||||||
$<$<COMPILE_LANGUAGE:Swift>:-explicit-module-build>
|
$<$<COMPILE_LANGUAGE:Swift>:-explicit-module-build>
|
||||||
$<$<COMPILE_LANGUAGE:Swift>:-nostdlibimport>
|
$<$<COMPILE_LANGUAGE:Swift>:-nostdlibimport>
|
||||||
@@ -62,6 +65,11 @@ add_compile_options(
|
|||||||
"$<$<AND:$<BOOL:${${PROJECT_NAME}_ENABLE_LIBRARY_EVOLUTION}>,$<COMPILE_LANGUAGE:Swift>>:-enable-library-evolution>"
|
"$<$<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>")
|
"$<$<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
|
# LNK4049: symbol 'symbol' defined in 'filename.obj' is imported
|
||||||
# LNK4286: symbol 'symbol' defined in 'filename_1.obj' is imported by 'filename_2.obj'
|
# 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'
|
# LNK4217: symbol 'symbol' defined in 'filename_1.obj' is imported by 'filename_2.obj' in function 'function'
|
||||||
|
|||||||
@@ -12,7 +12,8 @@ set_target_properties(swiftRegexBuilder PROPERTIES
|
|||||||
target_link_libraries(swiftRegexBuilder PRIVATE
|
target_link_libraries(swiftRegexBuilder PRIVATE
|
||||||
swift_RegexParser
|
swift_RegexParser
|
||||||
swift_StringProcessing
|
swift_StringProcessing
|
||||||
swiftCore)
|
swiftCore
|
||||||
|
$<$<BOOL:${SwiftSwiftDirectRuntime_FOUND}>:swiftSwiftDirectRuntime>)
|
||||||
|
|
||||||
install(TARGETS swiftRegexBuilder
|
install(TARGETS swiftRegexBuilder
|
||||||
ARCHIVE DESTINATION "${SwiftStringProcessing_INSTALL_LIBDIR}"
|
ARCHIVE DESTINATION "${SwiftStringProcessing_INSTALL_LIBDIR}"
|
||||||
|
|||||||
@@ -32,7 +32,8 @@ add_library(swift_RegexParser
|
|||||||
Utility/MissingUnicode.swift)
|
Utility/MissingUnicode.swift)
|
||||||
|
|
||||||
target_link_libraries(swift_RegexParser PRIVATE
|
target_link_libraries(swift_RegexParser PRIVATE
|
||||||
swiftCore)
|
swiftCore
|
||||||
|
$<$<BOOL:${SwiftSwiftDirectRuntime_FOUND}>:swiftSwiftDirectRuntime>)
|
||||||
|
|
||||||
set_target_properties(swift_RegexParser PROPERTIES
|
set_target_properties(swift_RegexParser PROPERTIES
|
||||||
Swift_MODULE_NAME _RegexParser)
|
Swift_MODULE_NAME _RegexParser)
|
||||||
|
|||||||
@@ -77,7 +77,8 @@ set_target_properties(swift_StringProcessing PROPERTIES
|
|||||||
|
|
||||||
target_link_libraries(swift_StringProcessing PRIVATE
|
target_link_libraries(swift_StringProcessing PRIVATE
|
||||||
swift_RegexParser
|
swift_RegexParser
|
||||||
swiftCore)
|
swiftCore
|
||||||
|
$<$<BOOL:${SwiftSwiftDirectRuntime_FOUND}>:swiftSwiftDirectRuntime>)
|
||||||
|
|
||||||
install(TARGETS swift_StringProcessing
|
install(TARGETS swift_StringProcessing
|
||||||
ARCHIVE DESTINATION "${SwiftStringProcessing_INSTALL_LIBDIR}"
|
ARCHIVE DESTINATION "${SwiftStringProcessing_INSTALL_LIBDIR}"
|
||||||
|
|||||||
@@ -65,6 +65,9 @@ option(${PROJECT_NAME}_ENABLE_LIBRARY_EVOLUTION "Generate ABI resilient runtime
|
|||||||
option(${PROJECT_NAME}_ENABLE_PRESPECIALIZATION "Enable generic metadata prespecialization"
|
option(${PROJECT_NAME}_ENABLE_PRESPECIALIZATION "Enable generic metadata prespecialization"
|
||||||
${SwiftCore_ENABLE_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)
|
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(
|
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_LIBRARY_EVOLUTION}>,$<COMPILE_LANGUAGE:Swift>>:-enable-library-evolution>"
|
||||||
"$<$<AND:$<BOOL:${${PROJECT_NAME}_ENABLE_PRESPECIALIZATION}>,$<COMPILE_LANGUAGE:Swift>>:SHELL:-Xfrontend -prespecialize-generic-metadata>")
|
"$<$<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
|
# LNK4049: symbol 'symbol' defined in 'filename.obj' is imported
|
||||||
# LNK4286: symbol 'symbol' defined in 'filename_1.obj' is imported by 'filename_2.obj'
|
# 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'
|
# 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
|
swiftCore
|
||||||
$<$<PLATFORM_ID:Android>:swiftAndroid>
|
$<$<PLATFORM_ID:Android>:swiftAndroid>
|
||||||
$<$<PLATFORM_ID:Darwin>:swiftDarwin>
|
$<$<PLATFORM_ID:Darwin>:swiftDarwin>
|
||||||
$<$<PLATFORM_ID:Windows>:ClangModules>)
|
$<$<PLATFORM_ID:Windows>:ClangModules>
|
||||||
|
$<$<BOOL:${SwiftSwiftDirectRuntime_FOUND}>:swiftSwiftDirectRuntime>)
|
||||||
|
|
||||||
if(WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL i686)
|
if(WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL i686)
|
||||||
# FIXME(#83765) `-whole-module-optimization` should not be needed. However,
|
# FIXME(#83765) `-whole-module-optimization` should not be needed. However,
|
||||||
|
|||||||
@@ -63,6 +63,9 @@ option(${PROJECT_NAME}_ENABLE_LIBRARY_EVOLUTION "Generate ABI resilient runtime
|
|||||||
option(${PROJECT_NAME}_ENABLE_PRESPECIALIZATION "Enable generic metadata prespecialization"
|
option(${PROJECT_NAME}_ENABLE_PRESPECIALIZATION "Enable generic metadata prespecialization"
|
||||||
${SwiftCore_ENABLE_PRESPECIALIZATION})
|
${SwiftCore_ENABLE_PRESPECIALIZATION})
|
||||||
|
|
||||||
|
option(${PROJECT_NAME}_ENABLE_DIRECT_RETAIN_RELEASE "Use direct retain release"
|
||||||
|
${SwiftCore_ENABLE_DIRECT_RETAIN_RELEASE})
|
||||||
|
|
||||||
add_compile_options(
|
add_compile_options(
|
||||||
$<$<COMPILE_LANGUAGE:Swift>:-explicit-module-build>
|
$<$<COMPILE_LANGUAGE:Swift>:-explicit-module-build>
|
||||||
$<$<COMPILE_LANGUAGE:Swift>:-nostdlibimport>
|
$<$<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_LIBRARY_EVOLUTION}>,$<COMPILE_LANGUAGE:Swift>>:-enable-library-evolution>"
|
||||||
"$<$<AND:$<BOOL:${${PROJECT_NAME}_ENABLE_PRESPECIALIZATION}>,$<COMPILE_LANGUAGE:Swift>>:SHELL:-Xfrontend -prespecialize-generic-metadata>")
|
"$<$<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
|
# LNK4049: symbol 'symbol' defined in 'filename.obj' is imported
|
||||||
# LNK4286: symbol 'symbol' defined in 'filename_1.obj' is imported by 'filename_2.obj'
|
# 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'
|
# 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
|
target_compile_options(swift_Volatile PRIVATE
|
||||||
-parse-stdlib)
|
-parse-stdlib)
|
||||||
target_link_libraries(swift_Volatile PRIVATE
|
target_link_libraries(swift_Volatile PRIVATE
|
||||||
swiftCore)
|
swiftCore
|
||||||
|
$<$<BOOL:${SwiftSwiftDirectRuntime_FOUND}>:swiftSwiftDirectRuntime>)
|
||||||
|
|
||||||
install(TARGETS swift_Volatile
|
install(TARGETS swift_Volatile
|
||||||
EXPORT SwiftVolatileTargets
|
EXPORT SwiftVolatileTargets
|
||||||
|
|||||||
74
Runtimes/cmake/modules/FindSwiftSwiftDirectRuntime.cmake
Normal file
74
Runtimes/cmake/modules/FindSwiftSwiftDirectRuntime.cmake
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
#[=======================================================================[.rst:
|
||||||
|
FindSwiftSwiftDirectRuntime
|
||||||
|
------------
|
||||||
|
|
||||||
|
Find swiftSwiftDirectRuntime, deferring to the associated SwiftSwiftDirectRuntimeConfig.cmake when requested.
|
||||||
|
This is meant to be linked in swiftCore.
|
||||||
|
|
||||||
|
Imported Targets
|
||||||
|
^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
The following :prop_tgt:`IMPORTED` TARGETS may be defined:
|
||||||
|
|
||||||
|
``swiftSwiftDirectRuntime``
|
||||||
|
|
||||||
|
#]=======================================================================]
|
||||||
|
|
||||||
|
include_guard(GLOBAL)
|
||||||
|
|
||||||
|
if(SwiftSwiftDirectRuntime_DIR)
|
||||||
|
if(${CMAKE_FIND_PACKAGE_NAME}_FIND_REQUIRED)
|
||||||
|
list(APPEND args REQUIRED)
|
||||||
|
endif()
|
||||||
|
if(${CMAKE_FIND_PACKAGE_NAME}_FIND_QUIETLY)
|
||||||
|
list(APPEND args QUIET)
|
||||||
|
endif()
|
||||||
|
find_package(SwiftSwiftDirectRuntime CONFIG ${args})
|
||||||
|
return()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
include(FindPackageHandleStandardArgs)
|
||||||
|
include(PlatformInfo)
|
||||||
|
|
||||||
|
if(APPLE)
|
||||||
|
# SwiftDirectRuntime is not installed in the SDKs, but in the
|
||||||
|
# toolchain next to the compiler
|
||||||
|
set(target_info_command "${CMAKE_Swift_COMPILER}" -print-target-info)
|
||||||
|
if(CMAKE_Swift_COMPILER_TARGET)
|
||||||
|
list(APPEND target_info_command -target ${CMAKE_Swift_COMPILER_TARGET})
|
||||||
|
endif()
|
||||||
|
execute_process(COMMAND ${target_info_command} OUTPUT_VARIABLE target_info_json)
|
||||||
|
message(CONFIGURE_LOG "Swift target info: ${target_info_command}\n"
|
||||||
|
"${target_info_json}")
|
||||||
|
|
||||||
|
string(JSON runtime_library_import_paths_json GET "${target_info_json}" "paths" "runtimeLibraryImportPaths")
|
||||||
|
message(CONFIGURE_LOG "runtime_library_import_paths_json ${runtime_library_import_paths_json}")
|
||||||
|
|
||||||
|
string(JSON number_of_runtime_library_import_paths LENGTH "${runtime_library_import_paths_json}")
|
||||||
|
math(EXPR index_of_last_runtime_library_import_path "${number_of_runtime_library_import_paths} - 1")
|
||||||
|
foreach(index RANGE 0 ${index_of_last_runtime_library_import_path})
|
||||||
|
string(JSON runtime_library_import_path GET "${runtime_library_import_paths_json}" ${index})
|
||||||
|
|
||||||
|
list(APPEND swiftSwiftDirectRuntime_LIBRARY_HINTS
|
||||||
|
"${runtime_library_import_path}")
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
list(APPEND swiftSwiftDirectRuntime_NAMES libswiftSwiftDirectRuntime.a)
|
||||||
|
else()
|
||||||
|
message(WARNING "SwiftDirectRuntime is only available for Apple platforms at the moment.\n")
|
||||||
|
return()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
find_library(swiftSwiftDirectRuntime_LIBRARY
|
||||||
|
NAMES
|
||||||
|
${swiftSwiftDirectRuntime_NAMES}
|
||||||
|
NO_CMAKE_FIND_ROOT_PATH
|
||||||
|
HINTS
|
||||||
|
${swiftSwiftDirectRuntime_LIBRARY_HINTS})
|
||||||
|
|
||||||
|
add_library(swiftSwiftDirectRuntime STATIC IMPORTED GLOBAL)
|
||||||
|
set_target_properties(swiftSwiftDirectRuntime PROPERTIES
|
||||||
|
IMPORTED_LOCATION "${swiftSwiftDirectRuntime_LIBRARY}")
|
||||||
|
|
||||||
|
find_package_handle_standard_args(SwiftSwiftDirectRuntime DEFAULT_MSG
|
||||||
|
swiftSwiftDirectRuntime_LIBRARY)
|
||||||
Reference in New Issue
Block a user