configure_lit_site_cfg(
  ${CMAKE_CURRENT_SOURCE_DIR}/lit.common.configured.in
  ${CMAKE_CURRENT_BINARY_DIR}/lit.common.configured)

# BlocksRuntime and builtins testsuites are not yet ported to lit.
# add_subdirectory(BlocksRuntime)
# add_subdirectory(builtins)

set(SANITIZER_COMMON_LIT_TEST_DEPS)
# When ANDROID, we build tests with the host compiler (i.e. CMAKE_C_COMPILER),
# and run tests with tools from the host toolchain.
if(NOT ANDROID)
  if(NOT COMPILER_RT_STANDALONE_BUILD)
    # Use LLVM utils and Clang from the same build tree.
    list(APPEND SANITIZER_COMMON_LIT_TEST_DEPS
      clang clang-headers FileCheck count not llvm-nm llvm-symbolizer
      compiler-rt-headers)
  endif()
  if(UNIX)
    list(APPEND SANITIZER_COMMON_LIT_TEST_DEPS SanitizerLintCheck)
  endif()
endif()

# Run sanitizer tests only if we're sure that clang would produce
# working binaries.
if(COMPILER_RT_CAN_EXECUTE_TESTS)
  if(ASAN_SUPPORTED_ARCH OR ANDROID)
    add_subdirectory(asan)
  endif()
  if(DFSAN_SUPPORTED_ARCH)
    add_subdirectory(dfsan)
  endif()
  if(LSAN_SUPPORTED_ARCH)
    add_subdirectory(lsan)
  endif()
  if(MSAN_SUPPORTED_ARCH)
    add_subdirectory(msan)
  endif()
  if(PROFILE_SUPPORTED_ARCH)
    add_subdirectory(profile)
  endif()
  if(SANITIZER_COMMON_SUPPORTED_ARCH)
    add_subdirectory(sanitizer_common)
  endif()
  if(TSAN_SUPPORTED_ARCH)
    add_subdirectory(tsan)
  endif()
  if(UBSAN_SUPPORTED_ARCH)
    add_subdirectory(ubsan)
  endif()
endif()

if(COMPILER_RT_STANDALONE_BUILD)
  # Now that we've traversed all the directories and know all the lit testsuites,
  # introduce a rule to run to run all of them.
  get_property(LLVM_LIT_TESTSUITES GLOBAL PROPERTY LLVM_LIT_TESTSUITES)
  get_property(LLVM_LIT_DEPENDS GLOBAL PROPERTY LLVM_LIT_DEPENDS)
  add_lit_target(check-all
    "Running all regression tests"
    ${LLVM_LIT_TESTSUITES}
    DEPENDS ${LLVM_LIT_DEPENDS})
endif()
