diff options
author | NAKAMURA Takumi <geek4civic@gmail.com> | 2013-12-19 08:46:36 +0000 |
---|---|---|
committer | NAKAMURA Takumi <geek4civic@gmail.com> | 2013-12-19 08:46:36 +0000 |
commit | cbce286fb9021afc1fb7f25e96c64233bf490262 (patch) | |
tree | 9f7ffedc9c7928b34364135c5cec75f3bff8eda2 /tools | |
parent | 722f58c6b338284cd6a9f88543b7f7984b3c2da9 (diff) | |
download | llvm-cbce286fb9021afc1fb7f25e96c64233bf490262.tar.gz llvm-cbce286fb9021afc1fb7f25e96c64233bf490262.tar.bz2 llvm-cbce286fb9021afc1fb7f25e96c64233bf490262.tar.xz |
llvm-config: Introduce --system-libs to print SYSTEM_LIBS, and deprecate SYSTEM_LIBS in --ldflags.
Although --system-libs is expected to use after --libs, it can be used alone.
$ bin/llvm-config --ldflags
-L/path/to/llvm/objroot/lib
$ bin/llvm-config --libs object
-lLLVMObject -lLLVMSupport
$ bin/llvm-config --system-libs
(Blank line. "all" is assumed but nothing is printed.)
-lrt -ldl -ltinfo -lpthread -lz
$ bin/llvm-config --ldflags --libs --system-libs object
-L/path/to/llvm/objroot/lib
-lLLVMObject -lLLVMSupport
-lrt -ldl -ltinfo -lpthread -lz
It is reimplementation of r197380, and workaround for PR3347 and PR8449.
FIXME: Each LLVM component may have its dependent system libs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@197664 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools')
-rw-r--r-- | tools/llvm-config/llvm-config.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp index 040d111033..546963d833 100644 --- a/tools/llvm-config/llvm-config.cpp +++ b/tools/llvm-config/llvm-config.cpp @@ -147,6 +147,7 @@ Options:\n\ --cflags C compiler flags for files that include LLVM headers.\n\ --cxxflags C++ compiler flags for files that include LLVM headers.\n\ --ldflags Print Linker flags.\n\ + --system-libs Sytem Libraries needed to link against LLVM components.\n\ --libs Libraries needed to link against LLVM components.\n\ --libnames Bare library names for in-tree builds.\n\ --libfiles Fully qualified library filenames for makefile depends.\n\ @@ -172,6 +173,7 @@ std::string GetExecutablePath(const char *Argv0) { int main(int argc, char **argv) { std::vector<StringRef> Components; bool PrintLibs = false, PrintLibNames = false, PrintLibFiles = false; + bool PrintSystemLibs = false; bool HasAnyOption = false; // llvm-config is designed to support being run both from a development tree @@ -285,8 +287,9 @@ int main(int argc, char **argv) { } else if (Arg == "--cxxflags") { OS << ActiveIncludeOption << ' ' << LLVM_CXXFLAGS << '\n'; } else if (Arg == "--ldflags") { - OS << "-L" << ActiveLibDir << ' ' << LLVM_LDFLAGS - << ' ' << LLVM_SYSTEM_LIBS << '\n'; + OS << "-L" << ActiveLibDir << ' ' << LLVM_LDFLAGS << '\n'; + } else if (Arg == "--system-libs") { + PrintSystemLibs = true; } else if (Arg == "--libs") { PrintLibs = true; } else if (Arg == "--libnames") { @@ -330,7 +333,7 @@ int main(int argc, char **argv) { if (!HasAnyOption) usage(); - if (PrintLibs || PrintLibNames || PrintLibFiles) { + if (PrintLibs || PrintLibNames || PrintLibFiles || PrintSystemLibs) { // If no components were specified, default to "all". if (Components.empty()) Components.push_back("all"); @@ -361,6 +364,11 @@ int main(int argc, char **argv) { } } OS << '\n'; + + // Print SYSTEM_LIBS after --libs. + // FIXME: Each LLVM component may have its dependent system libs. + if (PrintSystemLibs) + OS << LLVM_SYSTEM_LIBS << '\n'; } else if (!Components.empty()) { errs() << "llvm-config: error: components given, but unused\n\n"; usage(); |