| # 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) |