llvm-project/llvm/cmake/modules
Chandler Carruth cad7e5e0b4 Add support for linking against a curses library when available and
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
2013-08-07 08:47:36 +00:00
..
AddLLVM.cmake Replacing /GR with /GR- instead of applying both options to the project. This should reduce some build bot warnings (D9025: "overriding '/GR' with '/GR-'"). 2013-08-06 23:34:04 +00:00
AddLLVMDefinitions.cmake cmake/*: Add svn:eol-style=native and fix CRLF. 2011-02-03 11:41:27 +00:00
CMakeLists.txt Undo an over zealous rename. This bit of the CMake build really is 2012-01-24 18:00:44 +00:00
CheckAtomic.cmake Rename LLVM_MULTITHREADED define and fix build without threads. 2011-09-19 20:43:23 +00:00
ChooseMSVCCRT.cmake Fix CRT selection logic when using CMake NMake generator. 2011-11-06 23:37:22 +00:00
GetHostTriple.cmake Undo an over zealous rename. This bit of the CMake build really is 2012-01-24 18:00:44 +00:00
GetSVN.cmake Introduce a tiny CMake project to gather Subversion revision information and place it into a header. 2013-03-25 23:14:19 +00:00
HandleLLVMOptions.cmake Make sure that -gsplit-dwarf isn't passed to the linker. 2013-07-30 22:34:30 +00:00
LLVM-Config.cmake Add support for linking against a curses library when available and 2013-08-07 08:47:36 +00:00
LLVMConfig.cmake.in Add support for linking against a curses library when available and 2013-08-07 08:47:36 +00:00
LLVMConfigVersion.cmake.in CMake: support for using LLVM from client projects with find_package. 2011-04-10 16:17:49 +00:00
LLVMParseArguments.cmake Add the PARSE_ARGUMENTS CMake macro to LLVM so I can use it to clean 2011-02-19 18:01:15 +00:00
LLVMProcessSources.cmake CMake: Include private headers / tablegen files in generated Xcode projects. 2012-10-23 21:36:55 +00:00
TableGen.cmake Pass -G argument to cmake with the same generator's name as used for the 2013-08-01 18:04:07 +00:00
VersionFromVCS.cmake CMake: Don't run 'git svn' if there is no .git/svn directory. 2012-12-10 19:03:37 +00:00