set(lib formfactor)
set(${lib}_LIBRARY ${lib} PARENT_SCOPE)

file(GLOB src_files *.cpp)
set(api_files
    Box.h
    Face.h
    IBody.h
    Make.h
    Polyhedron.h
    Prism.h
    Topology.h
    )

add_library(${lib} ${src_files})

target_include_directories(${lib}
    PUBLIC
    "$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}>"
    "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>")

# LibHeinz >= 3.0 exports LibHeinz::LibHeinz; older versions only set LibHeinz_INCLUDE_DIR
if(NOT TARGET LibHeinz::LibHeinz)
    add_library(LibHeinz::LibHeinz INTERFACE IMPORTED GLOBAL)
    set_target_properties(LibHeinz::LibHeinz PROPERTIES
        INTERFACE_INCLUDE_DIRECTORIES "${LibHeinz_INCLUDE_DIR}")
endif()
target_link_libraries(${lib} PUBLIC LibHeinz::LibHeinz)

set_target_properties(
    ${lib} PROPERTIES
    OUTPUT_NAME ${lib}
    VERSION ${PROJECT_VERSION})

install(
    TARGETS ${lib}
    EXPORT formfactorTargets
    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
    RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR}
    ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})

install(
    FILES ${api_files}
    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ff)
