diff options
author | 2017-07-07 11:19:45 -0400 | |
---|---|---|
committer | 2017-07-07 13:37:48 -0400 | |
commit | 51f76dbb931b025c6066af91e8c53a9715014b8a (patch) | |
tree | fffe127f1dfc1d9bca4663ae95bae7421af0f0b1 /src/main/java/com/google | |
parent | 38f74a23738f8f1e0e0e3bc49d41a479f311dbe9 (diff) |
Platform -> ApplePlatform, to avoid ambiguity with the newly introduced
Platform rule.
PiperOrigin-RevId: 161203491
Diffstat (limited to 'src/main/java/com/google')
34 files changed, 259 insertions, 242 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/apple/AppleCommandLineOptions.java b/src/main/java/com/google/devtools/build/lib/rules/apple/AppleCommandLineOptions.java index f523faf746..de001a353b 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/apple/AppleCommandLineOptions.java +++ b/src/main/java/com/google/devtools/build/lib/rules/apple/AppleCommandLineOptions.java @@ -23,7 +23,7 @@ import com.google.devtools.build.lib.analysis.config.FragmentOptions; import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; import com.google.devtools.build.lib.rules.apple.AppleConfiguration.ConfigurationDistinguisher; -import com.google.devtools.build.lib.rules.apple.Platform.PlatformType; +import com.google.devtools.build.lib.rules.apple.ApplePlatform.PlatformType; import com.google.devtools.build.lib.skylarkinterface.SkylarkModule; import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory; import com.google.devtools.common.options.Converters.CommaSeparatedOptionListConverter; @@ -358,13 +358,13 @@ public class AppleCommandLineOptions extends FragmentOptions { ) public boolean targetUsesAppleCrosstool; - private Platform getPlatform() { + private ApplePlatform getPlatform() { for (String architecture : iosMultiCpus) { - if (Platform.forTarget(PlatformType.IOS, architecture) == Platform.IOS_DEVICE) { - return Platform.IOS_DEVICE; + if (ApplePlatform.forTarget(PlatformType.IOS, architecture) == ApplePlatform.IOS_DEVICE) { + return ApplePlatform.IOS_DEVICE; } } - return Platform.forTarget(PlatformType.IOS, iosCpu); + return ApplePlatform.forTarget(PlatformType.IOS, iosCpu); } /** diff --git a/src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java index 36394f51a3..76ec63ec1c 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java +++ b/src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java @@ -30,7 +30,7 @@ import com.google.devtools.build.lib.analysis.config.InvalidConfigurationExcepti import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; import com.google.devtools.build.lib.rules.apple.AppleCommandLineOptions.AppleBitcodeMode; -import com.google.devtools.build.lib.rules.apple.Platform.PlatformType; +import com.google.devtools.build.lib.rules.apple.ApplePlatform.PlatformType; import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable; import com.google.devtools.build.lib.skylarkinterface.SkylarkModule; import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory; @@ -61,8 +61,8 @@ public class AppleConfiguration extends BuildConfiguration.Fragment { public static final String APPLE_SDK_VERSION_ENV_NAME = "APPLE_SDK_VERSION_OVERRIDE"; /** * Environment variable name for the apple SDK platform. This should be set for all actions that - * require an apple SDK. The valid values consist of {@link Platform} names. - **/ + * require an apple SDK. The valid values consist of {@link ApplePlatform} names. + */ public static final String APPLE_SDK_PLATFORM_ENV_NAME = "APPLE_SDK_PLATFORM"; private static final DottedVersion MINIMUM_BITCODE_XCODE_VERSION = DottedVersion.fromString("7"); @@ -197,7 +197,7 @@ public class AppleConfiguration extends BuildConfiguration.Fragment { * @deprecated - use {@link #getSdkVersionForPlatform()} */ @Deprecated public DottedVersion getIosSdkVersion() { - return getSdkVersionForPlatform(Platform.IOS_DEVICE); + return getSdkVersionForPlatform(ApplePlatform.IOS_DEVICE); } /** @@ -205,7 +205,7 @@ public class AppleConfiguration extends BuildConfiguration.Fragment { * directly derived from command line args. */ @SkylarkCallable(name = "sdk_version_for_platform", doc = "The SDK version given a platform.") - public DottedVersion getSdkVersionForPlatform(Platform platform) { + public DottedVersion getSdkVersionForPlatform(ApplePlatform platform) { switch (platform) { case IOS_DEVICE: case IOS_SIMULATOR: @@ -240,7 +240,7 @@ public class AppleConfiguration extends BuildConfiguration.Fragment { * their corresponding values. */ @SkylarkCallable(name = "target_apple_env") - public ImmutableMap<String, String> getTargetAppleEnvironment(Platform platform) { + public ImmutableMap<String, String> getTargetAppleEnvironment(ApplePlatform platform) { ImmutableMap.Builder<String, String> mapBuilder = ImmutableMap.builder(); mapBuilder.putAll(appleTargetPlatformEnv(platform)); return mapBuilder.build(); @@ -282,7 +282,7 @@ public class AppleConfiguration extends BuildConfiguration.Fragment { * variables are needed to use apple toolkits. Keys are variable names and values are their * corresponding values. */ - public Map<String, String> appleTargetPlatformEnv(Platform platform) { + public Map<String, String> appleTargetPlatformEnv(ApplePlatform platform) { ImmutableMap.Builder<String, String> builder = ImmutableMap.builder(); String sdkVersion = getSdkVersionForPlatform(platform).toStringWithMinimumComponents(2); @@ -409,64 +409,68 @@ public class AppleConfiguration extends BuildConfiguration.Fragment { + "cases.", structField = true ) - public Platform getSingleArchPlatform() { - return Platform.forTarget(applePlatformType, getSingleArchitecture()); + public ApplePlatform getSingleArchPlatform() { + return ApplePlatform.forTarget(applePlatformType, getSingleArchitecture()); } - + /** - * Gets the current configuration {@link Platform} for the given {@link PlatformType}. Platform - * is determined via a combination between the given platform type and the "effective" - * architectures of this configuration, as returned by {@link #getMultiArchitectures}; if any - * of the supported architectures are of device type, this will return a device platform. + * Gets the current configuration {@link ApplePlatform} for the given {@link PlatformType}. + * ApplePlatform is determined via a combination between the given platform type and the + * "effective" architectures of this configuration, as returned by {@link #getMultiArchitectures}; + * if any of the supported architectures are of device type, this will return a device platform. * Otherwise, this will return a simulator platform. */ // TODO(bazel-team): This should support returning multiple platforms. - @SkylarkCallable(name = "multi_arch_platform", doc = "The platform of the current configuration " - + "for the given platform type. This should only be invoked in a context where multiple " - + "architectures may be supported; consider single_arch_platform for other cases.") - public Platform getMultiArchPlatform(PlatformType platformType) { + @SkylarkCallable( + name = "multi_arch_platform", + doc = + "The platform of the current configuration " + + "for the given platform type. This should only be invoked in a context where multiple" + + " architectures may be supported; consider single_arch_platform for other cases." + ) + public ApplePlatform getMultiArchPlatform(PlatformType platformType) { List<String> architectures = getMultiArchitectures(platformType); switch (platformType) { case IOS: for (String arch : architectures) { - if (Platform.forTarget(PlatformType.IOS, arch) == Platform.IOS_DEVICE) { - return Platform.IOS_DEVICE; + if (ApplePlatform.forTarget(PlatformType.IOS, arch) == ApplePlatform.IOS_DEVICE) { + return ApplePlatform.IOS_DEVICE; } } - return Platform.IOS_SIMULATOR; + return ApplePlatform.IOS_SIMULATOR; case WATCHOS: for (String arch : architectures) { - if (Platform.forTarget(PlatformType.WATCHOS, arch) == Platform.WATCHOS_DEVICE) { - return Platform.WATCHOS_DEVICE; + if (ApplePlatform.forTarget(PlatformType.WATCHOS, arch) == ApplePlatform.WATCHOS_DEVICE) { + return ApplePlatform.WATCHOS_DEVICE; } } - return Platform.WATCHOS_SIMULATOR; + return ApplePlatform.WATCHOS_SIMULATOR; case TVOS: for (String arch : architectures) { - if (Platform.forTarget(PlatformType.TVOS, arch) == Platform.TVOS_DEVICE) { - return Platform.TVOS_DEVICE; + if (ApplePlatform.forTarget(PlatformType.TVOS, arch) == ApplePlatform.TVOS_DEVICE) { + return ApplePlatform.TVOS_DEVICE; } } - return Platform.TVOS_SIMULATOR; + return ApplePlatform.TVOS_SIMULATOR; case MACOS: - return Platform.MACOS; + return ApplePlatform.MACOS; default: throw new IllegalArgumentException("Unsupported platform type " + platformType); } } /** - * Returns the {@link Platform} represented by {@code ios_cpu} (see {@link #getIosCpu}. - * (For example, {@code i386} maps to {@link Platform#IOS_SIMULATOR}.) Note that this is not + * Returns the {@link ApplePlatform} represented by {@code ios_cpu} (see {@link #getIosCpu}. (For + * example, {@code i386} maps to {@link ApplePlatform#IOS_SIMULATOR}.) Note that this is not * necessarily the effective platform for all ios actions in the current context: This is * typically the correct platform for implicityly-ios compile and link actions in the current - * context. For effective platform for bundling actions, see - * {@link #getMultiArchPlatform(PlatformType)}. + * context. For effective platform for bundling actions, see {@link + * #getMultiArchPlatform(PlatformType)}. */ // TODO(b/28754442): Deprecate for more general skylark-exposed platform retrieval. @SkylarkCallable(name = "ios_cpu_platform", doc = "The platform given by the ios_cpu flag.") - public Platform getIosCpuPlatform() { - return Platform.forTarget(PlatformType.IOS, iosCpu); + public ApplePlatform getIosCpuPlatform() { + return ApplePlatform.forTarget(PlatformType.IOS, iosCpu); } /** diff --git a/src/main/java/com/google/devtools/build/lib/rules/apple/Platform.java b/src/main/java/com/google/devtools/build/lib/rules/apple/ApplePlatform.java index 0f1db252c5..eebde008e7 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/apple/Platform.java +++ b/src/main/java/com/google/devtools/build/lib/rules/apple/ApplePlatform.java @@ -34,8 +34,7 @@ import javax.annotation.Nullable; doc = "Distinguishes between various apple platforms." ) @Immutable -public enum Platform { - +public enum ApplePlatform { IOS_DEVICE("ios_device", "iPhoneOS", PlatformType.IOS, true), IOS_SIMULATOR("ios_simulator", "iPhoneSimulator", PlatformType.IOS, false), MACOS("macos", "MacOSX", PlatformType.MACOS, true), @@ -64,7 +63,8 @@ public enum Platform { private final PlatformType platformType; private final boolean isDevice; - Platform(String skylarkKey, String nameInPlist, PlatformType platformType, boolean isDevice) { + ApplePlatform( + String skylarkKey, String nameInPlist, PlatformType platformType, boolean isDevice) { this.skylarkKey = skylarkKey; this.nameInPlist = Preconditions.checkNotNull(nameInPlist); this.platformType = platformType; @@ -114,7 +114,7 @@ public enum Platform { } @Nullable - private static Platform forTargetCpuNullable(String targetCpu) { + private static ApplePlatform forTargetCpuNullable(String targetCpu) { if (IOS_SIMULATOR_TARGET_CPUS.contains(targetCpu)) { return IOS_SIMULATOR; } else if (IOS_DEVICE_TARGET_CPUS.contains(targetCpu)) { @@ -157,18 +157,18 @@ public enum Platform { * @param arch architecture representation, such as 'arm64' * @throws IllegalArgumentException if there is no valid apple platform for the given target cpu */ - public static Platform forTarget(PlatformType platformType, String arch) { + public static ApplePlatform forTarget(PlatformType platformType, String arch) { return forTargetCpu(cpuStringForTarget(platformType, arch)); } - /** - * Returns the platform for the given target cpu. - * - * @param targetCpu cpu value with platform type prefix, such as 'ios_arm64' - * @throws IllegalArgumentException if there is no valid apple platform for the given target cpu - */ - public static Platform forTargetCpu(String targetCpu) { - Platform platform = forTargetCpuNullable(targetCpu); + /** + * Returns the platform for the given target cpu. + * + * @param targetCpu cpu value with platform type prefix, such as 'ios_arm64' + * @throws IllegalArgumentException if there is no valid apple platform for the given target cpu + */ + public static ApplePlatform forTargetCpu(String targetCpu) { + ApplePlatform platform = forTargetCpuNullable(targetCpu); if (platform != null) { return platform; } else { @@ -188,15 +188,15 @@ public enum Platform { public static SkylarkClassObject getSkylarkStruct() { ClassObjectConstructor constructor = new NativeClassObjectConstructor("platforms") { }; HashMap<String, Object> fields = new HashMap<>(); - for (Platform type : values()) { + for (ApplePlatform type : values()) { fields.put(type.skylarkKey, type); } return new SkylarkClassObject(constructor, fields); } /** - * Value used to describe Apple platform "type". A {@link Platform} is implied from a platform - * type (for example, watchOS) together with a cpu value (for example, armv7). + * Value used to describe Apple platform "type". A {@link ApplePlatform} is implied from a + * platform type (for example, watchOS) together with a cpu value (for example, armv7). */ // TODO(cparsons): Use these values in static retrieval methods in this class. @SkylarkModule( diff --git a/src/main/java/com/google/devtools/build/lib/rules/apple/AppleToolchain.java b/src/main/java/com/google/devtools/build/lib/rules/apple/AppleToolchain.java index c40bb8888c..a9c4b49233 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/apple/AppleToolchain.java +++ b/src/main/java/com/google/devtools/build/lib/rules/apple/AppleToolchain.java @@ -117,11 +117,9 @@ public class AppleToolchain { return platformDir + "/Developer/Library/Frameworks"; } - /** - * Returns the SDK frameworks directory inside of Xcode for a given configuration. - */ - public static String sdkFrameworkDir(Platform targetPlatform, - AppleConfiguration configuration) { + /** Returns the SDK frameworks directory inside of Xcode for a given configuration. */ + public static String sdkFrameworkDir( + ApplePlatform targetPlatform, AppleConfiguration configuration) { String relativePath; switch (targetPlatform) { case IOS_DEVICE: diff --git a/src/main/java/com/google/devtools/build/lib/rules/apple/cpp/AppleCcToolchain.java b/src/main/java/com/google/devtools/build/lib/rules/apple/cpp/AppleCcToolchain.java index fd679c969b..dda418e5c2 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/apple/cpp/AppleCcToolchain.java +++ b/src/main/java/com/google/devtools/build/lib/rules/apple/cpp/AppleCcToolchain.java @@ -22,8 +22,8 @@ import com.google.devtools.build.lib.analysis.RuleContext; import com.google.devtools.build.lib.collect.nestedset.NestedSet; import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; import com.google.devtools.build.lib.rules.apple.AppleConfiguration; +import com.google.devtools.build.lib.rules.apple.ApplePlatform; import com.google.devtools.build.lib.rules.apple.AppleToolchain; -import com.google.devtools.build.lib.rules.apple.Platform; import com.google.devtools.build.lib.rules.cpp.CcToolchain; import com.google.devtools.build.lib.rules.cpp.CppConfiguration; import java.util.LinkedHashMap; @@ -62,30 +62,33 @@ public class AppleCcToolchain extends CcToolchain { ruleContext.throwWithRuleError("Xcode version must be specified to use an Apple CROSSTOOL"); } - Platform platform = appleConfiguration.getSingleArchPlatform(); + ApplePlatform platform = appleConfiguration.getSingleArchPlatform(); Map<String, String> appleEnv = getEnvironmentBuildVariables(ruleContext); return ImmutableMap.<String, String>builder() .put( XCODE_VERSION_KEY, - appleConfiguration.getXcodeVersion() - .toStringWithMinimumComponents(2)) + appleConfiguration.getXcodeVersion().toStringWithMinimumComponents(2)) .put( IOS_SDK_VERSION_KEY, - appleConfiguration.getSdkVersionForPlatform(Platform.IOS_SIMULATOR) + appleConfiguration + .getSdkVersionForPlatform(ApplePlatform.IOS_SIMULATOR) .toStringWithMinimumComponents(2)) .put( MACOS_SDK_VERSION_KEY, - appleConfiguration.getSdkVersionForPlatform(Platform.MACOS) + appleConfiguration + .getSdkVersionForPlatform(ApplePlatform.MACOS) .toStringWithMinimumComponents(2)) .put( TVOS_SDK_VERSION_KEY, - appleConfiguration.getSdkVersionForPlatform(Platform.TVOS_SIMULATOR) + appleConfiguration + .getSdkVersionForPlatform(ApplePlatform.TVOS_SIMULATOR) .toStringWithMinimumComponents(2)) .put( WATCHOS_SDK_VERSION_KEY, - appleConfiguration.getSdkVersionForPlatform(Platform.WATCHOS_SIMULATOR) + appleConfiguration + .getSdkVersionForPlatform(ApplePlatform.WATCHOS_SIMULATOR) .toStringWithMinimumComponents(2)) .put(SDK_DIR_KEY, AppleToolchain.sdkDir()) .put(SDK_FRAMEWORK_DIR_KEY, AppleToolchain.sdkFrameworkDir(platform, appleConfiguration)) @@ -101,7 +104,8 @@ public class AppleCcToolchain extends CcToolchain { .put( APPLE_SDK_PLATFORM_VALUE_KEY, appleEnv.getOrDefault(AppleConfiguration.APPLE_SDK_PLATFORM_ENV_NAME, "")) - .put(VERSION_MIN_KEY, + .put( + VERSION_MIN_KEY, appleConfiguration.getMinimumOsForPlatformType(platform.getType()).toString()) .build(); } @@ -120,9 +124,10 @@ public class AppleCcToolchain extends CcToolchain { CppConfiguration cppConfiguration = ruleContext.getFragment(CppConfiguration.class); AppleConfiguration appleConfiguration = ruleContext.getFragment(AppleConfiguration.class); builder.putAll(appleConfiguration.getAppleHostSystemEnv()); - if (Platform.isApplePlatform(cppConfiguration.getTargetCpu())) { - builder.putAll(appleConfiguration.appleTargetPlatformEnv( - Platform.forTargetCpu(cppConfiguration.getTargetCpu()))); + if (ApplePlatform.isApplePlatform(cppConfiguration.getTargetCpu())) { + builder.putAll( + appleConfiguration.appleTargetPlatformEnv( + ApplePlatform.forTargetCpu(cppConfiguration.getTargetCpu()))); } return ImmutableMap.copyOf(builder); } diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcBinary.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcBinary.java index 49c4a7d18a..0afccb6eb5 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcBinary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcBinary.java @@ -38,7 +38,7 @@ import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; import com.google.devtools.build.lib.collect.nestedset.Order; import com.google.devtools.build.lib.packages.TargetUtils; import com.google.devtools.build.lib.rules.RuleConfiguredTargetFactory; -import com.google.devtools.build.lib.rules.apple.Platform; +import com.google.devtools.build.lib.rules.apple.ApplePlatform; import com.google.devtools.build.lib.rules.cpp.CcLibraryHelper.Info; import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.FeatureConfiguration; import com.google.devtools.build.lib.rules.cpp.CppConfiguration.DynamicMode; @@ -413,9 +413,9 @@ public abstract class CcBinary implements RuleConfiguredTargetFactory { sourceFileMap.put(source.getExecPath(), source); } } - + // Support test execution on darwin. - if (Platform.isApplePlatform(cppConfiguration.getTargetCpu()) + if (ApplePlatform.isApplePlatform(cppConfiguration.getTargetCpu()) && TargetUtils.isTestRule(ruleContext.getRule())) { ruleBuilder.addNativeDeclaredProvider( new ExecutionInfoProvider(ImmutableMap.of(ExecutionRequirements.REQUIRES_DARWIN, ""))); diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java index 6a130fcc8e..f2298b81a8 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java @@ -33,7 +33,7 @@ import com.google.devtools.build.lib.cmdline.PackageIdentifier; import com.google.devtools.build.lib.collect.nestedset.NestedSet; import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; import com.google.devtools.build.lib.packages.BuildType; -import com.google.devtools.build.lib.rules.apple.Platform; +import com.google.devtools.build.lib.rules.apple.ApplePlatform; import com.google.devtools.build.lib.rules.cpp.CcLibraryHelper.SourceCategory; import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.FeatureConfiguration; import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.Variables; @@ -135,7 +135,8 @@ public final class CcCommon { } } - if (Platform.isApplePlatform(cppConfiguration.getTargetCpu()) && result.contains("-static")) { + if (ApplePlatform.isApplePlatform(cppConfiguration.getTargetCpu()) + && result.contains("-static")) { ruleContext.attributeError( "linkopts", "Apple builds do not support statically linked binaries"); } diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleBinary.java b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleBinary.java index 78c29ee435..40eaeb8421 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleBinary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleBinary.java @@ -38,8 +38,8 @@ import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; import com.google.devtools.build.lib.rules.RuleConfiguredTargetFactory; import com.google.devtools.build.lib.rules.apple.AppleCommandLineOptions.AppleBitcodeMode; import com.google.devtools.build.lib.rules.apple.AppleConfiguration; -import com.google.devtools.build.lib.rules.apple.Platform; -import com.google.devtools.build.lib.rules.apple.Platform.PlatformType; +import com.google.devtools.build.lib.rules.apple.ApplePlatform; +import com.google.devtools.build.lib.rules.apple.ApplePlatform.PlatformType; import com.google.devtools.build.lib.rules.cpp.CcToolchainProvider; import com.google.devtools.build.lib.rules.objc.AppleDebugOutputsProvider.OutputType; import com.google.devtools.build.lib.rules.objc.CompilationSupport.ExtraLinkArgs; @@ -118,7 +118,7 @@ public class AppleBinary implements RuleConfiguredTargetFactory { AppleConfiguration appleConfiguration = ruleContext.getFragment(AppleConfiguration.class); - Platform platform = appleConfiguration.getMultiArchPlatform(platformType); + ApplePlatform platform = appleConfiguration.getMultiArchPlatform(platformType); ImmutableListMultimap<BuildConfiguration, ObjcProvider> configurationToNonPropagatedObjcMap = ruleContext.getPrerequisitesByConfiguration( "non_propagated_deps", Mode.SPLIT, ObjcProvider.class); diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleCrosstoolTransition.java b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleCrosstoolTransition.java index e563db5f9f..dcd78dee90 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleCrosstoolTransition.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleCrosstoolTransition.java @@ -21,7 +21,7 @@ import com.google.devtools.build.lib.analysis.config.BuildOptions; import com.google.devtools.build.lib.analysis.config.PatchTransition; import com.google.devtools.build.lib.rules.apple.AppleCommandLineOptions; import com.google.devtools.build.lib.rules.apple.AppleConfiguration; -import com.google.devtools.build.lib.rules.apple.Platform; +import com.google.devtools.build.lib.rules.apple.ApplePlatform; import com.google.devtools.build.lib.rules.cpp.CppOptions; import com.google.devtools.build.lib.rules.objc.ObjcCommandLineOptions.ObjcCrosstoolMode; @@ -53,7 +53,7 @@ public class AppleCrosstoolTransition implements PatchTransition { BuildConfiguration.Options configOptions = buildOptions.get(BuildConfiguration.Options.class); String cpu = - Platform.cpuStringForTarget( + ApplePlatform.cpuStringForTarget( appleOptions.applePlatformType, determineSingleArchitecture(appleOptions, configOptions)); setAppleCrosstoolTransitionConfiguration(buildOptions, result, cpu); diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleSkylarkCommon.java b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleSkylarkCommon.java index 987f617682..4660a63a85 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleSkylarkCommon.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleSkylarkCommon.java @@ -22,10 +22,10 @@ import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; import com.google.devtools.build.lib.collect.nestedset.Order; import com.google.devtools.build.lib.packages.ClassObjectConstructor; import com.google.devtools.build.lib.packages.SkylarkClassObject; +import com.google.devtools.build.lib.rules.apple.ApplePlatform; +import com.google.devtools.build.lib.rules.apple.ApplePlatform.PlatformType; import com.google.devtools.build.lib.rules.apple.AppleToolchain; import com.google.devtools.build.lib.rules.apple.DottedVersion; -import com.google.devtools.build.lib.rules.apple.Platform; -import com.google.devtools.build.lib.rules.apple.Platform.PlatformType; import com.google.devtools.build.lib.rules.apple.XcodeVersionProperties; import com.google.devtools.build.lib.rules.objc.ObjcProvider.Key; import com.google.devtools.build.lib.skylarkinterface.Param; @@ -112,7 +112,7 @@ public class AppleSkylarkCommon { ) public SkylarkClassObject getPlatformStruct() { if (platform == null) { - platform = Platform.getSkylarkStruct(); + platform = ApplePlatform.getSkylarkStruct(); } return platform; } diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleStaticLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleStaticLibrary.java index a231754922..2e0fa615bf 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleStaticLibrary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleStaticLibrary.java @@ -32,7 +32,7 @@ import com.google.devtools.build.lib.collect.nestedset.NestedSet; import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; import com.google.devtools.build.lib.rules.RuleConfiguredTargetFactory; import com.google.devtools.build.lib.rules.apple.AppleConfiguration; -import com.google.devtools.build.lib.rules.apple.Platform.PlatformType; +import com.google.devtools.build.lib.rules.apple.ApplePlatform.PlatformType; import com.google.devtools.build.lib.rules.cpp.CcLinkParamsProvider; import com.google.devtools.build.lib.rules.cpp.CcToolchainProvider; import com.google.devtools.build.lib.rules.cpp.CppHelper; diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleStubBinary.java b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleStubBinary.java index 537cb9e561..00c92f4cb7 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleStubBinary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleStubBinary.java @@ -35,9 +35,9 @@ import com.google.devtools.build.lib.analysis.config.BuildConfiguration; import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; import com.google.devtools.build.lib.rules.RuleConfiguredTargetFactory; import com.google.devtools.build.lib.rules.apple.AppleConfiguration; +import com.google.devtools.build.lib.rules.apple.ApplePlatform; +import com.google.devtools.build.lib.rules.apple.ApplePlatform.PlatformType; import com.google.devtools.build.lib.rules.apple.AppleToolchain; -import com.google.devtools.build.lib.rules.apple.Platform; -import com.google.devtools.build.lib.rules.apple.Platform.PlatformType; import com.google.devtools.build.lib.util.StringUtil; import com.google.devtools.build.lib.vfs.PathFragment; @@ -49,13 +49,13 @@ public class AppleStubBinary implements RuleConfiguredTargetFactory { private final RuleContext ruleContext; /** The platform used to build $(PLATFORM_DIR). */ - private final Platform platform; + private final ApplePlatform platform; /** The complete set of variables that may be used in paths. */ public static final ImmutableList<String> DEFINED_VARS = ImmutableList.of("$(SDKROOT)", "$(PLATFORM_DIR)"); - public XcenvBasedPathVariableContext(RuleContext ruleContext, Platform platform) { + public XcenvBasedPathVariableContext(RuleContext ruleContext, ApplePlatform platform) { super( ImmutableMap.<String, String>of(), ruleContext.getRule().getPackage(), @@ -109,7 +109,7 @@ public class AppleStubBinary implements RuleConfiguredTargetFactory { AppleConfiguration appleConfiguration = ruleContext.getFragment(AppleConfiguration.class); - Platform platform = appleConfiguration.getMultiArchPlatform(platformType); + ApplePlatform platform = appleConfiguration.getMultiArchPlatform(platformType); ImmutableListMultimap<BuildConfiguration, ObjcProvider> configurationToDepsMap = ruleContext.getPrerequisitesByConfiguration("deps", Mode.SPLIT, ObjcProvider.class); @@ -147,7 +147,7 @@ public class AppleStubBinary implements RuleConfiguredTargetFactory { private static void registerActions( RuleContext ruleContext, AppleConfiguration appleConfiguration, - Platform platform, + ApplePlatform platform, Artifact outputBinary) throws RuleErrorException { CustomCommandLine copyCommandLine = @@ -177,7 +177,7 @@ public class AppleStubBinary implements RuleConfiguredTargetFactory { * @throws RuleErrorException If the path string was invalid because it was not rooted at one of * the allowed environment variables or it was not normalized */ - private static String resolveXcenvBasedPath(RuleContext ruleContext, Platform platform) + private static String resolveXcenvBasedPath(RuleContext ruleContext, ApplePlatform platform) throws RuleErrorException { String pathString = ruleContext.attributes().get(AppleStubBinaryRule.XCENV_BASED_PATH_ATTR, STRING); diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/BinaryLinkingTargetFactory.java b/src/main/java/com/google/devtools/build/lib/rules/objc/BinaryLinkingTargetFactory.java index decf574cbb..ce098ad7f0 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/BinaryLinkingTargetFactory.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/BinaryLinkingTargetFactory.java @@ -31,8 +31,8 @@ import com.google.devtools.build.lib.collect.nestedset.NestedSet; import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; import com.google.devtools.build.lib.rules.RuleConfiguredTargetFactory; import com.google.devtools.build.lib.rules.apple.AppleConfiguration; -import com.google.devtools.build.lib.rules.apple.Platform; -import com.google.devtools.build.lib.rules.apple.Platform.PlatformType; +import com.google.devtools.build.lib.rules.apple.ApplePlatform; +import com.google.devtools.build.lib.rules.apple.ApplePlatform.PlatformType; import com.google.devtools.build.lib.rules.objc.CompilationSupport.ExtraLinkArgs; import com.google.devtools.build.lib.rules.objc.ObjcCommon.ResourceAttributes; import com.google.devtools.build.lib.rules.objc.ReleaseBundlingSupport.LinkedBinary; @@ -165,7 +165,8 @@ abstract class BinaryLinkingTargetFactory implements RuleConfiguredTargetFactory .validateAttributes(); xcTestAppProvider = Optional.of(releaseBundlingSupport.xcTestAppProvider()); - if (appleConfiguration.getMultiArchPlatform(PlatformType.IOS) == Platform.IOS_SIMULATOR) { + if (appleConfiguration.getMultiArchPlatform(PlatformType.IOS) + == ApplePlatform.IOS_SIMULATOR) { Artifact runnerScript = intermediateArtifacts.runnerScript(); Artifact ipaFile = ruleContext.getImplicitOutputArtifact(ReleaseBundlingSupport.IPA); releaseBundlingSupport.registerGenerateRunnerScriptAction(runnerScript, ipaFile); diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/BundleMergeControlBytes.java b/src/main/java/com/google/devtools/build/lib/rules/objc/BundleMergeControlBytes.java index 372fe5e1a8..a89cb98642 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/BundleMergeControlBytes.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/BundleMergeControlBytes.java @@ -17,12 +17,11 @@ package com.google.devtools.build.lib.rules.objc; import com.google.common.io.ByteSource; import com.google.devtools.build.lib.actions.Artifact; import com.google.devtools.build.lib.rules.apple.AppleConfiguration; -import com.google.devtools.build.lib.rules.apple.Platform.PlatformType; +import com.google.devtools.build.lib.rules.apple.ApplePlatform.PlatformType; import com.google.devtools.build.lib.util.Preconditions; import com.google.devtools.build.xcode.bundlemerge.proto.BundleMergeProtos; import com.google.devtools.build.xcode.bundlemerge.proto.BundleMergeProtos.Control; import com.google.devtools.build.xcode.bundlemerge.proto.BundleMergeProtos.MergeZip; - import java.io.InputStream; /** diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/BundleSupport.java b/src/main/java/com/google/devtools/build/lib/rules/objc/BundleSupport.java index 8311dc77f6..2708a7b2aa 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/BundleSupport.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/BundleSupport.java @@ -33,9 +33,9 @@ import com.google.devtools.build.lib.analysis.actions.CustomCommandLine; import com.google.devtools.build.lib.analysis.actions.SpawnAction; import com.google.devtools.build.lib.collect.nestedset.NestedSet; import com.google.devtools.build.lib.rules.apple.AppleConfiguration; +import com.google.devtools.build.lib.rules.apple.ApplePlatform; +import com.google.devtools.build.lib.rules.apple.ApplePlatform.PlatformType; import com.google.devtools.build.lib.rules.apple.AppleToolchain; -import com.google.devtools.build.lib.rules.apple.Platform; -import com.google.devtools.build.lib.rules.apple.Platform.PlatformType; import com.google.devtools.build.lib.vfs.FileSystemUtils; import com.google.devtools.build.lib.vfs.PathFragment; import java.util.HashMap; @@ -69,7 +69,7 @@ final class BundleSupport { // RuleErrorConsumer). private final RuleContext ruleContext; private final AppleConfiguration appleConfiguration; - private final Platform platform; + private final ApplePlatform platform; private final ExtraActoolArgs extraActoolArgs; private final Bundling bundling; private final Attributes attributes; @@ -83,8 +83,12 @@ final class BundleSupport { * @param bundling bundle information as configured for this rule * @param extraActoolArgs any additional parameters to be used for invoking {@code actool} */ - public BundleSupport(RuleContext ruleContext, AppleConfiguration appleConfiguration, - Platform platform, Bundling bundling, ExtraActoolArgs extraActoolArgs) { + public BundleSupport( + RuleContext ruleContext, + AppleConfiguration appleConfiguration, + ApplePlatform platform, + Bundling bundling, + ExtraActoolArgs extraActoolArgs) { this.ruleContext = ruleContext; this.appleConfiguration = appleConfiguration; this.platform = platform; @@ -123,11 +127,11 @@ final class BundleSupport { * @return this bundle support */ public BundleSupport validatePlatform() { - Platform platform = null; + ApplePlatform platform = null; for (String architecture : appleConfiguration.getIosMultiCpus()) { if (platform == null) { - platform = Platform.forTarget(PlatformType.IOS, architecture); - } else if (platform != Platform.forTarget(PlatformType.IOS, architecture)) { + platform = ApplePlatform.forTarget(PlatformType.IOS, architecture); + } else if (platform != ApplePlatform.forTarget(PlatformType.IOS, architecture)) { ruleContext.ruleError( String.format("In builds which require bundling, --ios_multi_cpus does not currently " + "allow values for both simulator and device builds. Flag was %s", diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java b/src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java index 89803bdfdd..5945dbc413 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java @@ -66,9 +66,9 @@ import com.google.devtools.build.lib.packages.BuildType; import com.google.devtools.build.lib.packages.ImplicitOutputsFunction.SafeImplicitOutputsFunction; import com.google.devtools.build.lib.packages.RuleClass.ConfiguredTargetFactory.RuleErrorException; import com.google.devtools.build.lib.rules.apple.AppleConfiguration; +import com.google.devtools.build.lib.rules.apple.ApplePlatform; +import com.google.devtools.build.lib.rules.apple.ApplePlatform.PlatformType; import com.google.devtools.build.lib.rules.apple.AppleToolchain; -import com.google.devtools.build.lib.rules.apple.Platform; -import com.google.devtools.build.lib.rules.apple.Platform.PlatformType; import com.google.devtools.build.lib.rules.cpp.CcToolchain; import com.google.devtools.build.lib.rules.cpp.CcToolchainProvider; import com.google.devtools.build.lib.rules.cpp.CppFileTypes; @@ -271,7 +271,7 @@ public abstract class CompilationSupport { /** Returns a list of frameworks for clang actions. */ static Iterable<String> commonFrameworkNames( ObjcProvider provider, AppleConfiguration appleConfiguration) { - Platform platform = appleConfiguration.getSingleArchPlatform(); + ApplePlatform platform = appleConfiguration.getSingleArchPlatform(); ImmutableList.Builder<String> frameworkNames = new ImmutableList.Builder<String>() diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/IosApplication.java b/src/main/java/com/google/devtools/build/lib/rules/objc/IosApplication.java index f46aee827e..4af8cee48d 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/IosApplication.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/IosApplication.java @@ -23,8 +23,8 @@ import com.google.devtools.build.lib.analysis.RuleContext; import com.google.devtools.build.lib.analysis.config.BuildOptions; import com.google.devtools.build.lib.packages.Attribute.SplitTransition; import com.google.devtools.build.lib.rules.apple.AppleConfiguration; -import com.google.devtools.build.lib.rules.apple.Platform; -import com.google.devtools.build.lib.rules.apple.Platform.PlatformType; +import com.google.devtools.build.lib.rules.apple.ApplePlatform; +import com.google.devtools.build.lib.rules.apple.ApplePlatform.PlatformType; import com.google.devtools.build.lib.rules.objc.ObjcProvider.Flag; import com.google.devtools.build.lib.rules.objc.ReleaseBundlingSupport.SplitArchTransition; @@ -81,7 +81,7 @@ public class IosApplication extends ReleaseBundlingTargetFactory { ReleaseBundlingSupport releaseBundlingSupport) throws InterruptedException { // If this is an application built for the simulator, make it runnable. AppleConfiguration appleConfiguration = ruleContext.getFragment(AppleConfiguration.class); - if (appleConfiguration.getMultiArchPlatform(PlatformType.IOS) == Platform.IOS_SIMULATOR) { + if (appleConfiguration.getMultiArchPlatform(PlatformType.IOS) == ApplePlatform.IOS_SIMULATOR) { Artifact runnerScript = ObjcRuleClasses.intermediateArtifacts(ruleContext).runnerScript(); Artifact ipaFile = ruleContext.getImplicitOutputArtifact(ReleaseBundlingSupport.IPA); releaseBundlingSupport.registerGenerateRunnerScriptAction(runnerScript, ipaFile); diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/IosDevice.java b/src/main/java/com/google/devtools/build/lib/rules/objc/IosDevice.java index 3d17996932..3228825ce1 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/IosDevice.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/IosDevice.java @@ -22,11 +22,10 @@ import com.google.devtools.build.lib.analysis.RuleConfiguredTarget.Mode; import com.google.devtools.build.lib.analysis.RuleConfiguredTargetBuilder; import com.google.devtools.build.lib.analysis.RuleContext; import com.google.devtools.build.lib.analysis.RunfilesProvider; -import com.google.devtools.build.lib.packages.RuleClass.ConfiguredTargetFactory.RuleErrorException; import com.google.devtools.build.lib.rules.RuleConfiguredTargetFactory; import com.google.devtools.build.lib.rules.apple.AppleConfiguration; +import com.google.devtools.build.lib.rules.apple.ApplePlatform; import com.google.devtools.build.lib.rules.apple.DottedVersion; -import com.google.devtools.build.lib.rules.apple.Platform; import com.google.devtools.build.lib.rules.apple.XcodeVersionProperties; /** @@ -63,7 +62,7 @@ public final class IosDevice implements RuleConfiguredTargetFactory { } else if (xcodeVersionProperties != null) { iosVersion = xcodeVersionProperties.getDefaultIosSdkVersion(); } else { - iosVersion = appleConfiguration.getSdkVersionForPlatform(Platform.IOS_SIMULATOR); + iosVersion = appleConfiguration.getSdkVersionForPlatform(ApplePlatform.IOS_SIMULATOR); } IosDeviceProvider provider = diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/IosExtension.java b/src/main/java/com/google/devtools/build/lib/rules/objc/IosExtension.java index c8d74f9b21..897deace6a 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/IosExtension.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/IosExtension.java @@ -27,8 +27,8 @@ import com.google.devtools.build.lib.packages.Attribute.SplitTransition; import com.google.devtools.build.lib.rules.apple.AppleCommandLineOptions; import com.google.devtools.build.lib.rules.apple.AppleConfiguration; import com.google.devtools.build.lib.rules.apple.AppleConfiguration.ConfigurationDistinguisher; +import com.google.devtools.build.lib.rules.apple.ApplePlatform.PlatformType; import com.google.devtools.build.lib.rules.apple.DottedVersion; -import com.google.devtools.build.lib.rules.apple.Platform.PlatformType; import com.google.devtools.build.lib.rules.objc.ReleaseBundlingSupport.SplitArchTransition; import java.io.Serializable; import javax.annotation.Nullable; diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/IosTest.java b/src/main/java/com/google/devtools/build/lib/rules/objc/IosTest.java index e21a117d57..2c9b337c4e 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/IosTest.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/IosTest.java @@ -34,7 +34,7 @@ import com.google.devtools.build.lib.collect.nestedset.NestedSet; import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; import com.google.devtools.build.lib.rules.RuleConfiguredTargetFactory; import com.google.devtools.build.lib.rules.apple.AppleConfiguration; -import com.google.devtools.build.lib.rules.apple.Platform.PlatformType; +import com.google.devtools.build.lib.rules.apple.ApplePlatform.PlatformType; import com.google.devtools.build.lib.rules.objc.CompilationSupport.ExtraLinkArgs; import com.google.devtools.build.lib.rules.objc.ObjcCommon.ResourceAttributes; import com.google.devtools.build.lib.rules.objc.ReleaseBundlingSupport.LinkedBinary; diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/LegacyCompilationSupport.java b/src/main/java/com/google/devtools/build/lib/rules/objc/LegacyCompilationSupport.java index 25910d43c5..9a8abaff11 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/LegacyCompilationSupport.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/LegacyCompilationSupport.java @@ -59,9 +59,9 @@ import com.google.devtools.build.lib.collect.nestedset.Order; import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; import com.google.devtools.build.lib.rules.apple.AppleCommandLineOptions.AppleBitcodeMode; import com.google.devtools.build.lib.rules.apple.AppleConfiguration; +import com.google.devtools.build.lib.rules.apple.ApplePlatform; import com.google.devtools.build.lib.rules.apple.AppleToolchain; import com.google.devtools.build.lib.rules.apple.DottedVersion; -import com.google.devtools.build.lib.rules.apple.Platform; import com.google.devtools.build.lib.rules.cpp.CcToolchainProvider; import com.google.devtools.build.lib.rules.cpp.CppCompileAction.DotdFile; import com.google.devtools.build.lib.rules.cpp.CppModuleMap; @@ -466,7 +466,7 @@ public class LegacyCompilationSupport extends CompilationSupport { /* isCPlusPlusSource=*/ false); AppleConfiguration appleConfiguration = ruleContext.getFragment(AppleConfiguration.class); - Platform platform = appleConfiguration.getSingleArchPlatform(); + ApplePlatform platform = appleConfiguration.getSingleArchPlatform(); NestedSet<Artifact> moduleMapInputs = NestedSetBuilder.emptySet(Order.STABLE_ORDER); if (objcConfiguration.moduleMapsEnabled()) { @@ -803,7 +803,7 @@ public class LegacyCompilationSupport extends CompilationSupport { ObjcProvider provider, ObjcConfiguration objcConfiguration, AppleConfiguration appleConfiguration) { ImmutableList.Builder<String> builder = new ImmutableList.Builder<>(); - Platform platform = appleConfiguration.getSingleArchPlatform(); + ApplePlatform platform = appleConfiguration.getSingleArchPlatform(); String minOSVersionArg; switch (platform) { case IOS_SIMULATOR: diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/LipoSupport.java b/src/main/java/com/google/devtools/build/lib/rules/objc/LipoSupport.java index cb0fb14a5f..41487ecc43 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/LipoSupport.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/LipoSupport.java @@ -21,7 +21,7 @@ import com.google.devtools.build.lib.analysis.actions.CustomCommandLine; import com.google.devtools.build.lib.analysis.actions.SymlinkAction; import com.google.devtools.build.lib.collect.nestedset.NestedSet; import com.google.devtools.build.lib.rules.apple.AppleConfiguration; -import com.google.devtools.build.lib.rules.apple.Platform; +import com.google.devtools.build.lib.rules.apple.ApplePlatform; /** * Support for registering actions using the Apple tool "lipo", which combines artifacts of @@ -43,8 +43,8 @@ public class LipoSupport { * * @return this object */ - public LipoSupport registerCombineArchitecturesAction(NestedSet<Artifact> inputBinaries, - Artifact outputBinary, Platform platform) { + public LipoSupport registerCombineArchitecturesAction( + NestedSet<Artifact> inputBinaries, Artifact outputBinary, ApplePlatform platform) { if (inputBinaries.toList().size() > 1) { ruleContext.registerAction(ObjcRuleClasses.spawnAppleEnvActionBuilder( ruleContext.getFragment(AppleConfiguration.class), platform) diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/MultiArchBinarySupport.java b/src/main/java/com/google/devtools/build/lib/rules/objc/MultiArchBinarySupport.java index 1b3d53f89e..9305e8e64d 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/MultiArchBinarySupport.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/MultiArchBinarySupport.java @@ -29,7 +29,7 @@ import com.google.devtools.build.lib.analysis.config.BuildConfiguration; import com.google.devtools.build.lib.collect.nestedset.NestedSet; import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; import com.google.devtools.build.lib.packages.RuleClass.ConfiguredTargetFactory.RuleErrorException; -import com.google.devtools.build.lib.rules.apple.Platform; +import com.google.devtools.build.lib.rules.apple.ApplePlatform; import com.google.devtools.build.lib.rules.cpp.CcLinkParamsProvider; import com.google.devtools.build.lib.rules.cpp.CcToolchainProvider; import com.google.devtools.build.lib.rules.objc.CompilationSupport.ExtraLinkArgs; @@ -129,7 +129,7 @@ public class MultiArchBinarySupport { * @throws RuleErrorException if there are attribute errors in the current rule context */ public void registerActions( - Platform platform, + ApplePlatform platform, ExtraLinkArgs extraLinkArgs, Set<DependencySpecificConfiguration> dependencySpecificConfigurations, Iterable<Artifact> extraLinkInputs, diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/MultiArchSplitTransitionProvider.java b/src/main/java/com/google/devtools/build/lib/rules/objc/MultiArchSplitTransitionProvider.java index 732f7bb3c5..5e36fdef53 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/MultiArchSplitTransitionProvider.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/MultiArchSplitTransitionProvider.java @@ -32,9 +32,9 @@ import com.google.devtools.build.lib.packages.RuleClass.ConfiguredTargetFactory. import com.google.devtools.build.lib.rules.apple.AppleCommandLineOptions; import com.google.devtools.build.lib.rules.apple.AppleConfiguration; import com.google.devtools.build.lib.rules.apple.AppleConfiguration.ConfigurationDistinguisher; +import com.google.devtools.build.lib.rules.apple.ApplePlatform; +import com.google.devtools.build.lib.rules.apple.ApplePlatform.PlatformType; import com.google.devtools.build.lib.rules.apple.DottedVersion; -import com.google.devtools.build.lib.rules.apple.Platform; -import com.google.devtools.build.lib.rules.apple.Platform.PlatformType; import com.google.devtools.build.lib.rules.objc.ObjcRuleClasses.PlatformRule; import java.util.List; @@ -229,7 +229,7 @@ public class MultiArchSplitTransitionProvider implements SplitTransitionProvider // This helps users of the iOS rules who do not depend on CC rules as these CPU values // require additional flags to work (e.g. a custom crosstool) which now only need to be // set if this feature is explicitly requested. - String platformCpu = Platform.cpuStringForTarget(platformType, cpu); + String platformCpu = ApplePlatform.cpuStringForTarget(platformType, cpu); AppleCrosstoolTransition.setAppleCrosstoolTransitionConfiguration(buildOptions, splitOptions, platformCpu); } diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcBundleLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcBundleLibrary.java index 595efaea24..4d538ce395 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcBundleLibrary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcBundleLibrary.java @@ -25,7 +25,7 @@ import com.google.devtools.build.lib.analysis.RuleContext; import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; import com.google.devtools.build.lib.rules.RuleConfiguredTargetFactory; import com.google.devtools.build.lib.rules.apple.AppleConfiguration; -import com.google.devtools.build.lib.rules.apple.Platform.PlatformType; +import com.google.devtools.build.lib.rules.apple.ApplePlatform.PlatformType; import com.google.devtools.build.lib.rules.objc.BundleSupport.ExtraActoolArgs; import com.google.devtools.build.lib.rules.objc.ObjcCommon.ResourceAttributes; import com.google.devtools.build.lib.rules.objc.TargetDeviceFamily.InvalidFamilyNameException; @@ -54,7 +54,7 @@ public class ObjcBundleLibrary implements RuleConfiguredTargetFactory { AppleConfiguration appleConfiguration = ruleContext.getFragment(AppleConfiguration.class); - // Platform is purposefully not validated on this BundleSupport. Multi-arch validation and + // ApplePlatform is purposefully not validated on this BundleSupport. Multi-arch validation and // resource de-duplication should only take place at the level of the bundling rule. new BundleSupport( ruleContext, diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCompileAction.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCompileAction.java index f04dc7542d..975377a96c 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCompileAction.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCompileAction.java @@ -43,7 +43,7 @@ import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadCompatible; import com.google.devtools.build.lib.profiler.Profiler; import com.google.devtools.build.lib.profiler.ProfilerTask; import com.google.devtools.build.lib.rules.apple.AppleConfiguration; -import com.google.devtools.build.lib.rules.apple.Platform; +import com.google.devtools.build.lib.rules.apple.ApplePlatform; import com.google.devtools.build.lib.rules.cpp.CppCompileAction.DotdFile; import com.google.devtools.build.lib.rules.cpp.CppFileTypes; import com.google.devtools.build.lib.rules.cpp.HeaderDiscovery; @@ -337,7 +337,7 @@ public class ObjcCompileAction extends SpawnAction { * needed by the apple toolchain. */ public static ObjcCompileAction.Builder createObjcCompileActionBuilderWithAppleEnv( - AppleConfiguration appleConfiguration, Platform targetPlatform) { + AppleConfiguration appleConfiguration, ApplePlatform targetPlatform) { return (Builder) new ObjcCompileAction.Builder() .setExecutionInfo(ObjcRuleClasses.darwinActionExecutionRequirement()) diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcConfiguration.java index bd67eff739..d3434ae5b7 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcConfiguration.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcConfiguration.java @@ -21,8 +21,8 @@ import com.google.devtools.build.lib.analysis.config.BuildConfiguration; import com.google.devtools.build.lib.analysis.config.CompilationMode; import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; +import com.google.devtools.build.lib.rules.apple.ApplePlatform.PlatformType; import com.google.devtools.build.lib.rules.apple.DottedVersion; -import com.google.devtools.build.lib.rules.apple.Platform.PlatformType; import com.google.devtools.build.lib.rules.cpp.HeaderDiscovery; import com.google.devtools.build.lib.rules.objc.ObjcCommandLineOptions.ObjcCrosstoolMode; import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable; @@ -150,8 +150,8 @@ public class ObjcConfiguration extends BuildConfiguration.Fragment { case WATCHOS: return watchosSimulatorDevice; default: - throw new IllegalArgumentException("Platform type " + platformType + " does not support " - + "simulators."); + throw new IllegalArgumentException( + "ApplePlatform type " + platformType + " does not support " + "simulators."); } } @@ -167,8 +167,8 @@ public class ObjcConfiguration extends BuildConfiguration.Fragment { case WATCHOS: return watchosSimulatorVersion; default: - throw new IllegalArgumentException("Platform type " + platformType + " does not support " - + "simulators."); + throw new IllegalArgumentException( + "ApplePlatform type " + platformType + " does not support " + "simulators."); } } diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcRuleClasses.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcRuleClasses.java index 36bcba6f3c..453776db23 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcRuleClasses.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcRuleClasses.java @@ -52,10 +52,10 @@ import com.google.devtools.build.lib.packages.RuleClass.Builder; import com.google.devtools.build.lib.packages.RuleClass.Builder.RuleClassType; import com.google.devtools.build.lib.packages.SkylarkProviderIdentifier; import com.google.devtools.build.lib.rules.apple.AppleConfiguration; +import com.google.devtools.build.lib.rules.apple.ApplePlatform; +import com.google.devtools.build.lib.rules.apple.ApplePlatform.PlatformType; import com.google.devtools.build.lib.rules.apple.AppleToolchain; import com.google.devtools.build.lib.rules.apple.AppleToolchain.RequiresXcodeConfigRule; -import com.google.devtools.build.lib.rules.apple.Platform; -import com.google.devtools.build.lib.rules.apple.Platform.PlatformType; import com.google.devtools.build.lib.rules.cpp.CcToolchain; import com.google.devtools.build.lib.rules.cpp.CppConfiguration; import com.google.devtools.build.lib.rules.cpp.CppModuleMap.UmbrellaHeaderStrategy; @@ -191,17 +191,15 @@ public class ObjcRuleClasses { * order to run, require both a darwin architecture and a collection of environment variables * which contain information about the target and host architectures. */ - static SpawnAction.Builder spawnAppleEnvActionBuilder(AppleConfiguration appleConfiguration, - Platform targetPlatform) { + static SpawnAction.Builder spawnAppleEnvActionBuilder( + AppleConfiguration appleConfiguration, ApplePlatform targetPlatform) { return spawnOnDarwinActionBuilder() .setEnvironment(appleToolchainEnvironment(appleConfiguration, targetPlatform)); } - /** - * Returns apple environment variables that are typically needed by the apple toolchain. - */ + /** Returns apple environment variables that are typically needed by the apple toolchain. */ static ImmutableMap<String, String> appleToolchainEnvironment( - AppleConfiguration appleConfiguration, Platform targetPlatform) { + AppleConfiguration appleConfiguration, ApplePlatform targetPlatform) { return ImmutableMap.<String, String>builder() .putAll(appleConfiguration.getTargetAppleEnvironment(targetPlatform)) .putAll(appleConfiguration.getAppleHostSystemEnv()) @@ -1144,41 +1142,41 @@ public class ObjcRuleClasses { public RuleClass build(Builder builder, RuleDefinitionEnvironment env) { return builder /* <!-- #BLAZE_RULE($objc_release_bundling_rule).ATTRIBUTE(entitlements) --> - The entitlements file required for device builds of this application. - - See - <a href="https://developer.apple.com/library/mac/documentation/Miscellaneous/Reference/EntitlementKeyReference/Chapters/AboutEntitlements.html">the apple documentation</a> - for more information. If absent, the default entitlements from the - provisioning profile will be used. - <p> - The following variables are substituted: <code>$(CFBundleIdentifier)</code> with the - bundle id and <code>$(AppIdentifierPrefix)</code> with the value of the - <code>ApplicationIdentifierPrefix</code> key from this target's provisioning profile (or - the default provisioning profile, if none is specified). - <p> - Bazel does not currently support adding entitlements to simulator builds. This - means that if you rely on behavior which must be specified in entitlements (like App - Groups) it will only work on a device. You can work around this by inlining the - entitlements into your binary. e.g. - <pre><code> - #if TARGET_OS_SIMULATOR - __asm(".section __TEXT,__entitlements"); - __asm(".ascii \"" - "<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?>\n" - "<!DOCTYPE plist PUBLIC \\\"-//Apple//DTD PLIST 1.0//EN\\\" " - "\\\"http://www.apple.com/DTDs/PropertyList-1.0.dtd\\\">" - "<plist version=\\\"1.0\\\">" - "<dict>" - "<key>com.apple.security.application-groups</key>" - "<array>" - "<string>group.com.your.company</string>" - "</array>" - "</dict>" - "</plist>" - "\" - #endif - </code></pre> - <!-- #END_BLAZE_RULE.ATTRIBUTE -->*/ + The entitlements file required for device builds of this application. + + See + <a href="https://developer.apple.com/library/mac/documentation/Miscellaneous/Reference/EntitlementKeyReference/Chapters/AboutEntitlements.html">the apple documentation</a> + for more information. If absent, the default entitlements from the + provisioning profile will be used. + <p> + The following variables are substituted: <code>$(CFBundleIdentifier)</code> with the + bundle id and <code>$(AppIdentifierPrefix)</code> with the value of the + <code>ApplicationIdentifierPrefix</code> key from this target's provisioning profile (or + the default provisioning profile, if none is specified). + <p> + Bazel does not currently support adding entitlements to simulator builds. This + means that if you rely on behavior which must be specified in entitlements (like App + Groups) it will only work on a device. You can work around this by inlining the + entitlements into your binary. e.g. + <pre><code> + #if TARGET_OS_SIMULATOR + __asm(".section __TEXT,__entitlements"); + __asm(".ascii \"" + "<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?>\n" + "<!DOCTYPE plist PUBLIC \\\"-//Apple//DTD PLIST 1.0//EN\\\" " + "\\\"http://www.apple.com/DTDs/PropertyList-1.0.dtd\\\">" + "<plist version=\\\"1.0\\\">" + "<dict>" + "<key>com.apple.security.application-groups</key>" + "<array>" + "<string>group.com.your.company</string>" + "</array>" + "</dict>" + "</plist>" + "\" + #endif + </code></pre> + <!-- #END_BLAZE_RULE.ATTRIBUTE -->*/ .add(attr(ENTITLEMENTS_ATTR, LABEL).allowedFileTypes(ENTITLEMENTS_TYPE)) .add( attr(EXTRA_ENTITLEMENTS_ATTR, LABEL) @@ -1223,7 +1221,7 @@ public class ObjcRuleClasses { AppleConfiguration appleConfiguration = configuration.getFragment(AppleConfiguration.class); if (appleConfiguration.getMultiArchPlatform(PlatformType.IOS) - != Platform.IOS_DEVICE) { + != ApplePlatform.IOS_DEVICE) { return null; } if (rule.isAttributeValueExplicitlySpecified(PROVISIONING_PROFILE_ATTR)) { @@ -1469,8 +1467,7 @@ public class ObjcRuleClasses { <a href="https://developer.apple.com/library/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html">their definitions in Apple's documentation</a>: $(AppIdentifierPrefix) and $(CFBundleIdentifier). <!-- #END_BLAZE_RULE.ATTRIBUTE -->*/ - .add(attr(WATCH_EXT_ENTITLEMENTS_ATTR, LABEL) - .allowedFileTypes(ENTITLEMENTS_TYPE)) + .add(attr(WATCH_EXT_ENTITLEMENTS_ATTR, LABEL).allowedFileTypes(ENTITLEMENTS_TYPE)) /* <!-- #BLAZE_RULE($watch_extension_bundle_rule).ATTRIBUTE(ext_infoplists) --> Infoplist files to be merged. The merged output corresponds to <i>appname</i>-Info.plist in Xcode projects. Duplicate keys between infoplist files will cause an error if @@ -1504,12 +1501,12 @@ public class ObjcRuleClasses { .value( new LateBoundLabel<BuildConfiguration>(ObjcConfiguration.class) { @Override - public Label resolve(Rule rule, AttributeMap attributes, - BuildConfiguration configuration) { + public Label resolve( + Rule rule, AttributeMap attributes, BuildConfiguration configuration) { AppleConfiguration appleConfiguration = configuration.getFragment(AppleConfiguration.class); if (appleConfiguration.getMultiArchPlatform(PlatformType.IOS) - != Platform.IOS_DEVICE) { + != ApplePlatform.IOS_DEVICE) { return null; } if (rule.isAttributeValueExplicitlySpecified( @@ -1529,8 +1526,10 @@ public class ObjcRuleClasses { directory called *.lproj), they will be placed in a directory of the same name in the app bundle. <!-- #END_BLAZE_RULE.ATTRIBUTE -->*/ - .add(attr(WATCH_EXT_RESOURCES_ATTR, LABEL_LIST).legacyAllowAnyFileType() - .direct_compile_time_input()) + .add( + attr(WATCH_EXT_RESOURCES_ATTR, LABEL_LIST) + .legacyAllowAnyFileType() + .direct_compile_time_input()) /* <!-- #BLAZE_RULE($watch_extension_bundle_rule).ATTRIBUTE(ext_structured_resources)--> Files to include in the final watch extension bundle. @@ -1545,9 +1544,10 @@ public class ObjcRuleClasses { specifying <code>["res/foo.png"]</code> will lead to the inclusion of all files in directory <code>res</code>. <!-- #END_BLAZE_RULE.ATTRIBUTE -->*/ - .add(attr(WATCH_EXT_STRUCTURED_RESOURCES_ATTR, LABEL_LIST) - .legacyAllowAnyFileType() - .direct_compile_time_input()) + .add( + attr(WATCH_EXT_STRUCTURED_RESOURCES_ATTR, LABEL_LIST) + .legacyAllowAnyFileType() + .direct_compile_time_input()) /* <!-- #BLAZE_RULE($watch_extension_bundle_rule).ATTRIBUTE(ext_strings) --> Files which are plists of strings, often localizable to be added to watch extension. @@ -1557,10 +1557,11 @@ public class ObjcRuleClasses { Base.lproj), it will be placed under a directory of that name in the final bundle. This allows for localizable strings. <!-- #END_BLAZE_RULE.ATTRIBUTE -->*/ - .add(attr(WATCH_EXT_STRINGS_ATTR, LABEL_LIST) - .allowedFileTypes(STRINGS_TYPE) - .direct_compile_time_input()) - .build(); + .add( + attr(WATCH_EXT_STRINGS_ATTR, LABEL_LIST) + .allowedFileTypes(STRINGS_TYPE) + .direct_compile_time_input()) + .build(); } @Override @@ -1625,8 +1626,7 @@ public class ObjcRuleClasses { <a href="https://developer.apple.com/library/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html">their definitions in Apple's documentation</a>: $(AppIdentifierPrefix) and $(CFBundleIdentifier). <!-- #END_BLAZE_RULE.ATTRIBUTE -->*/ - .add(attr(WATCH_APP_ENTITLEMENTS_ATTR, LABEL) - .allowedFileTypes(ENTITLEMENTS_TYPE)) + .add(attr(WATCH_APP_ENTITLEMENTS_ATTR, LABEL).allowedFileTypes(ENTITLEMENTS_TYPE)) /* <!-- #BLAZE_RULE($watch_application_bundle_rule).ATTRIBUTE(app_asset_catalogs) --> Files that comprise the asset catalogs of the final linked binary. @@ -1635,8 +1635,10 @@ public class ObjcRuleClasses { linked with any binary that depends directly or indirectly on this target. <!-- #END_BLAZE_RULE.ATTRIBUTE -->*/ - .add(attr(WATCH_APP_ASSET_CATALOGS_ATTR, LABEL_LIST).legacyAllowAnyFileType() - .direct_compile_time_input()) + .add( + attr(WATCH_APP_ASSET_CATALOGS_ATTR, LABEL_LIST) + .legacyAllowAnyFileType() + .direct_compile_time_input()) /* <!-- #BLAZE_RULE($watch_application_bundle_rule).ATTRIBUTE(app_bundle_id) --> The bundle ID (reverse-DNS path followed by app name) of the watch application binary. @@ -1688,12 +1690,12 @@ public class ObjcRuleClasses { .value( new LateBoundLabel<BuildConfiguration>(ObjcConfiguration.class) { @Override - public Label resolve(Rule rule, AttributeMap attributes, - BuildConfiguration configuration) { + public Label resolve( + Rule rule, AttributeMap attributes, BuildConfiguration configuration) { AppleConfiguration appleConfiguration = configuration.getFragment(AppleConfiguration.class); if (appleConfiguration.getMultiArchPlatform(PlatformType.IOS) - != Platform.IOS_DEVICE) { + != ApplePlatform.IOS_DEVICE) { return null; } if (rule.isAttributeValueExplicitlySpecified( @@ -1709,8 +1711,7 @@ public class ObjcRuleClasses { These files are compiled and placed in the bundle root of the final package. <!-- #END_BLAZE_RULE.ATTRIBUTE -->*/ - .add(attr(WATCH_APP_STORYBOARDS_ATTR, LABEL_LIST) - .allowedFileTypes(STORYBOARD_TYPE)) + .add(attr(WATCH_APP_STORYBOARDS_ATTR, LABEL_LIST).allowedFileTypes(STORYBOARD_TYPE)) /* <!-- #BLAZE_RULE($watch_application_bundle_rule).ATTRIBUTE(app_resources) --> Files to include in the final watch application bundle. @@ -1721,8 +1722,10 @@ public class ObjcRuleClasses { directory called *.lproj), they will be placed in a directory of the same name in the app bundle. <!-- #END_BLAZE_RULE.ATTRIBUTE -->*/ - .add(attr(WATCH_APP_RESOURCES_ATTR, LABEL_LIST).legacyAllowAnyFileType() - .direct_compile_time_input()) + .add( + attr(WATCH_APP_RESOURCES_ATTR, LABEL_LIST) + .legacyAllowAnyFileType() + .direct_compile_time_input()) /* <!-- #BLAZE_RULE($watch_application_bundle_rule).ATTRIBUTE(app_structured_resources)--> Files to include in the final watch application bundle. @@ -1737,9 +1740,10 @@ public class ObjcRuleClasses { specifying <code>["res/foo.png"]</code> will lead to the inclusion of all files in directory <code>res</code>. <!-- #END_BLAZE_RULE.ATTRIBUTE -->*/ - .add(attr(WATCH_APP_STRUCTURED_RESOURCES_ATTR, LABEL_LIST) - .legacyAllowAnyFileType() - .direct_compile_time_input()) + .add( + attr(WATCH_APP_STRUCTURED_RESOURCES_ATTR, LABEL_LIST) + .legacyAllowAnyFileType() + .direct_compile_time_input()) /* <!-- #BLAZE_RULE($watch_application_bundle_rule).ATTRIBUTE(app_strings) --> Files which are plists of strings, often localizable to be added to watch application. @@ -1749,9 +1753,10 @@ public class ObjcRuleClasses { Base.lproj), it will be placed under a directory of that name in the final bundle. This allows for localizable strings. <!-- #END_BLAZE_RULE.ATTRIBUTE -->*/ - .add(attr(WATCH_APP_STRINGS_ATTR, LABEL_LIST) - .allowedFileTypes(STRINGS_TYPE) - .direct_compile_time_input()) + .add( + attr(WATCH_APP_STRINGS_ATTR, LABEL_LIST) + .allowedFileTypes(STRINGS_TYPE) + .direct_compile_time_input()) .build(); } @Override diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ReleaseBundlingSupport.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ReleaseBundlingSupport.java index 468ac7528b..75c4b717d6 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/ReleaseBundlingSupport.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ReleaseBundlingSupport.java @@ -55,9 +55,9 @@ import com.google.devtools.build.lib.packages.ImplicitOutputsFunction.SafeImplic import com.google.devtools.build.lib.rules.apple.AppleCommandLineOptions; import com.google.devtools.build.lib.rules.apple.AppleConfiguration; import com.google.devtools.build.lib.rules.apple.AppleConfiguration.ConfigurationDistinguisher; +import com.google.devtools.build.lib.rules.apple.ApplePlatform; +import com.google.devtools.build.lib.rules.apple.ApplePlatform.PlatformType; import com.google.devtools.build.lib.rules.apple.DottedVersion; -import com.google.devtools.build.lib.rules.apple.Platform; -import com.google.devtools.build.lib.rules.apple.Platform.PlatformType; import com.google.devtools.build.lib.rules.objc.BundleSupport.ExtraActoolArgs; import com.google.devtools.build.lib.rules.objc.Bundling.Builder; import com.google.devtools.build.lib.shell.ShellUtils; @@ -123,7 +123,7 @@ public final class ReleaseBundlingSupport { private final LinkedBinary linkedBinary; private final IntermediateArtifacts intermediateArtifacts; private final ReleaseBundling releaseBundling; - private final Platform platform; + private final ApplePlatform platform; /** * Indicator as to whether this rule generates a binary directly or whether only dependencies @@ -147,17 +147,17 @@ public final class ReleaseBundlingSupport { * * @param ruleContext context for the application-generating rule * @param objcProvider provider containing all dependencies' information as well as some of this - * rule's + * rule's * @param linkedBinary whether to look for a linked binary from this rule and dependencies or just - * the latter + * the latter * @param bundleDirFormat format string representing the bundle's directory with a single - * placeholder for the target name (e.g. {@code "Payload/%s.app"}) + * placeholder for the target name (e.g. {@code "Payload/%s.app"}) * @param bundleName name of the bundle, used with bundleDirFormat * @param bundleMinimumOsVersion the minimum OS version this bundle's plist should be generated - * for (<b>not</b> the minimum OS version its binary is compiled with, that needs to be set - * through the configuration) + * for (<b>not</b> the minimum OS version its binary is compiled with, that needs to be set + * through the configuration) * @param releaseBundling the {@link ReleaseBundling} containing information for creating a - * releaseable bundle. + * releaseable bundle. * @param platform the platform that bundles will be created for using this support */ ReleaseBundlingSupport( @@ -168,7 +168,7 @@ public final class ReleaseBundlingSupport { String bundleName, DottedVersion bundleMinimumOsVersion, ReleaseBundling releaseBundling, - Platform platform) { + ApplePlatform platform) { this.platform = platform; this.linkedBinary = linkedBinary; this.attributes = new Attributes(ruleContext); @@ -189,11 +189,11 @@ public final class ReleaseBundlingSupport { * * @param ruleContext context for the application-generating rule * @param objcProvider provider containing all dependencies' information as well as some of this - * rule's + * rule's * @param linkedBinary whether to look for a linked binary from this rule and dependencies or just - * the latter + * the latter * @param bundleDirFormat format string representing the bundle's directory with a single - * placeholder for the target name (e.g. {@code "Payload/%s.app"}) + * placeholder for the target name (e.g. {@code "Payload/%s.app"}) * @param bundleName name of the bundle, used with bundleDirFormat * @param platform the platform that bundles will be created for using this support */ @@ -204,7 +204,8 @@ public final class ReleaseBundlingSupport { String bundleDirFormat, String bundleName, DottedVersion bundleMinimumOsVersion, - Platform platform) throws InterruptedException { + ApplePlatform platform) + throws InterruptedException { this( ruleContext, objcProvider, @@ -219,18 +220,18 @@ public final class ReleaseBundlingSupport { /** * Creates a new application support within the given rule context. * - * {@code bundleName} defaults to label name + * <p>{@code bundleName} defaults to label name * * @param ruleContext context for the application-generating rule * @param objcProvider provider containing all dependencies' information as well as some of this - * rule's + * rule's * @param linkedBinary whether to look for a linked binary from this rule and dependencies or just - * the latter + * the latter * @param bundleDirFormat format string representing the bundle's directory with a single - * placeholder for the target name (e.g. {@code "Payload/%s.app"}) + * placeholder for the target name (e.g. {@code "Payload/%s.app"}) * @param bundleMinimumOsVersion the minimum OS version this bundle's plist should be generated - * for (<b>not</b> the minimum OS version its binary is compiled with, that needs to be set - * through the configuration) + * for (<b>not</b> the minimum OS version its binary is compiled with, that needs to be set + * through the configuration) * @param platform the platform that bundles will be created for using this support * @throws InterruptedException */ @@ -240,7 +241,8 @@ public final class ReleaseBundlingSupport { LinkedBinary linkedBinary, String bundleDirFormat, DottedVersion bundleMinimumOsVersion, - Platform platform) throws InterruptedException { + ApplePlatform platform) + throws InterruptedException { this(ruleContext, objcProvider, linkedBinary, bundleDirFormat, ruleContext.getLabel().getName(), bundleMinimumOsVersion, platform); } diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ReleaseBundlingTargetFactory.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ReleaseBundlingTargetFactory.java index 6a50889637..a6a18a3962 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/ReleaseBundlingTargetFactory.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ReleaseBundlingTargetFactory.java @@ -23,8 +23,8 @@ import com.google.devtools.build.lib.analysis.RuleContext; import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; import com.google.devtools.build.lib.rules.RuleConfiguredTargetFactory; import com.google.devtools.build.lib.rules.apple.AppleConfiguration; +import com.google.devtools.build.lib.rules.apple.ApplePlatform.PlatformType; import com.google.devtools.build.lib.rules.apple.DottedVersion; -import com.google.devtools.build.lib.rules.apple.Platform.PlatformType; import com.google.devtools.build.lib.rules.objc.ReleaseBundlingSupport.LinkedBinary; import com.google.devtools.build.lib.rules.test.InstrumentedFilesCollector; import com.google.devtools.build.lib.rules.test.InstrumentedFilesProvider; diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/Watch2ExtensionSupport.java b/src/main/java/com/google/devtools/build/lib/rules/objc/Watch2ExtensionSupport.java index 776b6c19ae..f50580ce6f 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/Watch2ExtensionSupport.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/Watch2ExtensionSupport.java @@ -38,10 +38,9 @@ import com.google.devtools.build.lib.analysis.RuleContext; import com.google.devtools.build.lib.analysis.TransitiveInfoCollection; import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; import com.google.devtools.build.lib.rules.apple.AppleConfiguration; -import com.google.devtools.build.lib.rules.apple.Platform.PlatformType; +import com.google.devtools.build.lib.rules.apple.ApplePlatform.PlatformType; import com.google.devtools.build.lib.rules.objc.ReleaseBundlingSupport.LinkedBinary; import com.google.devtools.build.lib.syntax.Type; - import javax.annotation.Nullable; /** diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/WatchApplicationSupport.java b/src/main/java/com/google/devtools/build/lib/rules/objc/WatchApplicationSupport.java index fdc8796565..888dac5c22 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/WatchApplicationSupport.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/WatchApplicationSupport.java @@ -45,9 +45,9 @@ import com.google.devtools.build.lib.analysis.RuleConfiguredTarget.Mode; import com.google.devtools.build.lib.analysis.RuleContext; import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; import com.google.devtools.build.lib.rules.apple.AppleConfiguration; +import com.google.devtools.build.lib.rules.apple.ApplePlatform; +import com.google.devtools.build.lib.rules.apple.ApplePlatform.PlatformType; import com.google.devtools.build.lib.rules.apple.DottedVersion; -import com.google.devtools.build.lib.rules.apple.Platform; -import com.google.devtools.build.lib.rules.apple.Platform.PlatformType; import com.google.devtools.build.lib.rules.objc.ReleaseBundlingSupport.LinkedBinary; import com.google.devtools.build.lib.rules.objc.WatchUtils.WatchOSVersion; import com.google.devtools.build.lib.syntax.Type; @@ -174,9 +174,9 @@ final class WatchApplicationSupport { * {@code TargetDeviceFamily.WATCH}. */ private ImmutableSet<TargetDeviceFamily> families() { - Platform platform = + ApplePlatform platform = ruleContext.getFragment(AppleConfiguration.class).getMultiArchPlatform(PlatformType.IOS); - if (watchOSVersion != WatchOSVersion.OS1 || platform == Platform.IOS_DEVICE) { + if (watchOSVersion != WatchOSVersion.OS1 || platform == ApplePlatform.IOS_DEVICE) { return ImmutableSet.of(TargetDeviceFamily.WATCH); } else { return ImmutableSet.of(TargetDeviceFamily.IPHONE, TargetDeviceFamily.WATCH); diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/WatchExtensionSupport.java b/src/main/java/com/google/devtools/build/lib/rules/objc/WatchExtensionSupport.java index ba2634a792..675682c150 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/WatchExtensionSupport.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/WatchExtensionSupport.java @@ -43,7 +43,7 @@ import com.google.devtools.build.lib.analysis.RuleContext; import com.google.devtools.build.lib.analysis.actions.FileWriteAction; import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; import com.google.devtools.build.lib.rules.apple.AppleConfiguration; -import com.google.devtools.build.lib.rules.apple.Platform.PlatformType; +import com.google.devtools.build.lib.rules.apple.ApplePlatform.PlatformType; import com.google.devtools.build.lib.rules.objc.ReleaseBundlingSupport.LinkedBinary; import com.google.devtools.build.lib.rules.objc.TargetDeviceFamily.InvalidFamilyNameException; import com.google.devtools.build.lib.rules.objc.TargetDeviceFamily.RepeatedFamilyNameException; diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/WatchUtils.java b/src/main/java/com/google/devtools/build/lib/rules/objc/WatchUtils.java index 2805fb7c9d..28d888c021 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/WatchUtils.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/WatchUtils.java @@ -23,8 +23,8 @@ import com.google.common.collect.Ordering; import com.google.devtools.build.lib.actions.Artifact; import com.google.devtools.build.lib.analysis.RuleContext; import com.google.devtools.build.lib.rules.apple.AppleConfiguration; +import com.google.devtools.build.lib.rules.apple.ApplePlatform.PlatformType; import com.google.devtools.build.lib.rules.apple.DottedVersion; -import com.google.devtools.build.lib.rules.apple.Platform.PlatformType; /** * Contains support methods for common processing and generating of watch extension and application |