Skip to content

Commit f2cda5e

Browse files
committed
Merge tag 'swift-DEVELOPMENT-SNAPSHOT-2025-01-31-a' of github.com:swiftlang/swift into cal--fix-nested-weak-self-issue
Tag build swift-DEVELOPMENT-SNAPSHOT-2025-01-31-a
2 parents 8557e23 + 413dcfb commit f2cda5e

File tree

955 files changed

+100335
-62476
lines changed

Some content is hidden

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

955 files changed

+100335
-62476
lines changed

.github/CODEOWNERS

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,7 @@
172172
/lib/Sema/Constraint* @hborla @xedin
173173
/lib/Sema/DerivedConformance* @slavapestov
174174
/lib/Sema/DerivedConformanceDistributed* @ktoso @slavapestov
175+
/lib/Sema/OpenedExistentials* @AnthonyLatsis @slavapestov
175176
/lib/Sema/TypeCheckDistributed* @hborla @ktoso @xedin
176177
/lib/Sema/TypeCheckProtocol* @AnthonyLatsis @hborla @slavapestov
177178
/lib/Sema/TypeCheckType* @AnthonyLatsis @hborla @slavapestov @xedin
@@ -189,7 +190,7 @@
189190
/stdlib/private/*Runtime*/ @rjmccall
190191
/stdlib/private/SwiftReflectionTest/ @slavapestov
191192
/stdlib/public/*Demangl*/ @rjmccall
192-
/stdlib/public/Backtracing/ @al45tair
193+
/stdlib/public/RuntimeModule/ @al45tair @mikeash
193194
/stdlib/public/Concurrency/ @ktoso
194195
/stdlib/public/Cxx/ @zoecarver @hyp @egorzhdan @Xazax-hun
195196
/stdlib/public/Distributed/ @ktoso

CMakeLists.txt

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -695,10 +695,6 @@ option(SWIFT_IMPLICIT_CONCURRENCY_IMPORT
695695
"Implicitly import the Swift concurrency module"
696696
TRUE)
697697

698-
option(SWIFT_IMPLICIT_BACKTRACING_IMPORT
699-
"Implicitly import the Swift backtracing module"
700-
FALSE)
701-
702698
option(SWIFT_ENABLE_EXPERIMENTAL_CONCURRENCY
703699
"Enable build of the Swift concurrency module"
704700
FALSE)
@@ -731,6 +727,10 @@ option(SWIFT_ENABLE_SYNCHRONIZATION
731727
"Enable build of the Swift Synchronization module"
732728
FALSE)
733729

730+
option(SWIFT_ENABLE_RUNTIME_MODULE
731+
"Build the Swift Runtime module"
732+
FALSE)
733+
734734
option(SWIFT_ENABLE_VOLATILE
735735
"Enable build of the Swift Volatile module"
736736
FALSE)
@@ -865,11 +865,6 @@ if (CMAKE_Swift_COMPILER)
865865
SWIFT_SUPPORTS_DISABLE_IMPLICIT_STRING_PROCESSING_MODULE_IMPORT)
866866
message(STATUS " Implicit 'string-processing' import: ${SWIFT_SUPPORTS_DISABLE_IMPLICIT_STRING_PROCESSING_MODULE_IMPORT}")
867867

868-
# Same for _Backtracing.
869-
swift_supports_implicit_module("backtracing"
870-
SWIFT_SUPPORTS_DISABLE_IMPLICIT_BACKTRACING_MODULE_IMPORT)
871-
message(STATUS " Implicit 'backtracing' import: ${SWIFT_SUPPORTS_DISABLE_IMPLICIT_BACKTRACING_MODULE_IMPORT}")
872-
873868
swift_get_package_cmo_support(
874869
Swift_COMPILER_PACKAGE_CMO_SUPPORT)
875870
message(STATUS " Package CMO: ${Swift_COMPILER_PACKAGE_CMO_SUPPORT}")
@@ -1087,6 +1082,9 @@ endif()
10871082
#
10881083
swift_common_cxx_warnings()
10891084

1085+
# Set sanitizer options for Swift compiler.
1086+
swift_common_sanitizer_config()
1087+
10901088
# Check if we're build with MSVC or Clang-cl, as these compilers have similar command line arguments.
10911089
if("${CMAKE_C_COMPILER_ID}" STREQUAL "MSVC" OR "${CMAKE_CXX_SIMULATE_ID}" STREQUAL "MSVC")
10921090
set(SWIFT_COMPILER_IS_MSVC_LIKE TRUE)
@@ -1393,6 +1391,8 @@ if(SWIFT_BUILD_STDLIB OR SWIFT_BUILD_SDK_OVERLAY)
13931391
message(STATUS "Observation Support: ${SWIFT_ENABLE_EXPERIMENTAL_OBSERVATION}")
13941392
message(STATUS "Synchronization Support: ${SWIFT_ENABLE_SYNCHRONIZATION}")
13951393
message(STATUS "Volatile Support: ${SWIFT_ENABLE_VOLATILE}")
1394+
message(STATUS "Pointer Bounds Support: ${SWIFT_ENABLE_EXPERIMENTAL_POINTER_BOUNDS}")
1395+
message(STATUS "Runtime Support: ${SWIFT_ENABLE_RUNTIME_MODULE}")
13961396
message(STATUS "")
13971397
else()
13981398
message(STATUS "Not building Swift standard library, SDK overlays, and runtime")
@@ -1577,6 +1577,7 @@ endif()
15771577
# New standard library build
15781578
option(SWIFT_ENABLE_NEW_RUNTIME_BUILD "Build Swift runtimes with new build system" OFF)
15791579
if(SWIFT_ENABLE_NEW_RUNTIME_BUILD)
1580+
message(STATUS "New runtime build enabled")
15801581

15811582
add_custom_target(PopulateRuntimeSourceDir
15821583
COMMAND "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_SOURCE_DIR}/Runtimes/Resync.cmake"
@@ -1593,6 +1594,13 @@ if(SWIFT_ENABLE_NEW_RUNTIME_BUILD)
15931594
if(${SWIFT_SDK_${sdk}_${arch}_CACHE})
15941595
set(stdlib_cache_file_flag -C ${SWIFT_SDK_${sdk}_${arch}_CACHE})
15951596
endif()
1597+
1598+
set(stdlib_target_triple ${SWIFT_SDK_${sdk}_ARCH_${arch}_TRIPLE})
1599+
if(SWIFT_SDK_${sdk}_DEPLOYMENT_VERSION)
1600+
string(APPEND stdlib_target_triple ${SWIFT_SDK_${sdk}_DEPLOYMENT_VERSION})
1601+
set(stdlib_deployment_version_flag -DCMAKE_OSX_DEPLOYMENT_TARGET=${SWIFT_SDK_${sdk}_DEPLOYMENT_VERSION})
1602+
endif()
1603+
15961604
ExternalProject_Add("${stdlib_target}-core"
15971605
SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/Runtimes/Core"
15981606
# TODO: Add this once we're ready to start swapping out the libraries
@@ -1606,13 +1614,19 @@ if(SWIFT_ENABLE_NEW_RUNTIME_BUILD)
16061614
-DCMAKE_Swift_COMPILER_WORKS:BOOLEAN=YES
16071615
-DBUILD_SHARED_LIBS:BOOLEAN=YES # TODO: Make this configurable
16081616
${stdlib_cache_file_flag}
1617+
${stdlib_deployment_version_flag}
16091618
-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
16101619
-DCMAKE_INSTALL_PREFIX:FILEPATH=<INSTALL_DIR>
16111620
-DCMAKE_Swift_COMPILER:FILEPATH=$<IF:$<BOOL:${CMAKE_CROSSCOMPILING}>,${CMAKE_Swift_COMPILER},$<PATH:REPLACE_FILENAME,$<TARGET_FILE:swift-frontend>,swiftc>>
16121621
-DCMAKE_C_COMPILER:FILEPATH=${CMAKE_C_COMPILER}
16131622
-DCMAKE_CXX_COMPILER:FILEPATH=${CMAKE_CXX_COMPILER}
1623+
-DCMAKE_Swift_COMPILER_TARGET:STRING=${stdlib_target_triple}
1624+
-DCMAKE_C_COMPILER_TARGET:STRING=${stdlib_target_triple}
1625+
-DCMAKE_CXX_COMPILER_TARGET:STRING=${stdlib_target_triple}
16141626
-DCMAKE_COLOR_DIAGNOSTICS:BOOLEAN=${CMAKE_COLOR_DIAGNOSTICS}
1615-
-DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM})
1627+
-DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM}
1628+
-DSwiftCore_PLATFORM_SUBDIR=${SWIFT_SDK_${sdk}_LIB_SUBDIR}
1629+
-DSwiftCore_ARCH_SUBDIR=${arch})
16161630
if(NOT ${CMAKE_CROSSCOMPILING})
16171631
add_dependencies("${stdlib_target}" swift-frontend)
16181632
endif()

Runtimes/Core/CMakeLists.txt

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ include(Plist)
7474
check_symbol_exists("asl_log" "asl.h" SwiftCore_HAS_ASL)
7575
check_symbol_exists("dladdr" "dlfcn.h" SwiftCore_HAS_DLADDR)
7676
check_symbol_exists("dlsym" "dlfcn.h" SwiftCore_HAS_DLSYM)
77+
check_symbol_exists("os_trace" "os/trace.h" SwiftCore_HAS_OS_TRACE)
7778

7879
check_include_file_cxx("clocale" SwiftCore_HAS_LOCALE)
7980

@@ -91,7 +92,6 @@ defaulted_option(SwiftCore_ENABLE_RUNTIME_FUNCTION_COUNTERS "Enable runtime func
9192
defaulted_option(SwiftCore_ENABLE_STDIN "Enable functions that use stdin support")
9293
defaulted_option(SwiftCore_ENABLE_ENVIRONMENT "Enable environment variable support")
9394
defaulted_option(SwiftCore_ENABLE_OVERRIDABLE_RETAIN_RELEASE "Enable override hooks for retain/release")
94-
defaulted_option(SwiftCore_ENABLE_MALLOC_TYPE "Enable malloc type information")
9595
defaulted_option(SwiftCore_ENABLE_RUNTIME_OS_VERSIONING "Enable runtime OS version detection")
9696
defaulted_option(SwiftCore_ENABLE_STATIC_PRINT "Disable full print")
9797
defaulted_option(SwiftCore_ENABLE_COMPACT_ABSOLUTE_FUNCTION_POINTERS "Resolve absolute function pointer as identity")
@@ -100,9 +100,12 @@ defaulted_option(SwiftCore_ENABLE_STDLIB_TRACING "Enable tracing in the runtime.
100100
option(SwiftCore_ENABLE_UNICODE_DATA "Include unicode data in Swift runtimes" ON)
101101
option(SwiftCore_ENABLE_SHORT_MANGLING_LOOKUPS "Build with fast-path context descriptor lookups based on well-known short manglings." ON)
102102
option(SwiftCore_ENABLE_FILESYSTEM_SUPPORT "Build for systems that have a filesystem" ON)
103+
option(SwiftCore_ENABLE_OS_TRACE_LAZY_INIT "Use os_trace call to check if lazy init has been completed before making os_signpost calls." ${SwiftCore_HAS_OS_TRACE})
104+
option(SwiftCore_HAS_DARWIN_LIBMALLOC "Use Darwin malloc features" ${APPLE})
103105

104106
defaulted_option(SwiftCore_ENABLE_BACKTRACING "Enable backtracing runtime support")
105107
defaulted_set(SwiftCore_BACKTRACER_PATH STRING "Set a fixed path to the Swift backtracer")
108+
defaulted_option(SwiftCore_ENABLE_FATALERROR_BACKTRACE "Build stdlib fatalError with backtrace output")
106109

107110
option(SwiftCore_ENABLE_CLOBBER_FREED_OBJECTS "" OFF)
108111
option(SwiftCore_ENABLE_RUNTIME_LEAK_CHECKER "" OFF)
@@ -111,6 +114,10 @@ option(SwiftCore_ENABLE_INTERNAL_CHECKS "" OFF)
111114
defaulted_set(SwiftCore_OBJECT_FORMAT STRING "Object format: ELF COFF")
112115
defaulted_set(SwiftCore_THREADING_PACKAGE STRING "Threading Package: C11 Linux PThreads Win32")
113116

117+
option(SwiftCore_INSTALL_NESTED_SUBDIR "Install libraries under a platform and architecture subdirectory" ON)
118+
set(SwiftCore_INSTALL_LIBDIR "${CMAKE_INSTALL_LIBDIR}/swift$<$<NOT:$<BOOL:${BUILD_SHARED_LIBS}>>:_static>$<$<BOOL:${SwiftCore_INSTALL_NESTED_SUBDIR}>:/${SwiftCore_PLATFORM_SUBDIR}/${SwiftCore_ARCH_SUBDIR}>")
119+
set(SwiftCore_INSTALL_SWIFTMODULEDIR "${CMAKE_INSTALL_LIBDIR}/swift$<$<NOT:$<BOOL:${BUILD_SHARED_LIBS}>>:_static>$<$<BOOL:${SwiftCore_INSTALL_NESTED_SUBDIR}>:/${SwiftCore_PLATFORM_SUBDIR}>")
120+
114121
# TODO: Most of these should be attached to specific targets rather than applied
115122
# globally. They can be applied as part of the library interface if they
116123
# affect the behavior of libraries that build against a given target.
@@ -128,6 +135,7 @@ add_compile_definitions(
128135
$<$<BOOL:${SwiftCore_ENABLE_UNICODE_DATA}>:-DSWIFT_STDLIB_ENABLE_UNICODE_DATA> # Stubs
129136
$<$<BOOL:${SwiftCore_ENABLE_ENVIRONMENT}>:-DSWIFT_STDLIB_HAS_ENVIRON> # Concurrency, runtime, shims, platform overlay
130137
$<$<BOOL:${SwiftCore_ENABLE_BACKDEPLOYMENT_SUPPORT}>:-DSWIFT_STDLIB_SUPPORT_BACK_DEPLOYMENT> # Concurrency, Compatibility override, magic symbols
138+
$<$<BOOL:${SwiftCore_HAS_DARWIN_LIBMALLOC}>:-DSWIFT_STDLIB_HAS_DARWIN_LIBMALLOC> # Anything that includes include/swift/Runtime/Config.h
131139
$<$<COMPILE_LANGUAGE:C,CXX>:-DSWIFT_THREADING_${SwiftCore_THREADING_PACKAGE}>
132140
$<$<COMPILE_LANGUAGE:C,CXX>:-DSWIFT_RUNTIME_ENABLE_LEAK_CHECKER=$<BOOL:${SwiftCore_ENABLE_RUNTIME_LEAK_CHECKER}>>
133141
$<$<COMPILE_LANGUAGE:C,CXX>:-DSWIFT_RUNTIME_CLOBBER_FREED_OBJECTS=$<BOOL:${SwiftCore_ENABLE_CLOBBER_FREED_OBJECTS}>>)
@@ -137,6 +145,15 @@ add_compile_options(
137145
$<$<COMPILE_LANGUAGE:CXX>:-fno-exceptions>
138146
$<$<COMPILE_LANGUAGE:CXX>:-funwind-tables>)
139147

148+
# LNK4049: symbol 'symbol' defined in 'filename.obj' is imported
149+
# LNK4286: symbol 'symbol' defined in 'filename_1.obj' is imported by 'filename_2.obj'
150+
# LNK4217: symbol 'symbol' defined in 'filename_1.obj' is imported by 'filename_2.obj' in function 'function'
151+
#
152+
# We cannot selectively filter the linker warnings as we do not use the MSVC
153+
# frontned and `clang-cl` (and `clang`) currently do not support `/WX:nnnn`. As
154+
# a compromise, treat all linker warnings as errors.
155+
add_link_options($<$<PLATFORM_ID:Windows>:LINKER:/WX>)
156+
140157
add_compile_options(
141158
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-library-level api>"
142159
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-runtime-compatibility-version none>"
@@ -157,7 +174,6 @@ add_compile_options(
157174
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -enable-experimental-concise-pound-file>"
158175
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -enable-lexical-lifetimes=false>"
159176
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -disable-implicit-concurrency-module-import>"
160-
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -disable-implicit-backtracing-module-import>"
161177
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -disable-implicit-string-processing-module-import>"
162178
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -enforce-exclusivity=unchecked>"
163179
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -enable-ossa-modules>"

Runtimes/Core/SwiftShims/swift/shims/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ install(FILES
1010
LibcOverlayShims.h
1111
LibcShims.h
1212
MetadataSections.h
13+
ObjCShims.h
1314
Random.h
1415
RefCount.h
1516
Reflection.h

Runtimes/Core/cmake/caches/Vendors/Apple/apple-common.cmake

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ set(SwiftCore_ENABLE_RUNTIME_FUNCTION_COUNTERS ON CACHE BOOL "")
1313
set(SwiftCore_ENABLE_BACKDEPLOYMENT_SUPPORT ON CACHE BOOL "")
1414
set(SwiftCore_ENABLE_FILESYSTEM_SUPPORT ON CACHE BOOL "")
1515

16+
set(SwiftCore_INSTALL_NESTED_SUBDIR OFF CACHE BOOL "")
17+
1618
set(CMAKE_CXX_FLAGS_MINSIZEREL "-Os -g -DNDEBUG" CACHE STRING "")
1719
set(CMAKE_C_FLAGS_MINSIZEREL "-Os -g -DNDEBUG" CACHE STRING "")
1820
set(CMAKE_Swift_FLAGS_MINSIZEREL "-Osize -g" CACHE STRING "")

Runtimes/Core/cmake/caches/Vendors/Apple/arm64-AppleTVOS-simulator.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ set(CMAKE_C_COMPILER_TARGET "arm64-apple-tvos${CMAKE_OSX_DEPLOYMENT_TARGET}-simu
66
set(CMAKE_CXX_COMPILER_TARGET "arm64-apple-tvos${CMAKE_OSX_DEPLOYMENT_TARGET}-simulator" CACHE STRING "")
77
set(CMAKE_Swift_COMPILER_TARGET "arm64-apple-tvos${CMAKE_OSX_DEPLOYMENT_TARGET}-simulator" CACHE STRING "")
88

9-
set(SwiftCore_ARCH_SUBDIR arm64)
10-
set(SwiftCore_PLATFORM_SUBDIR appletvsimulator)
9+
set(SwiftCore_ARCH_SUBDIR arm64 CACHE STRING "")
10+
set(SwiftCore_PLATFORM_SUBDIR appletvsimulator CACHE STRING "")
1111

1212
include("${CMAKE_CURRENT_LIST_DIR}/apple-common.cmake")

Runtimes/Core/cmake/caches/Vendors/Apple/arm64-AppleTVOS.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ set(CMAKE_C_COMPILER_TARGET "arm64-apple-tvos${CMAKE_OSX_DEPLOYMENT_TARGET}" CAC
66
set(CMAKE_CXX_COMPILER_TARGET "arm64-apple-tvos${CMAKE_OSX_DEPLOYMENT_TARGET}" CACHE STRING "")
77
set(CMAKE_Swift_COMPILER_TARGET "arm64-apple-tvos${CMAKE_OSX_DEPLOYMENT_TARGET}" CACHE STRING "")
88

9-
set(SwiftCore_ARCH_SUBDIR arm64)
10-
set(SwiftCore_PLATFORM_SUBDIR appletvos)
9+
set(SwiftCore_ARCH_SUBDIR arm64 CACHE STRING "")
10+
set(SwiftCore_PLATFORM_SUBDIR appletvos CACHE STRING "")
1111

1212
include("${CMAKE_CURRENT_LIST_DIR}/apple-common.cmake")

Runtimes/Core/cmake/caches/Vendors/Apple/arm64-BridgeOS.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ set(CMAKE_C_COMPILER_TARGET "arm64-apple-bridgeos${CMAKE_OSX_DEPLOYMENT_TARGET}"
66
set(CMAKE_CXX_COMPILER_TARGET "arm64-apple-bridgeos${CMAKE_OSX_DEPLOYMENT_TARGET}" CACHE STRING "")
77
set(CMAKE_Swift_COMPILER_TARGET "arm64-apple-bridgeos${CMAKE_OSX_DEPLOYMENT_TARGET}" CACHE STRING "")
88

9-
set(SwiftCore_ARCH_SUBDIR arm64)
10-
set(SwiftCore_PLATFORM_SUBDIR freestanding)
9+
set(SwiftCore_ARCH_SUBDIR arm64 CACHE STRING "")
10+
set(SwiftCore_PLATFORM_SUBDIR freestanding CACHE STRING "")
1111
set(CMAKE_BUILD_TYPE MinSizeRel CACHE STRING "")
1212

1313
include("${CMAKE_CURRENT_LIST_DIR}/apple-common.cmake")

Runtimes/Core/cmake/caches/Vendors/Apple/arm64e-AppleTVOS.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ set(CMAKE_C_COMPILER_TARGET "arm64e-apple-tvos${CMAKE_OSX_DEPLOYMENT_TARGET}" CA
66
set(CMAKE_CXX_COMPILER_TARGET "arm64e-apple-tvos${CMAKE_OSX_DEPLOYMENT_TARGET}" CACHE STRING "")
77
set(CMAKE_Swift_COMPILER_TARGET "arm64e-apple-tvos${CMAKE_OSX_DEPLOYMENT_TARGET}" CACHE STRING "")
88

9-
set(SwiftCore_ARCH_SUBDIR arm64e)
10-
set(SwiftCore_PLATFORM_SUBDIR appletvos)
9+
set(SwiftCore_ARCH_SUBDIR arm64e CACHE STRING "")
10+
set(SwiftCore_PLATFORM_SUBDIR appletvos CACHE STRING "")
1111

1212
include("${CMAKE_CURRENT_LIST_DIR}/apple-common.cmake")

Runtimes/Core/cmake/caches/Vendors/Apple/x86_64-AppleTVOS-simulator.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ set(CMAKE_C_COMPILER_TARGET "x86_64-apple-tvos${CMAKE_OSX_DEPLOYMENT_TARGET}-sim
66
set(CMAKE_CXX_COMPILER_TARGET "x86_64-apple-tvos${CMAKE_OSX_DEPLOYMENT_TARGET}-simulator" CACHE STRING "")
77
set(CMAKE_Swift_COMPILER_TARGET "x86_64-apple-tvos${CMAKE_OSX_DEPLOYMENT_TARGET}-simulator" CACHE STRING "")
88

9-
set(SwiftCore_ARCH_SUBDIR x86_64)
10-
set(SwiftCore_PLATFORM_SUBDIR appletvsimulator)
9+
set(SwiftCore_ARCH_SUBDIR x86_64 CACHE STRING "")
10+
set(SwiftCore_PLATFORM_SUBDIR appletvsimulator CACHE STRING "")
1111

1212
include("${CMAKE_CURRENT_LIST_DIR}/apple-common.cmake")

Runtimes/Core/cmake/modules/DefaultSettings.cmake

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ if(APPLE)
3737
set(SwiftCore_ENABLE_CRASH_REPORTER_CLIENT_default ON)
3838
set(SwiftCore_ENABLE_OBJC_INTEROP_default ON)
3939
set(SwiftCore_ENABLE_REFLECTION_default ON)
40+
set(SwiftCore_ENABLE_FATALERROR_BACKTRACE_default ON)
4041
set(SwiftCore_ENABLE_RUNTIME_OS_VERSIONING ON)
4142
set(SwiftCore_ENABLE_OVERRIDABLE_RETAIN_RELEASE ON)
4243
set(SwiftCore_THREADING_PACKAGE "DARWIN")
@@ -45,6 +46,7 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "WASM")
4546
set(SwiftCore_THREADING_PACKAGE "NONE")
4647
elseif(LINUX OR ANDROID OR BSD)
4748
set(SwiftCore_OBJECT_FORMAT_default "elf")
49+
set(SwiftCore_ENABLE_FATALERROR_BACKTRACE_default ON)
4850
if(LINUX)
4951
set(SwiftCore_THREADING_PACKAGE "LINUX")
5052
else()
@@ -53,6 +55,7 @@ elseif(LINUX OR ANDROID OR BSD)
5355
elseif(WIN32)
5456
set(SwiftCore_OBJECT_FORMAT_default "coff")
5557
set(SwiftCore_THREADING_PACKAGE "WIN32")
58+
set(SwiftCore_ENABLE_FATALERROR_BACKTRACE_default ON)
5659
endif()
5760

5861
include("${SwiftCore_VENDOR_MODULE_DIR}/DefaultSettings.cmake" OPTIONAL)

Runtimes/Core/cmake/modules/EmitSwiftInterface.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,10 @@ function(install_swift_interface target)
2121
if(SwiftCore_ENABLE_LIBRARY_EVOLUTION)
2222
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/$<TARGET_PROPERTY:${target},Swift_MODULE_NAME>.swiftinterface"
2323
RENAME "${SwiftCore_MODULE_TRIPLE}.swiftinterface"
24-
DESTINATION "${CMAKE_INSTALL_LIBDIR}/swift/$<TARGET_PROPERTY:${target},Swift_MODULE_NAME>.swiftmodule")
24+
DESTINATION "${SwiftCore_INSTALL_SWIFTMODULEDIR}/$<TARGET_PROPERTY:${target},Swift_MODULE_NAME>.swiftmodule")
2525

2626
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/$<TARGET_PROPERTY:${target},Swift_MODULE_NAME>.private.swiftinterface"
2727
RENAME "${SwiftCore_MODULE_TRIPLE}.private.swiftinterface"
28-
DESTINATION "${CMAKE_INSTALL_LIBDIR}/swift/$<TARGET_PROPERTY:${target},Swift_MODULE_NAME>.swiftmodule")
28+
DESTINATION "${SwiftCore_INSTALL_SWIFTMODULEDIR}/$<TARGET_PROPERTY:${target},Swift_MODULE_NAME>.swiftmodule")
2929
endif()
3030
endfunction()

Runtimes/Core/cmake/modules/PlatformInfo.cmake

Lines changed: 28 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,35 @@ if(NOT SwiftCore_SIZEOF_POINTER)
44
mark_as_advanced(SwiftCore_SIZEOF_POINTER)
55
endif()
66

7+
# TODO: This logic should migrate to CMake once CMake supports installing swiftmodules
8+
set(module_triple_command "${CMAKE_Swift_COMPILER}" -print-target-info)
9+
if(CMAKE_Swift_COMPILER_TARGET)
10+
list(APPEND module_triple_command -target ${CMAKE_Swift_COMPILER_TARGET})
11+
endif()
12+
execute_process(COMMAND ${module_triple_command} OUTPUT_VARIABLE target_info_json)
13+
message(CONFIGURE_LOG "Swift target info: ${module_triple_command}\n"
14+
"${target_info_json}")
15+
716
if(NOT SwiftCore_MODULE_TRIPLE)
8-
# TODO: This logic should migrate to CMake once CMake supports installing swiftmodules
9-
set(module_triple_command "${CMAKE_Swift_COMPILER}" -print-target-info)
10-
if(CMAKE_Swift_COMPILER_TARGET)
11-
list(APPEND module_triple_command -target ${CMAKE_Swift_COMPILER_TARGET})
12-
endif()
13-
execute_process(COMMAND ${module_triple_command} OUTPUT_VARIABLE target_info_json)
14-
message(CONFIGURE_LOG "Swift target info: ${module_triple_command}\n"
15-
"${target_info_json}")
1617
string(JSON module_triple GET "${target_info_json}" "target" "moduleTriple")
17-
set(SwiftCore_MODULE_TRIPLE "${module_triple}" CACHE STRING "swift module triple used for installed swiftmodule and swiftinterface files")
18-
message(CONFIGURE_LOG "Swift module triple: ${module_triple}")
18+
set(SwiftCore_MODULE_TRIPLE "${module_triple}" CACHE STRING "Triple used for installed swift{doc,module,interface} files")
1919
mark_as_advanced(SwiftCore_MODULE_TRIPLE)
20+
21+
message(CONFIGURE_LOG "Swift module triple: ${module_triple}")
22+
endif()
23+
24+
if(NOT SwiftCore_PLATFORM_SUBDIR)
25+
string(JSON platform GET "${target_info_json}" "target" "platform")
26+
set(SwiftCore_PLATFORM_SUBDIR "${platform}" CACHE STRING "Platform name used for installed swift{doc,module,interface} files")
27+
mark_as_advanced(SwiftCore_PLATFORM_SUBDIR)
28+
29+
message(CONFIGURE_LOG "Swift platform: ${platform}")
30+
endif()
31+
32+
if(NOT SwiftCore_ARCH_SUBDIR)
33+
string(JSON arch GET "${target_info_json}" "target" "arch")
34+
set(SwiftCore_ARCH_SUBDIR "${arch}" CACHE STRING "Architecture used for setting the architecture subdirectory")
35+
mark_as_advanced(SwiftCore_ARCH_SUBDIR)
36+
37+
message(CONFIGURE_LOG "Swift Arch: ${arch}")
2038
endif()

Runtimes/Core/core/CMakeLists.txt

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,7 @@ add_library(swiftCore
223223
Int128.swift
224224
Mirror.swift
225225
PlaygroundDisplay.swift
226+
SwiftifyImport.swift
226227
CommandLine.swift
227228
SliceBuffer.swift
228229
StaticBigInt.swift
@@ -325,9 +326,12 @@ elseif(NOT APPLE AND NOT LINUX AND NOT ANDROID AND UNIX)
325326
target_link_libraries(swiftCore PRIVATE "${EXECINFO_LIBRARY}")
326327
endif()
327328

328-
install(TARGETS swiftCore)
329+
install(TARGETS swiftCore
330+
ARCHIVE DESTINATION "${SwiftCore_INSTALL_LIBDIR}"
331+
LIBRARY DESTINATION "${SwiftCore_INSTALL_LIBDIR}"
332+
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
329333
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/Swift.swiftmodule"
330-
DESTINATION "${CMAKE_INSTALL_LIBDIR}/swift/Swift.swiftmodule"
334+
DESTINATION "${SwiftCore_INSTALL_SWIFTMODULEDIR}/Swift.swiftmodule"
331335
RENAME "${SwiftCore_MODULE_TRIPLE}.swiftmodule")
332336
emit_swift_interface(swiftCore)
333337
install_swift_interface(swiftCore)

0 commit comments

Comments
 (0)