diff options
author | 2017-02-28 17:51:43 +0000 | |
---|---|---|
committer | 2017-02-28 18:56:25 +0000 | |
commit | 6525e389b854b2bb4e84a4145c0a3945d7e195bd (patch) | |
tree | 2bdd7a3b327194688dc904e10fe1f3243370f59c /src/main | |
parent | 8e29780fed3012ae05348f68bda9103b6e0de1e5 (diff) |
Rollback of commit 5e945570ec0b9079596756bf89437ac37e031c36.
*** Reason for rollback ***
--
PiperOrigin-RevId: 148781019
MOS_MIGRATED_REVID=148781019
Diffstat (limited to 'src/main')
4 files changed, 19 insertions, 74 deletions
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 ad5e8abed6..a9f45cf394 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 @@ -706,18 +706,12 @@ public class AppleConfiguration extends BuildConfiguration.Fragment { FRAMEWORK("framework"), /** Split transition distinguisher for {@code apple_watch1_extension} rule. */ WATCH_OS1_EXTENSION("watch_os1_extension"), - /** Distinguisher for non-extension {@code apple_binary} rule with "ios" platform_type. */ + /** Distinguisher for {@code apple_binary} rule with "ios" platform_type. */ APPLEBIN_IOS("applebin_ios"), - /** Distinguisher for non-extension {@code apple_binary} rule with "watchos" platform_type. */ + /** Distinguisher for {@code apple_binary} rule with "watchos" platform_type. */ APPLEBIN_WATCHOS("applebin_watchos"), - /** Distinguisher for non-extension {@code apple_binary} rule with "tvos" platform_type. */ + /** Distinguisher for {@code apple_binary} rule with "tvos" platform_type. */ APPLEBIN_TVOS("applebin_tvos"), - /** Distinguisher for extension {@code apple_binary} rule with "ios" platform_type. */ - APPLEBIN_IOS_EXT("applebin_ios_ext"), - /** Distinguisher for extension {@code apple_binary} rule with "watchos" platform_type. */ - APPLEBIN_WATCHOS_EXT("applebin_watchos_ext"), - /** Distinguisher for extension {@code apple_binary} rule with "tvos" platform_type. */ - APPLEBIN_TVOS_EXT("applebin_tvos_ext"), /** * Distinguisher for the apple crosstool configuration. We use "apl" for output directory * names instead of "apple_crosstool" to avoid oversized path names, which can be problematic diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleBinaryRule.java b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleBinaryRule.java index 79e2b1879d..d19b6900b3 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleBinaryRule.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleBinaryRule.java @@ -40,7 +40,6 @@ public class AppleBinaryRule implements RuleDefinition { public static final String BINARY_TYPE_ATTR = "binary_type"; public static final String BUNDLE_LOADER_ATTR_NAME = "bundle_loader"; - public static final String EXTENSION_SAFE_ATTR_NAME = "extension_safe"; private final ObjcProtoAspect objcProtoAspect; @@ -119,12 +118,6 @@ public class AppleBinaryRule implements RuleDefinition { attr(BINARY_TYPE_ATTR, STRING) .value(AppleBinary.BinaryType.EXECUTABLE.toString()) .allowedValues(new AllowedValueSet(AppleBinary.BinaryType.getValues()))) - /* <!-- #BLAZE_RULE(apple_binary).ATTRIBUTE(extension_safe) --> - Indicates whether this binary is for an extension. This will set certain compiler - options and restrictions on dependencies of this target. - <!-- #END_BLAZE_RULE.ATTRIBUTE --> */ - .add(attr(EXTENSION_SAFE_ATTR_NAME, BOOLEAN).value(false) - .nonconfigurable("Determines the configuration transition on deps")) .add( attr(BUNDLE_LOADER_ATTR_NAME, LABEL) .direct_compile_time_input() 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 aa32ff75b3..80bb34164a 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 @@ -14,12 +14,11 @@ package com.google.devtools.build.lib.rules.objc; -import static com.google.devtools.build.lib.syntax.Type.BOOLEAN; import static com.google.devtools.build.lib.syntax.Type.STRING; import com.google.common.annotations.VisibleForTesting; -import com.google.common.base.Objects; import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import com.google.devtools.build.lib.analysis.RuleContext; import com.google.devtools.build.lib.analysis.config.BuildOptions; @@ -34,7 +33,6 @@ import com.google.devtools.build.lib.rules.apple.Platform.PlatformType; import com.google.devtools.build.lib.rules.objc.ObjcRuleClasses.MultiArchPlatformRule; import java.util.List; - /** * {@link SplitTransitionProvider} implementation for multi-architecture apple rules which can * accept different apple platform types (such as ios or watchos). @@ -44,8 +42,7 @@ public class MultiArchSplitTransitionProvider implements SplitTransitionProvider @VisibleForTesting static final String UNSUPPORTED_PLATFORM_TYPE_ERROR_FORMAT = "Unsupported platform type \"%s\""; - - private static final String EXTENSION_COPT = "-application-extension"; + private static final ImmutableSet<PlatformType> SUPPORTED_PLATFORM_TYPES = ImmutableSet.of(PlatformType.IOS, PlatformType.WATCHOS, PlatformType.TVOS); @@ -83,23 +80,17 @@ public class MultiArchSplitTransitionProvider implements SplitTransitionProvider } } - private static final ImmutableSet<AppleBinaryTransition> - SPLIT_TRANSITIONS = ImmutableSet.of( - new AppleBinaryTransition(PlatformType.IOS, false), - new AppleBinaryTransition(PlatformType.WATCHOS, false), - new AppleBinaryTransition(PlatformType.TVOS, false), - new AppleBinaryTransition(PlatformType.IOS, true), - new AppleBinaryTransition(PlatformType.WATCHOS, true), - new AppleBinaryTransition(PlatformType.TVOS, true)); + private static final ImmutableMap<PlatformType, AppleBinaryTransition> + SPLIT_TRANSITIONS_BY_TYPE = ImmutableMap.<PlatformType, AppleBinaryTransition>builder() + .put(PlatformType.IOS, new AppleBinaryTransition(PlatformType.IOS)) + .put(PlatformType.WATCHOS, new AppleBinaryTransition(PlatformType.WATCHOS)) + .put(PlatformType.TVOS, new AppleBinaryTransition(PlatformType.TVOS)) + .build(); @Override public SplitTransition<?> apply(Rule fromRule) { - NonconfigurableAttributeMapper attrMapper = NonconfigurableAttributeMapper.of(fromRule); - String platformTypeString = - attrMapper.get(MultiArchPlatformRule.PLATFORM_TYPE_ATTR_NAME, STRING); - - boolean isExtension = attrMapper.has(AppleBinaryRule.EXTENSION_SAFE_ATTR_NAME, BOOLEAN) - && attrMapper.get(AppleBinaryRule.EXTENSION_SAFE_ATTR_NAME, BOOLEAN); + String platformTypeString = NonconfigurableAttributeMapper.of(fromRule) + .get(MultiArchPlatformRule.PLATFORM_TYPE_ATTR_NAME, STRING); PlatformType platformType; try { platformType = getPlatformType(platformTypeString); @@ -110,7 +101,7 @@ public class MultiArchSplitTransitionProvider implements SplitTransitionProvider platformType = PlatformType.IOS; } - return new AppleBinaryTransition(platformType, isExtension); + return SPLIT_TRANSITIONS_BY_TYPE.get(platformType); } /** @@ -119,7 +110,7 @@ public class MultiArchSplitTransitionProvider implements SplitTransitionProvider */ public static List<SplitTransition<BuildOptions>> getPotentialSplitTransitions() { return ImmutableList.<SplitTransition<BuildOptions>>copyOf( - SPLIT_TRANSITIONS.asList()); + SPLIT_TRANSITIONS_BY_TYPE.values()); } /** @@ -130,11 +121,9 @@ public class MultiArchSplitTransitionProvider implements SplitTransitionProvider protected static class AppleBinaryTransition implements SplitTransition<BuildOptions> { private final PlatformType platformType; - private final boolean isExtension; - public AppleBinaryTransition(PlatformType platformType, boolean isExtension) { + public AppleBinaryTransition(PlatformType platformType) { this.platformType = platformType; - this.isExtension = isExtension; } @Override @@ -144,45 +133,30 @@ public class MultiArchSplitTransitionProvider implements SplitTransitionProvider switch (platformType) { case IOS: cpus = buildOptions.get(AppleCommandLineOptions.class).iosMultiCpus; - if (cpus.isEmpty()) { - cpus = ImmutableList.of(buildOptions.get(AppleCommandLineOptions.class).iosCpu); - } - configurationDistinguisher = isExtension - ? ConfigurationDistinguisher.APPLEBIN_IOS_EXT - : ConfigurationDistinguisher.APPLEBIN_IOS; + configurationDistinguisher = ConfigurationDistinguisher.APPLEBIN_IOS; break; case WATCHOS: cpus = buildOptions.get(AppleCommandLineOptions.class).watchosCpus; if (cpus.isEmpty()) { cpus = ImmutableList.of(AppleCommandLineOptions.DEFAULT_WATCHOS_CPU); } - configurationDistinguisher = isExtension - ? ConfigurationDistinguisher.APPLEBIN_WATCHOS_EXT - : ConfigurationDistinguisher.APPLEBIN_WATCHOS; + configurationDistinguisher = ConfigurationDistinguisher.APPLEBIN_WATCHOS; break; case TVOS: cpus = buildOptions.get(AppleCommandLineOptions.class).tvosCpus; if (cpus.isEmpty()) { cpus = ImmutableList.of(AppleCommandLineOptions.DEFAULT_TVOS_CPU); } - configurationDistinguisher = isExtension - ? ConfigurationDistinguisher.APPLEBIN_TVOS_EXT - : ConfigurationDistinguisher.APPLEBIN_TVOS; + configurationDistinguisher = ConfigurationDistinguisher.APPLEBIN_TVOS; break; default: throw new IllegalArgumentException("Unsupported platform type " + platformType); } - List<String> copts = buildOptions.get(ObjcCommandLineOptions.class).copts; - if (isExtension && !copts.contains(EXTENSION_COPT)) { - copts = ImmutableList.<String>builder() - .addAll(copts).add(EXTENSION_COPT).build(); - } ImmutableList.Builder<BuildOptions> splitBuildOptions = ImmutableList.builder(); for (String cpu : cpus) { BuildOptions splitOptions = buildOptions.clone(); - splitOptions.get(ObjcCommandLineOptions.class).copts = copts; splitOptions.get(AppleCommandLineOptions.class).applePlatformType = platformType; splitOptions.get(AppleCommandLineOptions.class).appleSplitCpu = cpu; // If the new configuration does not use the apple crosstool, then it needs ios_cpu to be @@ -210,20 +184,5 @@ public class MultiArchSplitTransitionProvider implements SplitTransitionProvider public boolean defaultsToSelf() { return true; } - - @Override - public int hashCode() { - return Objects.hashCode(platformType, isExtension); - } - - @Override - public boolean equals(Object other) { - if (!(other instanceof AppleBinaryTransition)) { - return false; - } - AppleBinaryTransition that = (AppleBinaryTransition) other; - return Objects.equal(platformType, that.platformType) - && Objects.equal(isExtension, that.isExtension); - } } } diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProvider.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProvider.java index e2b07a90c7..c16a1052e6 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProvider.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProvider.java @@ -478,7 +478,6 @@ public final class ObjcProvider extends SkylarkClassObject implements Transitive DYNAMIC_FRAMEWORK_DIR, DYNAMIC_FRAMEWORK_FILE, FLAG, - IQUOTE, MERGE_ZIP, ROOT_MERGE_ZIP, FRAMEWORK_SEARCH_PATH_ONLY, |