Skip to content

Commit 1b869ef

Browse files
authored
Revert "[BuildSystem] Stop building for i386-watch-simulator" (#77911)
* Revert "[Build] Fix swift_build_support tests." This reverts commit fc2d1b3. * Revert "[BuildSystem] Stop building for i386-watch-simulator (#77692)" This reverts commit 1ab968d. This change can't be made without other issues fixed downstream first.
1 parent 87495c6 commit 1b869ef

File tree

10 files changed

+58
-10
lines changed

10 files changed

+58
-10
lines changed

cmake/modules/DarwinSDKs.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ set(SUPPORTED_IOS_SIMULATOR_ARCHS "x86_64;arm64")
33
set(SUPPORTED_TVOS_ARCHS "arm64")
44
set(SUPPORTED_TVOS_SIMULATOR_ARCHS "x86_64;arm64")
55
set(SUPPORTED_WATCHOS_ARCHS "armv7k;arm64_32")
6-
set(SUPPORTED_WATCHOS_SIMULATOR_ARCHS "x86_64;arm64")
6+
set(SUPPORTED_WATCHOS_SIMULATOR_ARCHS "i386;x86_64;arm64")
77
set(SUPPORTED_OSX_ARCHS "x86_64;arm64")
88
set(SUPPORTED_XROS_ARCHS "arm64;arm64e")
99
set(SUPPORTED_XROS_SIMULATOR_ARCHS "arm64")

cmake/modules/SwiftConfigureSDK.cmake

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,10 @@ function(remove_sdk_unsupported_archs name os sdk_path deployment_version archit
9191
# 32-bit watchOS is not listed explicitly in SDK settings.
9292
message(STATUS "Assuming ${name} SDK at ${sdk_path} supports architecture ${arch}")
9393
list(APPEND architectures ${arch})
94+
elseif(arch STREQUAL "i386" AND os STREQUAL "watchsimulator")
95+
# 32-bit watchOS simulator is not listed explicitly in SDK settings.
96+
message(STATUS "Assuming ${name} SDK at ${sdk_path} supports architecture ${arch}")
97+
list(APPEND architectures ${arch})
9498
else()
9599
message(STATUS "${name} SDK at ${sdk_path} does not support architecture ${arch}")
96100
endif()

utils/build-script-impl

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -486,6 +486,7 @@ function verify_host_is_supported() {
486486
| appletvsimulator-x86_64 \
487487
| appletvsimulator-arm64 \
488488
| appletvos-arm64 \
489+
| watchsimulator-i386 \
489490
| watchsimulator-x86_64 \
490491
| watchsimulator-arm64 \
491492
| watchos-armv7k \
@@ -664,6 +665,13 @@ function set_build_options_for_host() {
664665
SWIFT_HOST_VARIANT_SDK="TVOS"
665666
cmake_osx_deployment_target=""
666667
;;
668+
watchsimulator-i386)
669+
SWIFT_HOST_TRIPLE="i386-apple-watchos${DARWIN_DEPLOYMENT_VERSION_WATCHOS}-simulator"
670+
llvm_target_arch="X86"
671+
672+
SWIFT_HOST_VARIANT_SDK="WATCHOS_SIMULATOR"
673+
cmake_osx_deployment_target=""
674+
;;
667675
watchsimulator-x86_64)
668676
SWIFT_HOST_TRIPLE="x86_64-apple-watchos${DARWIN_DEPLOYMENT_VERSION_WATCHOS}-simulator"
669677
llvm_target_arch="X86"

utils/build_swift/build_swift/driver_arguments.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1268,6 +1268,10 @@ def create_argument_parser():
12681268
option('--skip-test-ios-simulator',
12691269
toggle_false('test_ios_simulator'),
12701270
help='skip testing iOS simulator targets')
1271+
option('--skip-test-watchos-32bit-simulator',
1272+
toggle_false('test_watchos_32bit_simulator'),
1273+
default=False,
1274+
help='skip testing watchOS 32 bit simulator targets')
12711275
option('--skip-test-ios-host',
12721276
toggle_false('test_ios_host'),
12731277
help='skip testing iOS device targets on the host machine (the '

utils/build_swift/tests/expected_options.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -292,6 +292,7 @@
292292
'test_cygwin': False,
293293
'test_freebsd': False,
294294
'test_ios': False,
295+
'test_watchos_32bit_simulator': False,
295296
'test_ios_host': False,
296297
'test_ios_simulator': False,
297298
'test_linux': False,
@@ -735,6 +736,8 @@ class BuildScriptImplOption(_BaseOption):
735736
DisableOption('--skip-test-cygwin', dest='test_cygwin'),
736737
DisableOption('--skip-test-freebsd', dest='test_freebsd'),
737738
DisableOption('--skip-test-ios', dest='test_ios'),
739+
DisableOption('--skip-test-watchos-32bit-simulator',
740+
dest='test_watchos_32bit_simulator'),
738741
DisableOption('--skip-test-ios-host', dest='test_ios_host'),
739742
DisableOption('--skip-test-ios-simulator', dest='test_ios_simulator'),
740743
DisableOption('--skip-test-linux', dest='test_linux'),

utils/sil-opt-verify-all-modules.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ def get_verify_resource_dir_modules_commands(
6363
('iphonesimulator', 'x86_64', 'x86_64-apple-ios7.0'),
6464
('macosx', 'x86_64', 'x86_64-apple-macosx10.9'),
6565
('watchos', 'armv7k', 'armv7k-apple-watchos2.0'),
66+
('watchsimulator', 'i386', 'i386-apple-watchos2.0'),
6667
]
6768

6869
commands = []

utils/swift_build_support/swift_build_support/host_specific_configuration.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -323,6 +323,9 @@ def __platforms_to_skip_test(self, args, stage_dependent_args):
323323

324324
def __platforms_archs_to_skip_test(self, args, stage_dependent_args, host_target):
325325
platforms_archs_to_skip_test = set()
326+
if not stage_dependent_args.test_watchos_32bit_simulator:
327+
platforms_archs_to_skip_test.add(
328+
StdlibDeploymentTarget.AppleWatchSimulator.i386)
326329
if host_target == StdlibDeploymentTarget.OSX.x86_64.name:
327330
platforms_archs_to_skip_test.add(
328331
StdlibDeploymentTarget.iOSSimulator.arm64)
@@ -338,6 +341,8 @@ def __platforms_archs_to_skip_test(self, args, stage_dependent_args, host_target
338341
StdlibDeploymentTarget.iOSSimulator.x86_64)
339342
platforms_archs_to_skip_test.add(
340343
StdlibDeploymentTarget.AppleTVSimulator.x86_64)
344+
platforms_archs_to_skip_test.add(
345+
StdlibDeploymentTarget.AppleWatchSimulator.i386)
341346
platforms_archs_to_skip_test.add(
342347
StdlibDeploymentTarget.AppleWatchSimulator.x86_64)
343348

utils/swift_build_support/swift_build_support/products/cmake_product.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -303,6 +303,13 @@ def host_cmake_options(self, host_target):
303303
swift_host_variant_sdk = 'TVOS'
304304
cmake_osx_deployment_target = None
305305

306+
elif host_target == 'watchsimulator-i386':
307+
swift_host_triple = 'i386-apple-watchos{}-simulator'.format(
308+
self.args.darwin_deployment_version_watchos)
309+
llvm_target_arch = 'X86'
310+
swift_host_variant_sdk = 'WATCHOS_SIMULATOR'
311+
cmake_osx_deployment_target = None
312+
306313
elif host_target == 'watchsimulator-x86_64':
307314
swift_host_triple = 'x86_64-apple-watchos{}-simulator'.format(
308315
self.args.darwin_deployment_version_watchos)

utils/swift_build_support/swift_build_support/targets.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,7 @@ class StdlibDeploymentTarget(object):
258258
sdk_name="WATCHOS")
259259

260260
AppleWatchSimulator = DarwinPlatform("watchsimulator",
261-
archs=["x86_64", "arm64"],
261+
archs=["i386", "x86_64", "arm64"],
262262
sdk_name="WATCHOS_SIMULATOR",
263263
is_simulator=True)
264264

utils/swift_build_support/tests/test_host_specific_configuration.py

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -191,9 +191,9 @@ def test(self):
191191
'build_watchos_device')
192192
test_should_skip_building_watchos_sim =\
193193
generate_should_skip_building_platform(
194-
'watchsimulator-x86_64',
194+
'watchsimulator-i386',
195195
'WATCHOS_SIMULATOR',
196-
'swift-test-stdlib-watchsimulator-x86_64',
196+
'swift-test-stdlib-watchsimulator-i386',
197197
'build_watchos_simulator')
198198

199199
def generate_should_build_full_targets_when_test(test_arg_name):
@@ -233,7 +233,7 @@ def test(self):
233233
'stress_test')
234234

235235
def generate_should_skip_testing_platform(
236-
host_target, build_arg_name, test_arg_name, extra_test_arg_name=None):
236+
host_target, build_arg_name, test_arg_name):
237237
def test(self):
238238
args = self.default_args()
239239
setattr(args, build_arg_name, True)
@@ -245,8 +245,6 @@ def test(self):
245245
self.assertEqual(len(before.swift_test_run_targets), 0)
246246

247247
setattr(args, test_arg_name, True)
248-
if extra_test_arg_name is not None:
249-
setattr(args, extra_test_arg_name, True)
250248
after = HostSpecificConfiguration(host_target, args)
251249
self.assertIn('check-swift-{}'.format(host_target),
252250
after.swift_test_run_targets)
@@ -292,10 +290,27 @@ def test(self):
292290
# NOTE: test_watchos_host is not supported in open-source Swift
293291
test_should_skip_testing_watchos_sim =\
294292
generate_should_skip_testing_platform(
295-
'watchsimulator-x86_64',
293+
'watchsimulator-i386',
296294
'build_watchos_simulator',
297-
'test_watchos_simulator',
298-
'test_watchos_64bit_simulator')
295+
'test_watchos_simulator')
296+
297+
def test_should_skip_testing_32bit_watchos(self):
298+
host_target = 'watchsimulator-i386'
299+
args = self.default_args()
300+
args.build_watchos_simulator = True
301+
args.test_watchos_simulator = True
302+
args.test_watchos_32bit_simulator = False
303+
args.host_target = host_target
304+
args.stdlib_deployment_targets = [host_target]
305+
args.build_stdlib_deployment_targets = 'all'
306+
307+
before = HostSpecificConfiguration(host_target, args)
308+
self.assertEqual(len(before.swift_test_run_targets), 0)
309+
310+
args.test_watchos_32bit_simulator = True
311+
after = HostSpecificConfiguration(host_target, args)
312+
self.assertIn('check-swift-watchsimulator-i386',
313+
after.swift_test_run_targets)
299314

300315
def generate_should_allow_testing_only_host(
301316
host_target, build_arg_name, test_arg_name, host_test_arg_name):
@@ -666,6 +681,7 @@ def default_args(self):
666681
test_freebsd=False,
667682
test_ios_host=False,
668683
test_ios_simulator=False,
684+
test_watchos_32bit_simulator=True,
669685
test_linux=False,
670686
test_optimize_for_size=False,
671687
test_optimize_none_with_implicit_dynamic=False,

0 commit comments

Comments
 (0)