cmake_minimum_required(VERSION 3.21)

project(parte-segmentation LANGUAGES CXX)

if(NOT TARGET Eigen3::Eigen)
  find_package(Eigen3 3.3 REQUIRED NO_MODULE)
endif()
find_package(OpenMP REQUIRED)

add_library(
  parte-seg
  normal_solver.cpp
  plane.cpp
  segmentation.cpp
  tgs.cpp
)
add_library(PARTE::segmentation ALIAS parte-seg)

target_compile_features(parte-seg PUBLIC cxx_std_20)
target_include_directories(
  parte-seg
  PUBLIC
    $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
)
target_link_libraries(
  parte-seg
  PUBLIC
    Eigen3::Eigen
    OpenMP::OpenMP_CXX
)
set_target_properties(
  parte-seg
  PROPERTIES
    CXX_EXTENSIONS OFF
    POSITION_INDEPENDENT_CODE ON
)
