From 0f059596124b7afce437e5dad4588fb3ff06719e Mon Sep 17 00:00:00 2001 From: bucurb Date: Fri, 16 Jul 2021 20:03:54 +0100 Subject: [Faiss] Fix dependencies (#18780) * fixed targets * bumped port version * updated sha * lapack-reference should always write into lapack * lapack-reference sha * Fixed clapack target * versions * sha * ensure cmake finds the cuda compiler * sha --- ports/clapack/FindLAPACK.cmake | 24 +++++++++++++++--------- ports/clapack/vcpkg.json | 2 +- ports/faiss/fix-dependencies.patch | 34 ++++++++++++++++++++++++++++++++++ ports/faiss/portfile.cmake | 11 ++++++++++- ports/faiss/vcpkg.json | 3 ++- ports/lapack-reference/CONTROL | 2 +- ports/lapack-reference/portfile.cmake | 6 ++---- versions/baseline.json | 6 +++--- versions/c-/clapack.json | 5 +++++ versions/f-/faiss.json | 5 +++++ versions/l-/lapack-reference.json | 5 +++++ 11 files changed, 83 insertions(+), 20 deletions(-) create mode 100644 ports/faiss/fix-dependencies.patch diff --git a/ports/clapack/FindLAPACK.cmake b/ports/clapack/FindLAPACK.cmake index eff9bae70..aa546e672 100644 --- a/ports/clapack/FindLAPACK.cmake +++ b/ports/clapack/FindLAPACK.cmake @@ -200,10 +200,11 @@ if(CLAPACK_FOUND AND NOT TARGET clapack::clapack) endif() endif() -if(CLAPACK_FOUND AND NOT TARGET lapack) +# Ensure consistency with both CMake's vanilla as well as lapack-reference's FindLAPACK.cmake module and register the LAPACK::LAPACK target +if(CLAPACK_FOUND AND NOT TARGET LAPACK::LAPACK) if(EXISTS "${LAPACK_LIBRARY_RELEASE_DLL}") - add_library(lapack SHARED IMPORTED) - set_target_properties(lapack PROPERTIES + add_library(LAPACK::LAPACK SHARED IMPORTED) + set_target_properties(LAPACK::LAPACK PROPERTIES IMPORTED_LOCATION_RELEASE "${LAPACK_LIBRARY_RELEASE_DLL}" IMPORTED_IMPLIB_RELEASE "${oLAPACK_LIBRARY_RELEASE}" INTERFACE_INCLUDE_DIRECTORIES "${LAPACK_INCLUDE_DIR}" @@ -211,23 +212,28 @@ if(CLAPACK_FOUND AND NOT TARGET lapack) IMPORTED_CONFIGURATIONS Release IMPORTED_LINK_INTERFACE_LANGUAGES "C") if(EXISTS "${LAPACK_LIBRARY_DEBUG_DLL}") - set_property(TARGET lapack APPEND PROPERTY IMPORTED_CONFIGURATIONS Debug) - set_target_properties(lapack PROPERTIES + set_property(TARGET LAPACK::LAPACK APPEND PROPERTY IMPORTED_CONFIGURATIONS Debug) + set_target_properties(LAPACK::LAPACK PROPERTIES IMPORTED_LOCATION_DEBUG "${LAPACK_LIBRARY_DEBUG_DLL}" IMPORTED_IMPLIB_DEBUG "${oLAPACK_LIBRARY_DEBUG}") endif() else() - add_library(lapack UNKNOWN IMPORTED) - set_target_properties(lapack PROPERTIES + add_library(LAPACK::LAPACK UNKNOWN IMPORTED) + set_target_properties(LAPACK::LAPACK PROPERTIES IMPORTED_LOCATION_RELEASE "${oLAPACK_LIBRARY_RELEASE}" INTERFACE_INCLUDE_DIRECTORIES "${LAPACK_INCLUDE_DIR}" IMPORTED_CONFIGURATIONS Release INTERFACE_LINK_LIBRARIES "$<$>:${oF2C_LIBRARY_RELEASE}>;$<$:${oF2C_LIBRARY_DEBUG}>;$<$>:${LAPACK_BLAS_LIBRARY_RELEASE}>;$<$:${LAPACK_BLAS_LIBRARY_DEBUG}>;$;$" IMPORTED_LINK_INTERFACE_LANGUAGES "C") if(EXISTS "${LAPACK_LIBRARY_DEBUG}") - set_property(TARGET lapack APPEND PROPERTY IMPORTED_CONFIGURATIONS Debug) - set_target_properties(lapack PROPERTIES + set_property(TARGET LAPACK::LAPACK APPEND PROPERTY IMPORTED_CONFIGURATIONS Debug) + set_target_properties(LAPACK::LAPACK PROPERTIES IMPORTED_LOCATION_DEBUG "${oLAPACK_LIBRARY_DEBUG}") endif() endif() endif() + +# Preserve backwards compatibility and also register the 'lapack' target +if(CLAPACK_FOUND AND NOT TARGET lapack) + add_library(lapack ALIAS LAPACK::LAPACK) +endif() diff --git a/ports/clapack/vcpkg.json b/ports/clapack/vcpkg.json index 18f01ec83..f0fd61e8f 100644 --- a/ports/clapack/vcpkg.json +++ b/ports/clapack/vcpkg.json @@ -1,7 +1,7 @@ { "name": "clapack", "version-string": "3.2.1", - "port-version": 18, + "port-version": 19, "description": "CLAPACK (f2c'ed version of LAPACK)", "homepage": "https://www.netlib.org/clapack", "dependencies": [ diff --git a/ports/faiss/fix-dependencies.patch b/ports/faiss/fix-dependencies.patch new file mode 100644 index 000000000..caddb6b57 --- /dev/null +++ b/ports/faiss/fix-dependencies.patch @@ -0,0 +1,34 @@ +diff --git a/cmake/faiss-config.cmake.in b/cmake/faiss-config.cmake.in +index 43ea9d4c..437a7f81 100644 +--- a/cmake/faiss-config.cmake.in ++++ b/cmake/faiss-config.cmake.in +@@ -4,4 +4,7 @@ + # This source code is licensed under the BSD-style license found in the + # LICENSE file in the root directory of this source tree. + ++find_dependency(OpenMP REQUIRED) ++find_dependency(BLAS REQUIRED) ++find_dependency(LAPACK REQUIRED) + include("${CMAKE_CURRENT_LIST_DIR}/faiss-targets.cmake") +diff --git a/faiss/CMakeLists.txt b/faiss/CMakeLists.txt +index 51680fd1..691f52c2 100644 +--- a/faiss/CMakeLists.txt ++++ b/faiss/CMakeLists.txt +@@ -148,14 +148,14 @@ find_package(OpenMP REQUIRED) + target_link_libraries(faiss PRIVATE OpenMP::OpenMP_CXX) + + find_package(MKL) +-if(MKL_FOUND) ++if(0) + target_link_libraries(faiss PRIVATE ${MKL_LIBRARIES}) + else() + find_package(BLAS REQUIRED) +- target_link_libraries(faiss PRIVATE ${BLAS_LIBRARIES}) ++ target_link_libraries(faiss PRIVATE BLAS::BLAS) + + find_package(LAPACK REQUIRED) +- target_link_libraries(faiss PRIVATE ${LAPACK_LIBRARIES}) ++ target_link_libraries(faiss PRIVATE LAPACK::LAPACK) + endif() + + install(TARGETS faiss diff --git a/ports/faiss/portfile.cmake b/ports/faiss/portfile.cmake index 05a4273bf..51529558f 100644 --- a/ports/faiss/portfile.cmake +++ b/ports/faiss/portfile.cmake @@ -6,12 +6,21 @@ vcpkg_from_github( REF 0fb6c00cfa9487416b5cdf514f5f796476eecb06 # v1.6.4 SHA512 c7019615103fd29124c1f4458a47faebc5fe35545eea185c41cf643f2eabe82d134dc558c85f67faea7680c292abd7477ceefde157a7c3969eda78b77a23462b HEAD_REF master + PATCHES + fix-dependencies.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS - gpu FAISS_ENABLE_GPU + FEATURES + gpu FAISS_ENABLE_GPU ) +if ("${FAISS_ENABLE_GPU}") + if (NOT VCPKG_CMAKE_SYSTEM_NAME AND NOT ENV{CUDACXX}) + set(ENV{CUDACXX} "$ENV{CUDA_PATH}/bin/nvcc.exe") + endif() +endif() + vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA diff --git a/ports/faiss/vcpkg.json b/ports/faiss/vcpkg.json index 039513d3a..4b9c63691 100644 --- a/ports/faiss/vcpkg.json +++ b/ports/faiss/vcpkg.json @@ -1,6 +1,7 @@ { "name": "faiss", - "version-string": "1.6.4", + "version-semver": "1.6.4", + "port-version": 1, "description": "Faiss is a library for efficient similarity search and clustering of dense vectors.", "homepage": "https://github.com/facebookresearch/faiss", "license": "MIT", diff --git a/ports/lapack-reference/CONTROL b/ports/lapack-reference/CONTROL index 701e48b7d..3e18ebd2b 100644 --- a/ports/lapack-reference/CONTROL +++ b/ports/lapack-reference/CONTROL @@ -1,6 +1,6 @@ Source: lapack-reference Version: 3.8.0 -Port-Version: 4 +Port-Version: 5 Description: LAPACK — Linear Algebra PACKage http://www.netlib.org/lapack/ Default-Features: blas-select Build-Depends: vcpkg-gfortran (windows) diff --git a/ports/lapack-reference/portfile.cmake b/ports/lapack-reference/portfile.cmake index 11655858c..70e6059ff 100644 --- a/ports/lapack-reference/portfile.cmake +++ b/ports/lapack-reference/portfile.cmake @@ -137,7 +137,5 @@ if(VCPKG_TARGET_IS_WINDOWS) endif() endif() -if(NOT VCPKG_TARGET_IS_WINDOWS) - file(COPY ${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/lapack) - file(COPY ${CMAKE_CURRENT_LIST_DIR}/FindLAPACK.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/lapack) -endif() +file(COPY ${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/lapack) +file(COPY ${CMAKE_CURRENT_LIST_DIR}/FindLAPACK.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/lapack) diff --git a/versions/baseline.json b/versions/baseline.json index d9d156fbf..ed8287a10 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -1266,7 +1266,7 @@ }, "clapack": { "baseline": "3.2.1", - "port-version": 18 + "port-version": 19 }, "clara": { "baseline": "1.1.5", @@ -1926,7 +1926,7 @@ }, "faiss": { "baseline": "1.6.4", - "port-version": 0 + "port-version": 1 }, "fakeit": { "baseline": "2.0.7", @@ -2966,7 +2966,7 @@ }, "lapack-reference": { "baseline": "3.8.0", - "port-version": 4 + "port-version": 5 }, "lastools": { "baseline": "2020-05-09", diff --git a/versions/c-/clapack.json b/versions/c-/clapack.json index db346fb13..f0700bc5a 100644 --- a/versions/c-/clapack.json +++ b/versions/c-/clapack.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "bedf61cf9cf765a2c823e1f2427a16af6d8a711e", + "version-string": "3.2.1", + "port-version": 19 + }, { "git-tree": "229447785643f09b1a4ef53bab355ff3757e178e", "version-string": "3.2.1", diff --git a/versions/f-/faiss.json b/versions/f-/faiss.json index a8209b68e..e98b785dc 100644 --- a/versions/f-/faiss.json +++ b/versions/f-/faiss.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "eb401df0155a10cfc7cba057bbf63d10fdc37067", + "version-semver": "1.6.4", + "port-version": 1 + }, { "git-tree": "57552b56d2871ea87459fc655463067e1b02fcf3", "version-string": "1.6.4", diff --git a/versions/l-/lapack-reference.json b/versions/l-/lapack-reference.json index 0fd9ba4d7..96db87c74 100644 --- a/versions/l-/lapack-reference.json +++ b/versions/l-/lapack-reference.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "1887fc1fcb0c96df1ea24fffc9b045330426e3b6", + "version-string": "3.8.0", + "port-version": 5 + }, { "git-tree": "34971ac86a76f6bffefe5962980c3991abf87a58", "version-string": "3.8.0", -- cgit v1.2.3