pkg_check_modules(ATTACHMENT_SUPPORT_URING REQUIRED liburing)

add_library(attachmentSupport SHARED
	compute.cpp
	stimulusProducer.cpp
	stagingBuffer.cpp
)

set_target_properties(attachmentSupport PROPERTIES
	VERSION ${PROJECT_VERSION}
	SOVERSION ${PROJECT_VERSION_MAJOR}
)

target_include_directories(attachmentSupport PUBLIC
	${Boost_INCLUDE_DIRS}
	${CMAKE_SOURCE_DIR}/include
	${CMAKE_BINARY_DIR}/include
)
target_include_directories(attachmentSupport PRIVATE
	${ATTACHMENT_SUPPORT_URING_INCLUDE_DIRS}
)

target_link_libraries(attachmentSupport PUBLIC
	Boost::system
	Boost::log
	spinscale
)
target_link_libraries(attachmentSupport PRIVATE
	${ATTACHMENT_SUPPORT_URING_LIBRARIES}
)
target_link_directories(attachmentSupport PRIVATE
	${ATTACHMENT_SUPPORT_URING_LIBRARY_DIRS}
)

# Verify Boost dynamic dependencies after build
add_custom_command(TARGET attachmentSupport POST_BUILD
	COMMAND ${CMAKE_COMMAND} -DVERIFY_FILE="$<TARGET_FILE:attachmentSupport>"
		-P ${CMAKE_SOURCE_DIR}/cmake/VerifyBoostDynamic.cmake
	COMMENT "Verifying Boost dynamic dependencies for attachmentSupport"
)

# Install rules
install(TARGETS attachmentSupport
	LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} NAMELINK_SKIP
)
