summaryrefslogtreecommitdiffstats
path: root/llvm/cmake/modules
Commit message (Collapse)AuthorAgeFilesLines
* Revert my CMake patches concerning building with /MT (r194589, r194596)Hans Wennborg2013-11-131-13/+0
| | | | | | Reid pointed out we already have LLVM_USE_CRT_{buildtype} to set it. llvm-svn: 194604
* CMake: make building with /MT an option instead of always forcing itHans Wennborg2013-11-131-2/+5
| | | | | | | | | | | | | for release builds. This is a follow-up to r194589. Aaron pointed out that building libraries with /MT and using them in an application that uses a different run-time library can be a bad idea. Move the option to build with /MT behind a CMake option so it can be turned on selectively, such as when building the toolchain installer. llvm-svn: 194596
* cmake: link release builds statically against run-time library on windows ↵Hans Wennborg2013-11-131-0/+10
| | | | | | | | | | | (use /MT instead of /MD) This should fix the problem of snapshot builds created with MSVC 2012 not working for users with MSVC 2010, etc. Differential Revision: http://llvm-reviews.chandlerc.com/D2157 llvm-svn: 194589
* Remove NDBEUG from all release types compile flags.Yaron Keren2013-10-191-2/+7
| | | | llvm-svn: 193031
* CMake: set stack size for MSVC in just one placeHans Wennborg2013-10-171-3/+8
| | | | | | | | | | | After r192904, Reid pointed out he thought we already set the stack size for MSVC. Turns out we did, but it didn't seem to work. This commit sets the stack size in a single place, using CMAKE_EXE_LINKER_FLAGS because that seems to be the way that works best. llvm-svn: 192912
* CMake: set stack size to 2MB for MSVC buildsHans Wennborg2013-10-171-0/+4
| | | | | | | | | | Compiling under Visual C++ 2012 with the default stack size of 1MB, the stack overflows at a depth of 216 template instantiations, well before the 256 default limit. This patch modifies the default MSVC stack size to 2MB. Patch by Yaron Keren! llvm-svn: 192904
* cmake: don't set LLVM_COMPILER_IS_GCC_COMPATIBLE when using clang-clHans Wennborg2013-10-071-0/+2
| | | | | | | | | Tip-of-tree CMake has become clang-cl aware [1]. In this case, CMAKE_CXX_COMPILER_ID will still be Clang, but MSVC will be true. [1] See http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=3d8356d4 llvm-svn: 192139
* Revert "Revert "Windows: Add support for unicode command lines""David Majnemer2013-10-072-2/+2
| | | | | | | This reverts commit r192070 which reverted r192069, I forgot to regenerate the configure scripts. llvm-svn: 192079
* Revert "Windows: Add support for unicode command lines"David Majnemer2013-10-062-2/+2
| | | | | | | This is causing MinGW bots to fail. This reverts commit r192069. llvm-svn: 192070
* Windows: Add support for unicode command linesDavid Majnemer2013-10-062-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: The MSVCRT deliberately sends main() code-page specific characters. This isn't too useful to LLVM as we end up converting the arguments to UTF-16 and subsequently attempt to use the result as, for example, a file name. Instead, we need to have the ability to access the Unicode command line and transform it to UTF-8. This has the distinct advantage over using the MSVC-specific wmain() function as our entry point because: - It doesn't work on cygwin. - It only work on MinGW with caveats and only then on certain versions. - We get to keep our entry point as main(). :) N.B. This patch includes fixes to other parts of lib/Support/Windows s.t. we would be able to take advantage of getting the Unicode paths. E.G. clang spawning clang -cc1 would want to give it Unicode arguments. Reviewers: aaron.ballman, Bigcheese, rnk, ruiu Reviewed By: rnk CC: llvm-commits, ygao Differential Revision: http://llvm-reviews.chandlerc.com/D1834 llvm-svn: 192069
* Reverts commit r190808 and r190556.Rafael Espindola2013-10-011-37/+17
| | | | | | The use of these features in clang has been reverted. llvm-svn: 191785
* [CMake] Hack GetSVN.cmake to handle unusual terminals.Jordan Rose2013-09-161-0/+3
| | | | | | | | I got a report of a hang in git's helper functions trying to figure out how to display results of "git svn info" when run inside ninja, even though the result is immediately piped to grep. This seems to avoid that. llvm-svn: 190808
* [CMake] Update GetSVN.cmake to use LLVM version control helper scripts.Jordan Rose2013-09-111-17/+34
| | | | | | | | | This allows the logic to work with Git, and also uses the variable names to match what Clang is actually looking for. This changes the interface of GetSVN.cmake. Clang change to follow. llvm-svn: 190556
* cmake: Install llvm-tblgen againHans Wennborg2013-09-101-0/+4
| | | | | | | | | | | It was removed in r189130, but it turns out this makes life hard for folks packaging LLVM and Clang and building the latter based on the LLVM package. Note that this only adds back the LLVM tblgen, and it's obviously not included when LLVM_INSTALL_TOOLCHAIN_ONLY is set. llvm-svn: 190419
* [CMake] Add -O1 in debug builds with LLVM_USE_SANITIZERAlexey Samsonov2013-09-021-0/+4
| | | | llvm-svn: 189747
* Translate ENABLE_CLANG_{ARCMT,REWRITER,STATIC_ANALYZER} when generatingRoman Divacky2013-08-271-0/+16
| | | | | | lit.site.cfg. llvm-svn: 189394
* CMake Xcode builds: symlink tblgen targets out to bin/.Douglas Gregor2013-08-261-0/+10
| | | | | | | | | | | Xcode always puts executable targets in the directory bin/<Config>. When building separate LLVM and Clang projects for Xcode, this prevents the CMake-configured project for Clang from finding llvm-tblgen. Add a symlink so that tblgen executables are always available in bin/ (regardless of the configuration LLVM is built with). llvm-svn: 189220
* CMake: Add LLVM_INSTALL_TOOLCHAIN_ONLY option.Hans Wennborg2013-08-242-23/+38
| | | | | | Differential Revision: http://llvm-reviews.chandlerc.com/D1428 llvm-svn: 189155
* CMake: don't install tablegenHans Wennborg2013-08-231-2/+0
| | | | | | | | Since it's an llvm-internal tool, we shouldn't install it. (This depends on Clang r189127 and lld r189128.) llvm-svn: 189130
* [CMake] Automatically pick up subdirectories in llvm/tools as 'external ↵Argyrios Kyrtzidis2013-08-211-0/+29
| | | | | | | | | projects' if they contain a 'CMakeLists.txt' file. Allow CMake to pick up external projects in llvm/tools without the need to modify the "llvm/tools/CMakeLists.txt" file. This makes it easier to work with projects that live in other repositories, without needing to specify each one in "llvm/tools/CMakeLists.txt". llvm-svn: 188921
* Suppress an annoying CMake warning in ChooseMSVCCRT.cmakeReid Kleckner2013-08-191-1/+1
| | | | | | | Warning was: Argument not separated from preceding token by whitespace. llvm-svn: 188701
* Re-disabling C4291 warnings for MSVC because AttributeList.h requires it. ↵Aaron Ballman2013-08-161-0/+1
| | | | | | This was accidentally removed in r187279. llvm-svn: 188530
* [CMake] add_llvm_library: Specify explicit suffix .imp to import library to ↵NAKAMURA Takumi2013-08-141-0/+5
| | | | | | | avoid a warning between profile_rt-static and profile_rt-shared with lib/profile_rt.lib. FIXME: It seems MS version of profile_rt.dll doesn't contain any export symbols. llvm-svn: 188351
* Target a minimal terminfo library rather than necessarily a full cursesChandler Carruth2013-08-122-11/+6
| | | | | | | | | | | | | | | | | | | | library for color support detection. This still will use a curses library if that is all we have available on the system. This change tries to use a smaller subset of the curses library, specifically the subset that is on some systems split off into a separate library. For example, if you install ncurses configured --with-tinfo, a 'libtinfo' is install that provides just the terminfo querying functionality. That library is now used instead of curses when it is available. This happens to fix a build error on systems with that library because when we tried to link ncurses into the binary, we didn't pull tinfo in as well. =] It should also provide an easy path for supporting the NetBSD libterminfo library, but as I don't have access to a NetBSD system I'm leaving adding that support to those folks. llvm-svn: 188160
* Add three missing CMake variables that need to make it to theChandler Carruth2013-08-081-0/+3
| | | | | | | LLVMConfig.cmake file that is (I think) used in the stand-alone Clang build, and causing link errors there w.r.t. curses. llvm-svn: 187950
* Add support for linking against a curses library when available andChandler Carruth2013-08-072-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | using it to detect whether or not a terminal supports colors. This replaces a particularly egregious hack that merely compared the TERM environment variable to "dumb". That doesn't really translate to a reasonable experience for users that have actually ensured their terminal's capabilities are accurately reflected. This makes testing a terminal for color support somewhat more expensive, but it is called very rarely anyways. The important fast path when the output is being piped somewhere is already in place. The global lock may seem excessive, but the spec for calling into curses is *terrible*. The whole library is terrible, and I spent quite a bit of time looking for a better way of doing this before convincing myself that this was the fundamentally correct way to behave. The damage of the curses library is very narrowly confined, and we continue to use raw escape codes for actually manipulating the colors which is a much sane system than directly using curses here (IMO). If this causes trouble for folks, please let me know. I've tested it on Linux and will watch the bots carefully. I've also worked to account for the variances of curses interfaces that I could finde documentation for, but that may not have been sufficient. llvm-svn: 187874
* Replacing /GR with /GR- instead of applying both options to the project. ↵Aaron Ballman2013-08-061-1/+1
| | | | | | This should reduce some build bot warnings (D9025: "overriding '/GR' with '/GR-'"). llvm-svn: 187836
* Pass -G argument to cmake with the same generator's name as used for theSimon Atanasyan2013-08-011-1/+2
| | | | | | | | initial cmake invocation. Patch reviewed by Reid Kleckner. llvm-svn: 187591
* Make sure that -gsplit-dwarf isn't passed to the linker.Eric Christopher2013-07-301-1/+1
| | | | llvm-svn: 187456
* Add capability for building with -gsplit-dwarf to the cmake build.Eric Christopher2013-07-301-0/+5
| | | | | | In limited testing this seems to work. Caveat emptor. llvm-svn: 187452
* Re-application of 187310. Re-enabling warning C4275 for MSVC 11 and up, but ↵Aaron Ballman2013-07-291-3/+8
| | | | | | not MSVC 10 since it is still required there. llvm-svn: 187354
* Partial revert of 187310; it seems MSVC 10 still spits out this warning, but ↵Aaron Ballman2013-07-281-1/+2
| | | | | | MSVC 11 does not. llvm-svn: 187331
* Re-enabling some more MSVC warnings; all of these compile cleanly with no ↵Aaron Ballman2013-07-271-2/+0
| | | | | | further changes required. llvm-svn: 187310
* Re-enabling a warning in MSVC mode now that r187292 fixed the only instance ↵Aaron Ballman2013-07-271-1/+0
| | | | | | of the warning. llvm-svn: 187293
* Re-enabling some more MSVC warnings; all of these compile cleanly with no ↵Aaron Ballman2013-07-271-4/+0
| | | | | | further changes required. llvm-svn: 187279
* Re-enabling the C4065 warning for MSVC builds as it no longer fires due to ↵Aaron Ballman2013-07-261-1/+0
| | | | | | tablegen. llvm-svn: 187252
* Tweak the cmake interaction between CMAKE_BUILD_TYPE and LLVM_ENABLE_ASSERTIONS.Duncan Sands2013-07-171-2/+2
| | | | | | | | | | | | | | The issue is that CMAKE_BUILD_TYPE=RelWithDebInfo LLVM_ENABLE_ASSERTIONS=ON was not building with assertions enabled. (I was unable to find what in the LLVM source tree was adding -DNDEBUG to the build line in this case, so decided that it must be cmake itself that was adding it - this may depend on the cmake version). The fix treats any mode that is not Debug as being the same as Release for this purpose (previously it was being assumed that cmake would only add -DNDEBUG for Release and not for RelWithDebInfo or MinSizeRel). If other versions of cmake don't add -DNDEBUG for RelWithDebInfo then that's OK: with this change you just get a useless but harmless -UNDEBUG or -DNDEBUG. llvm-svn: 186499
* Revert "Cmake: add compiler option in a more idiomatic way"Rafael Espindola2013-06-141-2/+4
| | | | | | | | | This reverts commit 183995. It broke the bots: http://bb.pgr.jp/builders/cmake-clang-x86_64-linux/builds/9730/steps/build_clang/logs/stdio llvm-svn: 183997
* Cmake: add compiler option in a more idiomatic wayArnaud A. de Grandmaison2013-06-141-4/+2
| | | | llvm-svn: 183995
* Add colored diagnostics when building LLVM with cmake + ninja + clangArnaud A. de Grandmaison2013-05-291-0/+7
| | | | | | When invoked from Ninja, clang does not detect that it can use colors : see https://github.com/martine/ninja/issues/174 llvm-svn: 182878
* Add basic zlib support to LLVM. This would allow to use ↵Alexey Samsonov2013-04-232-0/+6
| | | | | | compression/uncompression in selected LLVM tools. llvm-svn: 180083
* Remove the executable bit on cmake filesSylvestre Ledru2013-04-212-0/+0
| | | | llvm-svn: 179976
* Don't explicitly provide -pie in MSan bootstrap of LLVM, as it's now implied ↵Alexey Samsonov2013-04-121-2/+0
| | | | | | by the driver llvm-svn: 179367
* [cmake] Avoid rel+asserts warnings when passing -UNDEBUGReid Kleckner2013-04-071-0/+3
| | | | | | | MSVC 2012 gives warning D9025, "overriding /D NDEBUG with -UNDEBUG". Removing the original definition of NDEBUG silences this. llvm-svn: 178967
* Add CMake option LLVM_USE_SANITIZER={Address,Memory,MemoryWithOrigins} to ↵Alexey Samsonov2013-03-261-3/+42
| | | | | | simplify bootstrap of LLVM/Clang under ASan/MSan llvm-svn: 177992
* Introduce a tiny CMake project to gather Subversion revision information and ↵Douglas Gregor2013-03-251-0/+25
| | | | | | place it into a header. llvm-svn: 177938
* Don't use add_llvm_definitions for adding warning flags. It makes it too hardDuncan Sands2013-03-251-14/+20
| | | | | | | | | to have them appear in the right order. Instead append all warnings explicitly to the language flags. This was already the case for many warnings. Fixes the issue of -Wno-maybe-uninitialized not being effective because -Wall was being placed after it rather than before. llvm-svn: 177866
* Enable -Wnon-virtual-dtor build warningAlexey Samsonov2013-03-191-0/+2
| | | | llvm-svn: 177385
* Turn anonymous type in anonymous union warning back on after cleaning upEric Christopher2013-03-151-2/+0
| | | | | | issues. llvm-svn: 177136
* Simplify CMake rules in HandleLLVMOptions module.Alexey Samsonov2013-03-131-27/+26
| | | | | | | | | | | | | | Summary: No functionality change. Reviewers: Bigcheese Reviewed By: Bigcheese CC: llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D535 llvm-svn: 176973
OpenPOWER on IntegriCloud