aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkAction.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkAction.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkAction.java21
1 files changed, 17 insertions, 4 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkAction.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkAction.java
index 04dc86895e..4c868c74d8 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkAction.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkAction.java
@@ -53,6 +53,7 @@ import com.google.devtools.build.lib.vfs.Path;
import com.google.devtools.build.lib.vfs.PathFragment;
import java.io.IOException;
import java.util.Collection;
+import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Nullable;
@@ -100,7 +101,9 @@ public final class CppLinkAction extends AbstractAction
private final LibraryToLink outputLibrary;
private final Artifact linkOutput;
private final LibraryToLink interfaceOutputLibrary;
- private final Map<String, String> toolchainEnv;
+ private final ImmutableSet<String> clientEnvironmentVariables;
+ private final ImmutableMap<String, String> actionEnv;
+ private final ImmutableMap<String, String> toolchainEnv;
private final ImmutableSet<String> executionRequirements;
private final LinkCommandLine linkCommandLine;
@@ -150,7 +153,9 @@ public final class CppLinkAction extends AbstractAction
boolean isLTOIndexing,
Iterable<LTOBackendArtifacts> allLTOBackendArtifacts,
LinkCommandLine linkCommandLine,
- Map<String, String> toolchainEnv,
+ ImmutableSet<String> clientEnvironmentVariables,
+ ImmutableMap<String, String> actionEnv,
+ ImmutableMap<String, String> toolchainEnv,
ImmutableSet<String> executionRequirements) {
super(owner, inputs, outputs);
if (mnemonic == null) {
@@ -167,6 +172,8 @@ public final class CppLinkAction extends AbstractAction
this.isLTOIndexing = isLTOIndexing;
this.allLTOBackendArtifacts = allLTOBackendArtifacts;
this.linkCommandLine = linkCommandLine;
+ this.clientEnvironmentVariables = clientEnvironmentVariables;
+ this.actionEnv = actionEnv;
this.toolchainEnv = toolchainEnv;
this.executionRequirements = executionRequirements;
}
@@ -185,9 +192,15 @@ public final class CppLinkAction extends AbstractAction
}
@Override
+ public Iterable<String> getClientEnvironmentVariables() {
+ return clientEnvironmentVariables;
+ }
+
+ @Override
public ImmutableMap<String, String> getEnvironment() {
- ImmutableMap.Builder<String, String> result = ImmutableMap.<String, String>builder();
+ LinkedHashMap<String, String> result = new LinkedHashMap<>();
+ result.putAll(actionEnv);
result.putAll(toolchainEnv);
if (OS.getCurrent() == OS.WINDOWS) {
@@ -207,7 +220,7 @@ public final class CppLinkAction extends AbstractAction
.getParentDirectory()
.getPathString());
}
- return result.build();
+ return ImmutableMap.copyOf(result);
}
/**