diff options
Diffstat (limited to 'host/cmake')
-rw-r--r-- | host/cmake/Modules/FindDPDK.cmake | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/host/cmake/Modules/FindDPDK.cmake b/host/cmake/Modules/FindDPDK.cmake index 53ecf1112..a5029b94c 100644 --- a/host/cmake/Modules/FindDPDK.cmake +++ b/host/cmake/Modules/FindDPDK.cmake @@ -24,6 +24,11 @@ find_path ( DPDK_INCLUDE_ETHDEV_DIR rte_ethdev.h PATH_SUFFIXES dpdk ) +find_path ( DPDK_INCLUDE_VERSION_DIR rte_version.h + PATHS ENV RTE_INCLUDE + PATH_SUFFIXES dpdk +) + set(DPDK_INCLUDE_DIR ${DPDK_INCLUDE_CONFIG_DIR} ${DPDK_INCLUDE_ETHDEV_DIR}) list(REMOVE_DUPLICATES DPDK_INCLUDE_DIR) @@ -33,8 +38,22 @@ find_library(DPDK_LIBRARY list(APPEND DPDK_LIBRARIES dpdk) -find_package_handle_standard_args(dpdk - DEFAULT_MSG - DPDK_INCLUDE_DIR - DPDK_LIBRARIES +if(DPDK_INCLUDE_VERSION_DIR) + file(READ "${DPDK_INCLUDE_VERSION_DIR}/rte_version.h" + DPDK_VERSION_STR + ) + + string(REGEX MATCH "#define RTE_VER_YEAR ([0-9]+)" _ ${DPDK_VERSION_STR}) + set(DPDK_VERSION_MAJOR ${CMAKE_MATCH_1}) + + string(REGEX MATCH "#define RTE_VER_MONTH ([0-9]+)" _ ${DPDK_VERSION_STR}) + set(DPDK_VERSION_MINOR ${CMAKE_MATCH_1}) +endif(DPDK_INCLUDE_VERSION_DIR) + + +set(DPDK_VERSION "${DPDK_VERSION_MAJOR}.${DPDK_VERSION_MINOR}") + +find_package_handle_standard_args(DPDK + REQUIRED_VARS DPDK_INCLUDE_DIR DPDK_LIBRARIES + VERSION_VAR DPDK_VERSION ) |