Skip to content

Commit bdbb6dc

Browse files
bitjammertkremenek
authored andcommitted
Remote mirror build presets 27085666 (#3393)
* Only migrate the last swift-sdks setting when cascading build presets Looping over these can cause CMake errors if a later preset tries to override swift-sdks. rdar://problem/27085666 * Break SwiftRemoteMirror into its own target. We want to be able to build a target with just the platform-specific libswiftRemoteMirror library. This should be a change in build logic for existing presets but allows for a separate preset to be defined that just builds the library if/when it's necessary. - Add --build-swift-remote-mirror option to build-script-impl - Add swift-remote-mirror known install component. - Only add SwiftRemoteMirror targets if SWIFT_BUILD_REMOTE_MIRROR is on. - Move libswiftRemoteMirror into the swift-remote-mirror install component. - Add swift-remote-mirror install components to existing presets. rdar://problem/27085666 * Add Remote Mirror build presets This allows us to build just the OS-specific presets for integration and testing. rdar://problem/27085666 * Fix typo in Remote Mirror build preset
1 parent 798a03c commit bdbb6dc

File tree

6 files changed

+146
-30
lines changed

6 files changed

+146
-30
lines changed

CMakeLists.txt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,10 @@ option(SWIFT_BUILD_TOOLS
4848
"Build the Swift compiler and other tools"
4949
TRUE)
5050

51+
option(SWIFT_BUILD_REMOTE_MIRROR
52+
"Build the Swift Remote Mirror Library"
53+
TRUE)
54+
5155
option(SWIFT_BUILD_DYNAMIC_STDLIB
5256
"Build dynamic variants of the Swift standard library"
5357
TRUE)
@@ -120,7 +124,7 @@ set(SWIFT_ENABLE_GOLD_LINKER FALSE CACHE BOOL
120124
"Enable using the gold linker when available")
121125

122126
set(_SWIFT_KNOWN_INSTALL_COMPONENTS
123-
"autolink-driver;compiler;clang-builtin-headers;clang-resource-dir-symlink;clang-builtin-headers-in-clang-resource-dir;stdlib;stdlib-experimental;sdk-overlay;editor-integration;tools;testsuite-tools;toolchain-dev-tools;dev;license;sourcekit-xpc-service;sourcekit-inproc;swift-remote-mirror-headers")
127+
"autolink-driver;compiler;clang-builtin-headers;clang-resource-dir-symlink;clang-builtin-headers-in-clang-resource-dir;stdlib;stdlib-experimental;sdk-overlay;editor-integration;tools;testsuite-tools;toolchain-dev-tools;dev;license;sourcekit-xpc-service;sourcekit-inproc;swift-remote-mirror;swift-remote-mirror-headers")
124128

125129
# Set the SWIFT_INSTALL_COMPONENTS variable to the default value if it is not passed in via -D
126130
set(SWIFT_INSTALL_COMPONENTS "${_SWIFT_KNOWN_INSTALL_COMPONENTS}" CACHE STRING

stdlib/public/CMakeLists.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@ if(SWIFT_BUILD_STDLIB)
3131
add_subdirectory(stubs)
3232
add_subdirectory(core)
3333
add_subdirectory(SwiftOnoneSupport)
34+
endif()
35+
36+
if(SWIFT_BUILD_STDLIB OR SWIFT_BUILD_REMOTE_MIRROR)
3437
add_subdirectory(Reflection)
3538
add_subdirectory(SwiftRemoteMirror)
3639
endif()
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# libswiftRemoteMirror.dylib should not have runtime dependencies; it's
22
# always built as a shared library.
3-
if(SWIFT_BUILD_DYNAMIC_STDLIB)
3+
if(SWIFT_BUILD_DYNAMIC_STDLIB OR SWIFT_BUILD_REMOTE_MIRROR)
44
add_swift_library(swiftRemoteMirror SHARED TARGET_LIBRARY DONT_EMBED_BITCODE
55
SwiftRemoteMirror.cpp
66
LINK_LIBRARIES swiftReflection
7-
INSTALL_IN_COMPONENT stdlib)
7+
INSTALL_IN_COMPONENT swift-remote-mirror)
88
endif()

utils/SwiftBuildSupport.py

Lines changed: 30 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -143,30 +143,37 @@ def get_preset_options(substitutions, preset_file_names, preset_name):
143143
"': " + ", ".join(missing_opts))
144144

145145
# Migrate 'swift-sdks' parameter to 'stdlib-deployment-targets'
146-
for opt in build_script_impl_opts:
147-
if opt.startswith("--swift-sdks"):
148-
sdks_to_configure = opt.split("=")[1].split(";")
149-
tgts = []
150-
# Expand SDKs in to their deployment targets
151-
from swift_build_support.targets import StdlibDeploymentTarget
152-
for sdk in sdks_to_configure:
153-
if sdk == "OSX":
154-
tgts += StdlibDeploymentTarget.OSX.targets
155-
elif sdk == "IOS":
156-
tgts += StdlibDeploymentTarget.iOS.targets
157-
elif sdk == "IOS_SIMULATOR":
158-
tgts += StdlibDeploymentTarget.iOSSimulator.targets
159-
elif sdk == "TVOS":
160-
tgts += StdlibDeploymentTarget.AppleTV.targets
161-
elif sdk == "TVOS_SIMULATOR":
162-
tgts += StdlibDeploymentTarget.AppleTVSimulator.targets
163-
elif sdk == "WATCHOS":
164-
tgts += StdlibDeploymentTarget.AppleWatch.targets
165-
elif sdk == "WATCHOS_SIMULATOR":
166-
tgts += StdlibDeploymentTarget.AppleWatchSimulator.targets
167-
168-
build_script_opts.append("--stdlib-deployment-targets=" +
146+
swift_sdks_opts = [opt for opt in build_script_impl_opts
147+
if opt.startswith("--swift-sdks")]
148+
try:
149+
swift_sdks_opt = swift_sdks_opts[-1]
150+
except IndexError:
151+
swift_sdks_opt = None
152+
153+
if swift_sdks_opt is not None:
154+
sdks_to_configure = swift_sdks_opt.split("=")[1].split(";")
155+
tgts = []
156+
# Expand SDKs in to their deployment targets
157+
from swift_build_support.targets import StdlibDeploymentTarget
158+
for sdk in sdks_to_configure:
159+
if sdk == "OSX":
160+
tgts += StdlibDeploymentTarget.OSX.targets
161+
elif sdk == "IOS":
162+
tgts += StdlibDeploymentTarget.iOS.targets
163+
elif sdk == "IOS_SIMULATOR":
164+
tgts += StdlibDeploymentTarget.iOSSimulator.targets
165+
elif sdk == "TVOS":
166+
tgts += StdlibDeploymentTarget.AppleTV.targets
167+
elif sdk == "TVOS_SIMULATOR":
168+
tgts += StdlibDeploymentTarget.AppleTVSimulator.targets
169+
elif sdk == "WATCHOS":
170+
tgts += StdlibDeploymentTarget.AppleWatch.targets
171+
elif sdk == "WATCHOS_SIMULATOR":
172+
tgts += StdlibDeploymentTarget.AppleWatchSimulator.targets
173+
174+
build_script_opts.append("--stdlib-deployment-targets=" +
169175
" ".join([tgt.name for tgt in tgts]))
176+
170177
# Filter the swift-sdks parameter
171178
build_script_impl_opts = [opt for opt in build_script_impl_opts
172179
if not opt.startswith("--swift-sdks")]

utils/build-presets.ini

Lines changed: 104 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
[preset: mixin_buildbot_install_components]
1717
dash-dash
1818

19-
swift-install-components=compiler;clang-builtin-headers;stdlib;sdk-overlay;editor-integration;tools;testsuite-tools;sourcekit-xpc-service;swift-remote-mirror-headers;
19+
swift-install-components=compiler;clang-builtin-headers;stdlib;sdk-overlay;editor-integration;tools;testsuite-tools;sourcekit-xpc-service;swift-remote-mirror;swift-remote-mirror-headers;
2020

2121

2222
[preset: mixin_buildbot_trunk_base]
@@ -593,7 +593,7 @@ install-llbuild
593593
install-swiftpm
594594
install-xctest
595595
install-prefix=/usr
596-
swift-install-components=autolink-driver;compiler;clang-builtin-headers;stdlib;sdk-overlay;license
596+
swift-install-components=autolink-driver;compiler;clang-builtin-headers;stdlib;swift-remote-mirror;sdk-overlay;license
597597
build-swift-static-stdlib
598598
build-swift-stdlib-unittest-extra
599599

@@ -656,7 +656,7 @@ install-foundation
656656
install-swiftpm
657657
install-xctest
658658
install-prefix=/usr
659-
swift-install-components=autolink-driver;compiler;clang-builtin-headers;stdlib;sdk-overlay;dev
659+
swift-install-components=autolink-driver;compiler;clang-builtin-headers;stdlib;swift-remote-mirror;sdk-overlay;dev
660660
build-swift-static-stdlib
661661
skip-test-lldb
662662

@@ -789,7 +789,7 @@ mixin-preset=
789789

790790
dash-dash
791791

792-
swift-install-components=compiler;clang-builtin-headers;stdlib;sdk-overlay;license;sourcekit-xpc-service;swift-remote-mirror-headers
792+
swift-install-components=compiler;clang-builtin-headers;stdlib;sdk-overlay;license;sourcekit-xpc-service;swift-remote-mirror;swift-remote-mirror-headers
793793
llvm-install-components=libclang;libclang-headers
794794

795795
# Path to the .tar.gz package we would create.
@@ -895,3 +895,103 @@ dash-dash
895895
skip-test-ios
896896
skip-test-tvos
897897
skip-test-osx
898+
899+
#===------------------------------------------------------------------------===#
900+
# Remote Mirror Library
901+
#===------------------------------------------------------------------------===#
902+
903+
[preset: mixin_remote_mirror_base]
904+
no-assertions
905+
swift-assertions
906+
907+
dash-dash
908+
909+
build-ninja
910+
release-debuginfo
911+
reconfigure
912+
compiler-vendor=apple
913+
swift-install-components=swift-remote-mirror
914+
install-destdir=%(install_destdir)s
915+
skip-build-cmark
916+
skip-build-llvm
917+
skip-build-llbuild
918+
skip-build-swiftpm
919+
skip-build-benchmarks
920+
install-swift
921+
install-prefix=/usr
922+
build-swift-examples=0
923+
build-swift-tools=0
924+
build-swift-static-stdlib=0
925+
build-swift-dynamic-stdlib=0
926+
build-swift-static-sdk-overlay=0
927+
build-swift-dynamic-sdk-overlay=0
928+
source-tree-includes-tests=0
929+
930+
[preset: remote_mirror_ios_customization]
931+
932+
dash-dash
933+
934+
darwin-xcrun-toolchain=ios
935+
darwin-deployment-version-ios=10.0
936+
clang-user-visible-version=8.0
937+
skip-build-osx
938+
skip-test-osx
939+
skip-build-tvos
940+
skip-test-tvos
941+
skip-build-watchos
942+
skip-test-watchos
943+
swift-sdks=IOS
944+
swift-primary-variant-sdk=IOS
945+
swift-primary-variant-arch=arm64
946+
build-subdir=swift_remote_mirror_ios
947+
948+
[preset: remote_mirror_ios]
949+
mixin-preset=
950+
mixin_remote_mirror_base
951+
remote_mirror_ios_customization
952+
953+
[preset: remote_mirror_watchos_customization]
954+
955+
dash-dash
956+
957+
darwin-xcrun-toolchain=watchos
958+
darwin-deployment-version-watchos=3.0
959+
clang-user-visible-version=8.0
960+
skip-build-osx
961+
skip-test-osx
962+
skip-build-tvos
963+
skip-test-tvos
964+
skip-build-ios
965+
skip-test-ios
966+
swift-sdks=WATCHOS
967+
swift-primary-variant-sdk=WATCHOS
968+
swift-primary-variant-arch=armv7k
969+
build-subdir=swift_remote_mirror_watchos
970+
971+
[preset: remote_mirror_watchos]
972+
mixin-preset=
973+
mixin_remote_mirror_base
974+
remote_mirror_watchos_customization
975+
976+
[preset: remote_mirror_tvos_customization]
977+
978+
dash-dash
979+
980+
darwin-xcrun-toolchain=tvos
981+
darwin-deployment-version-tvos=10.0
982+
clang-user-visible-version=8.0
983+
skip-build-osx
984+
skip-test-osx
985+
skip-build-watchos
986+
skip-test-watchos
987+
skip-build-ios
988+
skip-test-ios
989+
swift-sdks=TVOS
990+
swift-primary-variant-sdk=TVOS
991+
swift-primary-variant-arch=arm64
992+
build-subdir=swift_remote_mirror_tvos
993+
994+
[preset: remote_mirror_tvos]
995+
mixin-preset=
996+
mixin_remote_mirror_base
997+
remote_mirror_tvos_customization

utils/build-script-impl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,7 @@ KNOWN_SETTINGS=(
161161
build-swift-dynamic-sdk-overlay "" "set to 1 to build dynamic variants of the Swift SDK overlay"
162162
build-swift-static-sdk-overlay "" "set to 1 to build static variants of the Swift SDK overlay"
163163
build-swift-examples "1" "set to 1 to build examples"
164+
build-swift-remote-mirror "1" "set to 1 to build the Swift Remote Mirror library"
164165
build-serialized-stdlib-unittest "0" "set to 1 to build the StdlibUnittest module with -sil-serialize-all"
165166
build-sil-debugging-stdlib "0" "set to 1 to build the Swift standard library with -gsil to enable debugging and profiling on SIL level"
166167
check-incremental-compilation "0" "set to 1 to compile swift libraries multiple times to check if incremental compilation works"
@@ -1883,6 +1884,7 @@ for host in "${ALL_HOSTS[@]}"; do
18831884
-DSWIFT_NATIVE_CLANG_TOOLS_PATH:STRING="${native_clang_tools_path}"
18841885
-DSWIFT_NATIVE_SWIFT_TOOLS_PATH:STRING="${native_swift_tools_path}"
18851886
-DSWIFT_BUILD_TOOLS:BOOL=$(true_false "${BUILD_SWIFT_TOOLS}")
1887+
-DSWIFT_BUILD_REMOTE_MIRROR:BOOL=$(true_false "${BUILD_SWIFT_REMOTE_MIRROR}")
18861888
-DSWIFT_SERIALIZE_STDLIB_UNITTEST:BOOL=$(true_false "${BUILD_SERIALIZED_STDLIB_UNITTEST}")
18871889
-DSWIFT_STDLIB_SIL_DEBUGGING:BOOL=$(true_false "${BUILD_SIL_DEBUGGING_STDLIB}")
18881890
-DSWIFT_CHECK_INCREMENTAL_COMPILATION:BOOL=$(true_false "${CHECK_INCREMENTAL_COMPILATION}")

0 commit comments

Comments
 (0)