aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google
diff options
context:
space:
mode:
authorGravatar cpeyser <cpeyser@google.com>2017-07-07 11:19:45 -0400
committerGravatar John Cater <jcater@google.com>2017-07-07 13:37:48 -0400
commit51f76dbb931b025c6066af91e8c53a9715014b8a (patch)
treefffe127f1dfc1d9bca4663ae95bae7421af0f0b1 /src/main/java/com/google
parent38f74a23738f8f1e0e0e3bc49d41a479f311dbe9 (diff)
Platform -> ApplePlatform, to avoid ambiguity with the newly introduced
Platform rule. PiperOrigin-RevId: 161203491
Diffstat (limited to 'src/main/java/com/google')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/apple/AppleCommandLineOptions.java10
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java72
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/apple/ApplePlatform.java (renamed from src/main/java/com/google/devtools/build/lib/rules/apple/Platform.java)32
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/apple/AppleToolchain.java8
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/apple/cpp/AppleCcToolchain.java29
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CcBinary.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/AppleBinary.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/AppleCrosstoolTransition.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/AppleSkylarkCommon.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/AppleStaticLibrary.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/AppleStubBinary.java14
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/BinaryLinkingTargetFactory.java7
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/BundleMergeControlBytes.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/BundleSupport.java20
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/IosApplication.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/IosDevice.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/IosExtension.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/IosTest.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/LegacyCompilationSupport.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/LipoSupport.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/MultiArchBinarySupport.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/MultiArchSplitTransitionProvider.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ObjcBundleLibrary.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCompileAction.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ObjcConfiguration.java10
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ObjcRuleClasses.java155
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ReleaseBundlingSupport.java44
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ReleaseBundlingTargetFactory.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/Watch2ExtensionSupport.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/WatchApplicationSupport.java8
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/WatchExtensionSupport.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/WatchUtils.java2
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(&quot;.section __TEXT,__entitlements&quot;);
- __asm(&quot;.ascii \&quot;&quot;
- &quot;&lt;?xml version=\\\&quot;1.0\\\&quot; encoding=\\\&quot;UTF-8\\\&quot;?&gt;\n&quot;
- &quot;&lt;!DOCTYPE plist PUBLIC \\\&quot;-//Apple//DTD PLIST 1.0//EN\\\&quot; &quot;
- &quot;\\\&quot;http://www.apple.com/DTDs/PropertyList-1.0.dtd\\\&quot;&gt;&quot;
- &quot;&lt;plist version=\\\&quot;1.0\\\&quot;&gt;&quot;
- &quot;&lt;dict&gt;&quot;
- &quot;&lt;key&gt;com.apple.security.application-groups&lt;/key&gt;&quot;
- &quot;&lt;array&gt;&quot;
- &quot;&lt;string&gt;group.com.your.company&lt;/string&gt;&quot;
- &quot;&lt;/array&gt;&quot;
- &quot;&lt;/dict&gt;&quot;
- &quot;&lt;/plist&gt;&quot;
- &quot;\&quot;
- #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(&quot;.section __TEXT,__entitlements&quot;);
+ __asm(&quot;.ascii \&quot;&quot;
+ &quot;&lt;?xml version=\\\&quot;1.0\\\&quot; encoding=\\\&quot;UTF-8\\\&quot;?&gt;\n&quot;
+ &quot;&lt;!DOCTYPE plist PUBLIC \\\&quot;-//Apple//DTD PLIST 1.0//EN\\\&quot; &quot;
+ &quot;\\\&quot;http://www.apple.com/DTDs/PropertyList-1.0.dtd\\\&quot;&gt;&quot;
+ &quot;&lt;plist version=\\\&quot;1.0\\\&quot;&gt;&quot;
+ &quot;&lt;dict&gt;&quot;
+ &quot;&lt;key&gt;com.apple.security.application-groups&lt;/key&gt;&quot;
+ &quot;&lt;array&gt;&quot;
+ &quot;&lt;string&gt;group.com.your.company&lt;/string&gt;&quot;
+ &quot;&lt;/array&gt;&quot;
+ &quot;&lt;/dict&gt;&quot;
+ &quot;&lt;/plist&gt;&quot;
+ &quot;\&quot;
+ #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