aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionBuilder.java
diff options
context:
space:
mode:
authorGravatar cpeyser <cpeyser@google.com>2017-04-03 15:22:09 +0000
committerGravatar Marcel Hlopko <hlopko@google.com>2017-04-04 10:06:45 +0200
commit17adca4d05b3bf9baf479d30cddee18c6651d0df (patch)
tree9b2ad02df34587be4fa9a555b99f6cd845ad3283 /src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionBuilder.java
parent79251005cdb44781703e498045453efa1b1623a5 (diff)
Implement DSYM generation for the CROSSTOOL rules.
PiperOrigin-RevId: 152011915
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionBuilder.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionBuilder.java11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionBuilder.java
index 532ad5ed58..f65e09d902 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionBuilder.java
@@ -190,6 +190,7 @@ public class CppLinkActionBuilder {
private final List<VariablesExtension> variablesExtensions = new ArrayList<>();
private final NestedSetBuilder<Artifact> linkActionInputs = NestedSetBuilder.stableOrder();
+ private final ImmutableList.Builder<Artifact> linkActionOutputs = ImmutableList.builder();
/**
* Creates a builder that builds {@link CppLinkAction} instances.
@@ -593,7 +594,7 @@ public class CppLinkActionBuilder {
actionOutputs =
constructOutputs(
output,
- linkstampMap.values(),
+ Iterables.concat(linkstampMap.values(), linkActionOutputs.build()),
interfaceOutputLibrary == null ? null : interfaceOutputLibrary.getArtifact(),
symbolCounts);
}
@@ -853,7 +854,7 @@ public class CppLinkActionBuilder {
}
private static ImmutableList<Artifact> constructOutputs(
- Artifact primaryOutput, Collection<Artifact> outputList, Artifact... outputs) {
+ Artifact primaryOutput, Iterable<Artifact> outputList, Artifact... outputs) {
return new ImmutableList.Builder<Artifact>()
.add(primaryOutput)
.addAll(outputList)
@@ -1250,6 +1251,12 @@ public class CppLinkActionBuilder {
return this;
}
+ /** Adds an extra output artifact to the link action. */
+ public CppLinkActionBuilder addActionOutput(Artifact output) {
+ this.linkActionOutputs.add(output);
+ return this;
+ }
+
private static class LinkArgCollector {
ImmutableSet<String> runtimeLibrarySearchDirectories;
ImmutableSet<String> librarySearchDirectories;