Skip to content

Commit a5b3374

Browse files
committed
Merge branch 'main' into rdar137710901-utf8view-span-notsmol
2 parents f1f8c8f + c21de06 commit a5b3374

File tree

626 files changed

+21260
-8472
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

626 files changed

+21260
-8472
lines changed

.github/CODEOWNERS

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@
7878
/include/swift/AST/*Requirement* @hborla @slavapestov
7979
/include/swift/AST/*Substitution* @slavapestov
8080
/include/swift/AST/DiagnosticGroup* @DougGregor
81-
/include/swift/AST/DiagnosticsClangImporter.def @zoecarver @hyp @egorzhdan @beccadax @ian-twilightcoder @Xazax-hun @j-hui @fahadnayyar
81+
/include/swift/AST/DiagnosticsClangImporter.def @zoecarver @egorzhdan @beccadax @ian-twilightcoder @Xazax-hun @j-hui @fahadnayyar @susmonteiro
8282
/include/swift/AST/DiagnosticsDriver.def @artemcm
8383
/include/swift/AST/DiagnosticsFrontend.def @artemcm @tshortli
8484
/include/swift/AST/DiagnosticsIDE.def @ahoppen @bnbarham @hamishknight @rintaro
@@ -90,7 +90,7 @@
9090
/include/swift/AST/Evaluator* @CodaFi @slavapestov
9191
/include/swift/Basic/ @DougGregor
9292
/include/swift/Basic/Features.def @DougGregor @hborla
93-
/include/swift/ClangImporter @zoecarver @hyp @egorzhdan @beccadax @ian-twilightcoder @Xazax-hun @j-hui @fahadnayyar
93+
/include/swift/ClangImporter @zoecarver @egorzhdan @beccadax @ian-twilightcoder @Xazax-hun @j-hui @fahadnayyar @susmonteiro
9494
/include/swift/DependencyScan @artemcm @cachemeifyoucan
9595
/include/swift/Driver*/ @artemcm
9696
/include/swift/Frontend*/ @artemcm @tshortli
@@ -101,7 +101,7 @@
101101
/include/swift/Migrator/ @nkcsgexi
102102
/include/swift/Option/*Options* @tshortli
103103
/include/swift/Parse/ @ahoppen @bnbarham @CodaFi @DougGregor @hamishknight @rintaro
104-
/include/swift/PrintAsClang @zoecarver @hyp @egorzhdan @Xazax-hun @j-hui @fahadnayyar
104+
/include/swift/PrintAsClang @zoecarver @egorzhdan @Xazax-hun @j-hui @fahadnayyar @susmonteiro
105105
/include/swift/Refactoring @ahoppen @bnbarham @hamishknight @rintaro
106106
/include/swift/Runtime/ @rjmccall
107107
/include/swift/SIL/ @jckarter
@@ -136,7 +136,7 @@
136136
/lib/ASTGen/ @ahoppen @bnbarham @CodaFi @hamishknight @rintaro
137137
/lib/Basic/ @DougGregor
138138
/lib/Basic/Windows @compnerd
139-
/lib/ClangImporter @zoecarver @hyp @egorzhdan @beccadax @ian-twilightcoder @Xazax-hun @j-hui @fahadnayyar
139+
/lib/ClangImporter @zoecarver @egorzhdan @beccadax @ian-twilightcoder @Xazax-hun @j-hui @fahadnayyar @susmonteiro
140140
/lib/ClangImporter/DWARFImporter* @adrian-prantl
141141
/lib/DependencyScan @artemcm @cachemeifyoucan
142142
/lib/Driver*/ @artemcm
@@ -155,7 +155,7 @@
155155
/lib/Markup/ @nkcsgexi
156156
/lib/Migrator/ @nkcsgexi
157157
/lib/Parse/ @ahoppen @bnbarham @CodaFi @DougGregor @hamishknight @rintaro
158-
/lib/PrintAsClang @zoecarver @hyp @egorzhdan @Xazax-hun @j-hui @fahadnayyar
158+
/lib/PrintAsClang @zoecarver @egorzhdan @Xazax-hun @j-hui @fahadnayyar @susmonteiro
159159
/lib/Refactoring/ @ahoppen @bnbarham @hamishknight @rintaro
160160
/lib/SIL/ @jckarter
161161
/lib/SIL/**/*DebugInfo* @adrian-prantl
@@ -197,7 +197,7 @@
197197
/stdlib/private/SwiftReflectionTest/ @slavapestov
198198
/stdlib/public/*Demangl*/ @rjmccall
199199
/stdlib/public/Concurrency/ @ktoso
200-
/stdlib/public/Cxx/ @zoecarver @hyp @egorzhdan @Xazax-hun @j-hui @fahadnayyar
200+
/stdlib/public/Cxx/ @zoecarver @egorzhdan @Xazax-hun @j-hui @fahadnayyar @susmonteiro
201201
/stdlib/public/Distributed/ @ktoso
202202
/stdlib/public/Observation/ @phausler
203203
/stdlib/public/RuntimeModule/ @al45tair @mikeash
@@ -223,7 +223,7 @@
223223
/test/IDE/ @ahoppen @bnbarham @hamishknight @rintaro
224224
/test/IRGen/ @rjmccall
225225
/test/Index/ @ahoppen @bnbarham @hamishknight @rintaro
226-
/test/Interop/ @zoecarver @hyp @egorzhdan @Xazax-hun @j-hui @fahadnayyar
226+
/test/Interop/ @zoecarver @egorzhdan @Xazax-hun @j-hui @fahadnayyar @susmonteiro
227227
/test/Migrator/ @nkcsgexi
228228
/test/Parse/ @ahoppen @bnbarham @CodaFi @DougGregor @hamishknight @rintaro
229229
/test/Profiler @ahoppen @bnbarham @hamishknight @rintaro

Runtimes/Core/Concurrency/CMakeLists.txt

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -115,10 +115,7 @@ target_link_libraries(swift_Concurrency PRIVATE
115115
$<$<PLATFORM_ID:Windows>:Synchronization>
116116
$<$<PLATFORM_ID:Windows>:mincore>
117117
# Link to the runtime that we are just building.
118-
swiftCore
119-
$<$<NOT:$<PLATFORM_ID:Darwin>>:swiftrt>)
120-
target_link_options(swift_Concurrency PRIVATE
121-
-nostartfiles)
118+
swiftCore)
122119
set_target_properties(swift_Concurrency PROPERTIES
123120
Swift_MODULE_NAME _Concurrency)
124121

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
11
add_library(swiftConcurrencyInternalShims INTERFACE)
22
target_include_directories(swiftConcurrencyInternalShims INTERFACE
3-
${CMAKE_CURRENT_SOURCE_DIR})
3+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>)
4+
5+
install(TARGETS swiftConcurrencyInternalShims
6+
EXPORT SwiftCoreTargets
7+
COMPONENT SwiftCore_runtime)
8+
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
find_program(SCCACHE_EXECUTABLE sccache)
2+
3+
if(SCCACHE_EXECUTABLE)
4+
set(CMAKE_C_COMPILER_LAUNCHER "${SCCACHE_EXECUTABLE}" CACHE FILEPATH "")
5+
set(CMAKE_CXX_COMPILER_LAUNCHER "${SCCACHE_EXECUTABLE}" CACHE FILEPATH "")
6+
message(STATUS "sccache enabled")
7+
endif()

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
@PACKAGE_INIT@
2-
include("${CMAKE_CURRENT_LIST_DIR}/SwiftCoreTargets.cmake")
2+
include("${CMAKE_CURRENT_LIST_DIR}/SwiftCore/SwiftCoreTargets.cmake")
33

44
set(SwiftCore_ENABLE_LIBRARY_EVOLUTION @SwiftCore_ENABLE_LIBRARY_EVOLUTION@)
55

Runtimes/Core/cmake/modules/DefaultSettings.cmake

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,11 @@ elseif(LINUX OR ANDROID OR BSD)
6262
set(SwiftCore_CONCURRENCY_GLOBAL_EXECUTOR_default "dispatch")
6363
elseif(WIN32)
6464
set(SwiftCore_OBJECT_FORMAT_default "coff")
65-
set(SwiftCore_THREADING_PACKAGE_default "WIN32")
65+
set(SwiftCore_ENABLE_REFLECTION_default ON)
6666
set(SwiftCore_ENABLE_FATALERROR_BACKTRACE_default ON)
67-
set(SwiftCore_ENABLE_PRESPECIALIZATION_default ON)
6867
set(SwiftCore_ENABLE_CONCURRENCY_default NO)
68+
set(SwiftCore_THREADING_PACKAGE_default "WIN32")
69+
set(SwiftCore_ENABLE_PRESPECIALIZATION_default ON)
6970
set(SwiftCore_CONCURRENCY_GLOBAL_EXECUTOR_default "dispatch")
7071
endif()
7172

Runtimes/Core/cmake/modules/ExperimentalFeatures.cmake

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,4 @@ add_compile_options(
1010
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-enable-experimental-feature FreestandingMacros>"
1111
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-enable-experimental-feature BitwiseCopyable>"
1212
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-enable-experimental-feature Extern>"
13-
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-enable-experimental-feature ValueGenerics>"
14-
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-enable-experimental-feature AddressableParameters>")
13+
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-enable-experimental-feature ValueGenerics>")

Runtimes/Core/core/CMakeLists.txt

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ add_library(swiftCore
7272
DropWhile.swift
7373
Dump.swift
7474
EmptyCollection.swift
75+
EnumeratedSequence.swift
7576
Equatable.swift
7677
ErrorType.swift
7778
ExistentialCollection.swift
@@ -278,6 +279,8 @@ target_compile_options(swiftCore PRIVATE
278279
# STAGING: Temporarily avoids having to write #fileID in Swift.swiftinterface.
279280
# see also 327ea8bce2d1107a847d444651b19ca6a2901c9e
280281
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -enable-experimental-concise-pound-file>"
282+
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-enable-experimental-feature AddressableParameters>"
283+
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-enable-experimental-feature AddressableTypes>"
281284
$<$<COMPILE_LANGUAGE:Swift>:-parse-stdlib>
282285
$<$<COMPILE_LANGUAGE:Swift>:-nostdimport>
283286
$<$<COMPILE_LANGUAGE:Swift>:-explicit-module-build>
@@ -312,8 +315,16 @@ target_link_libraries(swiftCore
312315
$<$<NOT:$<PLATFORM_ID:Darwin>>:swiftrt$<$<PLATFORM_ID:Windows>:T>>
313316
PUBLIC
314317
swiftShims)
315-
target_link_options(swiftCore PRIVATE
316-
-nostartfiles)
318+
target_link_options(swiftCore PUBLIC
319+
$<$<LINK_LANGUAGE:Swift>:-nostartfiles>)
320+
string(TOLOWER "${SwiftCore_OBJECT_FORMAT}" SwiftCore_OBJECT_FORMAT_lc)
321+
if("${SwiftCore_OBJECT_FORMAT_lc}" STREQUAL "elf")
322+
target_link_libraries(swiftCore INTERFACE
323+
swiftrt$<$<BOOL:NO>:>)
324+
elseif("${SwiftCore_OBJECT_FORMAT_lc}" STREQUAL "coff")
325+
target_link_libraries(swiftCore INTERFACE
326+
swiftrt$<$<NOT:$<BOOL:${BUILD_SHARED_LIBS}>>:T>)
327+
endif()
317328
if(NOT POLICY CMP0157)
318329
target_compile_options(swiftCore PRIVATE
319330
$<TARGET_OBJECTS:swiftRuntime>

Runtimes/Core/runtime/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,7 @@ elseif("${SwiftCore_OBJECT_FORMAT}" STREQUAL "coffx")
173173
SWIFT_STATIC_STDLIB)
174174
target_link_libraries(swiftrtT PRIVATE swiftShims)
175175
install(FILES $<TARGET_OBJECTS:swiftrtT>
176+
COMPONENT SwiftCore_runtime
176177
DESTINATION "${CMAKE_INSTALL_LIBDIR}/swift/${SwiftCore_PLATFORM_SUBDIR}/${SwiftCore_ARCH_SUBDIR}"
177178
RENAME swiftrtT.obj)
178179

Runtimes/Overlay/CMakeLists.txt

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
2+
cmake_minimum_required(VERSION 3.26...3.29)
3+
4+
set(CMAKE_C_VISIBILITY_PRESET "hidden")
5+
set(CMAKE_CXX_VISIBILITY_PRESET "hidden")
6+
set(CMAKE_VISIBILITY_INLINES_HIDDEN YES)
7+
8+
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules")
9+
10+
# NOTE: always use the 3-component style as the expansion as
11+
# `${PROJECT_VERSION}` will not extend this to the complete form and this can
12+
# change the behaviour for comparison with non-SemVer compliant parsing. If
13+
# possible, use the 4-version component as that is used to differentiate the
14+
# builds of the runtime for Windows.
15+
if($ENV{BUILD_NUMBER})
16+
# NOTE: SxS modules have a limit on each component being [0-65535].
17+
# https://learn.microsoft.com/en-us/windows/win32/sbscs/assembly-versions
18+
math(EXPR BUILD_NUMBER "$ENV{BUILD_NUMBER} % 65535")
19+
set(BUILD_NUMBER ".${BUILD_NUMBER}")
20+
endif()
21+
project(SwiftOverlay
22+
LANGUAGES C CXX Swift
23+
VERSION 6.1.0${BUILD_NUMBER})
24+
25+
# FIXME: We should not need to refer back into the compiler sources. This is
26+
# needed by gyb and AvailabilityMacros
27+
set(SwiftOverlay_SWIFTC_SOURCE_DIR
28+
"${PROJECT_SOURCE_DIR}/../../"
29+
CACHE FILEPATH "Path to the root source directory of the Swift compiler")
30+
31+
include(GNUInstallDirs)
32+
33+
include(gyb)
34+
include(AvailabilityMacros)
35+
include(DefaultSettings)
36+
include(EmitSwiftInterface)
37+
include(PlatformInfo)
38+
include(ResourceEmbedding)
39+
40+
defaulted_option(SwiftOverlay_ENABLE_REFLECTION "Enable runtime support for mirrors and reflection support")
41+
42+
option(SwiftOverlay_INSTALL_NESTED_SUBDIR "Install libraries under a platform and architecture subdirectory" ON)
43+
set(SwiftOverlay_INSTALL_LIBDIR "${CMAKE_INSTALL_LIBDIR}/swift$<$<NOT:$<BOOL:${BUILD_SHARED_LIBS}>>:_static>$<$<BOOL:${SwiftOverlay_INSTALL_NESTED_SUBDIR}>:/${SwiftOverlay_PLATFORM_SUBDIR}/${SwiftOverlay_ARCH_SUBDIR}>")
44+
set(SwiftOverlay_INSTALL_SWIFTMODULEDIR "${CMAKE_INSTALL_LIBDIR}/swift$<$<NOT:$<BOOL:${BUILD_SHARED_LIBS}>>:_static>$<$<BOOL:${SwiftOverlay_INSTALL_NESTED_SUBDIR}>:/${SwiftOverlay_PLATFORM_SUBDIR}>")
45+
46+
add_compile_options(
47+
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -disable-implicit-concurrency-module-import>"
48+
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -disable-implicit-string-processing-module-import>")
49+
50+
if(WIN32)
51+
add_subdirectory(Windows)
52+
endif()
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
2+
add_subdirectory(clang)
3+
add_subdirectory(CRT)
4+
add_subdirectory(WinSDK)
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
2+
gyb_expand(tgmath.swift.gyb tgmath.swift)
3+
4+
add_library(swiftCRT
5+
tgmath.swift
6+
ucrt.swift
7+
Platform.swift
8+
POSIXError.swift
9+
TiocConstants.swift)
10+
set_target_properties(swiftCRT PROPERTIES
11+
Swift_MODULE_NAME CRT)
12+
target_compile_definitions(swiftCRT PRIVATE
13+
$<$<BOOL:${SwiftOverlay_ENABLE_REFLECTION}>:SWIFT_ENABLE_REFLECTION>)
14+
target_compile_options(swiftCRT PRIVATE
15+
"SHELL:-Xcc -D_USE_MATH_DEFINES")
16+
17+
install(TARGETS swiftCRT
18+
ARCHIVE DESTINATION "${SwiftOverlay_INSTALL_LIBDIR}"
19+
LIBRARY DESTINATION "${SwiftOverlay_INSTALL_LIBDIR}"
20+
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
21+
emit_swift_interface(swiftCRT)
22+
install_swift_interface(swiftCRT)
23+
24+
embed_manifest(swiftCRT)
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
2+
add_library(swiftWinSDK
3+
WinSDK.swift)
4+
set_target_properties(swiftWinSDK PROPERTIES
5+
Swift_MODULE_NAME WinSDK)
6+
target_compile_definitions(swiftCRT PRIVATE
7+
$<$<BOOL:${SwiftOverlay_ENABLE_REFLECTION}>:SWIFT_ENABLE_REFLECTION>)
8+
9+
install(TARGETS swiftWinSDK
10+
ARCHIVE DESTINATION "${SwiftOverlay_INSTALL_LIBDIR}"
11+
LIBRARY DESTINATION "${SwiftOverlay_INSTALL_LIBDIR}"
12+
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
13+
emit_swift_interface(swiftWinSDK)
14+
install_swift_interface(swiftWinSDK)
15+
16+
embed_manifest(swiftWinSDK)
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
2+
install(FILES
3+
ucrt.modulemap
4+
vcruntime.apinotes
5+
vcruntime.modulemap
6+
winsdk.modulemap
7+
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR})
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
file(STRINGS "${SwiftOverlay_SWIFTC_SOURCE_DIR}/utils/availability-macros.def" availability_defs)
2+
list(FILTER availability_defs EXCLUDE REGEX "^\\s*(#.*)?$")
3+
foreach(def ${availability_defs})
4+
add_compile_options("$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -define-availability -Xfrontend \"${def}\">")
5+
endforeach()
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# This file is designed to setup reasonable defaults for the various settings so
2+
# that configuring a build for a given platform is likely to build
3+
# out-of-the-box without customization. This does not mean that it is the only
4+
# way that will work, or that it represents a shipping configuration.
5+
# User-specified configurations should be done through cache files or by setting
6+
# the variable with `-DSwiftOverlay_*` on the commandline.
7+
8+
# Provide a boolean option that a user can optionally enable.
9+
# Variables are defaulted based on the value of `<variable>_default`.
10+
# If no such default variable exists, the option is defaults to `OFF`.
11+
macro(defaulted_option variable helptext)
12+
if(NOT DEFINED ${variable}_default)
13+
set(${variable}_default OFF)
14+
endif()
15+
option(${variable} ${helptext} ${${variable}_default})
16+
endmacro()
17+
18+
# Create a defaulted cache entry
19+
# Entries are defaulted on the value of `<variable>_default`.
20+
# If no such default variable exists, the variable is not created.
21+
macro(defaulted_set variable type helptext)
22+
if(DEFINED ${variable}_default)
23+
set(${variable} ${${variable}_default} CACHE ${type} ${helptext})
24+
endif()
25+
endmacro()
26+
27+
if(APPLE)
28+
set(SwiftOverlay_ENABLE_REFLECTION_default ON)
29+
elseif(CMAKE_SYSTEM_NAME STREQUAL "WASM")
30+
set(SwiftOverlay_ENABLE_REFLECTION_default OFF)
31+
elseif(LINUX OR ANDROID OR BSD)
32+
set(SwiftOverlay_ENABLE_REFLECTION_default OFF)
33+
elseif(WIN32)
34+
set(SwiftOverlay_ENABLE_REFLECTION_default OFF)
35+
endif()
36+
37+
include("${SwiftOverlay_VENDOR_MODULE_DIR}/DefaultSettings.cmake" OPTIONAL)
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
# Generate and install swift interface files
2+
3+
# TODO: CMake should learn how to model library evolution and generate this
4+
# stuff automatically.
5+
6+
7+
# Generate a swift interface file for the target if library evolution is enabled
8+
function(emit_swift_interface target)
9+
# Generate the target-variant binary swift module when performing zippered
10+
# build
11+
if(SwiftOverlay_VARIANT_MODULE_TRIPLE)
12+
set(variant_module_tmp_dir "${CMAKE_CURRENT_BINARY_DIR}/${target}-${SwiftOverlay_VARIANT_MODULE_TRIPLE}")
13+
file(MAKE_DIRECTORY "${variant_module_tmp_dir}")
14+
target_compile_options(${target} PRIVATE
15+
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-emit-variant-module-path ${variant_module_tmp_dir}/${target}.swiftmodule>")
16+
endif()
17+
18+
# Generate textual swift interfaces is library-evolution is enabled
19+
if(SwiftOverlay_ENABLE_LIBRARY_EVOLUTION)
20+
target_compile_options(${target} PRIVATE
21+
$<$<COMPILE_LANGUAGE:Swift>:-emit-module-interface-path$<SEMICOLON>${CMAKE_CURRENT_BINARY_DIR}/$<TARGET_PROPERTY:${target},Swift_MODULE_NAME>.swiftinterface>
22+
$<$<COMPILE_LANGUAGE:Swift>:-emit-private-module-interface-path$<SEMICOLON>${CMAKE_CURRENT_BINARY_DIR}/$<TARGET_PROPERTY:${target},Swift_MODULE_NAME>.private.swiftinterface>
23+
$<$<COMPILE_LANGUAGE:Swift>:-library-level$<SEMICOLON>api>
24+
$<$<COMPILE_LANGUAGE:Swift>:-Xfrontend$<SEMICOLON>-require-explicit-availability=ignore>)
25+
26+
# Emit catalyst swiftmodules and interfaces
27+
if(SwiftOverlay_VARIANT_MODULE_TRIPLE)
28+
target_compile_options(${target} PRIVATE
29+
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-emit-variant-module-interface-path ${variant_module_tmp_dir}/${target}.swiftinterface>"
30+
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-emit-variant-private-module-interface-path ${variant_module_tmp_dir}/${target}.private.swiftinterface>")
31+
endif()
32+
endif()
33+
endfunction()
34+
35+
# Install the generated swift interface file for the target if library evolution
36+
# is enabled.
37+
function(install_swift_interface target)
38+
# Install binary swift modules
39+
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/$<TARGET_PROPERTY:${target},Swift_MODULE_NAME>.swiftmodule"
40+
RENAME "${SwiftOverlay_MODULE_TRIPLE}.swiftmodule"
41+
DESTINATION "${SwiftOverlay_INSTALL_SWIFTMODULEDIR}/$<TARGET_PROPERTY:${target},Swift_MODULE_NAME>.swiftmodule")
42+
if(SwiftOverlay_VARIANT_MODULE_TRIPLE)
43+
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${target}-${SwiftOverlay_VARIANT_MODULE_TRIPLE}/${target}.swiftmodule"
44+
RENAME "${SwiftOverlay_VARIANT_MODULE_TRIPLE}.swiftmodule"
45+
DESTINATION "${SwiftOverlay_INSTALL_SWIFTMODULEDIR}/$<TARGET_PROPERTY:${target},Swift_MODULE_NAME>.swiftmodule")
46+
endif()
47+
48+
# Install Swift interfaces if library-evolution is enabled
49+
if(SwiftOverlay_ENABLE_LIBRARY_EVOLUTION)
50+
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/$<TARGET_PROPERTY:${target},Swift_MODULE_NAME>.swiftinterface"
51+
RENAME "${SwiftOverlay_MODULE_TRIPLE}.swiftinterface"
52+
DESTINATION "${SwiftOverlay_INSTALL_SWIFTMODULEDIR}/$<TARGET_PROPERTY:${target},Swift_MODULE_NAME>.swiftmodule")
53+
54+
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/$<TARGET_PROPERTY:${target},Swift_MODULE_NAME>.private.swiftinterface"
55+
RENAME "${SwiftOverlay_MODULE_TRIPLE}.private.swiftinterface"
56+
DESTINATION "${SwiftOverlay_INSTALL_SWIFTMODULEDIR}/$<TARGET_PROPERTY:${target},Swift_MODULE_NAME>.swiftmodule")
57+
58+
# Install catalyst interface files
59+
if(SwiftOverlay_VARIANT_MODULE_TRIPLE)
60+
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${target}-${SwiftOverlay_VARIANT_MODULE_TRIPLE}/${target}.swiftinterface"
61+
RENAME "${SwiftOverlay_VARIANT_MODULE_TRIPLE}.swiftinterface"
62+
DESTINATION "${SwiftOverlay_INSTALL_SWIFTMODULEDIR}/$<TARGET_PROPERTY:${target},Swift_MODULE_NAME>.swiftmodule")
63+
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${target}-${SwiftOverlay_VARIANT_MODULE_TRIPLE}/${target}.private.swiftinterface"
64+
RENAME "${SwiftOverlay_VARIANT_MODULE_TRIPLE}.private.swiftinterface"
65+
DESTINATION "${SwiftOverlay_INSTALL_SWIFTMODULEDIR}/$<TARGET_PROPERTY:${target},Swift_MODULE_NAME>.swiftmodule")
66+
endif()
67+
endif()
68+
endfunction()

0 commit comments

Comments
 (0)