diff options
author | Googler <noreply@google.com> | 2017-05-11 16:13:06 -0400 |
---|---|---|
committer | Kristina Chodorow <kchodorow@google.com> | 2017-05-12 11:12:16 -0400 |
commit | f1631c2c85b6abc3f5b65156a52116e76a920e3f (patch) | |
tree | ec5a27467fbc11787b114c2090e98666ec34d043 /src/main/java/com | |
parent | 1a57d298f8aa6ea8136d93223902104f2479cd2a (diff) |
Automated g4 rollback of commit 34fe247448a9be13fc41f93ac78a071ec157f434.
*** Reason for rollback ***
Rolling forward after fixing issues in http://b/38171368
*** Original change description ***
Automated g4 rollback of commit 006a80425e7dd521634c5735d2730f40e9e82e06.
*** Reason for rollback ***
Need to roll this back as part of http://b/38171368
*** Original change description ***
Make the cc_toolchain libc_top use the target configuration
The removes redundancy from the logic around calculating the sysroot (and was been a TODO since 2014!)
RELNOTES: None
PiperOrigin-RevId: 155787049
Diffstat (limited to 'src/main/java/com')
6 files changed, 14 insertions, 14 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/AnalysisUtils.java b/src/main/java/com/google/devtools/build/lib/analysis/AnalysisUtils.java index 715939500e..209eb226ae 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/AnalysisUtils.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/AnalysisUtils.java @@ -120,11 +120,11 @@ public final class AnalysisUtils { } /** - * Returns the middleman artifact on the specified attribute of the specified rule, or an empty - * set if it does not exist. + * Returns the middleman artifact on the specified attribute of the specified rule for the + * specified mode, or an empty set if it does not exist. */ - public static NestedSet<Artifact> getMiddlemanFor(RuleContext rule, String attribute) { - TransitiveInfoCollection prereq = rule.getPrerequisite(attribute, Mode.HOST); + public static NestedSet<Artifact> getMiddlemanFor(RuleContext rule, String attribute, Mode mode) { + TransitiveInfoCollection prereq = rule.getPrerequisite(attribute, mode); if (prereq == null) { return NestedSetBuilder.emptySet(Order.STABLE_ORDER); } diff --git a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java index 7ab8097ed9..009b6e437f 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java +++ b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java @@ -947,7 +947,7 @@ public final class SkylarkRuleContext implements SkylarkValue { @SkylarkCallable(documented = false) public NestedSet<Artifact> middleMan(String attribute) throws EvalException { checkMutable("middle_man"); - return AnalysisUtils.getMiddlemanFor(ruleContext, attribute); + return AnalysisUtils.getMiddlemanFor(ruleContext, attribute, Mode.HOST); } @SkylarkCallable(documented = false) diff --git a/src/main/java/com/google/devtools/build/lib/rules/apple/cpp/AppleCcToolchain.java b/src/main/java/com/google/devtools/build/lib/rules/apple/cpp/AppleCcToolchain.java index 92902bcac7..fd679c969b 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/apple/cpp/AppleCcToolchain.java +++ b/src/main/java/com/google/devtools/build/lib/rules/apple/cpp/AppleCcToolchain.java @@ -17,6 +17,7 @@ import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableMap; import com.google.devtools.build.lib.actions.Artifact; import com.google.devtools.build.lib.analysis.AnalysisUtils; +import com.google.devtools.build.lib.analysis.RuleConfiguredTarget.Mode; import com.google.devtools.build.lib.analysis.RuleContext; import com.google.devtools.build.lib.collect.nestedset.NestedSet; import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; @@ -110,7 +111,7 @@ public class AppleCcToolchain extends CcToolchain { RuleContext ruleContext, NestedSet<Artifact> link) { return NestedSetBuilder.<Artifact>stableOrder() .addTransitive(link) - .addTransitive(AnalysisUtils.getMiddlemanFor(ruleContext, ":libc_top")) + .addTransitive(AnalysisUtils.getMiddlemanFor(ruleContext, ":libc_top", Mode.TARGET)) .build(); } diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchain.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchain.java index da27ada49e..2b0b66cde0 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchain.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchain.java @@ -385,7 +385,7 @@ public class CcToolchain implements RuleConfiguredTargetFactory { } private NestedSet<Artifact> inputsForLibc(RuleContext ruleContext) { - TransitiveInfoCollection libc = ruleContext.getPrerequisite(":libc_top", Mode.HOST); + TransitiveInfoCollection libc = ruleContext.getPrerequisite(":libc_top", Mode.TARGET); return libc != null ? libc.getProvider(FileProvider.class).getFilesToBuild() : NestedSetBuilder.<Artifact>emptySet(Order.STABLE_ORDER); @@ -395,7 +395,7 @@ public class CcToolchain implements RuleConfiguredTargetFactory { NestedSet<Artifact> crosstoolMiddleman) { return NestedSetBuilder.<Artifact>stableOrder() .addTransitive(crosstoolMiddleman) - .addTransitive(AnalysisUtils.getMiddlemanFor(ruleContext, ":libc_top")) + .addTransitive(AnalysisUtils.getMiddlemanFor(ruleContext, ":libc_top", Mode.TARGET)) .build(); } @@ -407,7 +407,7 @@ public class CcToolchain implements RuleConfiguredTargetFactory { RuleContext ruleContext, NestedSet<Artifact> link) { return NestedSetBuilder.<Artifact>stableOrder() .addTransitive(link) - .addTransitive(AnalysisUtils.getMiddlemanFor(ruleContext, ":libc_top")) + .addTransitive(AnalysisUtils.getMiddlemanFor(ruleContext, ":libc_top", Mode.TARGET)) .add(ruleContext.getPrerequisiteArtifact("$interface_library_builder", Mode.HOST)) .add(ruleContext.getPrerequisiteArtifact("$link_dynamic_library_tool", Mode.HOST)) .build(); @@ -493,7 +493,7 @@ public class CcToolchain implements RuleConfiguredTargetFactory { private PathFragment calculateSysroot(RuleContext ruleContext) { - TransitiveInfoCollection sysrootTarget = ruleContext.getPrerequisite(":sysroot", Mode.TARGET); + TransitiveInfoCollection sysrootTarget = ruleContext.getPrerequisite(":libc_top", Mode.TARGET); if (sysrootTarget == null) { CppConfiguration cppConfiguration = Preconditions.checkNotNull(ruleContext.getFragment(CppConfiguration.class)); diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainRule.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainRule.java index 8b7dbe92ff..f7414408f8 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainRule.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainRule.java @@ -85,9 +85,7 @@ public final class CcToolchainRule implements RuleDefinition { .cfg(HOST) .singleArtifact() .value(env.getToolsLabel("//tools/cpp:link_dynamic_library"))) - // TODO(bazel-team): Should be using the TARGET configuration. - .add(attr(":libc_top", LABEL).cfg(HOST).value(LIBC_TOP)) - .add(attr(":sysroot", LABEL).value(LIBC_TOP)) + .add(attr(":libc_top", LABEL).value(LIBC_TOP)) .add( attr(":lipo_context_collector", LABEL) .cfg(LipoTransition.LIPO_COLLECTOR) diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaHelper.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaHelper.java index fc44f09b70..5984de833e 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaHelper.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaHelper.java @@ -145,7 +145,8 @@ public abstract class JavaHelper { /** Returns the artifacts required to invoke {@code javahome} relative binary in the action. */ public static NestedSet<Artifact> getHostJavabaseInputs( RuleContext ruleContext, String implicitAttributesSuffix) { - return AnalysisUtils.getMiddlemanFor(ruleContext, ":host_jdk" + implicitAttributesSuffix); + return AnalysisUtils.getMiddlemanFor( + ruleContext, ":host_jdk" + implicitAttributesSuffix, Mode.HOST); } /** |