summaryrefslogtreecommitdiffstats
path: root/llvm/cmake/modules
Commit message (Collapse)AuthorAgeFilesLines
...
* [autoconf] Export LLVM_LIBDIR_SUFFIX with empty string in LLVMConfig.cmake. ↵NAKAMURA Takumi2015-01-051-0/+1
| | | | | | tools/llvm-config is also doing so. llvm-svn: 225204
* [OCaml] [cmake] Use LLVM_LIBRARY_DIR instead of LLVM_LIBRARY_OUTPUT_INTDIR.Peter Zotov2014-12-301-3/+3
| | | | | | | | The latter variable is internal. Original patch by Ramkumar Ramachandra <artagnon@gmail.com> llvm-svn: 224977
* [go] Teach the go cmake build functions to funnel the include directories ↵Chandler Carruth2014-12-291-1/+6
| | | | | | | | | | | | | | down into the cgo-setup variables of llvm-go. Summary: This in turn allows us to use #includes with cgo that rely on CMake provided include directories which is particularly useful for handling generated headers that aren't reasonable to put in an "installable" location. Differential Revision: http://reviews.llvm.org/D6798 llvm-svn: 224962
* [cmake] Push LLVM_LIBDIR_SUFFIX through to the LLVMConfig.cmake fileChandler Carruth2014-12-291-0/+2
| | | | | | | | | that is used by other projects to build against LLVM. This will allow subsequent patches to them to use LLVM_LIBDIR_SUFFIX, both when built as part of the larger LLVM build an as part of a standalone build against an installed set of LLVM libraries. llvm-svn: 224920
* [cmake] Start making LLVM_LIBDIR_SUFFIX effective by adding it toChandler Carruth2014-12-291-1/+1
| | | | | | | | | | | | | | | | | *numerous* places where it was missing in the CMake build. The primary change here is that the suffix is now actually used for all of the lib directories in the LLVM project's CMake. The various subprojects still need similar treatment. This is the first of a series of commits to try to make LLVM's cmake effective in a multilib Linux installation. I don't think many people are seriously using this variable so I'm hoping the fallout will be minimal. A somewhat unfortunate consequence of the nature of these commits is that until I land all of them, they will in part make the brokenness of our multilib support more apparant. At the end, things should actually work. llvm-svn: 224919
* [cmake] Unbreak LLVM-Config.cmake / llvm_expand_dependencies.Peter Zotov2014-12-181-20/+30
| | | | | | | | | | | | | The algorithm for sorting libraries in topological order, as previously implemented, had a few issues: * It didn't make any sense. * It didn't actually sort libraries in topological order. * It hung on some inputs, e.g. "LLVMipo". This commit replaces the old algorithm with a straightforward port from llvm-config.cpp. llvm-svn: 224554
* Disable --icf=safe to avoid a bug.Rafael Espindola2014-12-121-1/+3
| | | | | | Thanks to Sameer Sahasrabuddhe for the report! llvm-svn: 224123
* cmake: Make SVNVersion.inc work on Windows if svn is called svn.bat.Nico Weber2014-12-101-0/+5
| | | | llvm-svn: 223864
* Make GetSVN.cmake do its VCS queries with native CMake code.Paul Robinson2014-12-051-5/+70
| | | | | | | | | | This lets the queries work on Windows as well as Linux. This does mean make and cmake aren't using the same scripts to do the queries (again), but at least GetSVN.cmake understands git and git-svn as well as svn now. llvm-svn: 223425
* Also use --icf=safe if we are being linked by gold.Rafael Espindola2014-12-041-1/+1
| | | | llvm-svn: 223394
* Detect if the linker is gold and if so always use --gc-sections.Rafael Espindola2014-12-041-1/+15
| | | | llvm-svn: 223372
* cmake: Remove MAXPATHLEN define as autoconf does not provide itReid Kleckner2014-12-021-4/+0
| | | | | | | | Presumably it was added to the CMake system when MAXPATHLEN was still used by code built for Windows. Currently only lib/Support/Path.inc uses MAXPATHLEN, and it should be available on all Unices. llvm-svn: 223139
* [OCaml] [cmake] Add CMake buildsystem for OCaml.Peter Zotov2014-12-012-0/+302
| | | | | | Closes PR15325. llvm-svn: 223071
* Teach LLVM about llgo subproject.Peter Collingbourne2014-11-271-0/+25
| | | | llvm-svn: 222860
* [CMake] Update GetSVN.cmake to use LLVM version control helper scripts.Jordan Rose2014-11-191-17/+37
| | | | | | | | | | This allows the logic to work with Git, and also uses the variable names to match what Clang is actually looking for. This is a re-application of r190556 and r190808. This changes the interface of GetSVN.cmake. Clang change to follow. llvm-svn: 222391
* Add support for LLVM_USE_SANITIZER=ThreadEric Fiselier2014-11-181-0/+3
| | | | | | | | | | | | | | Summary: This will help in testing libc++ and libc++abi with tsan. Reviewers: samsonov Reviewed By: samsonov Subscribers: samsonov, llvm-commits Differential Revision: http://reviews.llvm.org/D6283 llvm-svn: 222258
* CMake: Use the new USES_TERMINAL option for test suite targets when available.Peter Collingbourne2014-11-171-0/+1
| | | | llvm-svn: 222181
* Provide missing definition of uppercase_CMAKE_BUILD_TYPE in ↵Eric Fiselier2014-11-151-0/+4
| | | | | | HandleLLVMOptions module llvm-svn: 222082
* Use -Wcast-qual in cmake builds, not only autoconfo ones.Roman Divacky2014-11-131-0/+1
| | | | llvm-svn: 221913
* Pass PRIVATE to target_link_libraries if using shared libraries.Rafael Espindola2014-11-071-15/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A shared library (unlike a .a), has its dependencies recorded in the library and we can pass PRIVATE to target_link_libraries. This patch then removes some bogus dependencies when using BUILD_SHARED_LIBS=ON. For example, we go from build lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/AggressiveAntiDepBreaker.cpp.o: CXX_COMPILER /home/espindola/llvm/llvm/lib/CodeGen/AggressiveAntiDepBreaker.cpp || include/llvm/IR/intrinsics_gen lib/libLLVMSupport.so lib/libLLVMCore.so lib/libLLVMBitReader.so lib/libLLVMTransformUtils.so lib/libLLVMInstCombine.so lib/libLLVMScalarOpts.so lib/libLLVMipa.so lib/libLLVMAnalysis.so lib/libLLVMMCParser.so lib/libLLVMMC.so lib/libLLVMObject.so lib/libLLVMTarget.so lib/libLLVMProfileData.so to build lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/AggressiveAntiDepBreaker.cpp.o: CXX_COMPILER /home/espindola/llvm/llvm/lib/CodeGen/AggressiveAntiDepBreaker.cpp || include/llvm/IR/intrinsics_gen lib/libLLVMSupport.so lib/libLLVMCore.so lib/libLLVMTransformUtils.so lib/libLLVMScalarOpts.so lib/libLLVMAnalysis.so lib/libLLVMMC.so lib/libLLVMTarget.so In fact, build.ninja goes from 5231028 bytes to 4896759 bytes. With this, old verisons of bfd ld (2.24 is OK, 2.23 warns) will print a bogus warning when building with BUILD_SHARED_LIBS. llvm-svn: 221530
* Add a LLVM_BUILD_STATIC option to cmake.Rafael Espindola2014-11-051-0/+4
| | | | | | Setting it to true causes all executables to be statically linked. llvm-svn: 221345
* [cmake] Pass -O3 when linking.Rafael Espindola2014-11-021-4/+11
| | | | | | Gold and bfd ld enable misc optimizations. lld ignores the option for now. llvm-svn: 221097
* Suppress MSVC's equivalent of -Wshadow warningsReid Kleckner2014-10-311-0/+4
| | | | | | | | | | | | | | | | | | | IMO we need to clean up some of these, but the member variable one (C4458) has false positives on static methods. It is currently firing on Twine, which has a static method like: struct Twine { uintptr_t LHS, RHS; static void staticMethod() { // warning C4458: declaration of 'LHS' hides class member uintptr_t LHS; ... } }; We should fix up clang's -Wshadow and clean it up, and then we can re-enable some of these MSVC warnings. llvm-svn: 221012
* EXPORTED_SYMBOL_FILE using mingw and cmakeChris Bieneman2014-10-301-13/+15
| | | | | | | | | | | | | | | | Summary: This is a fix for the command line syntax error while building LTO when using MinGW. Patch By: jsroemer Reviewers: rnk Reviewed By: rnk Subscribers: rnk, beanz, llvm-commits Differential Revision: http://reviews.llvm.org/D5476 llvm-svn: 220935
* Do not add -gsplit-dwarf to LLVM_DEFINITIONS.Peter Collingbourne2014-10-221-1/+1
| | | | | | | | | | This would cause the flag to appear in the output of "llvm-config --cppflags", which should contain only preprocessor flags. The -gsplit-dwarf flag in particular can cause problems with certain downstream users such as cgo. Differential Revision: http://reviews.llvm.org/D5895 llvm-svn: 220410
* Teach lit to filter the host LDFLAGS down from the build system and intoChandler Carruth2014-10-211-0/+1
| | | | | | | | | | the CGO build environment. This lets things like -rpath propagate down to the C++ code that is built along side the Go bindings when testing them. Patch by Peter Collingbourne, and verified that it works by me. llvm-svn: 220252
* Explain why we don't always use --gc-sections.Rafael Espindola2014-10-201-0/+4
| | | | llvm-svn: 220237
* Revert r220174, "Always use -Wl,-gc-sections on our build."NAKAMURA Takumi2014-10-201-9/+6
| | | | | | | | | | | | | | | | | | It dropped required functions for plugins with gnu ld 2.20 and 2.21. Failing Tests (1): LLVM :: Feature/load_module.ll Hello: bin/opt: symbol lookup error: lib/LLVMHello.so: undefined symbol: _ZN4llvm11raw_ostream13write_escapedENS_9StringRefEb Failing Tests (1): Clang :: Frontend/plugins.c error: unable to load plugin 'lib/PrintFunctionNames.so': 'lib/PrintFunctionNames.so: undefined symbol: _ZN5clang15PluginASTAction6anchorEv' I think we should inspect linker's version or behavior to introduce --gc-sections for --export-dynamic. llvm-svn: 220198
* Always use -Wl,-gc-sections on our build.Rafael Espindola2014-10-191-6/+9
| | | | | | | Both bfd ld and gold correctly handle --export-dynamic, so gc-sections is safe even for binaries that support plugins. llvm-svn: 220174
* Disable ccache for go tests.Peter Collingbourne2014-10-171-2/+2
| | | | | | Should fix llvm-clang-lld-x86_64-debian-fast bot. llvm-svn: 220071
* Initial version of Go bindings.Peter Collingbourne2014-10-161-0/+3
| | | | | | | | | | | | This code is based on the existing LLVM Go bindings project hosted at: https://github.com/go-llvm/llvm Note that all contributors to the gollvm project have agreed to relicense their changes under the LLVM license and submit them to the LLVM project. Differential Revision: http://reviews.llvm.org/D5684 llvm-svn: 219976
* Add LLVM_ENABLE_MODULES flag to CMake to enable building with C++ modules.Richard Smith2014-09-262-0/+31
| | | | llvm-svn: 218551
* Fix CMake warning CMP0054: don't quote a variable name that is intended to beRichard Smith2014-09-261-1/+1
| | | | | | expanded; future versions of cmake may not expand the variable in this case. llvm-svn: 218543
* Fix misinterpretation of CMake rule found by a CMake warning (related to ↵Richard Smith2014-09-261-2/+2
| | | | | | | | | | | | | | | | | | CMP0054). lldb sets the variable SHARED_LIBRARY to 1, which breaks this conditional, because older versions of CMake interpret if ("${t}" STREQUAL "SHARED_LIBRARY") as meaning if ("${t}" STREQUAL "1") in this case. Change the conditional so it does the right thing with both old and new CMakes. llvm-svn: 218542
* Add CMake check for libatomic.Evgeniy Stepanov2014-09-122-3/+5
| | | | llvm-svn: 217666
* Don't attempt to run llvm-config in cmake/modules/Makefile when doingDan Liew2014-09-101-0/+3
| | | | | | | | ``make clean`` because it won't be available. This is an attempt to unbreak buildbots broken by r217484. llvm-svn: 217490
* Attempt to fix PR20884Dan Liew2014-09-101-2/+12
| | | | | | | | | | | | | | | | This fixes the generation of broken LLVMExports.cmake file by the Autoconf/Makefile build system when --enable-shared is passed to configure. When --enable_shared is passed the Makefile.rules does not set the LLVMConfigLibs variable which cmake/modules/Makefile previously relied on. Now it runs the llvm-config command itself to get the library names. This still isn't perfect because the generated LLVM targets refer to the static libraries and not the shared library but that is much larger problem to fix. llvm-svn: 217484
* [CMake] Add -fno-sanitize=function to UBSan bootstrapAlexey Samsonov2014-09-051-1/+1
| | | | llvm-svn: 217217
* Enabling LLVM & Clang to be cross-compiled using CMake from a single ↵Chris Bieneman2014-09-032-34/+38
| | | | | | | | configuration command line The basic idea is similar to the existing cross compilation support. A directory must be configured to build host versions of tablegen tools and llvm-config. This directory can be user provided (and configured), or it can be created during the build. During a build the native build directory will be configured and built to supply the tablegen tools used during the build. A user could also explicitly provide the tablegen executables to run on the CMake command line. llvm-svn: 217105
* cmake: Don't reject unknown cpp files that start with .Matt Arsenault2014-09-021-4/+9
| | | | | | | | Some editors create hidden file backups in the same directory as the file, and it's annoying when cmake errors on them. llvm-svn: 216941
* Introduce -DLLVM_USE_SANITIZER=Undefined CMake option to build UBSan-ified ↵Alexey Samsonov2014-08-291-0/+4
| | | | | | | | | version of LLVM/Clang. I've fixed most of the simple bugs and currently "check-llvm" test suite has 26 failures, and "check-clang" suite has 5 failures. llvm-svn: 216701
* cmake: actually test -WcommentDylan Noblesmith2014-08-231-1/+1
| | | | | | | | | | | | | | | | | | | This test was testing nothing, as only -Werror was ever being added to the compiler flags. You can see the final nitty-gritty compiler invocation in CMakeFiles/CMakeOutput.log (for successful tests) and CMakeFiles/CMakeError.log (for failed tests). Before: Building C object CMakeFiles/cmTryCompileExec3385359576.dir/src.c.o /usr/bin/clang -fPIC -Wall -W -Wno-unused-parameter -Wwrite-strings -Wmissing-field-initializers -pedantic -Wno-long-long -Wcovered-switch-default -DC_WCOMMENT_ALLOWS_LINE_WRAP -Werror -o CMakeFiles/cmTryCompileExec3385359576.dir/src.c.o -c /home/nobled/code/llvm-b9/CMakeFiles/CMakeTmp/src.c After: Building C object CMakeFiles/cmTryCompileExec3385359576.dir/src.c.o /usr/bin/clang -fPIC -Wall -W -Wno-unused-parameter -Wwrite-strings -Wmissing-field-initializers -pedantic -Wno-long-long -Wcovered-switch-default -DC_WCOMMENT_ALLOWS_LINE_WRAP -Werror -Wcomment -o CMakeFiles/cmTryCompileExec3385359576.dir/src.c.o -c /home/nobled/code/llvm-b9/CMakeFiles/CMakeTmp/src.c llvm-svn: 216328
* cmake: disable -Wnon-virtual-dtor when it gives false positivesDylan Noblesmith2014-08-231-2/+14
| | | | | | | | | clang has only been smart enough not to trigger -Wnon-virtual-dtor warnings on final classes since r208449 (in clang 3.5). Building with older versions is extremely noisy, so disable the warning on those compilers. llvm-svn: 216327
* Disabling an MSVC warning ('var' : definition from the for loop is ignored; ↵Aaron Ballman2014-08-181-0/+1
| | | | | | the definition from the enclosing scope is used) which will trigger false positives more than true positives. llvm-svn: 215895
* Make message about building sphinx documentation with CMake moreDan Liew2014-08-141-1/+1
| | | | | | informative by stating where the output is going. llvm-svn: 215635
* Add SPHINX_WARNINGS_AS_ERRORS CMake option to allow warnings to not beDan Liew2014-08-142-1/+10
| | | | | | | treated as errors (which is still the default). This is useful when working on documentation that has existing errors. llvm-svn: 215634
* Emit a warning if llvm_map_components_to_libraries() is used noting that itsDan Liew2014-07-281-1/+3
| | | | | | | | | | use is deprecated in favour of llvm_map_components_to_libnames() Although message(DEPRECATION "msg") would probably be a better fit this does nothing if CMAKE_ERROR_DEPRECATED and CMAKE_WARNING_DEPRECATED are both off, which is the default. llvm-svn: 214078
* Add LLVM_TOOLS_BINARY_DIR variable to LLVMConfig.cmake so clientsDan Liew2014-07-223-1/+4
| | | | | | | | | of LLVM using CMake can easily find the tools directory. LLVM_BUILD_TOOLS_BINARY_DIR was removed because it is now superfluous. llvm-svn: 213674
* Export LLVM_ENABLE_RTTI and LLVM_ENABLE_EH in LLVMConfig.cmake soDan Liew2014-07-222-0/+18
| | | | | | | clients of LLVM know if RTTI and/or EH were enabled in the build of LLVM they are trying to link against. llvm-svn: 213664
* Added LLVM_ENABLE_RTTI and LLVM_ENABLE_EH options that allow RTTI and EHDan Liew2014-07-222-3/+17
| | | | | | | | to globally be controlled. Individual targets (e.g. ExceptionDemo) can still override this by using LLVM_REQUIRE_RTTI and LLVM_REQUIRE_EH if they need to be compiled with RTTI or exception handling respectively. llvm-svn: 213663
OpenPOWER on IntegriCloud