aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCompilationOutputs.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/cpp/CcCompilationOutputs.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CcCompilationOutputs.java45
1 files changed, 39 insertions, 6 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCompilationOutputs.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCompilationOutputs.java
index f7ff4d8227..67162c20d7 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCompilationOutputs.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCompilationOutputs.java
@@ -40,6 +40,11 @@ public class CcCompilationOutputs {
private final ImmutableList<Artifact> picObjectFiles;
/**
+ * All .o files coming from a C(++) compilation under our control.
+ */
+ private final ImmutableList<Artifact> ltoBitcodeFiles;
+
+ /**
* All .dwo files built by the target, corresponding to .o outputs.
*/
private final ImmutableList<Artifact> dwoFiles;
@@ -61,13 +66,19 @@ public class CcCompilationOutputs {
private final List<IncludeScannable> lipoScannables;
- private CcCompilationOutputs(ImmutableList<Artifact> objectFiles,
- ImmutableList<Artifact> picObjectFiles, ImmutableList<Artifact> dwoFiles,
- ImmutableList<Artifact> picDwoFiles, NestedSet<Artifact> temps,
+ private CcCompilationOutputs(
+ ImmutableList<Artifact> objectFiles,
+ ImmutableList<Artifact> picObjectFiles,
+ ImmutableList<Artifact> ltoBitcodeFiles,
+
+ ImmutableList<Artifact> dwoFiles,
+ ImmutableList<Artifact> picDwoFiles,
+ NestedSet<Artifact> temps,
ImmutableList<Artifact> headerTokenFiles,
ImmutableList<IncludeScannable> lipoScannables) {
this.objectFiles = objectFiles;
this.picObjectFiles = picObjectFiles;
+ this.ltoBitcodeFiles = ltoBitcodeFiles;
this.dwoFiles = dwoFiles;
this.picDwoFiles = picDwoFiles;
this.temps = temps;
@@ -92,6 +103,13 @@ public class CcCompilationOutputs {
}
/**
+ * Returns unmodifiable view of object files resulting from compilation.
+ */
+ public ImmutableList<Artifact> getLtoBitcodeFiles() {
+ return ltoBitcodeFiles;
+ }
+
+ /**
* Returns an unmodifiable view of the .dwo files set.
*/
public ImmutableList<Artifact> getDwoFiles() {
@@ -130,6 +148,7 @@ public class CcCompilationOutputs {
public static final class Builder {
private final Set<Artifact> objectFiles = new LinkedHashSet<>();
private final Set<Artifact> picObjectFiles = new LinkedHashSet<>();
+ private final Set<Artifact> ltoBitcodeFiles = new LinkedHashSet<>();
private final Set<Artifact> dwoFiles = new LinkedHashSet<>();
private final Set<Artifact> picDwoFiles = new LinkedHashSet<>();
private final NestedSetBuilder<Artifact> temps = NestedSetBuilder.stableOrder();
@@ -137,9 +156,13 @@ public class CcCompilationOutputs {
private final List<IncludeScannable> lipoScannables = new ArrayList<>();
public CcCompilationOutputs build() {
- return new CcCompilationOutputs(ImmutableList.copyOf(objectFiles),
- ImmutableList.copyOf(picObjectFiles), ImmutableList.copyOf(dwoFiles),
- ImmutableList.copyOf(picDwoFiles), temps.build(),
+ return new CcCompilationOutputs(
+ ImmutableList.copyOf(objectFiles),
+ ImmutableList.copyOf(picObjectFiles),
+ ImmutableList.copyOf(ltoBitcodeFiles),
+ ImmutableList.copyOf(dwoFiles),
+ ImmutableList.copyOf(picDwoFiles),
+ temps.build(),
ImmutableList.copyOf(headerTokenFiles),
ImmutableList.copyOf(lipoScannables));
}
@@ -176,6 +199,16 @@ public class CcCompilationOutputs {
return this;
}
+ public Builder addLTOBitcodeFile(Artifact a) {
+ ltoBitcodeFiles.add(a);
+ return this;
+ }
+
+ public Builder addLTOBitcodeFile(Iterable<Artifact> artifacts) {
+ Iterables.addAll(ltoBitcodeFiles, artifacts);
+ return this;
+ }
+
public Builder addPicObjectFiles(Iterable<Artifact> artifacts) {
Iterables.addAll(picObjectFiles, artifacts);
return this;