mirror of
https://github.com/microsoft/vcpkg.git
synced 2025-06-07 12:26:08 +08:00
[hnswlib] backport CMake targets (#31305)
* [hnswlib] backport CMake targets * download cmake changes as patch * add patch file
This commit is contained in:
parent
281cfd338c
commit
d163f9d5f5
44
ports/hnswlib/cmake.patch
Normal file
44
ports/hnswlib/cmake.patch
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||||
|
index 7cebe60..b2aecc8 100644
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
|
@@ -1,11 +1,36 @@
|
||||||
|
-cmake_minimum_required (VERSION 2.6)
|
||||||
|
-project(hnsw_lib
|
||||||
|
+cmake_minimum_required(VERSION 3.0...3.26)
|
||||||
|
+
|
||||||
|
+project(hnswlib
|
||||||
|
LANGUAGES CXX)
|
||||||
|
|
||||||
|
+include(GNUInstallDirs)
|
||||||
|
+
|
||||||
|
add_library(hnswlib INTERFACE)
|
||||||
|
-target_include_directories(hnswlib INTERFACE .)
|
||||||
|
+add_library(hnswlib::hnswlib ALIAS hnswlib)
|
||||||
|
+
|
||||||
|
+target_include_directories(hnswlib INTERFACE
|
||||||
|
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
|
||||||
|
+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
|
||||||
|
+
|
||||||
|
+# Install
|
||||||
|
+install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/hnswlib
|
||||||
|
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
||||||
|
|
||||||
|
+install(TARGETS hnswlib
|
||||||
|
+ EXPORT hnswlibTargets)
|
||||||
|
+
|
||||||
|
+install(EXPORT hnswlibTargets
|
||||||
|
+ FILE hnswlibConfig.cmake
|
||||||
|
+ NAMESPACE hnswlib::
|
||||||
|
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/hnswlib)
|
||||||
|
+
|
||||||
|
+# Examples and tests
|
||||||
|
if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME)
|
||||||
|
+ option(HNSWLIB_EXAMPLES "Build examples and tests." ON)
|
||||||
|
+else()
|
||||||
|
+ option(HNSWLIB_EXAMPLES "Build examples and tests." OFF)
|
||||||
|
+endif()
|
||||||
|
+if(HNSWLIB_EXAMPLES)
|
||||||
|
set(CMAKE_CXX_STANDARD 11)
|
||||||
|
|
||||||
|
if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
|
@ -1,12 +1,24 @@
|
|||||||
vcpkg_from_github(
|
vcpkg_from_github(
|
||||||
OUT_SOURCE_PATH SOURCE_PATH
|
OUT_SOURCE_PATH SOURCE_PATH
|
||||||
REPO nmslib/hnswlib
|
REPO nmslib/hnswlib
|
||||||
REF 359b2ba87358224963986f709e593d799064ace6 # v0.7.0
|
REF "v${VERSION}"
|
||||||
SHA512 59a0c02bbe8f7389a2ecad9188a76eb3847b719a213d306093753c04e4eeb11d95e8e310aa03888364be475a2f2e6e7976bd81117517eef81eff2983379ac743
|
SHA512 fd74c23040598973d7e0b5a6af73eb884ee2d30703187d1702fdd48eaf8f7f96d8fbb125d3763f90111d9fb7c5ab3434ebdb818da8717d35c5571e99083c812b
|
||||||
HEAD_REF master
|
HEAD_REF master
|
||||||
|
PATCHES
|
||||||
|
cmake.patch # Backport CMake targets from nmslib/hnswlib #446 to 0.7.0 release.
|
||||||
)
|
)
|
||||||
|
|
||||||
file(COPY "${SOURCE_PATH}/hnswlib" DESTINATION "${CURRENT_PACKAGES_DIR}/include")
|
set(VCPKG_BUILD_TYPE "release") # header-only port
|
||||||
|
|
||||||
|
vcpkg_cmake_configure(
|
||||||
|
SOURCE_PATH "${SOURCE_PATH}"
|
||||||
|
OPTIONS
|
||||||
|
-DHNSWLIB_EXAMPLES=OFF
|
||||||
|
)
|
||||||
|
|
||||||
|
vcpkg_cmake_install()
|
||||||
|
vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/hnswlib)
|
||||||
|
|
||||||
|
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib")
|
||||||
|
|
||||||
file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
|
|
||||||
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")
|
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")
|
||||||
|
@ -1,4 +0,0 @@
|
|||||||
hnswlib is header-only and can be used from CMake via:
|
|
||||||
|
|
||||||
find_path(HNSWLIB_INCLUDE_DIRS "hnswlib/hnswlib.h")
|
|
||||||
target_include_directories(main PRIVATE ${HNSWLIB_INCLUDE_DIRS})
|
|
@ -1,7 +1,18 @@
|
|||||||
{
|
{
|
||||||
"name": "hnswlib",
|
"name": "hnswlib",
|
||||||
"version": "0.7.0",
|
"version": "0.7.0",
|
||||||
|
"port-version": 1,
|
||||||
"description": "Header-only library for fast approximate nearest neighbors",
|
"description": "Header-only library for fast approximate nearest neighbors",
|
||||||
"homepage": "https://github.com/nmslib/hnswlib",
|
"homepage": "https://github.com/nmslib/hnswlib",
|
||||||
"license": "Apache-2.0"
|
"license": "Apache-2.0",
|
||||||
|
"dependencies": [
|
||||||
|
{
|
||||||
|
"name": "vcpkg-cmake",
|
||||||
|
"host": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "vcpkg-cmake-config",
|
||||||
|
"host": true
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
@ -3130,7 +3130,7 @@
|
|||||||
},
|
},
|
||||||
"hnswlib": {
|
"hnswlib": {
|
||||||
"baseline": "0.7.0",
|
"baseline": "0.7.0",
|
||||||
"port-version": 0
|
"port-version": 1
|
||||||
},
|
},
|
||||||
"hps": {
|
"hps": {
|
||||||
"baseline": "2022-01-18",
|
"baseline": "2022-01-18",
|
||||||
|
@ -1,5 +1,10 @@
|
|||||||
{
|
{
|
||||||
"versions": [
|
"versions": [
|
||||||
|
{
|
||||||
|
"git-tree": "497030f03d37d63ff86c9e99d24d9e8f048ea067",
|
||||||
|
"version": "0.7.0",
|
||||||
|
"port-version": 1
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"git-tree": "7053d263445d46410589894d921fa6c85fbf107c",
|
"git-tree": "7053d263445d46410589894d921fa6c85fbf107c",
|
||||||
"version": "0.7.0",
|
"version": "0.7.0",
|
||||||
|
Loading…
Reference in New Issue
Block a user