diff options
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.java | 18 |
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. * |