cmake_minimum_required(VERSION 3.18)
project(tcren LANGUAGES CXX)

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

if(NOT CMAKE_BUILD_TYPE)
    set(CMAKE_BUILD_TYPE Release)
endif()

# pybind11's modern FindPython path (silences CMP0148 deprecation warnings).
set(PYBIND11_FINDPYTHON ON)
find_package(pybind11 CONFIG REQUIRED)

# Fitting-alignment discrimination for MHC pseudosequence (MPS) matching. See src/_align/align.cpp.
pybind11_add_module(_align src/_align/align.cpp)
target_compile_options(_align PRIVATE -O3)

install(TARGETS _align DESTINATION tcren)
