2019-11-18 08:23:31 +08:00
|
|
|
# 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})
|
|
|
|
|
2020-01-14 15:44:06 +08:00
|
|
|
set(LIBARCHER_TEST_FLAGS "" CACHE STRING
|
|
|
|
"Extra compiler flags to send to the test compiler.")
|
|
|
|
|
2019-11-18 08:23:31 +08:00
|
|
|
macro(pythonize_bool var)
|
|
|
|
if (${var})
|
|
|
|
set(${var} True)
|
|
|
|
else()
|
|
|
|
set(${var} False)
|
|
|
|
endif()
|
|
|
|
endmacro()
|
|
|
|
|
|
|
|
pythonize_bool(LIBARCHER_HAVE_LIBATOMIC)
|
2020-01-14 15:44:06 +08:00
|
|
|
pythonize_bool(OPENMP_TEST_COMPILER_HAS_TSAN_FLAGS)
|
2019-11-18 08:23:31 +08:00
|
|
|
|
2020-10-30 16:36:07 +08:00
|
|
|
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})
|
2019-11-18 08:23:31 +08:00
|
|
|
|
|
|
|
# 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)
|