diff --git a/cmake/modules/BuildSPDK.cmake b/cmake/modules/BuildSPDK.cmake index 0a6acc8d059..d6ce97e1d2e 100644 --- a/cmake/modules/BuildSPDK.cmake +++ b/cmake/modules/BuildSPDK.cmake @@ -68,12 +68,14 @@ macro(build_spdk) add_dependencies(${spdk_lib} spdk-ext) endforeach() - set_target_properties(spdk::env_dpdk PROPERTIES - INTERFACE_LINK_LIBRARIES "dpdk::dpdk;rt") - set_target_properties(spdk::lvol PROPERTIES - INTERFACE_LINK_LIBRARIES spdk::util) - set_target_properties(spdk::util PROPERTIES - INTERFACE_LINK_LIBRARIES ${UUID_LIBRARIES}) set(SPDK_INCLUDE_DIR "${source_dir}/include") + add_library(spdk::spdk INTERFACE IMPORTED) + add_dependencies(spdk::spdk + ${SPDK_LIBRARIES}) + # workaround for https://review.spdk.io/gerrit/c/spdk/spdk/+/6798 + set_target_properties(spdk::spdk PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES ${SPDK_INCLUDE_DIR} + INTERFACE_LINK_LIBRARIES + "-Wl,--whole-archive $ -Wl,--no-whole-archive;dpdk::dpdk;rt;${UUID_LIBRARIES}") unset(source_dir) endmacro() diff --git a/src/blk/CMakeLists.txt b/src/blk/CMakeLists.txt index aaebc3c99f0..37b9c0a410c 100644 --- a/src/blk/CMakeLists.txt +++ b/src/blk/CMakeLists.txt @@ -35,7 +35,8 @@ if(HAVE_LIBAIO) endif(HAVE_LIBAIO) if(WITH_SPDK) - target_link_libraries(blk PRIVATE ${SPDK_LIBRARIES}) + target_link_libraries(blk + PRIVATE spdk::spdk) endif() if(WITH_ZBD)