cmake_minimum_required(VERSION 3.20)
project(immer-tests)

enable_testing()

find_package(Immer REQUIRED)
# alias used by the examples
add_library(immer-dev ALIAS immer)

# used internally by the CMakeLists.txt of the examples
function(immer_target_name_for outvar_target outvar_output path)
  cmake_path(GET path PARENT_PATH directory)
  cmake_path(GET path STEM filename)
  cmake_path(GET directory FILENAME directory_name)
  set(${outvar_target} "${directory_name}-${filename}" PARENT_SCOPE)
  set(${outvar_output} "${directory_name}-${filename}" PARENT_SCOPE)
endfunction()

add_custom_target(check)
set(examples_that_need_libgc
  vector-gc
)

add_subdirectory(examples)

foreach(_target IN LISTS examples_that_need_libgc)
  target_link_libraries(${_target} PRIVATE gc)
  target_compile_definitions(${_target} PRIVATE IMMER_HAS_LIBGC=1)
endforeach()
