51 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
# Copyright (c) 2022-2024 Barcelona Supercomputing Center (BSC)
 | 
						|
# SPDX-License-Identifier: GPL-3.0-or-later
 | 
						|
 | 
						|
check_c_compiler_flag("-fopenmp=libompv" OPENMPV_COMPILER_FOUND)
 | 
						|
check_linker_flag(C "-fopenmp=libompv" OPENMPV_LINKER_FOUND)
 | 
						|
cmake_path(GET CMAKE_C_COMPILER PARENT_PATH CMAKE_C_COMPILER_PATH)
 | 
						|
 | 
						|
if(NOT OPENMPV_COMPILER_FOUND OR NOT OPENMPV_LINKER_FOUND)
 | 
						|
  if(ENABLE_ALL_TESTS)
 | 
						|
    message(FATAL_ERROR "Compiler doesn't support -fopenmp=libompv flag, cannot enable OpenMP-V RT tests")
 | 
						|
  else()
 | 
						|
    message(STATUS "Compiler doesn't support -fopenmp=libompv flag, disabling OpenMP-V RT tests")
 | 
						|
  endif()
 | 
						|
  return()
 | 
						|
endif()
 | 
						|
 | 
						|
function(openmp_rt_test)
 | 
						|
  ovni_test(${ARGN})
 | 
						|
  target_compile_options("${OVNI_TEST_NAME}" PUBLIC "-fopenmp=libompv"
 | 
						|
	  "-no-pedantic")
 | 
						|
  target_link_options("${OVNI_TEST_NAME}" PUBLIC "-fopenmp=libompv")
 | 
						|
  target_link_libraries("${OVNI_TEST_NAME}" PRIVATE "m")
 | 
						|
  set_property(TEST "${OVNI_TEST_NAME}" APPEND PROPERTY
 | 
						|
    ENVIRONMENT "OMP_OVNI=1")
 | 
						|
  set_property(TEST "${OVNI_TEST_NAME}" APPEND PROPERTY
 | 
						|
    ENVIRONMENT "NOSV_CONFIG_OVERRIDE=instrumentation.version=ovni")
 | 
						|
endfunction()
 | 
						|
 | 
						|
openmp_rt_test(barrier-explicit.c)
 | 
						|
openmp_rt_test(critical.c)
 | 
						|
openmp_rt_test(if0-nested-task.c)
 | 
						|
openmp_rt_test(if0.c)
 | 
						|
openmp_rt_test(multi-parallels.c)
 | 
						|
openmp_rt_test(parallel-for.c)
 | 
						|
openmp_rt_test(parallel-loop.c)
 | 
						|
openmp_rt_test(parallel-nested.c)
 | 
						|
openmp_rt_test(parallel-task.c)
 | 
						|
openmp_rt_test(sections.c)
 | 
						|
openmp_rt_test(simple-task.c)
 | 
						|
openmp_rt_test(task.c)
 | 
						|
openmp_rt_test(taskloop.c)
 | 
						|
openmp_rt_test(taskwait.c)
 | 
						|
openmp_rt_test(team-distribute.c)
 | 
						|
openmp_rt_test(worksharing-and-tasks.c)
 | 
						|
openmp_rt_test(worksharing-mix.c)
 | 
						|
openmp_rt_test(worksharing-task.c)
 | 
						|
openmp_rt_test(worksharing.c)
 | 
						|
openmp_rt_test(worksharing01.c)
 | 
						|
openmp_rt_test(worksharing02.c)
 | 
						|
openmp_rt_test(worksharing03.c)
 |