aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/pmdk/portfile.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/pmdk/portfile.cmake')
-rw-r--r--vcpkg/ports/pmdk/portfile.cmake41
1 files changed, 41 insertions, 0 deletions
diff --git a/vcpkg/ports/pmdk/portfile.cmake b/vcpkg/ports/pmdk/portfile.cmake
new file mode 100644
index 0000000..9701c4c
--- /dev/null
+++ b/vcpkg/ports/pmdk/portfile.cmake
@@ -0,0 +1,41 @@
+vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY ONLY_DYNAMIC_CRT)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO pmem/pmdk
+ REF 73d8f958e855904dc0776a7d77d0f0d3698a65b1 #v1.12.0
+ SHA512 ffe77796c9028478985ca98e4162a671e3e7f580faa46b31d0dcf8c5e97aa6478044efdf7ad238285044f18f754a20a4e2a1b5992c7b9cffa709884eb62007ab
+ HEAD_REF master
+ PATCHES "remove_getopt.patch"
+)
+
+file(REMOVE "${SOURCE_PATH}/src/windows/getopt" "${SOURCE_PATH}/src/test/getopt")
+
+# Build only the selected projects
+vcpkg_msbuild_install(
+ SOURCE_PATH "${SOURCE_PATH}"
+ PROJECT_SUBPATH src/PMDK.sln
+ TARGET "Solution Items\\libpmem,Solution Items\\libpmemlog,Solution Items\\libpmemblk,Solution Items\\libpmemobj,Solution Items\\libpmempool,Solution Items\\Tools\\pmempool"
+ OPTIONS /p:SRCVERSION=${VERSION}
+ ADDITIONAL_LIBS getopt.lib
+)
+
+set(DEBUG_ARTIFACTS_PATH "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/src/x64/Debug")
+set(RELEASE_ARTIFACTS_PATH "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/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")
+
+# Remove unneeded header files
+file(REMOVE "${CURRENT_PACKAGES_DIR}/include/libvmmalloc.h")
+file(REMOVE "${CURRENT_PACKAGES_DIR}/include/librpmem.h")
+
+# Install tools (release only)
+file(INSTALL "${RELEASE_ARTIFACTS_PATH}/libs/pmempool.exe" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}")
+
+vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/pmdk)
+
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")