aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchain.java
diff options
context:
space:
mode:
authorGravatar jcater <jcater@google.com>2018-04-24 08:07:43 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-04-24 08:11:10 -0700
commita392ebafb8aedf85ace36e3a0565874d44139b5e (patch)
tree8765a18b9a1b203d46370d7aab5f2d0c44902b45 /src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchain.java
parent0e86686e3b1769213f70fef08047946d3d29db29 (diff)
Ensure make variables from the CcToolchainProvider end up in the
TemplateVariableInfo. PiperOrigin-RevId: 194088329
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchain.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchain.java13
1 files changed, 11 insertions, 2 deletions
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 5475261c1e..cfd703b2c5 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
@@ -575,7 +575,8 @@ public class CcToolchain implements RuleConfiguredTargetFactory {
configuration.isHostConfiguration());
TemplateVariableInfo templateVariableInfo =
- createMakeVariableProvider(cppConfiguration, sysroot, ruleContext.getRule().getLocation());
+ createMakeVariableProvider(
+ cppConfiguration, ccProvider, sysroot, ruleContext.getRule().getLocation());
RuleConfiguredTargetBuilder builder =
new RuleConfiguredTargetBuilder(ruleContext)
@@ -821,11 +822,19 @@ public class CcToolchain implements RuleConfiguredTargetFactory {
}
private TemplateVariableInfo createMakeVariableProvider(
- CppConfiguration cppConfiguration, PathFragment sysroot, Location location) {
+ CppConfiguration cppConfiguration,
+ CcToolchainProvider toolchainProvider,
+ PathFragment sysroot,
+ Location location) {
HashMap<String, String> makeVariables =
new HashMap<>(cppConfiguration.getAdditionalMakeVariables());
+ // Add make variables from the toolchainProvider, also.
+ ImmutableMap.Builder<String, String> ccProviderMakeVariables = new ImmutableMap.Builder<>();
+ toolchainProvider.addGlobalMakeVariables(ccProviderMakeVariables);
+ makeVariables.putAll(ccProviderMakeVariables.build());
+
// Overwrite the CC_FLAGS variable to include sysroot, if it's available.
if (sysroot != null) {
String sysrootFlag = "--sysroot=" + sysroot;