text: # CMakeLists.txt file for unit testing OpenMP host runtime library.
  include(CheckFunctionExists)
  include(CheckLibraryExists)
  
  # Some tests use math functions
  check_library_exists(m sqrt "" LIBOMP_HAVE_LIBM)
  # When using libgcc, -latomic may be needed for atomics
  # (but when using compiler-rt, the atomics will be built-in)
  # Note: we can not check for __atomic_load because clang treats it
  # as special built-in and that breaks CMake checks
  check_function_exists(__atomic_load_1 LIBOMP_HAVE_BUILTIN_ATOMIC)
  if(NOT LIBOMP_HAVE_BUILTIN_ATOMIC)
    check_library_exists(atomic __atomic_load_1 "" LIBOMP_HAVE_LIBATOMIC)
  else()
    # not needed
    set(LIBOMP_HAVE_LIBATOMIC 0)
  endif()
  
  macro(pythonize_bool var)
    if (${var})
      set(${var} True)
    else()
      set(${var} False)
    endif()
  endmacro()
  
  pythonize_bool(LIBOMP_USE_HWLOC)
  pythonize_bool(LIBOMP_OMPT_SUPPORT)
  pythonize_bool(LIBOMP_OMPT_OPTIONAL)
  pythonize_bool(LIBOMP_HAVE_LIBM)
  pythonize_bool(LIBOMP_HAVE_LIBATOMIC)
  
  add_library(ompt-print-callback INTERFACE)
  target_include_directories(ompt-print-callback INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/ompt)
  
  
  add_openmp_testsuite(check-libomp "Running libomp tests" ${CMAKE_CURRENT_BINARY_DIR} DEPENDS omp)
  # Add target check-ompt, but make sure to not add the tests twice to check-openmp.
  add_openmp_testsuite(check-ompt "Running OMPT tests" ${CMAKE_CURRENT_BINARY_DIR}/ompt EXCLUDE_FROM_CHECK_ALL DEPENDS omp)
  
  # Configure the lit.site.cfg.in file
  set(AUTO_GEN_COMMENT "## Autogenerated by libomp configuration.\n# Do not edit!")
  configure_file(lit.site.cfg.in lit.site.cfg @ONLY)
  