cmake_minimum_required(VERSION 3.20)
project(NablaQuant
    VERSION 0.1.0
    LANGUAGES CXX
    DESCRIPTION "High-Performance PDE Option Pricing Engine"
)

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

if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
    add_compile_options(-Wall -Wextra -Wpedantic -O2 -mavx2 -mfma)
elseif(MSVC)
    add_compile_options(/W4 /O2 /arch:AVX2)
endif()

include_directories(${CMAKE_SOURCE_DIR}/include)

option(NABLA_BUILD_PYTHON "Build Python bindings via pybind11" ON)

add_subdirectory(src)

enable_testing()
add_subdirectory(tests)
add_subdirectory(examples)

if(NABLA_BUILD_PYTHON)
    add_subdirectory(python)
endif()
