diff options
| author | Jacob Zhong <cmpute@qq.com> | 2018-02-27 23:05:18 +0800 |
|---|---|---|
| committer | Robert Schumacher <roschuma@microsoft.com> | 2018-02-27 07:05:18 -0800 |
| commit | 9db298e34a3ad6efebd4f0d95a0ca45e2d70b377 (patch) | |
| tree | a09b71f7bee00661d563cdeae957c891e9a72b98 /ports/nmslib/portfile.cmake | |
| parent | 25b8f25dadcb2af28ae5be2e6d31884ca67f1b26 (diff) | |
| download | vcpkg-9db298e34a3ad6efebd4f0d95a0ca45e2d70b377.tar.gz vcpkg-9db298e34a3ad6efebd4f0d95a0ca45e2d70b377.zip | |
Add package NMSLiB (#2875)
* [nmslib] Init port
* [nmslib] Trying extra building
Diffstat (limited to 'ports/nmslib/portfile.cmake')
| -rw-r--r-- | ports/nmslib/portfile.cmake | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/ports/nmslib/portfile.cmake b/ports/nmslib/portfile.cmake new file mode 100644 index 000000000..8743aae80 --- /dev/null +++ b/ports/nmslib/portfile.cmake @@ -0,0 +1,60 @@ +include(vcpkg_common_functions) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) + message(STATUS "nmslib only supports static linkage. Building statically.") + set(VCPKG_LIBRARY_LINKAGE static) +endif() + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO searchivarius/nmslib + REF v1.7.2 + SHA512 2f910f752bfb1146aa8d1765fd5faf64d718a92ab7edf9d8ac0a2d9c4359d42b07b3cd553e2aff93da8b009add52ab9cce6b841f5175f57163f73f643ff62c19 + HEAD_REF master +) + +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES + ${CMAKE_CURRENT_LIST_DIR}/fix-headers.patch + ${CMAKE_CURRENT_LIST_DIR}/fix-cmake-order.patch +) + +set(WITH_EXTRAS OFF) +if("extra" IN_LIST FEATURES) + set(WITH_EXTRAS ON) +endif() + +# TODO: check SSE and AVX avability and set corresponding tags +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH}/similarity_search + OPTIONS + -DWITH_EXTRAS=${WITH_EXTRAS} +) + +vcpkg_install_cmake() +vcpkg_copy_pdbs() + +# Move headers into separate folder +set(SUBFOLDERS factory method space) +file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/include/nmslib) +foreach(SUBFOLER ${SUBFOLDERS}) + file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/include/nmslib/${SUBFOLER}) +endforeach() + +file(GLOB HEADERS ${CURRENT_PACKAGES_DIR}/include/*.h ${CURRENT_PACKAGES_DIR}/include/*/*.h) +foreach(HEADER ${HEADERS}) + string(REPLACE "${CURRENT_PACKAGES_DIR}/include" "${CURRENT_PACKAGES_DIR}/include/nmslib" + MOVED_HEADER ${HEADER}) + file(RENAME ${HEADER} ${MOVED_HEADER}) +endforeach(HEADER ${HEADERS}) + +foreach(SUBFOLER ${SUBFOLDERS}) + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/${SUBFOLER}/) +endforeach() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +# Put the license file where vcpkg expects it +file(COPY ${SOURCE_PATH}/README.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/nmslib/) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/nmslib/README.md ${CURRENT_PACKAGES_DIR}/share/nmslib/copyright) |
