diff options
author | jcater <jcater@google.com> | 2018-04-27 12:53:19 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-04-27 12:54:25 -0700 |
commit | 758287532e338401146a8bb447161711b4b939c0 (patch) | |
tree | f96a237d35c61133b3f7636f231c66012a43bb93 /src/main/java/com/google/devtools/build/lib/rules/objc | |
parent | 681f36959d9e12a9599f1e3150f232a114333770 (diff) |
Ensure that all aspects which (even very indirectly) call
CppHelper.getToolchainFromPlatformConstraints declare that they require a cc
toolchain.
PiperOrigin-RevId: 194580065
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 | 17 |
1 files changed, 11 insertions, 6 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 f9095a8d0e..4c4b926af5 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 @@ -32,6 +32,7 @@ import com.google.devtools.build.lib.analysis.ConfiguredAspect; import com.google.devtools.build.lib.analysis.ConfiguredAspectFactory; import com.google.devtools.build.lib.analysis.ConfiguredTarget; import com.google.devtools.build.lib.analysis.RuleContext; +import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment; import com.google.devtools.build.lib.analysis.TransitiveInfoCollection; import com.google.devtools.build.lib.analysis.actions.CustomCommandLine; import com.google.devtools.build.lib.analysis.actions.CustomCommandLine.VectorArg; @@ -56,6 +57,7 @@ import com.google.devtools.build.lib.rules.apple.XcodeConfigRule; import com.google.devtools.build.lib.rules.cpp.CcToolchainProvider; import com.google.devtools.build.lib.rules.cpp.CppConfiguration; import com.google.devtools.build.lib.rules.cpp.CppHelper; +import com.google.devtools.build.lib.rules.cpp.CppRuleClasses; import com.google.devtools.build.lib.rules.cpp.FdoSupportProvider; import com.google.devtools.build.lib.rules.java.JavaCommon; import com.google.devtools.build.lib.rules.java.JavaCompilationArgsProvider; @@ -84,8 +86,6 @@ import java.util.stream.Collectors; public class J2ObjcAspect extends NativeAspectClass implements ConfiguredAspectFactory { public static final String NAME = "J2ObjcAspect"; - private final String toolsRepository; - private static final ExtraCompileArgs EXTRA_COMPILE_ARGS = new ExtraCompileArgs( "-fno-strict-overflow"); @@ -96,10 +96,6 @@ public class J2ObjcAspect extends NativeAspectClass implements ConfiguredAspectF (rule, attributes, protoConfig) -> protoConfig.protoToolchainForJ2objc()); } - public J2ObjcAspect(String toolsRepository) { - this.toolsRepository = toolsRepository; - } - private static final ImmutableList<Attribute> JAVA_DEPENDENT_ATTRIBUTES = ImmutableList.of( new Attribute("$jre_lib", Mode.TARGET), @@ -118,6 +114,14 @@ public class J2ObjcAspect extends NativeAspectClass implements ConfiguredAspectF null, (rule, attributes, j2objcConfig) -> j2objcConfig.deadCodeReport()); + private final String toolsRepository; + private final Label ccToolchainType; + + public J2ObjcAspect(RuleDefinitionEnvironment env) { + this.toolsRepository = checkNotNull(env.getToolsRepository()); + this.ccToolchainType = CppRuleClasses.ccToolchainTypeAttribute(env); + } + /** Returns whether this aspect should generate J2ObjC protos from this proto rule */ protected boolean shouldAttachToProtoRule(RuleContext ruleContext) { return true; @@ -144,6 +148,7 @@ public class J2ObjcAspect extends NativeAspectClass implements ConfiguredAspectF J2ObjcConfiguration.class, ObjcConfiguration.class, ProtoConfiguration.class) + .addRequiredToolchains(ccToolchainType) .add( attr("$j2objc", LABEL) .cfg(HostTransition.INSTANCE) |