set(target_name tbpm)

# Headers and SRC
file(GLOB_RECURSE BUILD_SRC *.hpp *.cpp *.c *.h)
file(GLOB install_list *.h *.hpp)

# Binary targets
add_library(${target_name} OBJECT ${BUILD_SRC})
tbp_set_math_lib(${target_name})

# begin_link_order
target_link_libraries(${target_name} PUBLIC base)
if(WITH_CUDA)
    target_link_libraries(${target_name} PUBLIC cuda)
endif()
# end_link_order

#install target ${target_name}
install(
    TARGETS ${target_name}
    EXPORT tbplasTargets
    LIBRARY DESTINATION ${TBPLAS_LIB_INSTALL_PATH}
    ARCHIVE DESTINATION ${TBPLAS_LIB_ARCHIVE_INSTALL_PATH}
    DESTINATION ${TBPLAS_LIB_ARCHIVE_INSTALL_PATH})

# Headers targets
install(
    FILES ${install_list}
    DESTINATION ${TBPLAS_INCLUDE_INSTALL_PATH}/${target_name}
    PERMISSIONS OWNER_READ GROUP_READ WORLD_READ
)
install(
    DIRECTORY math
    DESTINATION ${TBPLAS_INCLUDE_INSTALL_PATH}/${target_name}
)
