forked from llvm-mirror/llvm
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[CMake] Cleanup tools/CMakeLists.txt to take advantage of the auto-re…
…gistration 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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@242705 91177308-0d34-0410-b5e6-96231b3b80d8
- Loading branch information
Chris Bieneman
committed
Jul 20, 2015
1 parent
a4b0d86
commit 4ee8a18
Showing
2 changed files
with
84 additions
and
97 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,85 +1,37 @@ | ||
add_llvm_tool_subdirectory(llvm-config) | ||
# This file will recurse into all subdirectories that contain CMakeLists.txt | ||
# Setting variables that match the pattern LLVM_TOOL_{NAME}_BUILD to Off will | ||
# prevent traversing into a directory. | ||
# | ||
# The only tools that need to be explicitly added are ones that have explicit | ||
# ordering requirements. | ||
|
||
# Iterates all the subdirectories to create CMake options to enable/disable | ||
# traversing each directory. | ||
create_llvm_tool_options() | ||
|
||
# Build polly before the tools: the tools link against polly when | ||
# LINK_POLLY_INTO_TOOLS is set. | ||
if(WITH_POLLY) | ||
add_llvm_external_project(polly) | ||
else(WITH_POLLY) | ||
list(APPEND LLVM_IMPLICIT_PROJECT_IGNORE "${LLVM_MAIN_SRC_DIR}/tools/polly") | ||
endif(WITH_POLLY) | ||
|
||
if( LLVM_BUILD_LLVM_DYLIB ) | ||
add_llvm_tool_subdirectory(llvm-shlib) | ||
else() | ||
ignore_llvm_tool_subdirectory(llvm-shlib) | ||
set(LLVM_TOOL_POLLY_BUILD Off) | ||
endif() | ||
|
||
add_llvm_tool_subdirectory(opt) | ||
add_llvm_tool_subdirectory(llvm-as) | ||
add_llvm_tool_subdirectory(llvm-dis) | ||
add_llvm_tool_subdirectory(llvm-mc) | ||
|
||
add_llvm_tool_subdirectory(llc) | ||
add_llvm_tool_subdirectory(llvm-ar) | ||
add_llvm_tool_subdirectory(llvm-nm) | ||
add_llvm_tool_subdirectory(llvm-size) | ||
|
||
add_llvm_tool_subdirectory(llvm-cov) | ||
add_llvm_tool_subdirectory(llvm-profdata) | ||
add_llvm_tool_subdirectory(llvm-link) | ||
add_llvm_tool_subdirectory(lli) | ||
|
||
add_llvm_tool_subdirectory(llvm-extract) | ||
add_llvm_tool_subdirectory(llvm-diff) | ||
add_llvm_tool_subdirectory(macho-dump) | ||
add_llvm_tool_subdirectory(llvm-objdump) | ||
add_llvm_tool_subdirectory(llvm-readobj) | ||
add_llvm_tool_subdirectory(llvm-rtdyld) | ||
add_llvm_tool_subdirectory(llvm-dwarfdump) | ||
add_llvm_tool_subdirectory(dsymutil) | ||
add_llvm_tool_subdirectory(llvm-cxxdump) | ||
if( LLVM_USE_INTEL_JITEVENTS ) | ||
add_llvm_tool_subdirectory(llvm-jitlistener) | ||
else() | ||
ignore_llvm_tool_subdirectory(llvm-jitlistener) | ||
endif( LLVM_USE_INTEL_JITEVENTS ) | ||
|
||
add_llvm_tool_subdirectory(bugpoint) | ||
add_llvm_tool_subdirectory(bugpoint-passes) | ||
add_llvm_tool_subdirectory(llvm-bcanalyzer) | ||
add_llvm_tool_subdirectory(llvm-stress) | ||
add_llvm_tool_subdirectory(llvm-mcmarkup) | ||
|
||
add_llvm_tool_subdirectory(verify-uselistorder) | ||
|
||
add_llvm_tool_subdirectory(llvm-symbolizer) | ||
|
||
add_llvm_tool_subdirectory(llvm-c-test) | ||
|
||
add_llvm_tool_subdirectory(obj2yaml) | ||
add_llvm_tool_subdirectory(yaml2obj) | ||
|
||
add_llvm_tool_subdirectory(llvm-go) | ||
|
||
add_llvm_tool_subdirectory(llvm-pdbdump) | ||
|
||
if(NOT CYGWIN AND LLVM_ENABLE_PIC) | ||
add_llvm_tool_subdirectory(lto) | ||
add_llvm_tool_subdirectory(llvm-lto) | ||
else() | ||
ignore_llvm_tool_subdirectory(lto) | ||
ignore_llvm_tool_subdirectory(llvm-lto) | ||
if(NOT LLVM_BUILD_LLVM_DYLIB ) | ||
set(LLVM_TOOL_LLVM_SHLIB_BUILD Off) | ||
endif() | ||
|
||
add_llvm_tool_subdirectory(gold) | ||
if(NOT LLVM_USE_INTEL_JITEVENTS ) | ||
set(LLVM_TOOL_LLVM_JITLISTENER_BUILD Off) | ||
endif() | ||
|
||
add_llvm_external_project(clang) | ||
add_llvm_external_project(llgo) | ||
add_llvm_external_project(lld) | ||
add_llvm_external_project(lldb) | ||
if(CYGWIN OR NOT LLVM_ENABLE_PIC) | ||
set(LLVM_TOOL_LTO_BUILD Off) | ||
set(LLVM_TOOL_LLVM_LTO_BUILD Off) | ||
endif() | ||
|
||
# Automatically add remaining sub-directories containing a 'CMakeLists.txt' | ||
# file as external projects. | ||
add_llvm_implicit_external_projects() | ||
add_llvm_implicit_projects() | ||
|
||
set(LLVM_COMMON_DEPENDS ${LLVM_COMMON_DEPENDS} PARENT_SCOPE) |