From 2c823a18cb3f2abd059d1293b6b6a6bbfe4752de Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Wed, 5 Sep 2018 15:16:26 +0800 Subject: [PATCH] cmake: pass DPDK_DIR explicitly so we don't rely on build_dpdk() to be a macro to set variables in its parent scope. Signed-off-by: Kefu Chai --- CMakeLists.txt | 2 +- cmake/modules/BuildDPDK.cmake | 11 +++++------ cmake/modules/BuildSPDK.cmake | 5 +++-- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8142f17d5a19f..7945bd76d4e4c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -391,7 +391,7 @@ if(WITH_DPDK) find_package(dpdk) if(NOT DPDK_FOUND AND NOT TARGET dpdk-ext) include(BuildDPDK) - build_dpdk() + build_dpdk(${CMAKE_BINARY_DIR}/src/dpdk) endif() set(HAVE_DPDK TRUE) endif() diff --git a/cmake/modules/BuildDPDK.cmake b/cmake/modules/BuildDPDK.cmake index 0fd115ca16912..8159d7d47cbd8 100644 --- a/cmake/modules/BuildDPDK.cmake +++ b/cmake/modules/BuildDPDK.cmake @@ -86,10 +86,9 @@ function(do_build_dpdk dpdk_dir) ExternalProject_Add_StepTargets(dpdk-ext configure patch-config build) endfunction() -macro(build_dpdk) - set(DPDK_DIR ${CMAKE_BINARY_DIR}/src/dpdk) - do_build_dpdk(${DPDK_DIR}) - set(DPDK_INCLUDE_DIR ${DPDK_DIR}/include) +function(build_dpdk dpdk_dir) + do_build_dpdk(${dpdk_dir}) + set(DPDK_INCLUDE_DIR ${dpdk_dir}/include) # create the directory so cmake won't complain when looking at the imported # target file(MAKE_DIRECTORY ${DPDK_INCLUDE_DIR}) @@ -113,7 +112,7 @@ macro(build_dpdk) add_library(dpdk::${c} STATIC IMPORTED) add_dependencies(dpdk::${c} dpdk-ext) set(dpdk_${c}_LIBRARY - "${DPDK_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}rte_${c}${CMAKE_STATIC_LIBRARY_SUFFIX}") + "${dpdk_dir}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}rte_${c}${CMAKE_STATIC_LIBRARY_SUFFIX}") set_target_properties(dpdk::${c} PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${DPDK_INCLUDE_DIR} INTERFACE_LINK_LIBRARIES dpdk::cflags @@ -134,4 +133,4 @@ macro(build_dpdk) set_target_properties(dpdk::dpdk PROPERTIES INTERFACE_COMPILE_OPTIONS "${dpdk_rte_CFLAGS}") endif() -endmacro() +endfunction() diff --git a/cmake/modules/BuildSPDK.cmake b/cmake/modules/BuildSPDK.cmake index 43adff82d2425..46242dc930a0b 100644 --- a/cmake/modules/BuildSPDK.cmake +++ b/cmake/modules/BuildSPDK.cmake @@ -1,7 +1,8 @@ macro(build_spdk) + set(DPDK_DIR ${CMAKE_BINARY_DIR}/src/dpdk) if(NOT TARGET dpdk-ext) include(BuildDPDK) - build_dpdk() + build_dpdk(${DPDK_DIR}) endif() find_package(CUnit REQUIRED) if(LINUX) @@ -29,7 +30,7 @@ macro(build_spdk) list(APPEND SPDK_LIBRARIES spdk::${c}) endforeach() set_target_properties(spdk::env_dpdk PROPERTIES - INTERFACE_LINK_LIBRARIES "${DPDK_LIBRARIES};rt") + INTERFACE_LINK_LIBRARIES "dpdk::dpdk;rt") set_target_properties(spdk::lvol PROPERTIES INTERFACE_LINK_LIBRARIES spdk::util) set_target_properties(spdk::util PROPERTIES -- 2.39.5