Skip to content

Commit 52d9d80

Browse files
Merge pull request #76359 from ian-twilightcoder/dont-build-overlays-on-apple
[CMake] [Darwin] Don't build the SDK overlays by default on Apple platforms
2 parents 3494c40 + 5bf2c93 commit 52d9d80

17 files changed

+59
-28
lines changed

CMakeLists.txt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -244,9 +244,16 @@ option(SWIFT_BUILD_CLANG_OVERLAYS
244244
"Build Swift overlays for the clang builtin modules"
245245
TRUE)
246246

247+
# The SDK overlay is provided by the SDK itself on Darwin platforms.
248+
if(SWIFT_HOST_VARIANT_SDK IN_LIST SWIFT_DARWIN_PLATFORMS)
249+
set(SWIFT_BUILD_DYNAMIC_SDK_OVERLAY_default FALSE)
250+
else()
251+
set(SWIFT_BUILD_DYNAMIC_SDK_OVERLAY_default TRUE)
252+
endif()
253+
247254
option(SWIFT_BUILD_DYNAMIC_SDK_OVERLAY
248255
"Build dynamic variants of the Swift SDK overlay"
249-
TRUE)
256+
"${SWIFT_BUILD_DYNAMIC_SDK_OVERLAY_default}")
250257

251258
option(SWIFT_BUILD_STATIC_SDK_OVERLAY
252259
"Build static variants of the Swift SDK overlay"

benchmark/cmake/modules/AddSwiftBenchmarkSuite.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -716,7 +716,7 @@ function(swift_benchmark_compile)
716716

717717
if(NOT SWIFT_BENCHMARK_BUILT_STANDALONE)
718718
set(stdlib_dependencies "swift-frontend" "swiftCore-${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}")
719-
if(SWIFT_HOST_VARIANT_SDK IN_LIST SWIFT_DARWIN_PLATFORMS)
719+
if((SWIFT_HOST_VARIANT_SDK IN_LIST SWIFT_DARWIN_PLATFORMS) AND SWIFT_BUILD_SDK_OVERLAY)
720720
list(APPEND stdlib_dependencies "swiftDarwin-${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}")
721721
endif()
722722
foreach(stdlib_dependency ${UNIVERSAL_LIBRARY_NAMES_${SWIFT_BENCHMARK_COMPILE_PLATFORM}})

cmake/modules/DarwinSDKs.cmake

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,11 @@ if(swift_build_freestanding AND (SWIFT_FREESTANDING_FLAVOR STREQUAL "apple"))
3838
configure_target_variant(FREESTANDING-R "FREESTANDING Release" FREESTANDING R "Release")
3939
configure_target_variant(FREESTANDING-S "FREESTANDING MinSizeRelease" FREESTANDING S "MinSizeRelease")
4040

41-
set(SWIFT_FREESTANDING_TEST_DEPENDENCIES "Darwin")
41+
if(SWIFT_BUILD_SDK_OVERLAY)
42+
set(SWIFT_FREESTANDING_TEST_DEPENDENCIES "Darwin")
43+
else()
44+
set(SWIFT_FREESTANDING_TEST_DEPENDENCIES "")
45+
endif()
4246
endif()
4347

4448
# Compatible cross-compile SDKS for Darwin OSes: IOS, IOS_SIMULATOR, TVOS,

stdlib/private/CMakeLists.txt

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
1-
if(SWIFT_BUILD_SDK_OVERLAY)
1+
if(SWIFT_BUILD_SDK_OVERLAY
2+
OR (SWIFT_BUILD_TEST_SUPPORT_MODULES
3+
AND NOT SWIFT_BUILD_DYNAMIC_SDK_OVERLAY_default
4+
AND (SWIFT_ENABLE_REFLECTION
5+
OR NOT SWIFT_HOST_VARIANT_SDK IN_LIST SWIFT_DARWIN_PLATFORMS)))
26
# SwiftPrivateThreadExtras makes use of Darwin/Glibc, which is part of the
3-
# SDK overlay. It can't be built separately from the SDK overlay.
7+
# SDK overlay. If the SDK overlay doesn't build by default, then it should
8+
# be available in the SDK and DifferentiationUnittest can still be built.
9+
# However, the overlay in the Apple SDKs requires the standard library to
10+
# have reflection enabled.
411
if(SWIFT_ENABLE_EXPERIMENTAL_DIFFERENTIABLE_PROGRAMMING)
512
add_subdirectory(DifferentiationUnittest)
613
endif()
7-
endif()
8-
9-
if(SWIFT_BUILD_SDK_OVERLAY OR SWIFT_BUILD_TEST_SUPPORT_MODULES)
1014
add_subdirectory(SwiftPrivate)
1115
add_subdirectory(RuntimeUnittest)
1216
add_subdirectory(StdlibUnicodeUnittest)
@@ -18,9 +22,7 @@ if(SWIFT_BUILD_SDK_OVERLAY OR SWIFT_BUILD_TEST_SUPPORT_MODULES)
1822
# SwiftPrivateThreadExtras to ensure that the dependency targets are setup in
1923
# the correct order for Windows.
2024
add_subdirectory(StdlibUnittest)
21-
endif()
2225

23-
if(SWIFT_BUILD_SDK_OVERLAY)
2426
add_subdirectory(OSLog)
2527

2628
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")

stdlib/public/CMakeLists.txt

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -266,7 +266,7 @@ if(SWIFT_BUILD_STDLIB)
266266
add_subdirectory(core)
267267
add_subdirectory(SwiftOnoneSupport)
268268

269-
if(SWIFT_BUILD_CLANG_OVERLAYS)
269+
if(SWIFT_BUILD_CLANG_OVERLAYS OR SWIFT_BUILD_TEST_SUPPORT_MODULES)
270270
add_subdirectory(ClangOverlays)
271271
endif()
272272

@@ -315,13 +315,12 @@ if(SWIFT_BUILD_REMOTE_MIRROR)
315315
add_subdirectory(SwiftRemoteMirror)
316316
endif()
317317

318-
if(SWIFT_BUILD_SDK_OVERLAY OR SWIFT_BUILD_TEST_SUPPORT_MODULES)
318+
if(SWIFT_BUILD_SDK_OVERLAY OR (SWIFT_BUILD_TEST_SUPPORT_MODULES AND SWIFT_BUILD_DYNAMIC_SDK_OVERLAY_default))
319319
add_subdirectory(Platform)
320320
endif()
321321

322322
if(SWIFT_BUILD_SDK_OVERLAY)
323-
# On Apple platforms, we aren't building any overlays (other than Darwin in
324-
# Platform above). Instead, we're picking them up from the SDK.
323+
# On Apple platforms, we aren't building any overlays. Instead, we're picking them up from the SDK.
325324

326325
if(WINDOWS IN_LIST SWIFT_SDKS)
327326
add_subdirectory(Windows)

test/Driver/loaded_module_trace_foundation.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@
99
// CHECK: "arch":"{{[^"]*}}"
1010
// CHECK: "swiftmodules":[
1111

12-
// Darwin, Swift and SwiftOnoneSupport is expected to be locally built;
12+
// Swift and SwiftOnoneSupport is expected to be locally built;
1313
// everything else comes from the SDK, built from swiftinterface.
1414

1515
// CHECK-DAG: "{{[^"]*}}/ObjectiveC.swiftmodule{{(\\/[^"]+[.]swift(module|interface))?}}"
1616
// CHECK-DAG: "{{[^"]*}}/Dispatch.swiftmodule{{(\\/[^"]+[.]swift(module|interface))?}}"
17-
// CHECK-DAG: "{{[^"]*}}/Darwin.swiftmodule{{(\\/[^"]+[.]swiftmodule)?}}"
17+
// CHECK-DAG: "{{[^"]*}}/Darwin.swiftmodule{{(\\/[^"]+[.]swift(module|interface))?}}"
1818
// CHECK-DAG: "{{[^"]*}}/Foundation.swiftmodule{{(\\/[^"]+[.]swift(module|interface))?}}"
1919
// CHECK-DAG: "{{[^"]*}}/Swift.swiftmodule{{(\\/[^"]+[.]swiftmodule)?}}"
2020
// CHECK-DAG: "{{[^"]*}}/SwiftOnoneSupport.swiftmodule{{(\\/[^"]+[.]swiftmodule)?}}"

test/Driver/loaded_module_trace_header.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
// CHECK: "swiftmodules":[
1212
// CHECK-DAG: "{{[^"]*}}/ObjectiveC.swiftmodule{{(\\/[^"]+[.]swift(module|interface))?}}"
1313
// CHECK-DAG: "{{[^"]*}}/Dispatch.swiftmodule{{(\\/[^"]+[.]swift(module|interface))?}}"
14-
// CHECK-DAG: "{{[^"]*}}/Darwin.swiftmodule{{(\\/[^"]+[.]swiftmodule)?}}"
14+
// CHECK-DAG: "{{[^"]*}}/Darwin.swiftmodule{{(\\/[^"]+[.]swift(module|interface))?}}"
1515
// CHECK-DAG: "{{[^"]*}}/Foundation.swiftmodule{{(\\/[^"]+[.]swift(module|interface))?}}"
1616
// CHECK-DAG: "{{[^"]*}}/Swift.swiftmodule{{(\\/[^"]+[.]swiftmodule)?}}"
1717
// CHECK-DAG: "{{[^"]*}}/SwiftOnoneSupport.swiftmodule{{(\\/[^"]+[.]swiftmodule)?}}"

test/SIL/Serialization/deserialize_darwin.sil

Lines changed: 0 additions & 7 deletions
This file was deleted.

test/embedded/concurrency-actors.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@
99
// REQUIRES: optimized_stdlib
1010
// REQUIRES: OS=macosx
1111

12+
// The Darwin SDK overlay module in the macOS SDK cannot be imported in
13+
// embedded Swift mode.
14+
// XFAIL: OS=macosx
15+
1216
import _Concurrency
1317

1418
actor Number {

test/embedded/concurrency-async-let.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@
99
// REQUIRES: optimized_stdlib
1010
// REQUIRES: OS=macosx
1111

12+
// The Darwin SDK overlay module in the macOS SDK cannot be imported in
13+
// embedded Swift mode.
14+
// XFAIL: OS=macosx
15+
1216
import _Concurrency
1317

1418
func fib(_ n: Int) -> Int {

0 commit comments

Comments
 (0)