aboutsummaryrefslogtreecommitdiff
path: root/llvm/tools/llvm-config/llvm-config.cpp
AgeCommit message (Collapse)AuthorFilesLines
2016-08-17Replace a few more "fall through" comments with LLVM_FALLTHROUGHJustin Bogner1-1/+1
Follow up to r278902. I had missed "fall through", with a space. llvm-svn: 278970
2016-03-14llvm-config: fix --libs on LinuxReid Kleckner1-7/+9
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
2016-03-08[llvm-config] Get rid of code related to the Makefile buildsFilipe Cabecinhas1-32/+5
Summary: I left --build-system for backwards compat, in case there are scripts using it. Feel free to ask for its removal too. Reviewers: chapuni, tstellarAMD Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D17886 llvm-svn: 262924
2016-03-08[llvm-config] Teach llvm-config about global-isel.Quentin Colombet1-0/+3
llvm-config can know tell whether or not a build has been configured to support global-isel. Use '--has-global-isel' for that. llvm-svn: 262877
2016-02-12llvm-config: replace assertions with a helpful error messageMehdi Amini1-0/+8
From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 260700
2016-02-10llvm-config: Fix DLL prefix on cygming.NAKAMURA Takumi1-1/+1
For example, LLVMSupport takes the form of LLVMSupport.dll, not libLLVMSupport.dll. llvm-svn: 260351
2016-02-10llvm-config: Quick fix for cross compilation. Don't be confsed between host ↵NAKAMURA Takumi1-1/+1
and target. It has been there since r252532. FIXME: The clause may use conditions of host compiler, not HOST_TRIPLE. llvm-svn: 260343
2016-02-09llvm-config: Add preliminary Windows supportEhsan Akhgari1-33/+54
Summary: This patch adds Windows support for a few of the llvm-config commands, including cflags, ldflags, libs, and system-libs. Currently llvm-config is untested, so this patch adds tests for the commands that it fixes as well. Reviewers: rnk Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D16762 llvm-svn: 260263
2016-01-20tools/llvm-config: improve shared library supportAndrew Wilkins1-41/+115
Summary: This is a re-commit of r257003, which was reverted, along with the fixes from http://reviews.llvm.org/D15986. r252532 added support for reporting the monolithic library when LLVM_BUILD_LLVM_DYLIB is used. This would only be done if the individual components were not found, and the dynamic library is found. This diff extends this as follows: - If LLVM_LINK_LLVM_DYLIB is set, then prefer the shared library, even if all component libraries exist. - Two flags, --link-shared and --link-static are introduced to provide explicit guidance. If --link-shared is passed and the shared library does not exist, an error results. Additionally, changed the expected shared library names from (e.g.) LLVM-3.8.0 to LLVM-3.8. The former exists only in an installation (and then only in CMake builds I think?), and not in the build tree; this breaks usage of llvm-config during builds, e.g. by llvm-go. Reviewers: DiamondLovesYou, beanz Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D15986 llvm-svn: 258283
2016-01-12Revert r257003Andrew Wilkins1-87/+25
This revision breaks llvm-config if you set BUILD_SHARED_LIBS=on in a CMake build. Backing out until the fix is ready to land. llvm-svn: 257457
2016-01-07tools/llvm-config: improve shared library supportAndrew Wilkins1-25/+87
Summary: r252532 added support for reporting the monolithic library when LLVM_BUILD_LLVM_DYLIB is used. This would only be done if the individual components were not found, and the dynamic library is found. This diff extends this as follows: - If LLVM_LINK_LLVM_DYLIB is set, then prefer the shared library, even if all component libraries exist. - Two flags, --link-shared and --link-static are introduced to provide explicit guidance. If --link-shared is passed and the shared library does not exist, an error results. Additionally, changed the expected shared library names from (e.g.) LLVM-3.8.0 to LLVM-3.8. The former exists only in an installation (and then only in CMake builds I think?), and not in the build tree; this breaks usage of llvm-config during builds, e.g. by llvm-go. Reviewers: DiamondLovesYou, beanz Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D15033 llvm-svn: 257003
2015-11-25Fix a use-after-free in `llvm-config`.Richard Diamond1-10/+10
Summary: This could happen if `GetComponentNames` is true, because `Name` from `VisitComponent` would reference a stack instance of `std::string` in `ComputeLibsForComponents`. Reviewers: beanz Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D14913 llvm-svn: 254108
2015-11-11llvm-config.cpp: Prune an obsolete \param. [-Wdocumentation]NAKAMURA Takumi1-2/+0
llvm-svn: 252762
2015-11-10Fix mingw targets. Bandaid for r252532's buildbot brakage.Richard Diamond1-1/+1
Reviewers: brad.king, beanz Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D14523 llvm-svn: 252576
2015-11-09Simplify some APIs I was cleaning up while fixing -Wpessimizing-move warningDavid Blaikie1-27/+25
(Reid fixed the original error, but this seems nice to do in any case) llvm-svn: 252548
2015-11-09Fix -Wpessimizing-move warning in llvm-config.cppReid Kleckner1-1/+1
llvm-svn: 252542
2015-11-09Fix `llvm-config` to adapt to the install environment.Richard Diamond1-22/+243
Summary: This patch does a couple of things: - Adds a new argument `--shared-mode` which accepts a list of components and prints whether or not the provided components need to be linked statically or shared. - Fixes `--libnames` when CMake BUILD_SHARED_LIBS is used. - Fixes `--libnames`, `--libs`, and `--libfiles` for dylib when static components aren't installed. - Fixes `--libnames`, `--libs`, `--libfiles`, and `--components` to use LLVM_DYLIB_COMPONENTS as the component manifest for dylib linking. - Uses the host platform's usual convention for filename extensions and such, instead of always defaulting to Unix-izms. Because I don't own a Mac, I am not able to test the Mac platform dependent stuff locally. If someone would be willing to run a build for me on their machine (unless there's a better option), I'd appreciate it. Reviewers: jfb, brad.king, whitequark, beanz Subscribers: beanz, jauhien, llvm-commits Differential Revision: http://reviews.llvm.org/D13198 llvm-svn: 252532
2015-11-04llvm-config: Add --has-rtti optionTom Stellard1-0/+3
Summary: This prints NO if LLVM was built with -fno-rtti or an equivalent flag and YES otherwise. The reasons to add -has-rtti rather than adding -fno-rtti to --cxxflags are: 1. Building LLVM with -fno-rtti does not always mean that client applications need this flag. 2. Some compilers have a different flag for disabling rtti, and the compiler being used to build LLVM may not be the compiler being used to build the application. Reviewers: echristo, chandlerc, beanz Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D11849 llvm-svn: 252075
2015-09-09llvm-config: Add --build-system optionTom Stellard1-0/+3
Summary: This can be used for distinguishing between cmake and autoconf builds. Users may need this in order to handle inconsistencies between the outputs of the two build systems. Reviewers: echristo, chandlerc, beanz Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D11838 llvm-svn: 247159
2015-08-05Revert "Fix `llvm-config` to emit the linker flag for the combined shared ↵Richard Diamond1-41/+2
object built by autoconfig/make instead of the individual components." It seems I was wrong thinking `autoconf`/`make` only installed shared libraries if configured with `--enable-shared`, even if `--disable-static` is present. I'll re-address with a followup patch. This reverts commit r243297 for causing PR#24154. llvm-svn: 244108
2015-07-27Fix `llvm-config` to emit the linker flag for the combined shared object ↵JF Bastien1-2/+41
built by autoconfig/make instead of the individual components. Summary: When LLVM is configured to build shared libraries, CMake builds each component as it's own shared object, while autoconfig/make builds them statically and then links them all together to create a single shared object. This change adds compile time config flags to `llvm-config` so it can know whether LLVM's components are separated or not and act accordingly. This fixes `llvm-config` instead of fixing the makefiles to behave like CMake because, AIUI, LLVM's autoconfig/make build system is on the way out anyway. This change only affects `llvm-config` from builds that use autoconfig/make. Reviewers: jfb Subscribers: echristo, dschuff, llvm-commits Differential Revision: http://reviews.llvm.org/D11392 llvm-svn: 243297
2015-07-14Revert "Fix `llvm-config` to emit the linker flag for the combined shared ↵JF Bastien1-41/+2
object built by autoconfig/make instead of the individual components." This reverts commit 01446706b4c0a86bb64768f307079cab5c514aa3. Causes breakage, seems to be related to 'svn' in the file's name: CC=gcc CXX=g++ \ ../llvm/configure \ --prefix=/usr \ --sysconfdir=/etc \ --enable-shared \ --enable-libffi \ --enable-targets=all \ --disable-assertions \ --with-python=/usr/bin/python2 \ --enable-optimized make REQUIRES_RTTI=1 ENABLE_PIC=1 results: llvm[2]: Linking Release unit test Support (without symbols) llvm[2]: ======= Finished Linking Release Unit test Support (without symbols) make[3]: Entering directory '/build/llvm-svn/src/build/bindings/ocaml/llvm' make[3]: *** No rule to make target '/build/llvm- svn/src/build/Release/lib/ocaml/libLLVM-3.7.0svn.so', needed by 'build- deplibs'. Stop. make[3]: *** Waiting for unfinished jobs.... llvm[3]: Compiling llvm_ocaml.c for Release build make[3]: Leaving directory '/build/llvm-svn/src/build/bindings/ocaml/llvm' /build/llvm-svn/src/llvm/Makefile.rules:880: recipe for target 'all' failed /build/llvm-svn/src/llvm/Makefile.rules:965: recipe for target 'all' failed Differential Revision: http://reviews.llvm.org/D10716 llvm-svn: 242152
2015-07-10Fix `llvm-config` to emit the linker flag for the combined shared object ↵JF Bastien1-2/+41
built by autoconfig/make instead of the individual components. Summary: This fixes `llvm-config` instead of fixing the makefiles because, AIUI, LLVM's autoconfig/make build system is on the way out anyway. This change only affects builds that use autoconfig/make. Reviewers: jfb Subscribers: echristo, dschuff, llvm-commits Differential Revision: http://reviews.llvm.org/D10716 llvm-svn: 241938
2015-03-09Make helper functions static.Benjamin Kramer1-4/+4
Found by -Wmissing-prototypes. NFC. llvm-svn: 231664
2014-12-29[cmake] Teach the llvm-config program to respect LLVM_LIBDIR_SUFFIX.Chandler Carruth1-4/+6
For this to work, we have to encode it in the build variables and use it from llvm-config.cpp. I've tried to do this reasonably cleanly, but the code for llvm-config.cpp is pretty strange. However, with this, llvm-config stops giving the wrong answer when using LLVM_LIBDIR_SUFFIX. Note that the configure+make build just sets this to an empty string as that build system has zero support for multilib of any form. I'm not planning to add support there either, but this should leave a path for anyone that wanted to. llvm-svn: 224921
2014-03-29Windows: canonicalise the default windows tripleSaleem Abdulrasool1-1/+2
Canonicalise the default triple that is used on Windows. This should hopefully fix the MSVC buildbots. llvm-svn: 205070
2014-03-03Don't emit a blank line when running llvm-config --system-libs.Richard Osborne1-18/+20
Summary: Previously llvm-config --system-libs would print something like: $ llvm-config --system-libs -lz -ltinfo -lrt -ldl -lm Now we don't emit blank line. Functionality is unchanged otherwise, in particular llvm-config --libs --system-libs still emits the LLVM libraries and the system libraries on different lines. Reviewers: chapuni Reviewed By: chapuni CC: llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D2901 llvm-svn: 202719
2013-12-25llvm-config: Fix typo in help message introduced with r197664.NAKAMURA Takumi1-1/+1
Thanks, Vinson Lee! llvm-svn: 197996
2013-12-20llvm-config: Show OBJROOT rather than OBJROOT/BUILD_MODE in MakefileStyle.NAKAMURA Takumi1-0/+1
llvm-svn: 197818
2013-12-20llvm-config: Use build_mode instead of LLVM_BUILDMODE. It should be ↵NAKAMURA Takumi1-3/+3
equivalent in MakefileStyle. llvm-svn: 197817
2013-12-19llvm-config: Don't show build tree with --obj-root for installed ↵NAKAMURA Takumi1-1/+1
llvm-config. Show $(prefix) instead. llvm-svn: 197684
2013-12-19llvm-config: Show build root instead of parent path in build tree with ↵NAKAMURA Takumi1-0/+1
--obj-root for CMake multiconfig. llvm-svn: 197683
2013-12-19llvm-config: Introduce --system-libs to print SYSTEM_LIBS, and deprecate ↵NAKAMURA Takumi1-3/+11
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. llvm-svn: 197664
2013-12-18Revert r197380, "llvm-config: Print SYSTEM_LIBS with --libs, instead of ↵NAKAMURA Takumi1-8/+2
--ldflags." I will introduce another flag, like --system-libs, later. llvm-svn: 197583
2013-12-17llvm-config: Let directories aware of CMAKE_CFG_INTDIR.NAKAMURA Takumi1-7/+9
With llvm-config.exe --bindir --libdir --build-mode, on Visual Studio 2010, In build tree: (OBJ_ROOT)/bin/MinSizeRel (OBJ_ROOT)/lib/MinSizeRel MinSizeRel In installed tree: (INSTALL_PREFIX)/bin (INSTALL_PREFIX)/lib MinSizeRel This is enhancements since r196283. llvm-svn: 197467
2013-12-16llvm-config: Print SYSTEM_LIBS with --libs, instead of --ldflags.NAKAMURA Takumi1-2/+8
LLVM libs are printed in the first line, and system libs are printed in the next line. $ bin/llvm-config --libs object -lLLVMObject -lLLVMSupport -lrt -ldl -ltinfo -lpthread -lz It is workaround for PR3347 and PR8449. llvm-svn: 197380
2013-12-03check-llvm: Ask llvm-config about assertion mode, instead of llc.NAKAMURA Takumi1-0/+7
Add --assertion-mode to llvm-config. It emits ON or OFF according to NDEBUG. llvm-svn: 196329
2013-12-03llvm-config: With --build-mode, show ${CMAKE_CFG_INTDIR} on multiconfig builder.NAKAMURA Takumi1-1/+6
llvm-svn: 196283
2013-06-26Remove unused includes.Rafael Espindola1-1/+0
llvm itself is now PathV1 clean. llvm-svn: 184947
2013-06-26Port GetMainExecutable over to PathV2.Rafael Espindola1-3/+3
I will remove the V1 version as soon as I change clang in the next commit. llvm-svn: 184914
2013-06-11Include PathV1.h in files that use it.Rafael Espindola1-0/+1
This is preparation for replacing Path.h with PathV2.h. llvm-svn: 183782
2012-05-15llvm-config: Use sys::fs::equivalent instead of string comparison.Daniel Dunbar1-5/+6
- Hopefully fixes PR11600 (untested). llvm-svn: 156865
2012-05-15llvm-build: Add support for non-installed libraries (e.g., gtest).Daniel Dunbar1-5/+18
- These libraries are only reported by llvm-config when run from a development tree. llvm-svn: 156838
2012-02-23An easy case where GCC should really be able to work out that the value is onlyDuncan Sands1-0/+1
used if IsInDevelopmentTree is 'true'. But it doesn't, so help it out. llvm-svn: 151244
2012-01-26llvm-config: Add support for CMake build trees in which the buildPeter Collingbourne1-7/+19
mode does not form part of the path. llvm-svn: 149010
2011-12-16llvm-config: Fix --targets-built, I changed this to use the registry but wasn'tDaniel Dunbar1-9/+1
properly initializing the target infos. I decided it wasn't worth linking them in for this, so just switched back to using the Makefile variable for now. We can reconsider later if we ever get pluggable targets. llvm-svn: 146711
2011-12-15llvm-config: Update help text for removal of "backend" pseudo component.Daniel Dunbar1-1/+0
llvm-svn: 146708
2011-12-12llvm-config: Default to "all" if no components are specified.Daniel Dunbar1-0/+4
- Fixes PR11530. llvm-svn: 146388
2011-12-01llvm-config: Replace with C++ version (was llvm-config-2).Daniel Dunbar1-0/+334
- Another reapply of r144300, with hopefully one last fix. llvm-svn: 145623
2011-12-01Revert commit 145449 (ddunbar) since it is breaking the dragonegg buildbots.Duncan Sands1-335/+0
Original commit message: llvm-config: Replace with C++ version (was llvm-config-2). - Reapply of r144300, with lots of fixes/migration easement in between. llvm-svn: 145582