llvm/offload/test/CMakeLists.txt

# CMakeLists.txt file for unit testing OpenMP offloading runtime library.
if(NOT CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR
   CMAKE_CXX_COMPILER_VERSION VERSION_LESS 6.0.0)
  message(STATUS "Can only test with Clang compiler in version 6.0.0 or later.")
  message(WARNING "The check-offload target will not be available!")
  return()
endif()

if(LIBOMPTARGET_ENABLE_DEBUG)
  set(LIBOMPTARGET_DEBUG True)
else()
  set(LIBOMPTARGET_DEBUG False)
endif()

if (NOT OPENMP_STANDALONE_BUILD AND "compiler-rt" IN_LIST LLVM_ENABLE_RUNTIMES)
  set(LIBOMPTARGET_TEST_GPU_PGO True)
else()
  set(LIBOMPTARGET_TEST_GPU_PGO False)
endif()

# Replace the space from user's input with ";" in case that CMake add escape
# char into the lit command.
string(REPLACE " " ";" LIBOMPTARGET_LIT_ARG_LIST "${LIBOMPTARGET_LIT_ARGS}")

find_package(CUDAToolkit QUIET)
if(CUDAToolkit_FOUND)
  get_filename_component(CUDA_ROOT "${CUDAToolkit_BIN_DIR}" DIRECTORY ABSOLUTE)
  get_filename_component(CUDA_LIBDIR "${CUDA_cudart_static_LIBRARY}" DIRECTORY)
endif()

string(REGEX MATCHALL "([^\ ]+\ |[^\ ]+$)" SYSTEM_TARGETS "${LIBOMPTARGET_SYSTEM_TARGETS}")
foreach(CURRENT_TARGET IN LISTS SYSTEM_TARGETS)
  string(STRIP "${CURRENT_TARGET}" CURRENT_TARGET)

  add_offload_testsuite(check-libomptarget-${CURRENT_TARGET}
    "Running libomptarget tests"
    ${CMAKE_CURRENT_BINARY_DIR}/${CURRENT_TARGET}
    DEPENDS omptarget omp ${LIBOMPTARGET_TESTED_PLUGINS}
    ARGS ${LIBOMPTARGET_LIT_ARG_LIST})
  list(APPEND LIBOMPTARGET_LIT_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/${CURRENT_TARGET})

  # Configure the lit.site.cfg.in file
  set(AUTO_GEN_COMMENT "## Autogenerated by libomptarget configuration.\n# Do not edit!")
  configure_file(lit.site.cfg.in ${CURRENT_TARGET}/lit.site.cfg @ONLY)
endforeach()


add_offload_testsuite(check-libomptarget
  "Running libomptarget tests"
  ${LIBOMPTARGET_LIT_TESTSUITES}
  EXCLUDE_FROM_CHECK_ALL
  DEPENDS omptarget omp ${LIBOMPTARGET_TESTED_PLUGINS}
  ARGS ${LIBOMPTARGET_LIT_ARG_LIST})

add_offload_testsuite(check-offload
  "Running libomptarget tests"
  ${LIBOMPTARGET_LIT_TESTSUITES}
  EXCLUDE_FROM_CHECK_ALL
  DEPENDS omptarget omp ${LIBOMPTARGET_TESTED_PLUGINS}
  ARGS ${LIBOMPTARGET_LIT_ARG_LIST})