aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingOutputs.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingOutputs.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingOutputs.java18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingOutputs.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingOutputs.java
index 9d2ef270cf..aab459989c 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingOutputs.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingOutputs.java
@@ -69,6 +69,24 @@ public class CcLinkingOutputs {
}
/**
+ * Returns all libraries in this CcLinkingOutputs with the same library identifier - i.e., those
+ * which would be considered different forms of the same library by getPreferredLibrary.
+ */
+ public List<LibraryToLink> getLibrariesWithSameIdentifierAs(LibraryToLink input) {
+ Iterable<LibraryToLink> allLibraries =
+ Iterables.concat(
+ staticLibraries, picStaticLibraries, dynamicLibraries, executionDynamicLibraries);
+ ImmutableList.Builder<LibraryToLink> result = new ImmutableList.Builder<>();
+ for (LibraryToLink library : allLibraries) {
+ if (libraryIdentifierOf(library.getOriginalLibraryArtifact())
+ .equals(libraryIdentifierOf(input.getOriginalLibraryArtifact()))) {
+ result.add(library);
+ }
+ }
+ return result.build();
+ }
+
+ /**
* Add the ".a", ".pic.a" and/or ".so" files in appropriate order of preference depending on the
* link preferences.
*