diff options
author | dbabkin <dbabkin@google.com> | 2018-06-28 08:01:48 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-06-28 08:02:57 -0700 |
commit | 817e32900687e05a000d31f8b7596c49693f7b88 (patch) | |
tree | e13670259d872c51f473f1b4886e03969e21707d /src/main/java/com/google/devtools/build/lib/rules/objc | |
parent | 1d3b6c144634b18b918c438ca042a16af8c901ff (diff) |
Remove CROSSTOOL_LABEL label resolver from ObjcRuleClasses.
Make ObjcRuleClasses uses CppRuleClasses.ccToolchainAttribute label resolver.
Mark CppRuleClasses.ccToolchainAttribute with @AutoCodec annotation.
RELNOTES:none
PiperOrigin-RevId: 202479836
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/objc')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcAspect.java | 4 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/objc/ObjcRuleClasses.java | 29 |
2 files changed, 7 insertions, 26 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcAspect.java b/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcAspect.java index 3a5db10056..1d19107f67 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcAspect.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcAspect.java @@ -122,10 +122,12 @@ public class J2ObjcAspect extends NativeAspectClass implements ConfiguredAspectF private final String toolsRepository; private final Label ccToolchainType; + private final LabelLateBoundDefault<CppConfiguration> ccToolchain; public J2ObjcAspect(RuleDefinitionEnvironment env) { this.toolsRepository = checkNotNull(env.getToolsRepository()); this.ccToolchainType = CppRuleClasses.ccToolchainTypeAttribute(env); + this.ccToolchain = CppRuleClasses.ccToolchainAttribute(env); } /** Returns whether this aspect allows proto services to be generated from this proto rule */ @@ -214,7 +216,7 @@ public class J2ObjcAspect extends NativeAspectClass implements ConfiguredAspectF .value( getProtoToolchainLabel( toolsRepository + "//tools/j2objc:j2objc_proto_toolchain"))) - .add(attr(":j2objc_cc_toolchain", LABEL).value(ObjcRuleClasses.APPLE_TOOLCHAIN)) + .add(attr(":j2objc_cc_toolchain", LABEL).value(ccToolchain)) .build(); } 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 92cad34d22..7fe734a4c3 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 @@ -53,7 +53,6 @@ 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.XcodeConfigProvider; 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; import com.google.devtools.build.lib.rules.cpp.CppRuleClasses; import com.google.devtools.build.lib.rules.proto.ProtoSourceFileBlacklist; @@ -147,28 +146,6 @@ public class ObjcRuleClasses { } /** - * Label of a filegroup that contains all crosstool and grte files for all configurations, - * as specified on the command-line. - * - * <p> Since this is the loading-phase default for the :cc_toolchain attribute of rules - * using the crosstool, it must contain in its transitive closure the computer value - * of that attribute under the default configuration. - */ - public static final String CROSSTOOL_LABEL = "//tools/defaults:crosstool"; - - /** - * Late-bound attribute giving the CcToolchain for CROSSTOOL_LABEL. - * - * <p>TODO(cpeyser): Use AppleCcToolchain instead of CcToolchain once released. - */ - @AutoCodec - public static final LabelLateBoundDefault<?> APPLE_TOOLCHAIN = - LabelLateBoundDefault.fromTargetConfiguration( - CppConfiguration.class, - Label.parseAbsoluteUnchecked(CROSSTOOL_LABEL), - (rule, attributes, cppConfig) -> cppConfig.getCcToolchainRuleLabel()); - - /** * Creates a new spawn action builder with apple environment variables set that are typically * needed by the apple toolchain. This should be used to start to build spawn actions that, in * order to run, require both a darwin architecture and a collection of environment variables @@ -522,7 +499,9 @@ public class ObjcRuleClasses { @Override public RuleClass build(RuleClass.Builder builder, RuleDefinitionEnvironment env) { return builder - .add(attr(CcToolchain.CC_TOOLCHAIN_DEFAULT_ATTRIBUTE_NAME, LABEL).value(APPLE_TOOLCHAIN)) + .add( + attr(CcToolchain.CC_TOOLCHAIN_DEFAULT_ATTRIBUTE_NAME, LABEL) + .value(CppRuleClasses.ccToolchainAttribute(env))) .add( attr(CcToolchain.CC_TOOLCHAIN_TYPE_ATTRIBUTE_NAME, NODEP_LABEL) .value(CppRuleClasses.ccToolchainTypeAttribute(env))) @@ -955,7 +934,7 @@ public class ObjcRuleClasses { .add( attr(CHILD_CONFIG_ATTR, LABEL) .cfg(splitTransitionProvider) - .value(ObjcRuleClasses.APPLE_TOOLCHAIN)) + .value(CppRuleClasses.ccToolchainAttribute(env))) /* <!-- #BLAZE_RULE($apple_multiarch_rule).ATTRIBUTE(deps) --> The list of targets that are linked together to form the final binary. <!-- #END_BLAZE_RULE.ATTRIBUTE -->*/ |