From: Kefu Chai Date: Thu, 4 Mar 2021 07:04:13 +0000 (+0800) Subject: cmake: define BUILD_BYPRODUCTS for spdk-ext X-Git-Tag: v17.1.0~2681^2~7 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=0e83f0d3335e195fcb9a4928dbf61ebdf14ffa4a;p=ceph.git cmake: define BUILD_BYPRODUCTS for spdk-ext so if a cmake generator needs any one of them, it knowns how to build it. Signed-off-by: Kefu Chai --- diff --git a/cmake/modules/BuildSPDK.cmake b/cmake/modules/BuildSPDK.cmake index 05a6b23700676..17b2d74cd1996 100644 --- a/cmake/modules/BuildSPDK.cmake +++ b/cmake/modules/BuildSPDK.cmake @@ -26,9 +26,21 @@ macro(build_spdk) # default arch used by SPDK set(target_arch native) endif() + + set(source_dir "${CMAKE_SOURCE_DIR}/src/spdk") + foreach(c lvol env_dpdk sock nvmf bdev nvme conf thread trace notify accel event_accel blob vmd event_vmd event_bdev sock_posix event_sock event rpc jsonrpc json util log) + add_library(spdk::${c} STATIC IMPORTED) + set(lib_path "${source_dir}/build/lib/${CMAKE_STATIC_LIBRARY_PREFIX}spdk_${c}${CMAKE_STATIC_LIBRARY_SUFFIX}") + set_target_properties(spdk::${c} PROPERTIES + IMPORTED_LOCATION "${lib_path}" + INTERFACE_INCLUDE_DIRECTORIES "${source_dir}/include") + list(APPEND spdk_libs "${lib_path}") + list(APPEND SPDK_LIBRARIES spdk::${c}) + endforeach() + ExternalProject_Add(spdk-ext DEPENDS dpdk-ext - SOURCE_DIR ${CMAKE_SOURCE_DIR}/src/spdk + SOURCE_DIR ${source_dir} CONFIGURE_COMMAND ./configure --with-dpdk=${DPDK_DIR} --without-isal @@ -39,17 +51,13 @@ macro(build_spdk) # unset $LDFLAGS, otherwise SPDK will fail to mock some functions. BUILD_COMMAND env -i PATH=$ENV{PATH} CC=${CMAKE_C_COMPILER} ${make_cmd} EXTRA_CFLAGS="${spdk_CFLAGS}" BUILD_IN_SOURCE 1 + BUILD_BYPRODUCTS ${spdk_libs} INSTALL_COMMAND "true") unset(make_cmd) - ExternalProject_Get_Property(spdk-ext source_dir) - foreach(c lvol env_dpdk sock nvmf bdev nvme conf thread trace notify accel event_accel blob vmd event_vmd event_bdev sock_posix event_sock event rpc jsonrpc json util log) - add_library(spdk::${c} STATIC IMPORTED) - add_dependencies(spdk::${c} spdk-ext) - set_target_properties(spdk::${c} PROPERTIES - IMPORTED_LOCATION "${source_dir}/build/lib/${CMAKE_STATIC_LIBRARY_PREFIX}spdk_${c}${CMAKE_STATIC_LIBRARY_SUFFIX}" - INTERFACE_INCLUDE_DIRECTORIES "${source_dir}/include") - list(APPEND SPDK_LIBRARIES spdk::${c}) + foreach(spdk_lib ${SPDK_LIBRARIES}) + 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