# Including the actual Polyhedral source files
file(GLOB_RECURSE SRC
        "${CMAKE_CURRENT_SOURCE_DIR}/*.h"
        "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp")

add_library(${PROJECT_NAME}_lib STATIC ${SRC} ${KD_TREE_GENERATED_INFO_HEADER})
add_library(KDTree::${PROJECT_NAME}_lib ALIAS ${PROJECT_NAME}_lib)

if (NOT BUILD_KD_TREE_EXECUTABLE)
    add_library(KDTree::${PROJECT_NAME} ALIAS ${PROJECT_NAME}_lib)
endif()

set_target_properties(${PROJECT_NAME}_lib PROPERTIES
            ARCHIVE_OUTPUT_DIRECTORY ${KD_TREE_BINARY_DIR}
            LIBRARY_OUTPUT_DIRECTORY ${KD_TREE_BINARY_DIR}
            RUNTIME_OUTPUT_DIRECTORY ${KD_TREE_BINARY_DIR}
)

# Install targets, headers and exported target file for package config
include(GNUInstallDirs)

install(TARGETS ${PROJECT_NAME}_lib tetgen_lib
    EXPORT KDTreeTargets
    ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
    INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/KDTree
)

install(EXPORT KDTreeTargets
    NAMESPACE KDTree::
    FILE KDTreeTargets.cmake
    DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/KDTree
)

install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/
    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/KDTree
    FILES_MATCHING PATTERN "*.h" PATTERN "*.hpp"
)
