diff options
| author | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
|---|---|---|
| committer | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
| commit | 54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch) | |
| tree | d915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/mgclient | |
Diffstat (limited to 'vcpkg/ports/mgclient')
| -rw-r--r-- | vcpkg/ports/mgclient/export-cmake.patch | 108 | ||||
| -rw-r--r-- | vcpkg/ports/mgclient/portfile.cmake | 29 | ||||
| -rw-r--r-- | vcpkg/ports/mgclient/vcpkg.json | 24 |
3 files changed, 161 insertions, 0 deletions
diff --git a/vcpkg/ports/mgclient/export-cmake.patch b/vcpkg/ports/mgclient/export-cmake.patch new file mode 100644 index 0000000..8811a4f --- /dev/null +++ b/vcpkg/ports/mgclient/export-cmake.patch @@ -0,0 +1,108 @@ +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 92426e9..f96152a 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -16,6 +16,8 @@ add_library(project_options INTERFACE) + include(../cmake/Sanitizers.cmake) + enable_sanitizers(project_options) + ++include(GNUInstallDirs) ++ + set(mgclient_src_files + mgallocator.c + mgclient.c +@@ -50,6 +52,7 @@ else() + find_package(OpenSSL REQUIRED) + include(GenerateExportHeader) + ++ if(NOT BUILD_SHARED_LIBS) + add_library(mgclient-static STATIC ${mgclient_src_files}) + + generate_export_header(mgclient-static +@@ -62,18 +65,22 @@ else() + target_include_directories(mgclient-static + PRIVATE + "${PROJECT_SOURCE_DIR}/src" +- PUBLIC +- "${PROJECT_SOURCE_DIR}/include" + "${CMAKE_CURRENT_BINARY_DIR}" +- "${OPENSSL_INCLUDE_DIR}") ++ "${OPENSSL_INCLUDE_DIR}" ++ PUBLIC ++ $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include> ++ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}> ++ ) + target_link_libraries(mgclient-static + PRIVATE +- ${OPENSSL_LIBRARIES} project_options project_c_warnings) +- ++ ${OPENSSL_LIBRARIES}) ++ target_compile_options(mgclient-static PRIVATE ++ $<TARGET_PROPERTY:project_options,INTERFACE_COMPILE_OPTIONS> ++ $<TARGET_PROPERTY:project_c_warnings,INTERFACE_COMPILE_OPTIONS>) + if(MGCLIENT_ON_WINDOWS) + target_link_libraries(mgclient-static PUBLIC ws2_32 crypt32 gdi32) + endif() +- ++ else() + add_library(mgclient-shared SHARED ${mgclient_src_files}) + + generate_export_header(mgclient-shared +@@ -87,32 +94,44 @@ else() + target_include_directories(mgclient-shared + PRIVATE + "${PROJECT_SOURCE_DIR}/src" +- PUBLIC +- "${PROJECT_SOURCE_DIR}/include" + "${CMAKE_CURRENT_BINARY_DIR}" +- "${OPENSSL_INCLUDE_DIR}") ++ "${OPENSSL_INCLUDE_DIR}" ++ PUBLIC ++ $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include> ++ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}> ++ ) + target_link_libraries(mgclient-shared + PRIVATE +- ${OPENSSL_LIBRARIES} project_options project_c_warnings) +- ++ ${OPENSSL_LIBRARIES}) ++ target_compile_options(mgclient-shared PRIVATE ++ $<TARGET_PROPERTY:project_options,INTERFACE_COMPILE_OPTIONS> ++ $<TARGET_PROPERTY:project_c_warnings,INTERFACE_COMPILE_OPTIONS>) + if(MGCLIENT_ON_WINDOWS) + target_link_libraries(mgclient-shared PUBLIC ws2_32 crypt32 gdi32) + endif() ++ endif() + +- generate_export_header(mgclient-shared +- BASE_NAME "mgclient" +- EXPORT_FILE_NAME "mgclient-export.h") +- +- include(GNUInstallDirs) +- +- install(TARGETS mgclient-static mgclient-shared ++ if(BUILD_SHARED_LIBS) ++ install(TARGETS mgclient-shared ++ EXPORT unofficial-mgclient-export ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) ++ else() ++ install(TARGETS mgclient-static ++ EXPORT unofficial-mgclient-export + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} +- RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR}) ++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) ++ endif() + install(DIRECTORY + "${PROJECT_SOURCE_DIR}/include/" + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) + install(FILES + "${CMAKE_CURRENT_BINARY_DIR}/mgclient-export.h" + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) ++ install(EXPORT unofficial-mgclient-export ++ FILE unofficial-mgclient-config.cmake ++ NAMESPACE unofficial::mgclient:: ++ DESTINATION share/unofficial-mgclient) + endif() diff --git a/vcpkg/ports/mgclient/portfile.cmake b/vcpkg/ports/mgclient/portfile.cmake new file mode 100644 index 0000000..194f3ba --- /dev/null +++ b/vcpkg/ports/mgclient/portfile.cmake @@ -0,0 +1,29 @@ +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO memgraph/mgclient + REF "v${VERSION}" + SHA512 67321e51255c4552a8e9a4ad55a5ed9159b92ecea87f8a667bc817b87289940558f1f1cd0dc5f99bb698739bd5e1b58d9ff3f13c4d61190f27bd009b0055a445 + HEAD_REF master + PATCHES + export-cmake.patch +) + +vcpkg_check_features(OUT_FEATURE_OPTIONS options + FEATURES + cpp BUILD_CPP_BINDINGS +) + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + ${options} + -DBUILD_TESTING=OFF + -DBUILD_TESTING_INTEGRATION=OFF +) + +vcpkg_cmake_install() +vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-mgclient) + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") + +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") diff --git a/vcpkg/ports/mgclient/vcpkg.json b/vcpkg/ports/mgclient/vcpkg.json new file mode 100644 index 0000000..fa7dce9 --- /dev/null +++ b/vcpkg/ports/mgclient/vcpkg.json @@ -0,0 +1,24 @@ +{ + "name": "mgclient", + "version": "1.4.5", + "description": "C/C++ Memgraph Client ", + "homepage": "https://github.com/memgraph/mgclient", + "license": "Apache-2.0", + "supports": "!android", + "dependencies": [ + "openssl", + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ], + "features": { + "cpp": { + "description": "build header only cpp bindings" + } + } +} |