cmake_minimum_required(VERSION 3.18)
project(stochmod_core LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

find_package(Python REQUIRED COMPONENTS Interpreter Development.Module)
find_package(pybind11 CONFIG REQUIRED)

include_directories(${CMAKE_SOURCE_DIR}/cpp)
include_directories(${CMAKE_SOURCE_DIR}/third_party)

pybind11_add_module(_stochmod_core
    cpp/bindings.cpp
    cpp/StochasticModule.cpp
    cpp/ModelLibrary.cpp
)

target_compile_definitions(_stochmod_core PRIVATE EIGEN_DONT_PARALLELIZE)
install(TARGETS _stochmod_core DESTINATION stochmod)
