aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/objc
diff options
context:
space:
mode:
authorGravatar dbabkin <dbabkin@google.com>2018-06-28 08:01:48 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-06-28 08:02:57 -0700
commit817e32900687e05a000d31f8b7596c49693f7b88 (patch)
treee13670259d872c51f473f1b4886e03969e21707d /src/main/java/com/google/devtools/build/lib/rules/objc
parent1d3b6c144634b18b918c438ca042a16af8c901ff (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.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ObjcRuleClasses.java29
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 -->*/