# CMakeLists.txt file for unit testing Archer runtime library. include(CheckFunctionExists) include(CheckLibraryExists) # 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 LIBARCHER_HAVE_BUILTIN_ATOMIC) if(NOT LIBARCHER_HAVE_BUILTIN_ATOMIC) check_library_exists(atomic __atomic_load_1 "" LIBARCHER_HAVE_LIBATOMIC) else() # not needed set(LIBARCHER_HAVE_LIBATOMIC 0) endif() set(LIBARCHER_TEST_PATH ${CMAKE_CURRENT_SOURCE_DIR}) set(LIBARCHER_TEST_FLAGS "" CACHE STRING "Extra compiler flags to send to the test compiler.") macro(pythonize_bool var) if (${var}) set(${var} True) else() set(${var} False) endif() endmacro() pythonize_bool(LIBARCHER_HAVE_LIBATOMIC) pythonize_bool(OPENMP_TEST_COMPILER_HAS_TSAN_FLAGS) set(ARCHER_TSAN_TEST_DEPENDENCE "") if(TARGET tsan) set(ARCHER_TSAN_TEST_DEPENDENCE tsan) endif() add_openmp_testsuite(check-libarcher "Running libarcher tests" ${CMAKE_CURRENT_BINARY_DIR} DEPENDS archer omp ${ARCHER_TSAN_TEST_DEPENDENCE}) # Configure the lit.site.cfg.in file set(AUTO_GEN_COMMENT "## Autogenerated by libarcher configuration.\n# Do not edit!") configure_file(lit.site.cfg.in lit.site.cfg @ONLY)