# CMakeLists.txt file for unit testing OMPT multiplex header.
include(CheckFunctionExists)
include(CheckLibraryExists)

macro(pythonize_bool var)
  if (${var})
    set(${var} True)
  else()
    set(${var} False)
  endif()
endmacro()

set(OMPT_LOAD_CLIENT_TEST_CFLAGS "" CACHE STRING
  "Extra compiler flags to send to the test compiler")

get_target_property(OMPT_PRINT_CALLBACKS_DIR ompt-print-callback INTERFACE_INCLUDE_DIRECTORIES)
add_openmp_testsuite(check-ompt-multiplex "Running OMPT multiplex tests" ${CMAKE_CURRENT_BINARY_DIR} DEPENDS omp)

# Configure the lit.site.cfg.in file
set(AUTO_GEN_COMMENT "## Autogenerated by OMPT_LOAD_CLIENT configuration.\n# Do not edit!")
configure_file(lit.site.cfg.in lit.site.cfg @ONLY)
