# 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() list(APPEND OPENMP_TEST_COMPILER_FEATURE_LIST "${LIBOMP_ARCH}") update_test_compiler_features() pythonize_bool(LIBOMP_USE_HWLOC) pythonize_bool(LIBOMP_OMPT_SUPPORT) pythonize_bool(LIBOMP_OMPT_OPTIONAL) pythonize_bool(LIBOMP_OMPX_TASKGRAPH) pythonize_bool(LIBOMP_HAVE_LIBM) pythonize_bool(LIBOMP_HAVE_LIBATOMIC) pythonize_bool(OPENMP_STANDALONE_BUILD) pythonize_bool(OPENMP_TEST_COMPILER_HAS_OMIT_FRAME_POINTER_FLAGS) pythonize_bool(OPENMP_TEST_COMPILER_HAS_OMP_H) 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)