| # 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() | |
| set(LLVM_TOOL_POLLY_BUILD Off) | |
| endif() | |
| if(NOT LLVM_BUILD_LLVM_DYLIB ) | |
| set(LLVM_TOOL_LLVM_SHLIB_BUILD Off) | |
| endif() | |
| if(NOT LLVM_USE_INTEL_JITEVENTS ) | |
| set(LLVM_TOOL_LLVM_JITLISTENER_BUILD Off) | |
| endif() | |
| if(CYGWIN OR NOT LLVM_ENABLE_PIC) | |
| set(LLVM_TOOL_LTO_BUILD Off) | |
| set(LLVM_TOOL_LLVM_LTO_BUILD Off) | |
| endif() | |
| # Add LTO, llvm-ar, llvm-config, and llvm-profdata before clang, ExternalProject | |
| # requires targets specified in DEPENDS to exist before the call to | |
| # ExternalProject_Add. | |
| add_llvm_tool_subdirectory(lto) | |
| add_llvm_tool_subdirectory(gold) | |
| add_llvm_tool_subdirectory(llvm-ar) | |
| add_llvm_tool_subdirectory(llvm-config) | |
| add_llvm_tool_subdirectory(llvm-lto) | |
| add_llvm_tool_subdirectory(llvm-profdata) | |
| # Projects supported via LLVM_EXTERNAL_*_SOURCE_DIR need to be explicitly | |
| # specified. | |
| add_llvm_external_project(clang) | |
| add_llvm_external_project(llgo) | |
| add_llvm_external_project(lld) | |
| add_llvm_external_project(lldb) | |
| # Automatically add remaining sub-directories containing a 'CMakeLists.txt' | |
| # file as external projects. | |
| add_llvm_implicit_projects() | |
| # Add subprojects specified using LLVM_EXTERNAL_PROJECTS | |
| foreach(p ${LLVM_EXTERNAL_PROJECTS}) | |
| add_llvm_external_project(${p}) | |
| endforeach(p) | |
| set(LLVM_COMMON_DEPENDS ${LLVM_COMMON_DEPENDS} PARENT_SCOPE) |