diff options
| author | Ernest Zaslavsky <kreuzerkrieg@gmail.com> | 2019-05-01 22:59:11 +0300 |
|---|---|---|
| committer | Phil Christensen <philc@microsoft.com> | 2019-05-01 12:59:11 -0700 |
| commit | 3468013fcd4014ab7a40b2b5355e86cbe4cbcf07 (patch) | |
| tree | 63a6943e405fb3613362f9770de058338486c62d /ports/spdk-ipsec | |
| parent | 1e0b106d15c9b5d3f3d5914fa7c01d43260c7700 (diff) | |
| download | vcpkg-3468013fcd4014ab7a40b2b5355e86cbe4cbcf07.tar.gz vcpkg-3468013fcd4014ab7a40b2b5355e86cbe4cbcf07.zip | |
SPDK - Storage performance development kit (#5877)
Diffstat (limited to 'ports/spdk-ipsec')
| -rw-r--r-- | ports/spdk-ipsec/CMakeLists.txt | 59 | ||||
| -rw-r--r-- | ports/spdk-ipsec/CONTROL | 4 | ||||
| -rw-r--r-- | ports/spdk-ipsec/portfile.cmake | 62 | ||||
| -rw-r--r-- | ports/spdk-ipsec/spdk-ipsecConfig.cmake | 17 | ||||
| -rw-r--r-- | ports/spdk-ipsec/usage | 1 |
5 files changed, 143 insertions, 0 deletions
diff --git a/ports/spdk-ipsec/CMakeLists.txt b/ports/spdk-ipsec/CMakeLists.txt new file mode 100644 index 000000000..4d778eb30 --- /dev/null +++ b/ports/spdk-ipsec/CMakeLists.txt @@ -0,0 +1,59 @@ +CMAKE_MINIMUM_REQUIRED(VERSION 3.9) +PROJECT(ipsec C) + +IF (SOURCE_PATH) + SET(CMAKE_SOURCE_DIR ${SOURCE_PATH}) +ENDIF () + +INCLUDE(ProcessorCount) +PROCESSORCOUNT(PROCS) + +FIND_PROGRAM(NASM nasm) +IF (NOT NASM) + MESSAGE(FATAL_ERROR "NASM not found") +ENDIF () + +FIND_PROGRAM(MAKE make) +IF (NOT MAKE) + MESSAGE(FATAL_ERROR "MAKE not found") +ENDIF () + +IF (EXEC_ENV STREQUAL "Windows") + FIND_PROGRAM(MAKE nmake) + IF (NOT MAKE) + MESSAGE(FATAL_ERROR "nmake not found") + ENDIF () +ENDIF () + +SET(MAKE_FLAGS) + +IF (EXEC_ENV STREQUAL Windows) + LIST(APPEND MAKE_FLAGS /f win_x64.mak) +ENDIF () + +IF (CMAKE_BUILD_TYPE STREQUAL Debug) + LIST(APPEND MAKE_FLAGS DEBUG=y) +ENDIF () + +IF (LIBRARY_LINKAGE STREQUAL "static") + LIST(APPEND MAKE_FLAGS SHARED=n) +ENDIF () + +MESSAGE(STATUS "${MAKE_FLAGS}") +ADD_CUSTOM_TARGET(ipsec-mb ALL + COMMAND ${MAKE} -j ${MAKE_FLAGS} + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/ +# VERBATIM + ) + +SET(LIB_PATH ${CMAKE_SOURCE_DIR}/) +IF (LIBRARY_LINKAGE STREQUAL "dynamic") + STRING(APPEND LIB_PATH libIPSec_MB.so) +ELSEIF (LIBRARY_LINKAGE STREQUAL "static") + STRING(APPEND LIB_PATH libIPSec_MB.a) +ELSE () + MESSAGE(FATAL_ERROR "Unknown linkage type ${LIBRARY_LINKAGE}") +ENDIF () +INSTALL(FILES ${LIB_PATH} + DESTINATION ${CMAKE_SOURCE_DIR}/${CMAKE_BUILD_TYPE}/lib/) +INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/include DESTINATION ${CMAKE_SOURCE_DIR}/${CMAKE_BUILD_TYPE}/) diff --git a/ports/spdk-ipsec/CONTROL b/ports/spdk-ipsec/CONTROL new file mode 100644 index 000000000..3f8e1a034 --- /dev/null +++ b/ports/spdk-ipsec/CONTROL @@ -0,0 +1,4 @@ +Source: spdk-ipsec +Version: 20180711 +Description: SPDK mirror of ipsec. Intel(R) Multi-Buffer Crypto for IPsec Library + diff --git a/ports/spdk-ipsec/portfile.cmake b/ports/spdk-ipsec/portfile.cmake new file mode 100644 index 000000000..d91b6d0e7 --- /dev/null +++ b/ports/spdk-ipsec/portfile.cmake @@ -0,0 +1,62 @@ +INCLUDE(vcpkg_common_functions) + +IF (NOT VCPKG_CMAKE_SYSTEM_NAME) + SET(EXEC_ENV "Windows") +ELSE () + SET(EXEC_ENV "${VCPKG_CMAKE_SYSTEM_NAME}") +ENDIF () + +IF (NOT EXEC_ENV STREQUAL "Linux") + MESSAGE(FATAL_ERROR "Intel(R) Multi-Buffer Crypto for IPsec Library currently only supports Linux/Windows platforms") + MESSAGE(STATUS "Well, it is not true, but I didnt manage to get it working on Windows") +ENDIF () + +IF (VCPKG_TARGET_ARCHITECTURE STREQUAL "x86" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") + MESSAGE(FATAL_ERROR "Intel(R) Multi-Buffer Crypto for IPsec Library currently only supports x64 architecture") +ELSEIF (NOT VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") + MESSAGE(FATAL_ERROR "Unsupported architecture: ${VCPKG_TARGET_ARCHITECTURE}") +ENDIF () + +VCPKG_FROM_GITHUB( + OUT_SOURCE_PATH SOURCE_PATH + REPO spdk/intel-ipsec-mb + REF spdk + SHA512 037fc382d9aa87b6645309f29cb761a584ed855c583638c9e27b5b7200ceb2ae21ad5adcc7c92b2b1d1387186a7fd2b5ae22f337a8f52dea3f6c35d8f90b42bd + HEAD_REF master +) + +VCPKG_FIND_ACQUIRE_PROGRAM(NASM) + +EXEC_PROGRAM(${NASM} + ARGS -v + OUTPUT_VARIABLE NASM_OUTPUT + ) +STRING(REGEX REPLACE "NASM version ([0-9]+\\.[0-9]+\\.[0-9]+).*" "\\1" + NASM_VERSION + ${NASM_OUTPUT}) +IF (NASM_VERSION VERSION_LESS 2.13.03) + MESSAGE(FATAL_ERROR "NASM version 2.13.03 (or newer) is required to build this package") +ENDIF () + +GET_FILENAME_COMPONENT(NASM_PATH ${NASM} DIRECTORY) +SET(ENV{PATH} " $ENV{PATH};${NASM_PATH} ") + +VCPKG_CONFIGURE_CMAKE( + SOURCE_PATH ${CMAKE_CURRENT_LIST_DIR} + PREFER_NINJA + OPTIONS + -DSOURCE_PATH=${SOURCE_PATH} + -DEXEC_ENV=${VCPKG_CMAKE_SYSTEM_NAME} + -DLIBRARY_LINKAGE=${VCPKG_LIBRARY_LINKAGE} +) + +VCPKG_INSTALL_CMAKE() + +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 ${SOURCE_PATH}/Release/include/ DESTINATION ${CURRENT_PACKAGES_DIR}/include/${PORT}) +FILE(INSTALL ${CMAKE_CURRENT_LIST_DIR}/spdk-ipsecConfig.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 DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) + +VCPKG_TEST_CMAKE(PACKAGE_NAME ${PORT}) diff --git a/ports/spdk-ipsec/spdk-ipsecConfig.cmake b/ports/spdk-ipsec/spdk-ipsecConfig.cmake new file mode 100644 index 000000000..60777b959 --- /dev/null +++ b/ports/spdk-ipsec/spdk-ipsecConfig.cmake @@ -0,0 +1,17 @@ + +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(ROOT "${CMAKE_CURRENT_LIST_FILE}" PATH) +GET_FILENAME_COMPONENT(ROOT "${ROOT}" PATH) +GET_FILENAME_COMPONENT(ROOT "${ROOT}" PATH) + +SET_LIBRARY_TARGET("SPDK" "ipsec" "${ROOT}/debug/lib/spdk/libIPSec_MB.a" "${ROOT}/lib/spdk/libIPSec_MB.a" "${ROOT}/include/spdk-ipsec") diff --git a/ports/spdk-ipsec/usage b/ports/spdk-ipsec/usage new file mode 100644 index 000000000..4fc9ddf25 --- /dev/null +++ b/ports/spdk-ipsec/usage @@ -0,0 +1 @@ +This package is a dependency of SPDK port. It is not intended for direct consumption by end-user.
\ No newline at end of file |
