Files
slopetimize/CMakeLists.txt
T
2026-10-06 17:20:47 +02:00

49 lines
1.2 KiB
CMake

cmake_minimum_required(VERSION 4.0)
set(CMAKE_C_COMPILER clang)
set(CMAKE_CXX_COMPILER clang++)
set(CMAKE_CXX_STANDARD 23)
project(slopefit)
add_compile_options(-Wall -Werror -Wpedantic)
find_package(Eigen3 REQUIRED)
find_package(Python 3.13 COMPONENTS Interpreter Development.Module REQUIRED)
execute_process(
COMMAND "${Python_EXECUTABLE}" -m nanobind --cmake_dir
OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE nanobind_ROOT)
find_package(nanobind CONFIG REQUIRED)
file(GLOB_RECURSE SOURCES lib/*.cpp)
add_library(autoopt STATIC ${SOURCES})
target_include_directories(autoopt PUBLIC include)
target_link_libraries(autoopt PUBLIC Eigen3::Eigen)
target_link_libraries(autoopt PRIVATE fftw3)
nanobind_add_module(slopefit NOMINSIZE src/module.cpp)
nanobind_add_stub(
slopefit_stub
MODULE slopefit
OUTPUT slopefit.pyi
PYTHON_PATH $<TARGET_FILE_DIR:slopefit>
DEPENDS slopefit
)
target_link_libraries(slopefit PRIVATE autoopt)
install(TARGETS slopefit DESTINATION .)
install(FILES $<TARGET_FILE_DIR:slopefit>/slopefit.pyi DESTINATION .)
# add tests if gtest is found
enable_testing()
add_subdirectory(tests)
find_library(GTestPackage gtest QUIET)
if(GTestPackage)
endif()