early-access version 2853

This commit is contained in:
pineappleEA
2022-07-23 03:01:36 +02:00
parent 1f2b5081b5
commit 1f111bb69c
8955 changed files with 418777 additions and 999 deletions

View File

@@ -0,0 +1,63 @@
CMAKE_MINIMUM_REQUIRED(VERSION 3.9)
PROJECT(dpdk C)
LIST(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}")
LIST(APPEND CMAKE_PREFIX_PATH "${CMAKE_SOURCE_DIR}")
INCLUDE(ProcessorCount)
PROCESSORCOUNT(PROCS)
#ARCH can be: i686, x86_64, ppc_64, arm64
#MACHINE can be: native, power8, armv8a
#EXECENV can be: linuxapp, bsdapp
#TOOLCHAIN can be: gcc, icc
SET(ARCH x86_64)
SET(MACHINE native)
SET(EXECENV linuxapp)
SET(TOOLCHAIN gcc)
IF (CMAKE_SYSTEM_PROCESSOR MATCHES "^i.86$")
SET(ARCH "i686")
ELSEIF (CMAKE_SYSTEM_PROCESSOR MATCHES "^arm")
SET(MACHINE arm8a)
ELSEIF (CMAKE_SYSTEM_PROCESSOR MATCHES "^(powerpc|ppc)64")
SET(MACHINE power8)
SET(ARCH ppc_64)
ENDIF ()
IF (CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
SET(EXECENV bsdapp)
ENDIF ()
FIND_PACKAGE(Numa REQUIRED)
FIND_PROGRAM(MAKE make)
SET(DPDK_CFLAGS "-fPIC")
IF (CMAKE_BUILD_TYPE STREQUAL Debug)
STRING(APPEND ${DPDK_CFLAGS} "-O0 -g")
ENDIF ()
SET(DPDK_TARGET ${ARCH}-${MACHINE}-${EXECENV}-${TOOLCHAIN})
#SET(DPDK_CONFIG O=${CMAKE_BUILD_TYPE}/build T=${DPDK_TARGET})
SET(DPDK_CONFIG "T=${DPDK_TARGET}")
IF (SOURCE_PATH)
SET(CMAKE_SOURCE_DIR ${SOURCE_PATH})
ENDIF ()
ADD_CUSTOM_TARGET(dpdk-configure
COMMAND ${MAKE} config ${DPDK_CONFIG}
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/
VERBATIM
)
ADD_CUSTOM_TARGET(dpdk ALL
COMMAND ${MAKE} EXTRA_CFLAGS=\"${DPDK_CFLAGS}\" MAKEFLAGS=\"${DPDK_CONFIG} -j ${PROCS}\"
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/
)
ADD_DEPENDENCIES(dpdk dpdk-configure)
INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/build/lib
DESTINATION ${CMAKE_SOURCE_DIR}/${CMAKE_BUILD_TYPE}/)

View File

@@ -0,0 +1,26 @@
INCLUDE(FindPackageHandleStandardArgs)
FIND_PATH(NUMA_ROOT_DIR
NAMES include/numa.h
PATHS ENV NUMA_ROOT
DOC "NUMA library root directory")
FIND_PATH(NUMA_INCLUDE_DIR
NAMES numa.h
HINTS ${NUMA_ROOT_DIR}
PATH_SUFFIXES include
DOC "NUMA include directory")
FIND_LIBRARY(NUMA_LIBRARY
NAMES numa
HINTS ${NUMA_ROOT_DIR}
DOC "NUMA library file")
IF (NUMA_LIBRARY)
GET_FILENAME_COMPONENT(NUMA_LIBRARY_DIR ${NUMA_LIBRARY} PATH)
MARK_AS_ADVANCED(NUMA_INCLUDE_DIR NUMA_LIBRARY_DIR NUMA_LIBRARY)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(NUMA REQUIRED_VARS NUMA_ROOT_DIR NUMA_INCLUDE_DIR NUMA_LIBRARY)
ELSE ()
SET(NUMA_FOUND FALSE)
MESSAGE(FATAL_ERROR "Numa library not found.\nTry: 'sudo yum install numactl numactl-devel' (or sudo apt-get install libnuma1 libnuma-dev)")
ENDIF ()

View File

@@ -0,0 +1,43 @@
IF (NOT VCPKG_CMAKE_SYSTEM_NAME OR NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux")
MESSAGE(FATAL_ERROR "Intel dpdk currently only supports Linux/BSD platforms")
ENDIF ()
VCPKG_FROM_GITHUB(
OUT_SOURCE_PATH SOURCE_PATH
REPO spdk/dpdk
REF spdk-18.11
SHA512 9c069bb0e445f8287ee056452fa32263746f78e27377e8fd75809b9ebf7f25c2395ee13ae4804d8c464e5bc7db7335692759ab3202748dd0c82243aad35e5e7c
HEAD_REF master
)
FIND_PATH(NUMA_INCLUDE_DIR NAME numa.h
PATHS ENV NUMA_ROOT
HINTS $ENV{HOME}/local/include /opt/local/include /usr/local/include /usr/include
)
IF (NOT NUMA_INCLUDE_DIR)
MESSAGE(FATAL_ERROR "Numa library not found.\nTry: 'sudo yum install numactl numactl-devel' (or sudo apt-get install libnuma1 libnuma-dev)")
ENDIF ()
VCPKG_CONFIGURE_CMAKE(
SOURCE_PATH ${CMAKE_CURRENT_LIST_DIR}
PREFER_NINJA
OPTIONS
-DSOURCE_PATH=${SOURCE_PATH}
)
VCPKG_INSTALL_CMAKE()
# Headers are symbolic links here, gather all, resolve and copy real files
FILE(GLOB_RECURSE HEADERS FOLLOW_SYMLINKS "${SOURCE_PATH}/build/include/*")
SET(REAL_FILES "")
FOREACH (HEADER ${HEADERS})
GET_FILENAME_COMPONENT(REAL_FILE "${HEADER}" REALPATH)
LIST(APPEND REAL_FILES "${REAL_FILE}")
ENDFOREACH ()
FILE(INSTALL ${SOURCE_PATH}/Release/lib/ DESTINATION ${CURRENT_PACKAGES_DIR}/lib/spdk)
FILE(INSTALL ${SOURCE_PATH}/Debug/lib/ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/spdk)
FILE(INSTALL ${REAL_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/include/${PORT})
FILE(INSTALL ${CMAKE_CURRENT_LIST_DIR}/spdk-dpdkConfig.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
FILE(INSTALL ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
FILE(INSTALL ${SOURCE_PATH}/license/README DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)

View File

@@ -0,0 +1,31 @@
FUNCTION(SET_LIBRARY_TARGET NAMESPACE LIB_NAME DEBUG_LIB_FILE_NAME RELEASE_LIB_FILE_NAME INCLUDE_DIR)
ADD_LIBRARY(${NAMESPACE}::${LIB_NAME} STATIC IMPORTED)
SET_TARGET_PROPERTIES(${NAMESPACE}::${LIB_NAME} PROPERTIES
IMPORTED_CONFIGURATIONS "RELEASE;DEBUG"
IMPORTED_LOCATION_RELEASE "${RELEASE_LIB_FILE_NAME}"
IMPORTED_LOCATION_DEBUG "${DEBUG_LIB_FILE_NAME}"
INTERFACE_INCLUDE_DIRECTORIES "${INCLUDE_DIR}"
)
SET(${NAMESPACE}_${LIB_NAME}_FOUND 1)
ENDFUNCTION()
GET_FILENAME_COMPONENT(DPDK_ROOT "${CMAKE_CURRENT_LIST_FILE}" PATH)
GET_FILENAME_COMPONENT(DPDK_ROOT "${DPDK_ROOT}" PATH)
GET_FILENAME_COMPONENT(DPDK_ROOT "${DPDK_ROOT}" PATH)
SET_LIBRARY_TARGET("SPDK" "dpdk" "${DPDK_ROOT}/debug/lib/spdk/libdpdk.a" "${DPDK_ROOT}/lib/spdk/libdpdk.a" "${DPDK_ROOT}/include/spdk-dpdk")
IF (CMAKE_BUILD_TYPE STREQUAL Debug)
LINK_DIRECTORIES(${DPDK_ROOT}/debug/lib/spdk)
ELSE ()
LINK_DIRECTORIES(${DPDK_ROOT}/lib/spdk)
ENDIF ()
FILE(GLOB DPDK_LIBS ${DPDK_ROOT}/lib/spdk/librte*.*)
FOREACH (LIB_FILE_NAME ${DPDK_LIBS})
GET_FILENAME_COMPONENT(LIB_NAME ${LIB_FILE_NAME} NAME_WE)
GET_FILENAME_COMPONENT(FULL_LIB_NAME ${LIB_FILE_NAME} NAME)
STRING(REPLACE "lib" "" LIB_NAME "${LIB_NAME}")
SET_LIBRARY_TARGET("SPDK" "${LIB_NAME}" "${DPDK_ROOT}/debug/lib/spdk/${FULL_LIB_NAME}" "${DPDK_ROOT}/lib/spdk/${FULL_LIB_NAME}" "${DPDK_ROOT}/include/spdk-dpdk")
ENDFOREACH ()

1
externals/vcpkg/ports/spdk-dpdk/usage vendored Executable file
View File

@@ -0,0 +1 @@
This package is a dependency of SPDK port. It is not intended for direct consumption by end-user.

7
externals/vcpkg/ports/spdk-dpdk/vcpkg.json vendored Executable file
View File

@@ -0,0 +1,7 @@
{
"name": "spdk-dpdk",
"version-string": "20181124",
"port-version": 1,
"description": "SPDK mirror of DPDK. A set of libraries and drivers for fast packet processing",
"supports": "linux"
}