]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
cmake: pass DPDK_DIR explicitly 23650/head
authorKefu Chai <kchai@redhat.com>
Wed, 5 Sep 2018 07:16:26 +0000 (15:16 +0800)
committerKefu Chai <kchai@redhat.com>
Wed, 5 Sep 2018 09:33:59 +0000 (17:33 +0800)
so we don't rely on build_dpdk() to be a macro to set variables in
its parent scope.

Signed-off-by: Kefu Chai <kchai@redhat.com>
CMakeLists.txt
cmake/modules/BuildDPDK.cmake
cmake/modules/BuildSPDK.cmake

index 8142f17d5a19ff8ab52e6fbf0188779623c6b310..7945bd76d4e4cb8e917fc35513143ff8767716c1 100644 (file)
@@ -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()
index 0fd115ca16912af8a4e2d823d5cbc2200f633830..8159d7d47cbd8cb2e5c1756abed78ace95019a11 100644 (file)
@@ -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()
index 43adff82d2425a0c0a1d7e0a5a60ab72e2acea98..46242dc930a0bb3a3e3e73fbeeb4476071ba5683 100644 (file)
@@ -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