|  | # Discover the projects that use CMake in the subdirectories. | 
|  | # Note that explicit cmake invocation is required every time a new project is | 
|  | # added or removed. | 
|  | file(GLOB entries *) | 
|  | foreach(entry ${entries}) | 
|  | if(IS_DIRECTORY ${entry} AND EXISTS ${entry}/CMakeLists.txt) | 
|  | if((NOT ${entry} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR}/compiler-rt) AND | 
|  | (NOT ${entry} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR}/dragonegg) AND | 
|  | (NOT ${entry} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR}/libcxx) AND | 
|  | (NOT ${entry} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR}/libcxxabi) AND | 
|  | (NOT ${entry} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR}/libunwind) AND | 
|  | (NOT ${entry} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR}/test-suite) AND | 
|  | (NOT ${entry} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR}/parallel-libs) AND | 
|  | (NOT ${entry} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR}/openmp) AND | 
|  | (NOT ${entry} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR}/debuginfo-tests)) | 
|  | add_subdirectory(${entry}) | 
|  | endif() | 
|  | endif() | 
|  | endforeach(entry) | 
|  |  | 
|  | # Also add in libc++ and compiler-rt trees if present (and we have | 
|  | # a sufficiently recent version of CMake where required). | 
|  | if(${LLVM_BUILD_RUNTIME}) | 
|  | # MSVC isn't quite working with libc++ yet, disable it until issues are | 
|  | # fixed. | 
|  | # FIXME: LLVM_FORCE_BUILD_RUNTIME is currently used by libc++ to force | 
|  | # enable the in-tree build when targeting clang-cl. | 
|  | if(NOT MSVC OR LLVM_FORCE_BUILD_RUNTIME) | 
|  | # Add the projects in reverse order of their dependencies so that the | 
|  | # dependent projects can see the target names of their dependencies. | 
|  | add_llvm_external_project(libunwind) | 
|  | add_llvm_external_project(libcxxabi) | 
|  | add_llvm_external_project(libcxx) | 
|  | endif() | 
|  | if(NOT LLVM_BUILD_EXTERNAL_COMPILER_RT) | 
|  | add_llvm_external_project(compiler-rt) | 
|  | endif() | 
|  | endif() | 
|  |  | 
|  | add_llvm_external_project(dragonegg) | 
|  | add_llvm_external_project(parallel-libs) | 
|  | add_llvm_external_project(openmp) | 
|  |  | 
|  | if(LLVM_INCLUDE_TESTS) | 
|  | add_llvm_external_project(debuginfo-tests) | 
|  | endif() |