Introduce KMP_COMPILER_ICX macro to represent compilation with oneAPI compiler. Fixup flag detection and compiler ID detection in CMake. Older CMake's detect IntelLLVM as Clang. Fix compiler warnings. Fixup many of the tests to have non-empty parallel regions as they are elided by oneAPI compiler.
46 lines
1.6 KiB
CMake
46 lines
1.6 KiB
CMake
# 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)
|
|
pythonize_bool(OPENMP_STANDALONE_BUILD)
|
|
pythonize_bool(OPENMP_TEST_COMPILER_HAS_OMIT_FRAME_POINTER_FLAGS)
|
|
|
|
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)
|