cmake_minimum_required(VERSION 3.10)
project(EigenUnsupportedBenchmarks CXX)

find_package(benchmark REQUIRED)
find_package(Threads REQUIRED)

set(EIGEN_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../..")

# Helper: add a Google Benchmark target (mirrors benchmarks/CMakeLists.txt).
#   eigen_add_benchmark(name source [LIBRARIES lib1 lib2 ...] [DEFINITIONS def1 def2 ...])
function(eigen_add_benchmark name source)
  cmake_parse_arguments(BENCH "" "" "LIBRARIES;DEFINITIONS" ${ARGN})
  if(NOT IS_ABSOLUTE "${source}")
    set(source "${CMAKE_CURRENT_SOURCE_DIR}/${source}")
  endif()
  add_executable(${name} ${source})
  target_include_directories(${name} PRIVATE ${EIGEN_SOURCE_DIR})
  target_link_libraries(${name} PRIVATE benchmark::benchmark benchmark::benchmark_main
                                        Threads::Threads)
  if(BENCH_LIBRARIES)
    target_link_libraries(${name} PRIVATE ${BENCH_LIBRARIES})
  endif()
  target_compile_options(${name} PRIVATE -O3 -DNDEBUG)
  if(BENCH_DEFINITIONS)
    target_compile_definitions(${name} PRIVATE ${BENCH_DEFINITIONS})
  endif()
endfunction()

add_subdirectory(Tensor)
add_subdirectory(MatrixFunctions)
add_subdirectory(SpecialFunctions)
add_subdirectory(AutoDiff)
add_subdirectory(Splines)
add_subdirectory(IterativeSolvers)
add_subdirectory(KroneckerProduct)
