aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErnest Zaslavsky <kreuzerkrieg@gmail.com>2019-03-09 01:50:17 +0200
committerPhil Christensen <philc@microsoft.com>2019-03-08 15:50:17 -0800
commit7a5803413f33fbe97197b27c8736b50297d4e43f (patch)
treeec3650a57e7885462abaa0f8b54047759f8375c7
parent32f1120b9f7181b3db4537b9eb1c966d22b0dfe1 (diff)
downloadvcpkg-7a5803413f33fbe97197b27c8736b50297d4e43f.tar.gz
vcpkg-7a5803413f33fbe97197b27c8736b50297d4e43f.zip
Add intel-ipsec-mb package (#5586)
Intel(R) Multi-Buffer Crypto for IPsec Library
-rw-r--r--ports/intel-ipsec/CMakeLists.txt59
-rw-r--r--ports/intel-ipsec/CONTROL4
-rw-r--r--ports/intel-ipsec/intel-ipsecConfig.cmake17
-rw-r--r--ports/intel-ipsec/portfile.cmake62
-rw-r--r--ports/intel-ipsec/usage4
5 files changed, 146 insertions, 0 deletions
diff --git a/ports/intel-ipsec/CMakeLists.txt b/ports/intel-ipsec/CMakeLists.txt
new file mode 100644
index 000000000..4d778eb30
--- /dev/null
+++ b/ports/intel-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/intel-ipsec/CONTROL b/ports/intel-ipsec/CONTROL
new file mode 100644
index 000000000..0056f00f0
--- /dev/null
+++ b/ports/intel-ipsec/CONTROL
@@ -0,0 +1,4 @@
+Source: intel-ipsec
+Version: 0.52
+Description: Intel(R) Multi-Buffer Crypto for IPsec Library
+
diff --git a/ports/intel-ipsec/intel-ipsecConfig.cmake b/ports/intel-ipsec/intel-ipsecConfig.cmake
new file mode 100644
index 000000000..3861032d5
--- /dev/null
+++ b/ports/intel-ipsec/intel-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("IPSEC" "ipsec" "${ROOT}/debug/lib/libIPSec_MB.a" "${ROOT}/lib/libIPSec_MB.a" "${ROOT}/include/intel-ipsec")
diff --git a/ports/intel-ipsec/portfile.cmake b/ports/intel-ipsec/portfile.cmake
new file mode 100644
index 000000000..988e25219
--- /dev/null
+++ b/ports/intel-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 intel/intel-ipsec-mb
+ REF v0.52
+ SHA512 3b115fb6df53801800a63a3b62198165824a9262d579a7696f1ec365a5680282b172ffac742fe6453ae53b97043c19136adf558a85a0e51d163b27be2abc9e63
+ 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)
+FILE(INSTALL ${SOURCE_PATH}/Debug/lib/ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
+FILE(INSTALL ${SOURCE_PATH}/Release/include/ DESTINATION ${CURRENT_PACKAGES_DIR}/include/${PORT})
+FILE(INSTALL ${CMAKE_CURRENT_LIST_DIR}/intel-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/intel-ipsec/usage b/ports/intel-ipsec/usage
new file mode 100644
index 000000000..083bbca19
--- /dev/null
+++ b/ports/intel-ipsec/usage
@@ -0,0 +1,4 @@
+The package intel-ipsec is compatible with built-in CMake targets:
+
+ FIND_PACKAGE(intel-ipsec CONFIG REQUIRED)
+ TARGET_LINK_LIBRARIES(main PRIVATE IPSEC::ipsec)