Skip to content

Commit 51b3ffd

Browse files
authored
Merge pull request #78453 from etcwilde/ewilde/stdlib-rebuild-has-filesystem
[cmake] Hook up `SWIFT_STDLIB_HAS_FILESYSTEM` macro
2 parents bc405c5 + aed70b3 commit 51b3ffd

21 files changed

+69
-1
lines changed

Runtimes/Core/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ defaulted_option(SwiftCore_ENABLE_BACKDEPLOYMENT_SUPPORT "Add symbols for runtim
9696
defaulted_option(SwiftCore_ENABLE_STDLIB_TRACING "Enable tracing in the runtime. Assumes the presence of os_log(3) and the os_signpost(3) API.")
9797
option(SwiftCore_ENABLE_UNICODE_DATA "Include unicode data in Swift runtimes" ON)
9898
option(SwiftCore_ENABLE_SHORT_MANGLING_LOOKUPS "Build with fast-path context descriptor lookups based on well-known short manglings." ON)
99+
option(SwiftCore_ENABLE_FILESYSTEM_SUPPORT "Build for systems that have a filesystem" ON)
99100

100101
defaulted_option(SwiftCore_ENABLE_BACKTRACING "Enable backtracing runtime support")
101102
defaulted_set(SwiftCore_BACKTRACER_PATH STRING "Set a fixed path to the Swift backtracer")

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ set(SwiftCore_ENABLE_TYPE_PRINTING ON CACHE BOOL "")
1111
set(SwiftCore_ENABLE_VECTOR_TYPES ON CACHE BOOL "")
1212
set(SwiftCore_ENABLE_RUNTIME_FUNCTION_COUNTERS ON CACHE BOOL "")
1313
set(SwiftCore_ENABLE_BACKDEPLOYMENT_SUPPORT ON CACHE BOOL "")
14+
set(SwiftCore_ENABLE_FILESYSTEM_SUPPORT ON CACHE BOOL "")
1415

1516
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O3 -gline-tables-only -DNDEBUG" CACHE STRING "")
1617
set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O3 -gline-tables-only -DNDEBUG" CACHE STRING "")

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +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)
11+
912
include("${CMAKE_CURRENT_LIST_DIR}/apple-common.cmake")

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +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)
11+
912
include("${CMAKE_CURRENT_LIST_DIR}/apple-common.cmake")

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,7 @@ 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)
11+
912
include("${CMAKE_CURRENT_LIST_DIR}/apple-common.cmake")

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

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

9+
set(SwiftCore_ARCH_SUBDIR arm64 CACHE STRING "")
10+
set(SwiftCore_PLATFORM_SUBDIR watchsimulator CACHE STRING "")
11+
912
include("${CMAKE_CURRENT_LIST_DIR}/apple-common.cmake")

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

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

9+
set(SwiftCore_ARCH_SUBDIR arm64 CACHE STRING "")
10+
set(SwiftCore_PLATFORM_SUBDIR xrsimulator CACHE STRING "")
11+
912
include("${CMAKE_CURRENT_LIST_DIR}/apple-common.cmake")

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

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

9+
set(SwiftCore_ARCH_SUBDIR arm64 CACHE STRING "")
10+
set(SwiftCore_PLATFORM_SUBDIR iphonesimulator CACHE STRING "")
11+
912
include("${CMAKE_CURRENT_LIST_DIR}/apple-common.cmake")

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

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

9+
set(SwiftCore_ARCH_SUBDIR arm64 CACHE STRING "")
10+
set(SwiftCore_PLATFORM_SUBDIR iphoneos CACHE STRING "")
11+
912
include("${CMAKE_CURRENT_LIST_DIR}/apple-common.cmake")

Runtimes/Core/cmake/caches/Vendors/Apple/arm64_32-WatchOS.cmake

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,7 @@ set(CMAKE_C_COMPILER_TARGET "arm64_32-apple-watchos${CMAKE_OSX_DEPLOYMENT_TARGET
66
set(CMAKE_CXX_COMPILER_TARGET "arm64_32-apple-watchos${CMAKE_OSX_DEPLOYMENT_TARGET}" CACHE STRING "")
77
set(CMAKE_Swift_COMPILER_TARGET "arm64_32-apple-watchos${CMAKE_OSX_DEPLOYMENT_TARGET}" CACHE STRING "")
88

9+
set(SwiftCore_ARCH_SUBDIR arm64_32 CACHE STRING "")
10+
set(SwiftCore_PLATFORM_SUBDIR watchos CACHE STRING "")
11+
912
include("${CMAKE_CURRENT_LIST_DIR}/apple-common.cmake")

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +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)
11+
912
include("${CMAKE_CURRENT_LIST_DIR}/apple-common.cmake")

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

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

9+
set(SwiftCore_ARCH_SUBDIR arm64e CACHE STRING "")
10+
set(SwiftCore_PLATFORM_SUBDIR macosx CACHE STRING "")
11+
912
list(APPEND CMAKE_C_FLAGS "-darwin-target-variant" "arm64e-apple-ios13.1-macabi")
1013
list(APPEND CMAKE_CXX_FLAGS "-darwin-target-variant" "arm64e-apple-ios13.1-macabi")
1114
list(APPEND CMAKE_Swift_FLAGS "-target-variant" "arm64e-apple-ios13.1-macabi")

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

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

9+
set(SwiftCore_ARCH_SUBDIR arm64e CACHE STRING "")
10+
set(SwiftCore_PLATFORM_SUBDIR watchos CACHE STRING "")
11+
912
include("${CMAKE_CURRENT_LIST_DIR}/apple-common.cmake")

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

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

9+
set(SwiftCore_ARCH_SUBDIR arm64e CACHE STRING "")
10+
set(SwiftCore_PLATFORM_SUBDIR xros CACHE STRING "")
11+
912
include("${CMAKE_CURRENT_LIST_DIR}/apple-common.cmake")

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

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

9+
set(SwiftCore_ARCH_SUBDIR arm64e CACHE STRING "")
10+
set(SwiftCore_PLATFORM_SUBDIR iphoneos CACHE STRING "")
11+
912
include("${CMAKE_CURRENT_LIST_DIR}/apple-common.cmake")

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +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)
11+
912
include("${CMAKE_CURRENT_LIST_DIR}/apple-common.cmake")

Runtimes/Core/cmake/caches/Vendors/Apple/x86_64-MacOSX.cmake

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ set(CMAKE_C_COMPILER_TARGET "x86_64-apple-macosx${CMAKE_OSX_DEPLOYMENT_TARGET}"
66
set(CMAKE_CXX_COMPILER_TARGET "x86_64-apple-macosx${CMAKE_OSX_DEPLOYMENT_TARGET}" CACHE STRING "")
77
set(CMAKE_Swift_COMPILER_TARGET "x86_64-apple-macosx${CMAKE_OSX_DEPLOYMENT_TARGET}" CACHE STRING "")
88

9+
set(SwiftCore_ARCH_SUBDIR x86_64 CACHE STRING "")
10+
set(SwiftCore_PLATFORM_SUBDIR macosx CACHE STRING "")
11+
912
list(APPEND CMAKE_C_FLAGS "-darwin-target-variant" "x86_64-apple-ios13.1-macabi")
1013
list(APPEND CMAKE_CXX_FLAGS "-darwin-target-variant" "x86_64-apple-ios13.1-macabi")
1114
list(APPEND CMAKE_Swift_FLAGS "-target-variant" "x86_64-apple-ios13.1-macabi")

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

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

9+
set(SwiftCore_ARCH_SUBDIR x86_64 CACHE STRING "")
10+
set(SwiftCore_PLATFORM_SUBDIR watchsimulator CACHE STRING "")
11+
912
include("${CMAKE_CURRENT_LIST_DIR}/apple-common.cmake")

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

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

9+
set(SwiftCore_ARCH_SUBDIR x86_64 CACHE STRING "")
10+
set(SwiftCore_PLATFORM_SUBDIR xrsimulator CACHE STRING "")
11+
912
include("${CMAKE_CURRENT_LIST_DIR}/apple-common.cmake")

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

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

9+
set(SwiftCore_ARCH_SUBDIR x86_64 CACHE STRING "")
10+
set(SwiftCore_PLATFORM_SUBDIR iphonesimulator CACHE STRING "")
11+
912
include("${CMAKE_CURRENT_LIST_DIR}/apple-common.cmake")

Runtimes/Core/runtime/CMakeLists.txt

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,15 @@ if(SwiftCore_ENABLE_RUNTIME_LEAK_CHECKER)
7272
Leaks.mm)
7373
endif()
7474

75+
# runtime/Paths.cpp uses `SWIFT_ARCH` and `SWIFT_LIB_SUBDIR` to find the
76+
# subdirectory under `libexec` in which to find the backtracer.
77+
# Fail the configuration if it isn't set appropriately.
78+
# TODO: In the future, we might consider moving the backtracer up to
79+
# `libexec/swift` and drop the platform/architecture specific subdirectories
80+
if(SwiftCore_ENABLE_FILESYSTEM_SUPPORT AND (NOT SwiftCore_ARCH_SUBDIR OR NOT SwiftCore_PLATFORM_SUBDIR))
81+
message(SEND_ERROR "Filesystem support requires setting `SwiftCore_ARCH_SUBDIR` and `SwiftCore_PLATFORM_SUBDIR`")
82+
endif()
83+
7584
# TODO: Probably worth considering putting half of these in a RuntimeConfig.h.in
7685
# file rather than pushing them through macro flags.
7786
target_compile_definitions(swiftRuntime
@@ -87,7 +96,10 @@ target_compile_definitions(swiftRuntime
8796
$<$<BOOL:${SwiftCore_ENABLE_SHORT_MANGLING_LOOKUPS}>:-DSWIFT_STDLIB_SHORT_MANGLING_LOOKUPS>
8897
$<$<BOOL:${SwiftCore_HAS_ASL}>:-DSWIFT_STDLIB_HAS_ASL>
8998
$<$<BOOL:${SwiftCore_HAS_DLADDR}>:-DSWIFT_STDLIB_HAS_DLADDR>
90-
$<$<BOOL:${SwiftCore_HAS_DLSYM}>:-DSWIFT_STDLIB_HAS_DLSYM>)
99+
$<$<BOOL:${SwiftCore_HAS_DLSYM}>:-DSWIFT_STDLIB_HAS_DLSYM>
100+
$<$<BOOL:${SwiftCore_ENABLE_FILESYSTEM_SUPPORT}>:-DSWIFT_STDLIB_HAS_FILESYSTEM>
101+
$<$<AND:$<BOOL:${SwiftCore_ENABLE_FILESYSTEM_SUPPORT}>,$<COMPILE_LANGUAGE:C,CXX>>:-DSWIFT_ARCH="${SwiftCore_ARCH_SUBDIR}">
102+
$<$<AND:$<BOOL:${SwiftCore_ENABLE_FILESYSTEM_SUPPORT}>,$<COMPILE_LANGUAGE:C,CXX>>:-DSWIFT_LIB_SUBDIR="${SwiftCore_PLATFORM_SUBDIR}">)
91103

92104
target_include_directories(swiftRuntime PRIVATE
93105
"${PROJECT_BINARY_DIR}/include"

0 commit comments

Comments
 (0)