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-isal | |
| parent | 1e0b106d15c9b5d3f3d5914fa7c01d43260c7700 (diff) | |
| download | vcpkg-3468013fcd4014ab7a40b2b5355e86cbe4cbcf07.tar.gz vcpkg-3468013fcd4014ab7a40b2b5355e86cbe4cbcf07.zip | |
SPDK - Storage performance development kit (#5877)
Diffstat (limited to 'ports/spdk-isal')
| -rw-r--r-- | ports/spdk-isal/CMakeLists.txt | 56 | ||||
| -rw-r--r-- | ports/spdk-isal/CONTROL | 4 | ||||
| -rw-r--r-- | ports/spdk-isal/portfile.cmake | 52 | ||||
| -rw-r--r-- | ports/spdk-isal/spdk-isalConfig.cmake | 17 | ||||
| -rw-r--r-- | ports/spdk-isal/usage | 1 |
5 files changed, 130 insertions, 0 deletions
diff --git a/ports/spdk-isal/CMakeLists.txt b/ports/spdk-isal/CMakeLists.txt new file mode 100644 index 000000000..c2623d387 --- /dev/null +++ b/ports/spdk-isal/CMakeLists.txt @@ -0,0 +1,56 @@ +CMAKE_MINIMUM_REQUIRED(VERSION 3.9) +PROJECT(isal 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(YASM yasm) +IF (NOT YASM) + MESSAGE(FATAL_ERROR "YASM not found") +ENDIF () + +IF (EXEC_ENV STREQUAL "Windows") + FIND_PROGRAM(MAKE nmake) + IF (NOT MAKE) + MESSAGE(FATAL_ERROR "nmake not found") + ENDIF () +ELSEIF(EXEC_ENV STREQUAL "Linux") + FIND_PROGRAM(MAKE make) + IF (NOT MAKE) + MESSAGE(FATAL_ERROR "MAKE not found") + ENDIF () +ENDIF() + +SET(MAKE_FLAGS "-f") + +IF (EXEC_ENV STREQUAL Windows) + STRING(APPEND MAKE_FLAGS " Makefile.nmake /E CC=cl AS=nasm") +ELSEIF (EXEC_ENV STREQUAL Linux) + STRING(APPEND MAKE_FLAGS "Makefile.unx") +ENDIF () + +ADD_CUSTOM_TARGET(isal ALL + COMMAND ${MAKE} ${MAKE_FLAGS} + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/ + ) + +SET(LIB_PATH ${CMAKE_SOURCE_DIR}/bin/) +IF (LIBRARY_LINKAGE STREQUAL "dynamic") + STRING(APPEND LIB_PATH isal.so) +ELSEIF (LIBRARY_LINKAGE STREQUAL "static") + STRING(APPEND LIB_PATH isa-l.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}/)
\ No newline at end of file diff --git a/ports/spdk-isal/CONTROL b/ports/spdk-isal/CONTROL new file mode 100644 index 000000000..abfbe3de0 --- /dev/null +++ b/ports/spdk-isal/CONTROL @@ -0,0 +1,4 @@ +Source: spdk-isal +Version: 20181006 +Description: SPDK mirror of isa-l. Intel(R) Intelligent Storage Acceleration Library + diff --git a/ports/spdk-isal/portfile.cmake b/ports/spdk-isal/portfile.cmake new file mode 100644 index 000000000..530d8da83 --- /dev/null +++ b/ports/spdk-isal/portfile.cmake @@ -0,0 +1,52 @@ +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) Intelligent Storage Acceleration Library currently only supports Linux 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) Intelligent Storage Acceleration 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/isa-l + REF spdk + SHA512 1d170ed050fb612816c77b3586f1cdce9129eedc559e3fcefc983ede05b6c8e13a52e400ee6935f5da6ab045a899c97f6ed6be3a79691284e211ea8a6d697f7c + HEAD_REF master +) + +VCPKG_FIND_ACQUIRE_PROGRAM(NASM) +GET_FILENAME_COMPONENT(NASM_PATH ${NASM} DIRECTORY) +SET(ENV{PATH} "$ENV{PATH};${NASM_PATH}") + +VCPKG_FIND_ACQUIRE_PROGRAM(YASM) + +VCPKG_CONFIGURE_CMAKE( + SOURCE_PATH ${CMAKE_CURRENT_LIST_DIR} + PREFER_NINJA + OPTIONS + -DSOURCE_PATH=${SOURCE_PATH} + -DEXEC_ENV:STRING=${EXEC_ENV} + -DLIBRARY_LINKAGE:STRING=${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-isalConfig.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-isal/spdk-isalConfig.cmake b/ports/spdk-isal/spdk-isalConfig.cmake new file mode 100644 index 000000000..f14282ff1 --- /dev/null +++ b/ports/spdk-isal/spdk-isalConfig.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" "isal" "${ROOT}/debug/lib/spdk/isa-l.a" "${ROOT}/lib/spdk/isa-l.a" "${ROOT}/include/spdk-isal") diff --git a/ports/spdk-isal/usage b/ports/spdk-isal/usage new file mode 100644 index 000000000..4fc9ddf25 --- /dev/null +++ b/ports/spdk-isal/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 |
