aboutsummaryrefslogtreecommitdiff
path: root/ports/pmdk
diff options
context:
space:
mode:
authorKrzysztof Czurylo <krzysztof.czurylo@intel.com>2018-03-29 22:52:58 +0200
committerRobert Schumacher <roschuma@microsoft.com>2018-03-29 13:52:58 -0700
commite90c5e61eabe12d93486d17dde89b7de979da7d6 (patch)
treedb8f7f577545ffd3944b0cb0519d271db6b1ade6 /ports/pmdk
parent3d87445cb0e42e67fa7321059bed0b20d171c605 (diff)
downloadvcpkg-e90c5e61eabe12d93486d17dde89b7de979da7d6.tar.gz
vcpkg-e90c5e61eabe12d93486d17dde89b7de979da7d6.zip
[pmdk] Rename and update to version 1.4 (#3173)
* [pmdk] Rename and update to version 1.4 The NVML project has been renamed to PMDK (Persistent Memory Development Kit). PMDK version 1.4 is the first official release with the new name. * [pmdk] Use vcpkg_from_github more -- avoid separate variable declarations
Diffstat (limited to 'ports/pmdk')
-rw-r--r--ports/pmdk/CONTROL3
-rw-r--r--ports/pmdk/portfile.cmake77
2 files changed, 80 insertions, 0 deletions
diff --git a/ports/pmdk/CONTROL b/ports/pmdk/CONTROL
new file mode 100644
index 000000000..f440b68bc
--- /dev/null
+++ b/ports/pmdk/CONTROL
@@ -0,0 +1,3 @@
+Source: pmdk
+Version: 1.4-1
+Description: Persistent Memory Development Kit \ No newline at end of file
diff --git a/ports/pmdk/portfile.cmake b/ports/pmdk/portfile.cmake
new file mode 100644
index 000000000..89c48a8fb
--- /dev/null
+++ b/ports/pmdk/portfile.cmake
@@ -0,0 +1,77 @@
+include(vcpkg_common_functions)
+
+if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ message(STATUS "Static building not supported. Building dynamic.")
+ set(VCPKG_LIBRARY_LINKAGE dynamic)
+endif()
+if(VCPKG_CRT_LINKAGE STREQUAL "static")
+ message(FATAL_ERROR "Static CRT linkage is not supported")
+endif()
+
+if (TRIPLET_SYSTEM_ARCH MATCHES "arm")
+ message(FATAL_ERROR "ARM is currently not supported")
+elseif (TRIPLET_SYSTEM_ARCH MATCHES "x86")
+ message(FATAL_ERROR "x86 is not supported. Please use pmdk:x64-windows instead.")
+endif()
+
+# Download source
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO pmem/pmdk
+ REF 1.4
+ SHA512 95dbea9acfea4a6cb433a25f56f7484946a93fbce1c5e0e1d6ff36e0824e3e0e9f28f37024918998358f8ff12e69d0902fcf88357b9ad12695f32e06e86ffac8
+ HEAD_REF master
+)
+
+get_filename_component(PMDK_VERSION "${SOURCE_PATH}" NAME)
+string(REPLACE "pmdk-" "" PMDK_VERSION "${PMDK_VERSION}")
+
+# Build only the selected projects
+vcpkg_build_msbuild(
+ PROJECT_PATH ${SOURCE_PATH}/src/PMDK.sln
+ PLATFORM x64
+ PLATFORM_TOOLSET v140
+ TARGET_PLATFORM_VERSION 10.0.16299.0
+ TARGET "Solution Items\\libpmem,Solution Items\\libpmemlog,Solution Items\\libpmemblk,Solution Items\\libpmemobj,Solution Items\\libpmemcto,Solution Items\\libpmempool,Solution Items\\libvmem,Solution Items\\Tools\\pmempool"
+ OPTIONS /p:SRCVERSION=${PMDK_VERSION}
+)
+
+set(DEBUG_ARTIFACTS_PATH ${SOURCE_PATH}/src/x64/Debug)
+set(RELEASE_ARTIFACTS_PATH ${SOURCE_PATH}/src/x64/Release)
+
+# Install header files
+file(GLOB HEADER_FILES ${SOURCE_PATH}/src/include/*.h)
+file(INSTALL ${HEADER_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+file(GLOB HEADER_FILES ${SOURCE_PATH}/src/include/libpmemobj/*.h)
+file(INSTALL ${HEADER_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/include/libpmemobj)
+file(GLOB HEADER_FILES ${SOURCE_PATH}/src/include/libpmemobj++/*.hpp)
+file(INSTALL ${HEADER_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/include/libpmemobj++)
+
+# Remove unneeded header files
+file(REMOVE ${CURRENT_PACKAGES_DIR}/include/libvmmalloc.h)
+file(REMOVE ${CURRENT_PACKAGES_DIR}/include/librpmem.h)
+
+# Install libraries (debug)
+file(GLOB LIB_DEBUG_FILES ${DEBUG_ARTIFACTS_PATH}/lib[pv]mem*.lib ${DEBUG_ARTIFACTS_PATH}/lib[pv]mem*.exp)
+file(INSTALL ${LIB_DEBUG_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
+file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/libpmemcommon.lib)
+file(GLOB LIB_DEBUG_FILES ${DEBUG_ARTIFACTS_PATH}/lib[pv]mem*.dll)
+file(INSTALL ${LIB_DEBUG_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
+
+# Install libraries (release)
+file(GLOB LIB_RELEASE_FILES ${RELEASE_ARTIFACTS_PATH}/lib[pv]mem*.lib ${RELEASE_ARTIFACTS_PATH}/lib[pv]mem*.exp)
+file(INSTALL ${LIB_RELEASE_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
+file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/libpmemcommon.lib)
+file(GLOB LIB_RELEASE_FILES ${RELEASE_ARTIFACTS_PATH}/lib[pv]mem*.dll)
+file(INSTALL ${LIB_RELEASE_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
+
+# Install tools (release only)
+file(INSTALL ${RELEASE_ARTIFACTS_PATH}/pmempool.exe DESTINATION ${CURRENT_PACKAGES_DIR}/tools/pmdk)
+
+vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/pmdk)
+
+vcpkg_copy_pdbs()
+
+# Handle copyright
+file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/pmdk)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/pmdk/LICENSE ${CURRENT_PACKAGES_DIR}/share/pmdk/copyright)