Skip to content

[NFC] Move Migrated SDK Target List into StdlibDeploymentTarget #34903

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Dec 1, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 1 addition & 12 deletions utils/build_swift/build_swift/migration.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,17 +33,6 @@
]


_SDK_TARGETS = {
'OSX': StdlibDeploymentTarget.OSX.targets,
'IOS': StdlibDeploymentTarget.iOS.targets,
'IOS_SIMULATOR': StdlibDeploymentTarget.iOSSimulator.targets,
'TVOS': StdlibDeploymentTarget.AppleTV.targets,
'TVOS_SIMULATOR': StdlibDeploymentTarget.AppleTVSimulator.targets,
'WATCHOS': StdlibDeploymentTarget.AppleWatch.targets,
'WATCHOS_SIMULATOR': StdlibDeploymentTarget.AppleWatchSimulator.targets,
}


# -----------------------------------------------------------------------------

class UnknownSDKError(Exception):
Expand All @@ -70,7 +59,7 @@ def _flatten(iterable):
return itertools.chain.from_iterable(iterable)

def _swift_sdk_to_stdlib_targets(sdk):
targets = _SDK_TARGETS.get(sdk, None)
targets = StdlibDeploymentTarget.get_migrated_targets_for_sdk(sdk)
if targets is None:
raise UnknownSDKError(sdk)

Expand Down
6 changes: 4 additions & 2 deletions utils/build_swift/tests/build_swift/test_migration.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,16 @@

import six

from swift_build_support.swift_build_support.targets import StdlibDeploymentTarget


# -----------------------------------------------------------------------------
# Helpers

def _get_sdk_targets(sdk_names):
targets = []
for sdk_name in sdk_names:
targets += migration._SDK_TARGETS[sdk_name]
targets += StdlibDeploymentTarget.get_migrated_targets_for_sdk(sdk_name)

return targets

Expand All @@ -43,7 +45,7 @@ class TestMigrateSwiftSDKsMeta(type):

def __new__(cls, name, bases, attrs):
# Generate tests for migrating each Swift SDK
for sdk_name in migration._SDK_TARGETS.keys():
for sdk_name in StdlibDeploymentTarget.get_all_migrated_sdks():
test_name = 'test_migrate_swift_sdk_{}'.format(sdk_name)
attrs[test_name] = cls.generate_migrate_swift_sdks_test(sdk_name)

Expand Down
18 changes: 18 additions & 0 deletions utils/swift_build_support/swift_build_support/targets.py
Original file line number Diff line number Diff line change
Expand Up @@ -227,6 +227,16 @@ class StdlibDeploymentTarget(object):
for platform in known_platforms
for target in platform.targets)

_sdk_targets = {
'OSX': OSX.targets,
'IOS': iOS.targets,
'IOS_SIMULATOR': iOSSimulator.targets,
'TVOS': AppleTV.targets,
'TVOS_SIMULATOR': AppleTVSimulator.targets,
'WATCHOS': AppleWatch.targets,
'WATCHOS_SIMULATOR': AppleWatchSimulator.targets,
}

@staticmethod
def host_target():
"""
Expand Down Expand Up @@ -308,6 +318,14 @@ def get_target_names(cls):
return sorted([name for (name, target) in
cls._targets_by_name.items()])

@classmethod
def get_migrated_targets_for_sdk(cls, sdk_name):
return cls._sdk_targets.get(sdk_name, None)

@classmethod
def get_all_migrated_sdks(cls):
return cls._sdk_targets.keys()


def install_prefix():
"""
Expand Down