Mercurial > hg > CbC > CbC_llvm
diff tools/CMakeLists.txt @ 171:66f3bfe93da9
git version 2c4ca6832fa6b306ee6a7010bfb80a3f2596f824
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 25 May 2020 11:07:02 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tools/CMakeLists.txt Mon May 25 11:07:02 2020 +0900 @@ -0,0 +1,58 @@ +# 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 AND NOT LLVM_BUILD_LLVM_C_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) +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)