llvm-config: fix --libs on Linux

Summary:
llvm-config --libs does not produce correct output since commit r260263
(llvm-config: Add preliminary Windows support) changed naming format of
the libraries. This patch updates llvm-config to recognize new naming
format and output correct linker flags.

Ref: https://llvm.org/bugs/show_bug.cgi?id=26581

Patch by Vedran Miletić

Reviewers: ehsan, rnk, pxli168

Subscribers: pxli168

Differential Revision: http://reviews.llvm.org/D17300

llvm-svn: 263497
This commit is contained in:
Reid Kleckner 2016-03-14 21:39:58 +00:00
parent fb38990f13
commit 475799d8b4

View File

@ -645,17 +645,19 @@ int main(int argc, char **argv) {
} else if (PrintLibFiles) {
OS << GetComponentLibraryPath(Lib, Shared);
} else if (PrintLibs) {
// If this is a typical library name, include it using -l.
StringRef LibName;
if (Lib.startswith("lib")) {
// On Windows, output full path to library without parameters.
// Elsewhere, if this is a typical library name, include it using -l.
if (HostTriple.isWindowsMSVCEnvironment()) {
OS << GetComponentLibraryPath(Lib, Shared);
} else {
StringRef LibName;
if (GetComponentLibraryNameSlice(Lib, LibName)) {
// Extract library name (remove prefix and suffix).
OS << "-l" << LibName;
} else {
OS << "-l:" << GetComponentLibraryFileName(Lib, Shared);
// Lib is already a library name without prefix and suffix.
OS << "-l" << Lib;
}
} else {
// Otherwise, print the full path.
OS << GetComponentLibraryPath(Lib, Shared);
}
}
};