build: do not link with libssl if not needed
[vpp.git] / src / plugins / dpdk / CMakeLists.txt
index 8650841..48b1548 100644 (file)
@@ -25,7 +25,7 @@ else()
     ##############################################################################
     # Find lib and include files
     ##############################################################################
-    find_path(DPDK_INCLUDE_DIR PATH_SUFFIXES dpdk NAMES rte_config.h)
+    vpp_find_path(DPDK_INCLUDE_DIR PATH_SUFFIXES dpdk NAMES rte_config.h)
     vpp_plugin_find_library(dpdk DPDK_LIB "libdpdk.a")
 
     if (NOT DPDK_INCLUDE_DIR)
@@ -103,12 +103,10 @@ else()
         list(APPEND DPDK_LINK_LIBRARIES "${MNL_LIB}")
       else()
         message(WARNING "EXPERIMENTAL: DPDK plugin without dlopen mode")
-        vpp_plugin_find_library(dpdk IBVERBS_LIB "libibverbs.a")
-        vpp_plugin_find_library(dpdk MLX5_LIB "libmlx5.a")
-        vpp_plugin_find_library(dpdk MLX4_LIB "libmlx4.a")
-        vpp_plugin_find_library(dpdk CCAN_LIB "libccan.a")
-        vpp_plugin_find_library(dpdk RDMA_UTIL_LIB "rdma_util")
-        string_append(DPDK_LINK_FLAGS "-Wl,--whole-archive,${IBVERBS_LIB},${MLX5_LIB},${MLX4_LIB},${CCAN_LIB},${RDMA_UTIL_LIB},--no-whole-archive")
+       vpp_plugin_find_library(dpdk IBVERBS_LIB "libibverbs.a")
+       vpp_plugin_find_library(dpdk MLX5_LIB "libmlx5.a")
+       vpp_plugin_find_library(dpdk MLX4_LIB "libmlx4.a")
+       string_append(DPDK_LINK_FLAGS "-Wl,--whole-archive,${IBVERBS_LIB},${MLX5_LIB},${MLX4_LIB} -Wl,--no-whole-archive,--exclude-libs,ALL")
       endif()
     endif()
 endif()
@@ -117,24 +115,30 @@ endif()
 # DPDK plugin
 ##############################################################################
 
-if (${DPDK_VERSION} VERSION_GREATER_EQUAL "20.8.0")
-  set(DPDK_CRYPTODEV_RAW_SOURCE cryptodev/cryptodev_raw_data_path.c)
-endif ()
+if(OPENSSL_FOUND)
+  include_directories(${OPENSSL_INCLUDE_DIR})
+
+  set(DPDK_CRYPTODEV_OP_SOURCE cryptodev/cryptodev_op_data_path.c)
+  set(DPDK_CRYPTODEV_SOURCE cryptodev/cryptodev.c)
+  if (${DPDK_VERSION} VERSION_GREATER_EQUAL "20.8.0")
+    set(DPDK_CRYPTODEV_RAW_SOURCE cryptodev/cryptodev_raw_data_path.c)
+  endif()
+endif()
 
 add_vpp_plugin(dpdk
   SOURCES
   buffer.c
   main.c
-  thread.c
   device/cli.c
   device/common.c
   device/device.c
+  device/driver.c
   device/flow.c
   device/format.c
   device/init.c
   device/node.c
-  cryptodev/cryptodev_op_data_path.c
-  cryptodev/cryptodev.c
+  ${DPDK_CRYPTODEV_OP_SOURCE}
+  ${DPDK_CRYPTODEV_SOURCE}
   ${DPDK_CRYPTODEV_RAW_SOURCE}
 
   MULTIARCH_SOURCES
@@ -151,6 +155,9 @@ add_vpp_plugin(dpdk
   LINK_LIBRARIES
   ${DPDK_LINK_LIBRARIES}
 
+  LINK_LIBRARIES
+  ${OPENSSL_CRYPTO_LIBRARIES}
+
   COMPONENT
   vpp-plugin-dpdk
 )