[CMake] Cleanup tools/CMakeLists.txt to take advantage of the auto-registration that...
authorChris Bieneman <beanz@apple.com>
Mon, 20 Jul 2015 20:36:06 +0000 (20:36 +0000)
committerChris Bieneman <beanz@apple.com>
Mon, 20 Jul 2015 20:36:06 +0000 (20:36 +0000)
commit580d8159d537da316cc3a47f5b30a81260912ac1
tree12a82256914299582a4d0acd8a13ef874dc38218
parenteab97d3d47e24f208b964fb4a15475836a33ba82
[CMake] Cleanup tools/CMakeLists.txt to take advantage of the auto-registration that was already partially working.

Re-landing r242059 which re-landed r241621... I'm really bad at this.

Summary (r242059):
This change re-lands r241621, with an additional fix that was required to allow tool sources to live outside the llvm checkout. It also no longer renames LLVM_EXTERNAL_*_SOURCE_DIR. This change was reverted in r241663, because it renamed several variables of the format LLVM_EXTERNAL_*_* to LLVM_TOOL_*_*.

Summary (r241621):
The tools CMakeLists file already had implicit tool registration, but there were a few things off about it that needed to be altered to make it work. This change addresses all that. The changes in this patch are:

* factored out canonicalizing tool names from paths to CMake variables * removed the LLVM_IMPLICIT_PROJECT_IGNORE mechanism in favor of LLVM_EXTERNAL_${nameUPPER}_BUILD which I renamed to LLVM_TOOL_${nameUPPER}_BUILD because it applies to internal and external tools
* removed ignore_llvm_tool_subdirectory() in favor of just setting LLVM_TOOL_${nameUPPER}_BUILD to Off
* Added create_llvm_tool_options() to resolve a bug in add_llvm_external_project() - the old LLVM_EXTERNAL_${nameUPPER}_BUILD would not work on a clean CMake directory because the option could be created after it was set in code.
* Removed all but the minimum required calls to add_llvm_external_project from tools/CMakeLists.txt

Differential Revision: http://reviews.llvm.org/D10665

llvm-svn: 242705
llvm/cmake/modules/AddLLVM.cmake
llvm/tools/CMakeLists.txt