summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
AgeCommit message (Collapse)AuthorFilesLines
2015-04-13[CMake] Updates to llvm-shlib to support overriding exports list and added ↵Chris Bieneman1-0/+1
an option to export all symbols. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@234798 91177308-0d34-0410-b5e6-96231b3b80d8
2015-04-07Enable W4 warnings by default for MSVC buildsAndrew Kaylor1-8/+1
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@234343 91177308-0d34-0410-b5e6-96231b3b80d8
2015-03-27CMake: enable installing utilsDerek Schuff1-0/+2
Added a new boolean CMake flag, LLVM_INSTALL_UTILS. When set, the 'install' target will include in the bin directory the utils binaries - e.g. FileCheck. This mirrors the autoconfig behavior. Test Plan: Locally verified that utils binaries are copied when flag is set, and not copied when flag is not set. Reviewers: jfb, dschuff, beanz Reviewed By: beanz Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D8587 Patch by Mircea Trofin git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@233385 91177308-0d34-0410-b5e6-96231b3b80d8
2015-03-26[ADT][CMake][AutoConf] Fail-fast iterators for DenseMapSanjoy Das1-0/+3
Summary: This patch is an attempt at making `DenseMapIterator`s "fail-fast". Fail-fast iterators that have been invalidated due to insertion into the host `DenseMap` deterministically trip an assert (in debug mode) on access, instead of non-deterministically hitting memory corruption issues. Enabling fail-fast iterators breaks the LLVM C++ ABI, so they are predicated on `LLVM_ENABLE_ABI_BREAKING_CHECKS`. `LLVM_ENABLE_ABI_BREAKING_CHECKS` by default flips with `LLVM_ENABLE_ASSERTS`, but can be clamped to ON or OFF using the CMake / autoconf build system. Reviewers: chandlerc, dexonsmith, rnk, zturner Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D8351 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@233310 91177308-0d34-0410-b5e6-96231b3b80d8
2015-03-25test: Fix the dependencies for the check-llvm-* targetsJustin Bogner1-5/+0
In r233009 we gained specific check-llvm-* build targets for invoking specific parts of the test suite, but they were copying the dependencies for check-all, rather than just listing the dependencies for check-llvm. This moves the creation of these targets next to the check-llvm target, and uses that target's configuration rather than the check-all config. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@233174 91177308-0d34-0410-b5e6-96231b3b80d8
2015-03-23Re-land: Generate targets for each lit suite.Chris Bieneman1-0/+5
Summary: This change makes CMake scan for lit suites and generate a target for each lit test suite. The targets follow the format check-<project>-<suite path>. For example: check-llvm-unit - Runs the LLVM unit tests check-llvm-codegen-arm - Runs the ARM codeine tests Note: These targets are not generated during multi-configuration generators (i.e. Xcode and Visual Studio) because target clutter impacts UI usability. * Also fixed a minor issue that Duncan pointed out to me I was passing the suite to lit twice Reviewers: chandlerc Subscribers: aemerson, llvm-commits Differential Revision: http://reviews.llvm.org/D8380 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@233009 91177308-0d34-0410-b5e6-96231b3b80d8
2015-03-23Raising minimum required CMake version to 2.8.12.2.Chris Bieneman1-13/+3
This commit is in reference to the llvm-dev thread: http://lists.cs.uiuc.edu/pipermail/llvmdev/2015-March/083672.html git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@233008 91177308-0d34-0410-b5e6-96231b3b80d8
2015-03-18Revert "Generate targets for each lit suite."Chris Bieneman1-5/+0
This change broke Polly. I'll track down the failure when I have a chance and re-apply the change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@232676 91177308-0d34-0410-b5e6-96231b3b80d8
2015-03-18Generate targets for each lit suite.Chris Bieneman1-0/+5
Summary: This change makes CMake scan for lit suites and generate a target for each lit test suite. The targets follow the format check-<project>-<suite path>. For example: check-llvm-unit - Runs the LLVM unit tests check-llvm-codegen-arm - Runs the ARM codeine tests Note: These targets are not generated during multi-configuration generators (i.e. Xcode and Visual Studio) because target clutter impacts UI usability. Reviewers: chandlerc Subscribers: aemerson, llvm-commits Differential Revision: http://reviews.llvm.org/D8380 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@232671 91177308-0d34-0410-b5e6-96231b3b80d8
2015-03-18CMake: Disable ENABLE_EXPORTS for executables with MSVCReid Kleckner1-1/+1
The MSVC linker won't produce a .lib file for an executable that doesn't export anything, and LLVM doesn't maintain dllexport annotations or .def files listing all C++ symbols. It also doesn't support exporting all symbols, like binutils ld. CMake 3.2 changed the Ninja generator to list both the .exe and .lib files as outputs of executable build targets. Ninja would always re-link executables with ENABLE_EXPORTS because the .lib output file was not present, and therefore the target was out of date. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@232662 91177308-0d34-0410-b5e6-96231b3b80d8
2015-03-10Add new LLVM_OPTIMIZED_TABLEGEN build setting which configures, builds and ↵Chris Bieneman1-2/+7
uses a release tablegen build when LLVM is configured with assertions enabled. Summary: This change leverages the cross-compiling functionality in the build system to build a release tablegen executable for use during the build. Reviewers: resistor, rnk Reviewed By: rnk Subscribers: rnk, joker.eph, llvm-commits Differential Revision: http://reviews.llvm.org/D7349 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@231842 91177308-0d34-0410-b5e6-96231b3b80d8
2015-03-07Teach the LLVM CMake build how to explicitly use libc++abi when usingChandler Carruth1-0/+1
libc++. This lets me almost self-host on Linux with libc++ and libc++abi very simply. Currently, MCJIT and OrcJIT are failing due to uncaught exceptions, and the Go binding tests are failing to build due to not linking in the correct C++ standard library. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@231560 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-27Minor follow-ups to r229720 suggested on llvmdevReid Kleckner1-1/+2
"svn" patch by Sedat Dilek plus trimming whitespace added in r229720. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@230773 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-24[CMake] Set policy CMP0051 to OLD globally.Zachary Turner1-0/+9
When you use generator expressions in a library sources list, and then later access the SOURCES property, the OLD behavior (CMake 3.0 and earlier) would not include these expressions in the SOURCES property. The NEW behavior (starting in CMake 3.1) is that they do include the generator expressions in the SOURCES property. Differential Revision: http://reviews.llvm.org/D7870 Reviewed By: Chris Bieneman git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@230396 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-24Revert "Raising minimum required CMake version to 2.8.12.2."Tobias Grosser1-3/+13
This reverts commit r230062. Debian stable (wheezy) ships still with cmake 2.8.9. The commit broke my LLVM/Polly buildbot, to my knowledge our only Linux+cmake buildbot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@230343 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-23Revert "Revert "Raising minimum required CMake version to 2.8.12.2.""Chad Rosier1-13/+3
This reverts commit r230240, which was an accidental commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@230246 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-23Revert "Raising minimum required CMake version to 2.8.12.2."Chad Rosier1-3/+13
This reverts commit 247aed4710e8befde76da42b27313661dea7cf66. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@230240 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-20Raising minimum required CMake version to 2.8.12.2.Chris Bieneman1-13/+3
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@230062 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-20Setting up CMake to default to Debug when no build type is specified.Chris Bieneman1-0/+5
Summary: Turns out if you don't set CMAKE_BUILD_TYPE the default is an empty string. This results in some of the behaviors of debug builds, but not all of them. For example ENABLE_ASSERTIONS is false. Reviewers: rnk Reviewed By: rnk Subscribers: chapuni, llvm-commits Differential Revision: http://reviews.llvm.org/D7360 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@230041 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-18Adding install targets for individual LLVM tools and libraries.Chris Bieneman1-0/+10
Summary: * add_llvm_tool and add_llvm_library now add install-${name} targets to install specific components * added installhdrs target to install just the LLVM headers * The above changes only apply for single-configuration generators (Ninja, Makefiles...), not for multi-configuration generators (Visual Studio, Xcode...) Reviewers: pete Reviewed By: pete Subscribers: pete, llvm-commits Differential Revision: http://reviews.llvm.org/D7619 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@229727 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-18Enable standard so versioning for libLLVM.Chris Bieneman1-0/+1
Summary: This resolves Bugzilla bug 15493. Reviewers: chapuni, pete Reviewed By: pete Subscribers: pete, llvm-commits Differential Revision: http://reviews.llvm.org/D6157 Conflicts: cmake/modules/AddLLVM.cmake git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@229720 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-15Update the docs to require at least MSVC 2013.Benjamin Kramer1-4/+0
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@229323 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-15Reapply r229185(cbieneman) -- Raising minimum required Visual Studio version ↵NAKAMURA Takumi1-0/+4
to 2013. This is based on the discussions on: [LLVMdev] [RFC] Raising LLVM minimum required MSVC version to 2013 for trunk git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@229320 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-14Revert r229185, "Raising minimum required Visual Studio version to 2013."NAKAMURA Takumi1-4/+0
All builders are not ready yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@229199 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-13Raising minimum required Visual Studio version to 2013.Chris Bieneman1-0/+4
This is based on the discussions on: [LLVMdev] [RFC] Raising LLVM minimum required MSVC version to 2013 for trunk git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@229185 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-09Revert "Raising minimum required CMake version to 2.8.12.2."Chris Bieneman1-1/+15
This reverts commit add62ac537d8249fa2161405066e318ca80e199d. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@228616 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-09Raising minimum required CMake version to 2.8.12.2.Chris Bieneman1-15/+1
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@228615 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-03Fix ProgramFiles path for 64-bit Windows installerHans Wennborg1-0/+3
If we are building an 64bit installer on Windows we have to adjust the Program Files path otherwise it uses the wrong Program Files (x86) directory. Related CMake bug report http://public.kitware.com/Bug/view.php?id=14211 Patch by Ismail Dönmez! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227999 91177308-0d34-0410-b5e6-96231b3b80d8
2015-01-14Trunk is now 3.7.0svnHans Wennborg1-1/+1
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@226004 91177308-0d34-0410-b5e6-96231b3b80d8
2014-12-29[py3] Teach the CMake build to reject Python versions older than 2.7.Chandler Carruth1-1/+7
Continue to require Python 2 however as recent experiments suggest LLDB's build requires it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@224948 91177308-0d34-0410-b5e6-96231b3b80d8
2014-12-29[cmake] Start making LLVM_LIBDIR_SUFFIX effective by adding it toChandler Carruth1-5/+6
*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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@224919 91177308-0d34-0410-b5e6-96231b3b80d8
2014-12-09Adding a new option to CMake to disable C++ atexit on llvm-shlib.Chris Bieneman1-0/+4
Summary: This is desirable for WebKit and other clients of the llvm-shlib because C++ exit time destructors have a tendency to crash when invoked from multi-threaded applications. Ideally this option will be temporary, because the ideal fix is to just not have exit time destructors. Reviewers: chapuni, ributzka Reviewed By: ributzka Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D6572 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@223805 91177308-0d34-0410-b5e6-96231b3b80d8
2014-12-01[OCaml] [cmake] Add CMake buildsystem for OCaml.Peter Zotov1-0/+6
Closes PR15325. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@223071 91177308-0d34-0410-b5e6-96231b3b80d8
2014-11-19Use ninja pools to limit the number of concurrent compile/link jobs.Evgeniy Stepanov1-0/+15
This change makes use of the new "job pool" capability in cmake 3.0 with ninja generator to allow limiting the number of concurrent jobs of a certain type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@222341 91177308-0d34-0410-b5e6-96231b3b80d8
2014-11-17CMake: Use the new USES_TERMINAL option for test suite targets when available.Peter Collingbourne1-0/+6
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@222181 91177308-0d34-0410-b5e6-96231b3b80d8
2014-11-07Pass PRIVATE to target_link_libraries if using shared libraries.Rafael Espindola1-0/+10
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@221530 91177308-0d34-0410-b5e6-96231b3b80d8
2014-10-23Adding llvm-shlib to CMake build system with a few new bells and whistlesChris Bieneman1-0/+2
Summary: This patch adds a new CMake build setting LLVM_BUILD_LLVM_DYLIB, which defaults to OFF. When set to ON, this will generate a shared library containing most of LLVM. The contents of the shared library can be overriden by specifying LLVM_DYLIB_COMPONENTS. LLVM_DYLIB_COMPONENTS can be set to a semi-colon delimited list of any LLVM components that you llvm-config can resolve. On Windows, unless you are using Cygwin, you must specify an explicit symbol export file using LLVM_EXPORTED_SYMBOL_FILE. On Cygwin and all unix-like platforms if you do not specify LLVM_EXPORTED_SYMBOL_FILE, an export file containing only the LLVM C API will be auto-generated from the list of LLVM components specified in LLVM_DYLIB_COMPONENTS. Reviewers: rnk Reviewed By: rnk Subscribers: rnk, llvm-commits Differential Revision: http://reviews.llvm.org/D5890 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@220490 91177308-0d34-0410-b5e6-96231b3b80d8
2014-09-26Add LLVM_ENABLE_MODULES flag to CMake to enable building with C++ modules.Richard Smith1-0/+1
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@218551 91177308-0d34-0410-b5e6-96231b3b80d8
2014-09-03Enabling LLVM & Clang to be cross-compiled using CMake from a single ↵Chris Bieneman1-0/+5
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@217105 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-01Fix building with in-tree libc++abi on FreeBSDViktor Kutuzov1-0/+1
Differential Revision: http://reviews.llvm.org/D4743 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@214541 91177308-0d34-0410-b5e6-96231b3b80d8
2014-07-28Update LLVM version: 3.5 => 3.6Hans Wennborg1-1/+1
We branched 3.5, it's now time to work on 3.6. This is Sylvestre's patch from [1] plus regenerated configure file by me, and minus the release notes reset, which Sean pointed out [2] should happen later. 1. http://reviews.llvm.org/D4660 2. http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20140721/111137.html git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@214131 91177308-0d34-0410-b5e6-96231b3b80d8
2014-07-04[CMake] Introduce LLVM_SHLIB_OUTPUT_INTDIR.NAKAMURA Takumi1-0/+6
For now, its user is configure_lit_site_cfg(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@212314 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-23Delete utils/FileUpdate.Rafael Espindola1-1/+0
It is unused and it looks like it was never used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211508 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-12Delete trailing whitespace.Matt Arsenault1-1/+1
Hopefully this forces cmake to re-run. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@210830 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-12CMake: don't install the internal config.h headerAlp Toker1-0/+1
Background: http://lists.cs.uiuc.edu/pipermail/llvmdev/2014-June/073707.html git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@210766 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-06Make LINK_POLLY_INTO_TOOLS work with the CMake buildAlp Toker1-3/+3
The option check was being performed after config.h/llvm-config.h substitution, generating incorrect macro definitions. Fixes PR19614. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@210311 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-24AArch64/ARM64: move ARM64 into AArch64's placeTim Northover1-2/+2
This commit starts with a "git mv ARM64 AArch64" and continues out from there, renaming the C++ classes, intrinsics, and other target-local objects for consistency. "ARM64" test directories are also moved, and tests that began their life in ARM64 use an arm64 triple, those from AArch64 use an aarch64 triple. Both should be equivalent though. This finishes the AArch64 merge, and everyone should feel free to continue committing as normal now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@209577 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-24AArch64/ARM64: remove AArch64 from tree prior to renaming ARM64.Tim Northover1-2/+1
I'm doing this in two phases for a better "git blame" record. This commit removes the previous AArch64 backend and redirects all functionality to ARM64. It also deduplicates test-lines and removes orphaned AArch64 tests. The next step will be "git mv ARM64 AArch64" and rewire most of the tests. Hopefully LLVM is still functional, though it would be even better if no-one ever had to care because the rename happens straight afterwards. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@209576 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-07[CMake] Add build rules for llvm-PerfectShuffle utilityAlexey Samsonov1-0/+1
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@208225 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-18Added Sphinx documentation generation to CMake build system.Reid Kleckner1-1/+2
The option LLVM_ENABLE_SPHINX option enables the "docs-llvm-html", "docs-llvm-man" targets but does not build them by default. The following CMake options have been added that control what targets are made available SPHINX_OUTPUT_HTML SPHINX_OUTPUT_MAN If LLVM_BUILD_DOCS is enabled then the enabled docs-llvm-* targets will be built by default and if ``make install`` is run then docs-llvm-html and docs-llvm-man will be installed (tested on Linux only). The add_sphinx_target function is in its own file so it can be included by other projects that use Sphinx for their documentation. Patch by Daniel Liew <daniel.liew@imperial.ac.uk>! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@206655 91177308-0d34-0410-b5e6-96231b3b80d8