From bf958abc0fc2d4d1879587e9a80ea9bd1524e1ff Mon Sep 17 00:00:00 2001 From: Yingxin Cheng Date: Wed, 6 Nov 2019 17:34:32 +0800 Subject: [PATCH] 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 --- cmake/modules/BuildDPDK.cmake | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 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 -- 2.47.3