From 6525e389b854b2bb4e84a4145c0a3945d7e195bd Mon Sep 17 00:00:00 2001 From: Jon Brandvein Date: Tue, 28 Feb 2017 17:51:43 +0000 Subject: Rollback of commit 5e945570ec0b9079596756bf89437ac37e031c36. *** Reason for rollback *** -- PiperOrigin-RevId: 148781019 MOS_MIGRATED_REVID=148781019 --- .../build/lib/rules/apple/AppleConfiguration.java | 12 +--- .../build/lib/rules/objc/AppleBinaryRule.java | 7 --- .../objc/MultiArchSplitTransitionProvider.java | 73 +++++----------------- .../build/lib/rules/objc/ObjcProvider.java | 1 - 4 files changed, 19 insertions(+), 74 deletions(-) (limited to 'src/main/java') 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()))) - /* - Indicates whether this binary is for an extension. This will set certain compiler - options and restrictions on dependencies of this target. - */ - .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 SUPPORTED_PLATFORM_TYPES = ImmutableSet.of(PlatformType.IOS, PlatformType.WATCHOS, PlatformType.TVOS); @@ -83,23 +80,17 @@ public class MultiArchSplitTransitionProvider implements SplitTransitionProvider } } - private static final ImmutableSet - 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 + SPLIT_TRANSITIONS_BY_TYPE = ImmutableMap.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> getPotentialSplitTransitions() { return ImmutableList.>copyOf( - SPLIT_TRANSITIONS.asList()); + SPLIT_TRANSITIONS_BY_TYPE.values()); } /** @@ -130,11 +121,9 @@ public class MultiArchSplitTransitionProvider implements SplitTransitionProvider protected static class AppleBinaryTransition implements SplitTransition { 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 copts = buildOptions.get(ObjcCommandLineOptions.class).copts; - if (isExtension && !copts.contains(EXTENSION_COPT)) { - copts = ImmutableList.builder() - .addAll(copts).add(EXTENSION_COPT).build(); - } ImmutableList.Builder 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, -- cgit v1.2.3