3 # Once done, this will define
9 find_package(PkgConfig QUIET)
11 pkg_check_modules(dpdk QUIET libdpdk)
14 message(STATUS "Executing Finddpdk")
15 if(NOT dpdk_INCLUDE_DIRS)
16 message(STATUS "Executing find_path")
17 find_path(dpdk_config_INCLUDE_DIR rte_config.h
24 find_path(dpdk_common_INCLUDE_DIR rte_common.h
31 set(dpdk_INCLUDE_DIRS "${dpdk_config_INCLUDE_DIR}")
32 if(NOT dpdk_config_INCLUDE_DIR EQUAL dpdk_common_INCLUDE_DIR)
33 list(APPEND dpdk_INCLUDE_DIRS "${dpdk_common_INCLUDE_DIR}")
60 foreach(c ${components})
61 find_library(DPDK_rte_${c}_LIBRARY rte_${c}
66 if(DPDK_rte_${c}_LIBRARY)
67 set(dpdk_lib dpdk::${c})
68 if (NOT TARGET ${dpdk_lib})
69 add_library(${dpdk_lib} UNKNOWN IMPORTED)
70 set_target_properties(${dpdk_lib} PROPERTIES
71 INTERFACE_INCLUDE_DIRECTORIES "${dpdk_INCLUDE_DIRS}"
72 IMPORTED_LOCATION "${DPDK_rte_${c}_LIBRARY}")
73 if(c STREQUAL pmd_mlx5)
74 find_package(verbs QUIET)
76 target_link_libraries(${dpdk_lib} INTERFACE IBVerbs::verbs)
80 list(APPEND dpdk_LIBRARIES ${dpdk_lib})
84 mark_as_advanced(dpdk_INCLUDE_DIRS ${dpdk_LIBRARIES})
86 include(FindPackageHandleStandardArgs)
87 find_package_handle_standard_args(dpdk DEFAULT_MSG
92 if(NOT TARGET dpdk::cflags)
93 if(CMAKE_SYSTEM_PROCESSOR MATCHES "amd64|x86_64|AMD64")
94 set(rte_cflags "-march=core2")
95 elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm|ARM")
96 set(rte_cflags "-march=armv7-a")
97 elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64|AARCH64")
98 set(rte_cflags "-march=armv8-a+crc")
100 add_library(dpdk::cflags INTERFACE IMPORTED)
102 set_target_properties(dpdk::cflags PROPERTIES
103 INTERFACE_COMPILE_OPTIONS "${rte_cflags}")
107 if(NOT TARGET dpdk::dpdk)
108 add_library(dpdk::dpdk INTERFACE IMPORTED)
109 find_package(Threads QUIET)
110 list(APPEND dpdk_LIBRARIES
113 set_target_properties(dpdk::dpdk PROPERTIES
114 INTERFACE_LINK_LIBRARIES "${dpdk_LIBRARIES}"
115 INTERFACE_INCLUDE_DIRECTORIES "${dpdk_INCLUDE_DIRS}")