cmake_minimum_required(VERSION 2.8.12)
project(triangle)

include(GNUInstallDirs)

add_library(triangleLib triangle.c exports.def)
add_executable(triangle triangle.c)

target_compile_definitions(triangleLib PRIVATE -DTRILIBRARY -DANSI_DECLARATORS)
target_compile_definitions(triangle PRIVATE -DANSI_DECLARATORS)
if(WIN32)
   target_compile_definitions(triangleLib PRIVATE -DNO_TIMER)
   target_compile_definitions(triangle PRIVATE -DNO_TIMER)
endif()

if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
    target_link_libraries(triangle m)
endif()

target_include_directories(triangleLib PUBLIC
    $<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}>
)

set_target_properties(triangleLib PROPERTIES POSITION_INDEPENDENT_CODE ON)

set_target_properties(triangleLib PROPERTIES PUBLIC_HEADER
    "${CMAKE_SOURCE_DIR}/triangle.h"
)

set_target_properties(triangleLib PROPERTIES OUTPUT_NAME "triangle")

install(TARGETS triangleLib EXPORT triangleTargets
    ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
    PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
)

install(TARGETS triangle DESTINATION tools/triangle)

install(EXPORT triangleTargets
  FILE triangleConfig.cmake
  NAMESPACE triangle::
  DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/triangle"
)