aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/usearch
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/usearch')
-rw-r--r--vcpkg/ports/usearch/portfile.cmake34
-rw-r--r--vcpkg/ports/usearch/use-vcpkg-ports.patch33
-rw-r--r--vcpkg/ports/usearch/vcpkg.json37
3 files changed, 104 insertions, 0 deletions
diff --git a/vcpkg/ports/usearch/portfile.cmake b/vcpkg/ports/usearch/portfile.cmake
new file mode 100644
index 0000000..de45d7b
--- /dev/null
+++ b/vcpkg/ports/usearch/portfile.cmake
@@ -0,0 +1,34 @@
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO unum-cloud/usearch
+ REF "v${VERSION}"
+ SHA512 daea0cbdae65a5b1c09f7a85e1bbb4475d21c73fb427a287929c78b86528a2b01e787a7d4adb8a498f2251ade59996207f0f26cf062d34796032734f864340ae
+ HEAD_REF main
+ PATCHES
+ use-vcpkg-ports.patch
+)
+
+vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
+ FEATURES
+ fp16 USEARCH_USE_FP16LIB
+ jemalloc USEARCH_USE_JEMALLOC
+ simsimd USEARCH_USE_SIMSIMD
+)
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ ${FEATURE_OPTIONS}
+ -DUSEARCH_INSTALL=ON
+ -DUSEARCH_BUILD_TEST_CPP=OFF
+ -DUSEARCH_BUILD_BENCH_CPP=OFF
+)
+
+vcpkg_cmake_install()
+vcpkg_cmake_config_fixup(CONFIG_PATH share/cmake/usearch)
+
+vcpkg_fixup_pkgconfig()
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug")
+
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")
diff --git a/vcpkg/ports/usearch/use-vcpkg-ports.patch b/vcpkg/ports/usearch/use-vcpkg-ports.patch
new file mode 100644
index 0000000..b805ebc
--- /dev/null
+++ b/vcpkg/ports/usearch/use-vcpkg-ports.patch
@@ -0,0 +1,33 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 1f6b036..abfca67 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -149,18 +149,6 @@ target_include_directories(
+ ${USEARCH_TARGET_NAME} ${USEARCH_SYSTEM_INCLUDE} INTERFACE $<BUILD_INTERFACE:${USEARCH_INCLUDE_BUILD_DIR}>
+ $<INSTALL_INTERFACE:include>
+ )
+-if (USEARCH_USE_FP16LIB)
+- target_include_directories(
+- ${USEARCH_TARGET_NAME} ${USEARCH_SYSTEM_INCLUDE} INTERFACE $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/fp16/include>
+- $<INSTALL_INTERFACE:fp16/include>
+- )
+-endif ()
+-if (USEARCH_USE_SIMSIMD)
+- target_include_directories(
+- ${USEARCH_TARGET_NAME} ${USEARCH_SYSTEM_INCLUDE}
+- INTERFACE $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/simsimd/include> $<INSTALL_INTERFACE:simsimd/include>
+- )
+-endif ()
+
+ # Install a pkg-config file, so other tools can find this
+ configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake/pkg-config.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc")
+@@ -220,8 +208,7 @@ if (NOT CMAKE_BUILD_TYPE)
+ endif ()
+
+ # Include directories
+-set(USEARCH_HEADER_INCLUDES "${CMAKE_CURRENT_SOURCE_DIR}/include" "${CMAKE_CURRENT_SOURCE_DIR}/fp16/include"
+- "${CMAKE_CURRENT_SOURCE_DIR}/simsimd/include"
++set(USEARCH_HEADER_INCLUDES "${CMAKE_CURRENT_SOURCE_DIR}/include"
+ )
+
+ # Function to setup target
diff --git a/vcpkg/ports/usearch/vcpkg.json b/vcpkg/ports/usearch/vcpkg.json
new file mode 100644
index 0000000..6aca4b3
--- /dev/null
+++ b/vcpkg/ports/usearch/vcpkg.json
@@ -0,0 +1,37 @@
+{
+ "name": "usearch",
+ "version": "2.21.0",
+ "description": "Fastest Search & Clustering engine × for Vectors & Strings",
+ "homepage": "https://github.com/unum-cloud/usearch",
+ "license": "Apache-2.0",
+ "dependencies": [
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ }
+ ],
+ "features": {
+ "fp16": {
+ "description": "Use software emulation for half-precision types",
+ "dependencies": [
+ "fp16"
+ ]
+ },
+ "jemalloc": {
+ "description": "Use JeMalloc for faster memory allocations",
+ "dependencies": [
+ "jemalloc"
+ ]
+ },
+ "simsimd": {
+ "description": "Use SimSIMD hardware-accelerated metrics",
+ "dependencies": [
+ "simsimd"
+ ]
+ }
+ }
+}