vcpkg/ports/pmdk/portfile.cmake
Alexander Neumann 77ed341f9f
[pmdk] msbuild (#33161)
* pmdk msbuild

* v db

* devendor getopt from pmdk

* v db
2023-08-15 16:54:30 -07:00

42 lines
1.7 KiB
CMake

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")