cmake_minimum_required(VERSION 3.16)
project(livstats LANGUAGES CXX VERSION 0.1.0)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

add_library(stats src/stats.cpp)
target_include_directories(stats PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include)
target_compile_options(stats PRIVATE -Wall -Wextra)
set_target_properties(stats PROPERTIES POSITION_INDEPENDENT_CODE ON)

set(PYBIND11_FINDPYTHON ON)
find_package(pybind11 CONFIG REQUIRED)

pybind11_add_module(livstats python/bindings.cpp)
target_link_libraries(livstats PRIVATE stats)

install(TARGETS livstats DESTINATION .)

if(NOT SKBUILD)
  enable_testing()
  find_package(Catch2 3 REQUIRED)
  add_executable(test_stats tests/test_stats.cpp)
  target_link_libraries(test_stats PRIVATE stats Catch2::Catch2WithMain)
  include(Catch)
  catch_discover_tests(test_stats)
endif()
