From: Yingxin Cheng Date: Wed, 6 Nov 2019 09:34:32 +0000 (+0800) Subject: crimson: build seastar dpdk from src/seastar/dpdk X-Git-Tag: v15.1.0~920^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=bf958abc0fc2d4d1879587e9a80ea9bd1524e1ff;p=ceph.git crimson: build seastar dpdk from src/seastar/dpdk src/spdk/dpdk and src/seastar/dpdk are both at their private branches with project-specific modifications, so select proper dpdk source directory according to flags WITH_SPDK and Seastar_DPDK. Signed-off-by: Yingxin Cheng --- diff --git a/cmake/modules/BuildDPDK.cmake b/cmake/modules/BuildDPDK.cmake index fbe42b62e0df..f858bedc91c1 100644 --- a/cmake/modules/BuildDPDK.cmake +++ b/cmake/modules/BuildDPDK.cmake @@ -79,9 +79,18 @@ function(do_build_dpdk dpdk_dir) set(make_cmd "${MAKE_EXECUTABLE}") endif() + if(Seastar_DPDK AND WITH_SPDK) + message(FATAL_ERROR "not able to build DPDK with " + "both Seastar_DPDK and WITH_SPDK enabled") + elseif(Seastar_DPDK) + set(dpdk_source_dir ${CMAKE_SOURCE_DIR}/src/seastar/dpdk) + else() # WITH_SPDK or WITH_DPDK is enabled + set(dpdk_source_dir ${CMAKE_SOURCE_DIR}/src/spdk/dpdk) + endif() + include(ExternalProject) ExternalProject_Add(dpdk-ext - SOURCE_DIR ${CMAKE_SOURCE_DIR}/src/spdk/dpdk + SOURCE_DIR ${dpdk_source_dir} CONFIGURE_COMMAND ${make_cmd} config O=${dpdk_dir} T=${target} BUILD_COMMAND ${make_cmd} O=${dpdk_dir} CC=${CMAKE_C_COMPILER} EXTRA_CFLAGS=-fPIC BUILD_IN_SOURCE 1