diff options
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.java | 45 |
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; |