aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/mgclient
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/mgclient')
-rw-r--r--vcpkg/ports/mgclient/export-cmake.patch108
-rw-r--r--vcpkg/ports/mgclient/portfile.cmake29
-rw-r--r--vcpkg/ports/mgclient/vcpkg.json24
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"
+ }
+ }
+}