cmake_minimum_required(VERSION 3.20)
project(immer-tests)

enable_testing()

find_package(Immer REQUIRED)

function(get_target_name path outvar)
  cmake_path(GET path PARENT_PATH directory)
  cmake_path(GET path STEM filename)
  cmake_path(GET directory FILENAME directory_name)
  set(${outvar} "${directory_name}-${filename}" PARENT_SCOPE)
endfunction()

file(GLOB_RECURSE immer_examples LIST_DIRECTORIES FALSE "/usr/share/doc/libimmer-dev/examples/*.cpp")
foreach(_file IN LISTS immer_examples)
  get_target_name("${_file}" _target)
  add_executable(${_target} "${_file}")
  target_link_libraries(${_target} immer gc)
  target_compile_definitions(${_target} PRIVATE IMMER_HAS_LIBGC=1)
  add_test("${_target}" ${_target})
endforeach()
