summaryrefslogtreecommitdiffstats
path: root/src/ceph/cmake/modules/Finddpdk.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'src/ceph/cmake/modules/Finddpdk.cmake')
-rw-r--r--src/ceph/cmake/modules/Finddpdk.cmake75
1 files changed, 75 insertions, 0 deletions
diff --git a/src/ceph/cmake/modules/Finddpdk.cmake b/src/ceph/cmake/modules/Finddpdk.cmake
new file mode 100644
index 0000000..343420a
--- /dev/null
+++ b/src/ceph/cmake/modules/Finddpdk.cmake
@@ -0,0 +1,75 @@
+# Try to find dpdk
+#
+# Once done, this will define
+#
+# DPDK_FOUND
+# DPDK_INCLUDE_DIR
+# DPDK_LIBRARIES
+
+find_path(DPDK_INCLUDE_DIR rte_config.h
+ PATH_SUFFIXES dpdk)
+find_library(DPDK_rte_hash_LIBRARY rte_hash)
+find_library(DPDK_rte_kvargs_LIBRARY rte_kvargs)
+find_library(DPDK_rte_mbuf_LIBRARY rte_mbuf)
+find_library(DPDK_rte_ethdev_LIBRARY rte_ethdev)
+find_library(DPDK_rte_mempool_LIBRARY rte_mempool)
+find_library(DPDK_rte_ring_LIBRARY rte_ring)
+find_library(DPDK_rte_eal_LIBRARY rte_eal)
+find_library(DPDK_rte_cmdline_LIBRARY rte_cmdline)
+find_library(DPDK_rte_pmd_bond_LIBRARY rte_pmd_bond)
+find_library(DPDK_rte_pmd_vmxnet3_uio_LIBRARY rte_pmd_vmxnet3_uio)
+find_library(DPDK_rte_pmd_ixgbe_LIBRARY rte_pmd_ixgbe)
+find_library(DPDK_rte_pmd_i40e_LIBRARY rte_pmd_i40e)
+find_library(DPDK_rte_pmd_ring_LIBRARY rte_pmd_ring)
+find_library(DPDK_rte_pmd_af_packet_LIBRARY rte_pmd_af_packet)
+
+set(check_LIBRARIES
+ ${DPDK_rte_hash_LIBRARY}
+ ${DPDK_rte_kvargs_LIBRARY}
+ ${DPDK_rte_mbuf_LIBRARY}
+ ${DPDK_rte_ethdev_LIBRARY}
+ ${DPDK_rte_mempool_LIBRARY}
+ ${DPDK_rte_ring_LIBRARY}
+ ${DPDK_rte_eal_LIBRARY}
+ ${DPDK_rte_cmdline_LIBRARY}
+ ${DPDK_rte_pmd_bond_LIBRARY}
+ ${DPDK_rte_pmd_vmxnet3_uio_LIBRARY}
+ ${DPDK_rte_pmd_ixgbe_LIBRARY}
+ ${DPDK_rte_pmd_i40e_LIBRARY}
+ ${DPDK_rte_pmd_ring_LIBRARY}
+ ${DPDK_rte_pmd_af_packet_LIBRARY})
+
+mark_as_advanced(DPDK_INCLUDE_DIR
+ DPDK_rte_hash_LIBRARY
+ DPDK_rte_kvargs_LIBRARY
+ DPDK_rte_mbuf_LIBRARY
+ DPDK_rte_ethdev_LIBRARY
+ DPDK_rte_mempool_LIBRARY
+ DPDK_rte_ring_LIBRARY
+ DPDK_rte_eal_LIBRARY
+ DPDK_rte_cmdline_LIBRARY
+ DPDK_rte_pmd_bond_LIBRARY
+ DPDK_rte_pmd_vmxnet3_uio_LIBRARY
+ DPDK_rte_pmd_ixgbe_LIBRARY
+ DPDK_rte_pmd_i40e_LIBRARY
+ DPDK_rte_pmd_ring_LIBRARY
+ DPDK_rte_pmd_af_packet_LIBRARY)
+
+if (EXISTS ${WITH_DPDK_MLX5})
+ find_library(DPDK_rte_pmd_mlx5_LIBRARY rte_pmd_mlx5)
+ list(APPEND check_LIBRARIES ${DPDK_rte_pmd_mlx5_LIBRARY})
+ mark_as_advanced(DPDK_rte_pmd_mlx5_LIBRARY)
+endif()
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(dpdk DEFAULT_MSG
+ DPDK_INCLUDE_DIR
+ check_LIBRARIES)
+
+if(DPDK_FOUND)
+if (EXISTS ${WITH_DPDK_MLX5})
+ list(APPEND check_LIBRARIES -libverbs)
+endif()
+ set(DPDK_LIBRARIES
+ -Wl,--whole-archive ${check_LIBRARIES} -Wl,--no-whole-archive)
+endif(DPDK_FOUND)