X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=tools%2FCMakeLists.txt;h=78a0b42babce6b9259e68b7cee4b39dde8e90513;hb=789dde4b5074e786ebdcbec5deca370664d10d75;hp=531b87151253282807e2b08cd2aa002220cf835a;hpb=72c0d7fdd3d0930c7507060e96aec7d7429a8190;p=oota-llvm.git diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt index 531b8715125..78a0b42babc 100644 --- a/tools/CMakeLists.txt +++ b/tools/CMakeLists.txt @@ -1,69 +1,81 @@ -# NOTE: The tools are organized into groups of four consisting of one large and -# three small executables. This is done to minimize memory load in parallel -# builds. Please retain this ordering. +add_llvm_tool_subdirectory(llvm-config) -# If polly exists and is not disabled compile it and add it to the LLVM tools. -option(LLVM_BUILD_POLLY "Compile polly" ON) -if( EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/polly/CMakeLists.txt ) - if (LLVM_BUILD_POLLY) - add_subdirectory( ${CMAKE_CURRENT_SOURCE_DIR}/polly) - endif (LLVM_BUILD_POLLY) -endif( EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/polly/CMakeLists.txt ) +add_llvm_tool_subdirectory(opt) +add_llvm_tool_subdirectory(llvm-as) +add_llvm_tool_subdirectory(llvm-dis) +add_llvm_tool_subdirectory(llvm-mc) -if( NOT WIN32 OR MSYS OR CYGWIN ) - # It is useful to build llvm-config before the other tools, so we - # have a fresh LibDeps.txt for regenerating the hard-coded library - # dependencies. llvm-config/CMakeLists.txt takes care of this but we - # must keep llvm-config as the first entry on the list of tools to - # be built. - add_subdirectory(llvm-config) -endif() +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_subdirectory(opt) -add_subdirectory(llvm-as) -add_subdirectory(llvm-dis) -add_subdirectory(llvm-mc) +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) +if( LLVM_USE_INTEL_JITEVENTS ) + add_llvm_tool_subdirectory(llvm-jitlistener) +else() + ignore_llvm_tool_subdirectory(llvm-jitlistener) +endif( LLVM_USE_INTEL_JITEVENTS ) -add_subdirectory(llc) -add_subdirectory(llvm-ranlib) -add_subdirectory(llvm-ar) -add_subdirectory(llvm-nm) +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_subdirectory(llvm-ld) -add_subdirectory(llvm-prof) -add_subdirectory(llvm-link) -add_subdirectory(lli) +add_llvm_tool_subdirectory(llvm-symbolizer) -add_subdirectory(llvm-extract) -add_subdirectory(llvm-diff) -add_subdirectory(macho-dump) -add_subdirectory(llvm-objdump) -add_subdirectory(llvm-rtdyld) -add_subdirectory(llvm-dwarfdump) +add_llvm_tool_subdirectory(llvm-c-test) -add_subdirectory(bugpoint) -add_subdirectory(bugpoint-passes) -add_subdirectory(llvm-bcanalyzer) -add_subdirectory(llvm-stub) -add_subdirectory(edis) -add_subdirectory(llvmc) +add_llvm_tool_subdirectory(obj2yaml) +add_llvm_tool_subdirectory(yaml2obj) -if( NOT WIN32 ) - add_subdirectory(lto) +if( NOT CYGWIN ) + add_llvm_tool_subdirectory(lto) + add_llvm_tool_subdirectory(llvm-lto) +else() + ignore_llvm_tool_subdirectory(lto) + ignore_llvm_tool_subdirectory(llvm-lto) endif() if( LLVM_ENABLE_PIC ) # TODO: support other systems: - if( CMAKE_SYSTEM_NAME STREQUAL "Linux" ) - add_subdirectory(gold) + if( (CMAKE_SYSTEM_NAME STREQUAL "Linux") + OR (CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") ) + add_llvm_tool_subdirectory(gold) + else() + ignore_llvm_tool_subdirectory(gold) endif() +else() + ignore_llvm_tool_subdirectory(gold) endif() -if( EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/clang/CMakeLists.txt ) - option(LLVM_BUILD_CLANG "Whether to build Clang as part of LLVM" ON) - if (${LLVM_BUILD_CLANG}) - add_subdirectory( ${CMAKE_CURRENT_SOURCE_DIR}/clang ) - endif() -endif( EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/clang/CMakeLists.txt ) +add_llvm_external_project(clang) + +if( NOT LLVM_INCLUDE_TOOLS STREQUAL "bootstrap-only" ) + add_llvm_external_project(lld) + add_llvm_external_project(lldb) + + if(WITH_POLLY) + add_llvm_external_project(polly) + else(WITH_POLLY) + list(APPEND LLVM_IMPLICIT_PROJECT_IGNORE "${CMAKE_CURRENT_SOURCE_DIR}/polly") + endif(WITH_POLLY) + + # Automatically add remaining sub-directories containing a 'CMakeLists.txt' + # file as external projects. + add_llvm_implicit_external_projects() +endif() set(LLVM_COMMON_DEPENDS ${LLVM_COMMON_DEPENDS} PARENT_SCOPE)