aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java
diff options
context:
space:
mode:
authorGravatar Lukacs Berki <lberki@google.com>2016-07-27 08:16:20 +0000
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2016-07-27 11:15:20 +0000
commitadd1b3036f3dbfa7f143ba47eaa8579ef6f58bb0 (patch)
treea57b4dfd1e3c5ebbdd69f77e67a7dd5b8d19613a /src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java
parentddb6a1f2671f3c2c36090a61609054287b7e44ba (diff)
Pass the coverage environment into tests using a nested set collected from the transitive closure instead of having a global environment in the configuration.
-- MOS_MIGRATED_REVID=128559756
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java
index 5b0847db7a..082d469810 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java
@@ -22,6 +22,7 @@ import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
import com.google.devtools.build.lib.collect.nestedset.Order;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
+import com.google.devtools.build.lib.util.Pair;
import com.google.devtools.build.lib.util.Preconditions;
import com.google.devtools.build.lib.vfs.PathFragment;
@@ -57,7 +58,8 @@ public final class CcToolchainProvider implements TransitiveInfoProvider {
false,
false,
ImmutableMap.<String, String>of(),
- ImmutableList.<Artifact>of());
+ ImmutableList.<Artifact>of(),
+ NestedSetBuilder.<Pair<String, String>>emptySet(Order.COMPILE_ORDER));
@Nullable private final CppConfiguration cppConfiguration;
private final NestedSet<Artifact> crosstool;
@@ -78,6 +80,7 @@ public final class CcToolchainProvider implements TransitiveInfoProvider {
private final boolean supportsHeaderParsing;
private final Map<String, String> buildVariables;
private final ImmutableList<Artifact> builtinIncludeFiles;
+ private final NestedSet<Pair<String, String>> coverageEnvironment;
public CcToolchainProvider(
@Nullable CppConfiguration cppConfiguration,
@@ -98,7 +101,8 @@ public final class CcToolchainProvider implements TransitiveInfoProvider {
boolean supportsParamFiles,
boolean supportsHeaderParsing,
Map<String, String> buildVariables,
- ImmutableList<Artifact> builtinIncludeFiles) {
+ ImmutableList<Artifact> builtinIncludeFiles,
+ NestedSet<Pair<String, String>> coverageEnvironment) {
this.cppConfiguration = cppConfiguration;
this.crosstool = Preconditions.checkNotNull(crosstool);
this.crosstoolMiddleman = Preconditions.checkNotNull(crosstoolMiddleman);
@@ -118,6 +122,7 @@ public final class CcToolchainProvider implements TransitiveInfoProvider {
this.supportsHeaderParsing = supportsHeaderParsing;
this.buildVariables = buildVariables;
this.builtinIncludeFiles = builtinIncludeFiles;
+ this.coverageEnvironment = coverageEnvironment;
}
/**
@@ -263,4 +268,11 @@ public final class CcToolchainProvider implements TransitiveInfoProvider {
public ImmutableList<Artifact> getBuiltinIncludeFiles() {
return builtinIncludeFiles;
}
+
+ /**
+ * Returns the environment variables that need to be added to tests that collect code coverage.
+ */
+ public NestedSet<Pair<String, String>> getCoverageEnvironment() {
+ return coverageEnvironment;
+ }
}