diff options
Diffstat (limited to 'src/main/java/com')
5 files changed, 15 insertions, 10 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleBinary.java b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleBinary.java index 6fd9b70e7a..4093e57096 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleBinary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleBinary.java @@ -254,8 +254,8 @@ public class AppleBinary implements RuleConfiguredTargetFactory { // values of this rule -- this rule does not currently use the actual info provided by // this attribute. b/28403953 tracks cc toolchain usage. ImmutableListMultimap<BuildConfiguration, CcToolchainProvider> configToProvider = - ruleContext.getPrerequisitesByConfiguration( - ":cc_toolchain", Mode.SPLIT, CcToolchainProvider.class); + ruleContext.getPrerequisitesByConfiguration(ObjcRuleClasses.CHILD_CONFIG_ATTR, Mode.SPLIT, + CcToolchainProvider.class); return configToProvider.keySet(); } 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 41f9617dd8..faf8f34c28 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 @@ -31,6 +31,7 @@ import com.google.devtools.build.lib.packages.ImplicitOutputsFunction.SafeImplic import com.google.devtools.build.lib.packages.RuleClass; import com.google.devtools.build.lib.packages.RuleClass.Builder; import com.google.devtools.build.lib.rules.apple.AppleConfiguration; +import com.google.devtools.build.lib.rules.cpp.CppConfiguration; /** * Rule definition for apple_binary. @@ -87,7 +88,8 @@ public class AppleBinaryRule implements RuleDefinition { new MultiArchSplitTransitionProvider(); return builder .requiresConfigurationFragments( - ObjcConfiguration.class, J2ObjcConfiguration.class, AppleConfiguration.class) + ObjcConfiguration.class, J2ObjcConfiguration.class, AppleConfiguration.class, + CppConfiguration.class) .add( attr("$is_executable", BOOLEAN) .value(true) diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleStaticLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleStaticLibrary.java index 589738e504..ba264ba9c8 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleStaticLibrary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleStaticLibrary.java @@ -182,7 +182,7 @@ public class AppleStaticLibrary implements RuleConfiguredTargetFactory { // values of this rule -- this rule does not currently use the actual info provided by // this attribute. b/28403953 tracks cc toolchain usage. ImmutableListMultimap<BuildConfiguration, CcToolchainProvider> configToProvider = - ruleContext.getPrerequisitesByConfiguration(":cc_toolchain", Mode.SPLIT, + ruleContext.getPrerequisitesByConfiguration(ObjcRuleClasses.CHILD_CONFIG_ATTR, Mode.SPLIT, CcToolchainProvider.class); return configToProvider.keySet(); diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/CrosstoolCompilationSupport.java b/src/main/java/com/google/devtools/build/lib/rules/objc/CrosstoolCompilationSupport.java index 819da77e38..eb98b609f0 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/CrosstoolCompilationSupport.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/CrosstoolCompilationSupport.java @@ -143,8 +143,6 @@ public class CrosstoolCompilationSupport extends CompilationSupport { protected CompilationSupport registerFullyLinkAction( ObjcProvider objcProvider, Iterable<Artifact> inputArtifacts, Artifact outputArchive) throws InterruptedException { - Artifact fullyLinkedArchive = - ruleContext.getImplicitOutputArtifact(CompilationSupport.FULLY_LINKED_LIB); PathFragment labelName = new PathFragment(ruleContext.getLabel().getName()); String libraryIdentifier = ruleContext @@ -156,13 +154,12 @@ public class CrosstoolCompilationSupport extends CompilationSupport { .setObjcProvider(objcProvider) .setConfiguration(ruleContext.getConfiguration()) .setIntermediateArtifacts(intermediateArtifacts) - .setFullyLinkArchive( - ruleContext.getImplicitOutputArtifact(CompilationSupport.FULLY_LINKED_LIB)) + .setFullyLinkArchive(outputArchive) .addVariableCategory(VariableCategory.FULLY_LINK_VARIABLES) .build(); CppLinkAction fullyLinkAction = - new CppLinkActionBuilder(ruleContext, fullyLinkedArchive) + new CppLinkActionBuilder(ruleContext, outputArchive) .addActionInputs(objcProvider.getObjcLibraries()) .addActionInputs(objcProvider.getCcLibraries()) .addActionInputs(objcProvider.get(IMPORTED_LIBRARY).toSet()) 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 f71bc6942d..d775156ae7 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 @@ -102,6 +102,11 @@ public class ObjcRuleClasses { } /** + * Attribute name for a dummy target in a child configuration. + */ + static final String CHILD_CONFIG_ATTR = ":child_configuration_dummy"; + + /** * Returns a {@link IntermediateArtifacts} to be used to compile and link the ObjC source files * generated by J2ObjC. */ @@ -884,7 +889,7 @@ public class ObjcRuleClasses { // This is currently a hack to obtain all child configurations regardless of the attribute // values of this rule -- this rule does not currently use the actual info provided by // this attribute. - .add(attr(":cc_toolchain", LABEL) + .add(attr(CHILD_CONFIG_ATTR, LABEL) .cfg(splitTransitionProvider) .value(ObjcRuleClasses.APPLE_TOOLCHAIN)) /* <!-- #BLAZE_RULE($apple_multiarch_rule).ATTRIBUTE(platform_type) --> @@ -913,6 +918,7 @@ public class ObjcRuleClasses { return RuleDefinition.Metadata.builder() .name("$apple_multiarch_rule") .type(RuleClassType.ABSTRACT) + .ancestors(CrosstoolRule.class) .build(); } } |