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. Summary: 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 Reviewers: bogner, samsonov, chapuni, beanz Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D10665 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@241621 91177308-0d34-0410-b5e6-96231b3b80d8
- Loading branch information
Chris Bieneman
committed
Jul 7, 2015
1 parent
2b88d93
commit 651c390
Showing
2 changed files
with
52 additions
and
88 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) |