cmake_minimum_required(VERSION 3.20)

project(whetstone_rsa LANGUAGES CXX)

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

add_library(whetstone_rsa_core
    src/diagnosis_engine.cpp
    src/probe_registry.cpp
    src/suitability_assessor.cpp
    src/probes/confidence_threshold_probe.cpp
)

target_include_directories(whetstone_rsa_core
    PUBLIC
        ${CMAKE_CURRENT_SOURCE_DIR}/include
)

target_compile_features(whetstone_rsa_core PUBLIC cxx_std_20)

if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
    target_compile_options(whetstone_rsa_core PRIVATE -Wall -Wextra -Wpedantic)
endif()

add_executable(whetstone_rsa_demo
    examples/diagnose_demo.cpp
)

target_link_libraries(whetstone_rsa_demo PRIVATE whetstone_rsa_core)
