From 77ed341f9fa24185a1540b2bd4f32e45c9f7c4cb Mon Sep 17 00:00:00 2001 From: Alexander Neumann <30894796+Neumann-A@users.noreply.github.com> Date: Wed, 16 Aug 2023 01:54:30 +0200 Subject: [PATCH] [pmdk] msbuild (#33161) * pmdk msbuild * v db * devendor getopt from pmdk * v db --- ports/pmdk/portfile.cmake | 49 +++---- ports/pmdk/remove_getopt.patch | 233 +++++++++++++++++++++++++++++++++ ports/pmdk/vcpkg.json | 11 +- versions/baseline.json | 2 +- versions/p-/pmdk.json | 5 + 5 files changed, 267 insertions(+), 33 deletions(-) create mode 100644 ports/pmdk/remove_getopt.patch diff --git a/ports/pmdk/portfile.cmake b/ports/pmdk/portfile.cmake index 6d60acbf99e1e5..9701c4cb79a686 100644 --- a/ports/pmdk/portfile.cmake +++ b/ports/pmdk/portfile.cmake @@ -1,54 +1,41 @@ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY ONLY_DYNAMIC_CRT) -set(PMDK_VERSION "1.12.0") - 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_build_msbuild( - PROJECT_PATH ${SOURCE_PATH}/src/PMDK.sln +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=${PMDK_VERSION} + OPTIONS /p:SRCVERSION=${VERSION} + ADDITIONAL_LIBS getopt.lib ) -set(DEBUG_ARTIFACTS_PATH ${SOURCE_PATH}/src/x64/Debug) -set(RELEASE_ARTIFACTS_PATH ${SOURCE_PATH}/src/x64/Release) +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) +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 libraries (debug) -file(GLOB LIB_DEBUG_FILES ${DEBUG_ARTIFACTS_PATH}/libs/libpmem*.lib) -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}/libs/libpmem*.dll) -file(INSTALL ${LIB_DEBUG_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) - -# Install libraries (release) -file(GLOB LIB_RELEASE_FILES ${RELEASE_ARTIFACTS_PATH}/libs/libpmem*.lib) -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}/libs/libpmem*.dll) -file(INSTALL ${LIB_RELEASE_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/bin) +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}) +file(INSTALL "${RELEASE_ARTIFACTS_PATH}/libs/pmempool.exe" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/pmdk) -vcpkg_copy_pdbs() - -file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") diff --git a/ports/pmdk/remove_getopt.patch b/ports/pmdk/remove_getopt.patch new file mode 100644 index 00000000000000..45912a87478de8 --- /dev/null +++ b/ports/pmdk/remove_getopt.patch @@ -0,0 +1,233 @@ +diff --git a/src/PMDK.sln b/src/PMDK.sln +index d8220c159..1959a7a59 100644 +--- a/src/PMDK.sln ++++ b/src/PMDK.sln +@@ -239,8 +239,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "obj_alloc", "test\obj_alloc + EndProject + Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pmempool_info", "test\pmempool_info\pmempool_info.vcxproj", "{42CCEF95-5ADD-460C-967E-DD5B2C744943}" + EndProject +-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "getopt", "test\getopt\getopt.vcxproj", "{433F7840-C597-4950-84C9-E4FF7DF6A298}" +-EndProject + Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "sys", "sys", "{45027FC5-4A32-47BD-AC5B-66CC7616B1D2}" + ProjectSection(SolutionItems) = preProject + windows\include\sys\file.h = windows\include\sys\file.h +@@ -538,8 +538,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "obj_tx_flow", "test\obj_tx_ + EndProject + Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "srcversion", "windows\srcversion\srcversion.vcxproj", "{901F04DB-E1A5-4A41-8B81-9D31C19ACD59}" + EndProject +-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "getopt", "windows\getopt\getopt.vcxproj", "{9186EAC4-2F34-4F17-B940-6585D7869BCD}" +-EndProject + Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "libpmemlog", "libpmemlog", "{91C30620-70CA-46C7-AC71-71F3C602690E}" + EndProject + Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "obj_realloc", "test\obj_realloc\obj_realloc.vcxproj", "{91E19AEB-7B75-43E0-B8B4-D2BB60D839EA}" +@@ -2183,7 +2181,6 @@ Global + {3ED56E55-84A6-422C-A8D4-A8439FB8F245} = {BD6CC700-B36B-435B-BAF9-FC5AFCD766C9} + {42B97D47-F800-4100-BFA2-B3AC357E8B6B} = {63C9B3F8-437D-4AD9-B32D-D04AE38C35B6} + {42CCEF95-5ADD-460C-967E-DD5B2C744943} = {59AB6976-D16B-48D0-8D16-94360D3FE51D} +- {433F7840-C597-4950-84C9-E4FF7DF6A298} = {B870D8A6-12CD-4DD0-B843-833695C2310A} + {45027FC5-4A32-47BD-AC5B-66CC7616B1D2} = {9A8482A7-BF0C-423D-8266-189456ED41F6} + {46629F21-089C-4205-B2F8-E01748ECE517} = {A14A4556-9092-430D-B9CA-B2B1223D56CB} + {46B82069-10BE-432A-8D93-F4D995148555} = {4C291EEB-3874-4724-9CC2-1335D13FF0EE} +@@ -2284,7 +2281,6 @@ Global + {8D75FA1A-EC74-4F88-8AC1-CE3F98E4D828} = {63C9B3F8-437D-4AD9-B32D-D04AE38C35B6} + {8E374371-30E1-4623-8755-2A2F3742170B} = {63C9B3F8-437D-4AD9-B32D-D04AE38C35B6} + {901F04DB-E1A5-4A41-8B81-9D31C19ACD59} = {95FAF291-03D1-42FC-9C10-424D551D475D} +- {9186EAC4-2F34-4F17-B940-6585D7869BCD} = {95FAF291-03D1-42FC-9C10-424D551D475D} + {91C30620-70CA-46C7-AC71-71F3C602690E} = {0CC6D525-806E-433F-AB4A-6CFD546418B1} + {91E19AEB-7B75-43E0-B8B4-D2BB60D839EA} = {63C9B3F8-437D-4AD9-B32D-D04AE38C35B6} + {9233FC80-B51C-4A89-AF58-5AE86C068F6A} = {A14A4556-9092-430D-B9CA-B2B1223D56CB} +diff --git a/src/benchmarks/pmembench.vcxproj b/src/benchmarks/pmembench.vcxproj +index ac9b3569e..906a50269 100644 +--- a/src/benchmarks/pmembench.vcxproj ++++ b/src/benchmarks/pmembench.vcxproj +@@ -29,9 +29,6 @@ + + {cf9a0883-6334-44c7-ac29-349468c78e27} + +- +- {9186eac4-2f34-4f17-b940-6585d7869bcd} +- + + + +@@ -205,10 +202,10 @@ + + + +- $(SolutionDir)\core;$(SolutionDir)\examples\libpmemobj\hashmap;$(SolutionDir)\examples\libpmemobj\map;$(SolutionDir)\examples\libpmemobj\tree_map;$(SolutionDir)\common;$(SolutionDir)\test\unittest;$(SolutionDir)\windows\include;$(SolutionDir)\libpmemobj\;$(SolutionDir)\include;$(SolutionDir)\libpmemblk;$(SolutionDir)\windows\getopt;$(IncludePath) ++ $(SolutionDir)\core;$(SolutionDir)\examples\libpmemobj\hashmap;$(SolutionDir)\examples\libpmemobj\map;$(SolutionDir)\examples\libpmemobj\tree_map;$(SolutionDir)\common;$(SolutionDir)\test\unittest;$(SolutionDir)\windows\include;$(SolutionDir)\libpmemobj\;$(SolutionDir)\include;$(SolutionDir)\libpmemblk;$(IncludePath) + + +- $(SolutionDir)\core;$(SolutionDir)\examples\libpmemobj\hashmap;$(SolutionDir)\examples\libpmemobj\map;$(SolutionDir)\examples\libpmemobj\tree_map;$(SolutionDir)\common;$(SolutionDir)\test\unittest;$(SolutionDir)\windows\include;$(SolutionDir)\libpmemobj\;$(SolutionDir)\include;$(SolutionDir)\libpmemblk;$(SolutionDir)\windows\getopt;$(IncludePath) ++ $(SolutionDir)\core;$(SolutionDir)\examples\libpmemobj\hashmap;$(SolutionDir)\examples\libpmemobj\map;$(SolutionDir)\examples\libpmemobj\tree_map;$(SolutionDir)\common;$(SolutionDir)\test\unittest;$(SolutionDir)\windows\include;$(SolutionDir)\libpmemobj\;$(SolutionDir)\include;$(SolutionDir)\libpmemblk;$(IncludePath) + + + +diff --git a/src/test/bttdevice/bttdevice.vcxproj b/src/test/bttdevice/bttdevice.vcxproj +index bfcc74064..05cd8c15d 100644 +--- a/src/test/bttdevice/bttdevice.vcxproj ++++ b/src/test/bttdevice/bttdevice.vcxproj +@@ -72,9 +72,6 @@ + + {9e9e3d25-2139-4a5d-9200-18148ddead45} + +- +- {9186eac4-2f34-4f17-b940-6585d7869bcd} +- + + {ce3f2dfb-8470-4802-ad37-21caf6cb2681} + +diff --git a/src/test/libpmempool_api_win/libpmempool_test_win.vcxproj b/src/test/libpmempool_api_win/libpmempool_test_win.vcxproj +index 73cb7c0b2..ba87422ea 100644 +--- a/src/test/libpmempool_api_win/libpmempool_test_win.vcxproj ++++ b/src/test/libpmempool_api_win/libpmempool_test_win.vcxproj +@@ -64,9 +64,6 @@ + + {9e9e3d25-2139-4a5d-9200-18148ddead45} + +- +- {9186eac4-2f34-4f17-b940-6585d7869bcd} +- + + {ce3f2dfb-8470-4802-ad37-21caf6cb2681} + +diff --git a/src/test/tools/cmpmap/cmpmap.vcxproj b/src/test/tools/cmpmap/cmpmap.vcxproj +index 5a502106c..fc0b07bb0 100644 +--- a/src/test/tools/cmpmap/cmpmap.vcxproj ++++ b/src/test/tools/cmpmap/cmpmap.vcxproj +@@ -17,9 +17,6 @@ + + {9e9e3d25-2139-4a5d-9200-18148ddead45} + +- +- {9186eac4-2f34-4f17-b940-6585d7869bcd} +- + + + +diff --git a/src/test/tools/ddmap/ddmap.vcxproj b/src/test/tools/ddmap/ddmap.vcxproj +index 0824e2bb2..d80e82da3 100644 +--- a/src/test/tools/ddmap/ddmap.vcxproj ++++ b/src/test/tools/ddmap/ddmap.vcxproj +@@ -17,9 +17,6 @@ + + {9e9e3d25-2139-4a5d-9200-18148ddead45} + +- +- {9186eac4-2f34-4f17-b940-6585d7869bcd} +- + + + +diff --git a/src/test/tools/gran_detecto/gran_detecto.vcxproj b/src/test/tools/gran_detecto/gran_detecto.vcxproj +index abbe5bfb9..316a39c20 100644 +--- a/src/test/tools/gran_detecto/gran_detecto.vcxproj ++++ b/src/test/tools/gran_detecto/gran_detecto.vcxproj +@@ -90,9 +90,6 @@ + + {f596c36c-5c96-4f08-b420-8908af500954} + +- +- {9186eac4-2f34-4f17-b940-6585d7869bcd} +- + + + +diff --git a/src/test/tools/pmemalloc/pmemalloc.vcxproj b/src/test/tools/pmemalloc/pmemalloc.vcxproj +index d84b87416..c1f910710 100644 +--- a/src/test/tools/pmemalloc/pmemalloc.vcxproj ++++ b/src/test/tools/pmemalloc/pmemalloc.vcxproj +@@ -26,9 +26,6 @@ + + {9e9e3d25-2139-4a5d-9200-18148ddead45} + +- +- {9186eac4-2f34-4f17-b940-6585d7869bcd} +- + + + +diff --git a/src/test/tools/pmemdetect/pmemdetect.vcxproj b/src/test/tools/pmemdetect/pmemdetect.vcxproj +index 1c4cfd70c..10f472eb4 100644 +--- a/src/test/tools/pmemdetect/pmemdetect.vcxproj ++++ b/src/test/tools/pmemdetect/pmemdetect.vcxproj +@@ -93,9 +93,6 @@ + + {9e9e3d25-2139-4a5d-9200-18148ddead45} + +- +- {9186eac4-2f34-4f17-b940-6585d7869bcd} +- + + {ce3f2dfb-8470-4802-ad37-21caf6cb2681} + +diff --git a/src/test/tools/pmemobjcli/pmemobjcli.vcxproj b/src/test/tools/pmemobjcli/pmemobjcli.vcxproj +index 092ad91f7..0c13bb915 100644 +--- a/src/test/tools/pmemobjcli/pmemobjcli.vcxproj ++++ b/src/test/tools/pmemobjcli/pmemobjcli.vcxproj +@@ -20,9 +20,6 @@ + + {9e9e3d25-2139-4a5d-9200-18148ddead45} + +- +- {9186eac4-2f34-4f17-b940-6585d7869bcd} +- + + + +diff --git a/src/test/tools/pmemspoil/pmemspoil.vcxproj b/src/test/tools/pmemspoil/pmemspoil.vcxproj +index 0d7718e01..5eba7d1f7 100644 +--- a/src/test/tools/pmemspoil/pmemspoil.vcxproj ++++ b/src/test/tools/pmemspoil/pmemspoil.vcxproj +@@ -32,9 +32,6 @@ + + {9e9e3d25-2139-4a5d-9200-18148ddead45} + +- +- {9186eac4-2f34-4f17-b940-6585d7869bcd} +- + + + +diff --git a/src/test/tools/pmemwrite/pmemwrite.vcxproj b/src/test/tools/pmemwrite/pmemwrite.vcxproj +index f4e4a229f..efc80865f 100644 +--- a/src/test/tools/pmemwrite/pmemwrite.vcxproj ++++ b/src/test/tools/pmemwrite/pmemwrite.vcxproj +@@ -26,9 +26,6 @@ + + {9e9e3d25-2139-4a5d-9200-18148ddead45} + +- +- {9186eac4-2f34-4f17-b940-6585d7869bcd} +- + + + +diff --git a/src/test/tools/sparsefile/sparsefile.vcxproj b/src/test/tools/sparsefile/sparsefile.vcxproj +index 76710038b..481bb9332 100644 +--- a/src/test/tools/sparsefile/sparsefile.vcxproj ++++ b/src/test/tools/sparsefile/sparsefile.vcxproj +@@ -21,9 +21,6 @@ + + {492baa3d-0d5d-478e-9765-500463ae69aa} + +- +- {9186eac4-2f34-4f17-b940-6585d7869bcd} +- + + + {3EC30D6A-BDA4-4971-879A-8814204EAE31} +diff --git a/src/tools/pmempool/pmempool.vcxproj b/src/tools/pmempool/pmempool.vcxproj +index 120fe35b6..65709ed92 100644 +--- a/src/tools/pmempool/pmempool.vcxproj ++++ b/src/tools/pmempool/pmempool.vcxproj +@@ -77,9 +77,6 @@ + + {9e9e3d25-2139-4a5d-9200-18148ddead45} + +- +- {9186eac4-2f34-4f17-b940-6585d7869bcd} +- + + + diff --git a/ports/pmdk/vcpkg.json b/ports/pmdk/vcpkg.json index ae45ff2d1fea12..be90b7e4b05fe7 100644 --- a/ports/pmdk/vcpkg.json +++ b/ports/pmdk/vcpkg.json @@ -1,8 +1,17 @@ { "name": "pmdk", "version": "1.12.0", + "port-version": 1, "description": "Persistent Memory Development Kit", "homepage": "https://github.com/pmem/pmdk", "license": "BSD-3-Clause", - "supports": "!(arm | x86)" + "supports": "!(arm | x86)", + "dependencies": [ + "getopt", + { + "name": "vcpkg-msbuild", + "host": true, + "platform": "windows" + } + ] } diff --git a/versions/baseline.json b/versions/baseline.json index 5e6873552220c0..a79b946fca4f2a 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -6422,7 +6422,7 @@ }, "pmdk": { "baseline": "1.12.0", - "port-version": 0 + "port-version": 1 }, "pngpp": { "baseline": "0.2.10", diff --git a/versions/p-/pmdk.json b/versions/p-/pmdk.json index 89f2fd7103d4a6..6146f7169b3449 100644 --- a/versions/p-/pmdk.json +++ b/versions/p-/pmdk.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "5dc7f0e5a4d6348ac49617010105730775580f78", + "version": "1.12.0", + "port-version": 1 + }, { "git-tree": "a5b1d48503eab5f709ccc7cb62630817275f93e5", "version": "1.12.0",