aboutsummaryrefslogtreecommitdiff
path: root/ports/nmslib/portfile.cmake
diff options
context:
space:
mode:
authorJacob Zhong <cmpute@qq.com>2018-02-27 23:05:18 +0800
committerRobert Schumacher <roschuma@microsoft.com>2018-02-27 07:05:18 -0800
commit9db298e34a3ad6efebd4f0d95a0ca45e2d70b377 (patch)
treea09b71f7bee00661d563cdeae957c891e9a72b98 /ports/nmslib/portfile.cmake
parent25b8f25dadcb2af28ae5be2e6d31884ca67f1b26 (diff)
downloadvcpkg-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.cmake60
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)