aboutsummaryrefslogtreecommitdiffstats
path: root/host/cmake
diff options
context:
space:
mode:
Diffstat (limited to 'host/cmake')
-rw-r--r--host/cmake/Modules/FindDPDK.cmake27
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
)