-# 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 )
-
-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)
+add_llvm_tool_subdirectory(llvm-config)
+
+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)
+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(llvm-symbolizer)
+
+add_llvm_tool_subdirectory(llvm-c-test)
+
+add_llvm_tool_subdirectory(obj2yaml)
+add_llvm_tool_subdirectory(yaml2obj)
+
+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")
+ OR (CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") )
+ add_llvm_tool_subdirectory(gold)
+ else()
+ ignore_llvm_tool_subdirectory(gold)
+ endif()
+else()
+ ignore_llvm_tool_subdirectory(gold)