diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/cpp/CcBinary.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/cpp/CcBinary.java | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcBinary.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcBinary.java index d49415f6a4..975d9d218c 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcBinary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcBinary.java @@ -421,13 +421,18 @@ public abstract class CcBinary implements RuleConfiguredTargetFactory { // artifacts generated by getDynamicLibraryLink(). This is done to minimize number of -rpath // entries during linking process. for (Artifact library : precompiledFiles.getLibraries()) { - if (SHARED_LIBRARY_FILETYPES.matches(library.getFilename())) { + if (Link.SHARED_LIBRARY_FILETYPES.matches(library.getFilename())) { builder.addLibrary(LinkerInputs.solibLibraryToLink( common.getDynamicLibrarySymlink(library, true), library, CcLinkingOutputs.libraryIdentifierOf(library))); - } else { + } else if (Link.LINK_LIBRARY_FILETYPES.matches(library.getFilename())) { + builder.addLibrary(LinkerInputs.precompiledLibraryToLink( + library, ArtifactCategory.ALWAYSLINK_STATIC_LIBRARY)); + } else if (Link.ARCHIVE_FILETYPES.matches(library.getFilename())) { builder.addLibrary(LinkerInputs.precompiledLibraryToLink( library, ArtifactCategory.STATIC_LIBRARY)); + } else { + throw new IllegalStateException(); } } |