CPMAddPackage("gh:catchorg/Catch2@3.14.0")

list(APPEND CMAKE_MODULE_PATH ${catch2_SOURCE_DIR}/extras)

add_executable(Benchmarks
  sql/StatementCacheBenchmark.cpp
  ../orm/backend/test_backend_service.cpp
  ../orm/backend/test_backend_service.hpp
  ../orm/backend/test_connection.cpp
  ../orm/backend/test_connection.hpp
  ../orm/backend/test_parameter_binder.cpp
  ../orm/backend/test_parameter_binder.hpp
  ../orm/backend/test_result_reader.cpp
  ../orm/backend/test_result_reader.hpp
  ../orm/backend/test_statement.cpp
  ../orm/backend/test_statement.hpp
  ../utils/MetricsObserver.hpp
  ../utils/MetricsObserver.cpp
  ../utils/RecordingObserver.hpp
  ../utils/RecordingObserver.cpp
)

target_link_libraries(Benchmarks matador-orm matador-core Catch2::Catch2WithMain)

target_include_directories(Benchmarks
  PUBLIC
  PRIVATE $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}>/test
)

#if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
#  target_compile_options(CoreTests PRIVATE -coverage)
#  target_link_options(CoreTests PRIVATE -coverage)
#endif ()

add_test(NAME Benchmarks COMMAND Benchmarks)
