You've already forked macports-ports
mirror of
https://github.com/macports/macports-ports.git
synced 2026-07-12 18:20:25 -07:00
136 lines
4.5 KiB
Tcl
136 lines
4.5 KiB
Tcl
# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
|
|
|
|
PortSystem 1.0
|
|
PortGroup cmake 1.1
|
|
PortGroup github 1.0
|
|
|
|
epoch 1
|
|
github.setup facebookresearch faiss 1.7.3 v
|
|
revision 1
|
|
checksums rmd160 e2f447edf4bc8bb4add776f96c473074d3d71bff \
|
|
sha256 dda1b031957789e6a6f3b37d48ad135b9557a33c5013c1c245ef4bced2d787de \
|
|
size 843640
|
|
|
|
name libfaiss
|
|
categories math
|
|
license BSD
|
|
maintainers {@beauby fb.com:hoss} {@mdouze fb.com:matthijs} \
|
|
openmaintainer
|
|
|
|
description Efficient similarity search library from \
|
|
Facebook AI Research.
|
|
|
|
long_description Library for efficient similarity search and \
|
|
clustering of dense vectors. It contains \
|
|
algorithms that search in sets of vectors of any \
|
|
size, up to ones that possibly do not fit in \
|
|
RAM. It also contains supporting code for \
|
|
evaluation and parameter tuning. Faiss is written \
|
|
in C++ with complete wrappers for \
|
|
Python/numpy. Some of the most useful algorithms \
|
|
are implemented on the GPU.
|
|
|
|
github.tarball_from archive
|
|
|
|
compiler.cxx_standard 2011
|
|
|
|
if {[string match *clang* ${configure.compiler}]} {
|
|
compiler.openmp_version 2.5
|
|
|
|
configure.ldflags-append \
|
|
-L${prefix}/lib/libomp \
|
|
-lomp
|
|
}
|
|
|
|
configure.args-append \
|
|
-DFAISS_ENABLE_GPU:BOOL=OFF \
|
|
-DFAISS_ENABLE_PYTHON:BOOL=OFF
|
|
|
|
variant openblas description {Use OpenBLAS instead of Apple's Accelerate framework} {
|
|
depends_lib-append path:lib/libopenblas.dylib:OpenBLAS
|
|
build.env-delete "BLASLDFLAGS=-framework Accelerate"
|
|
build.env-append BLASLDFLAGS=${prefix}/lib/libopenblas.dylib
|
|
}
|
|
|
|
default_variants +openblas
|
|
|
|
# create Python subports
|
|
set python_versions {310}
|
|
foreach v ${python_versions} {
|
|
subport py${v}-${github.project} {
|
|
PortGroup python 1.0
|
|
|
|
python.default_version ${v}
|
|
}
|
|
}
|
|
|
|
# Python bindings for supported Python versions
|
|
if {[string match "py*" ${subport}]} {
|
|
github.setup ${github.author} ${github.project} ${github.version} ${github.tag_prefix}
|
|
|
|
categories math python
|
|
description Python ${python.branch} bindings for ${description}
|
|
long_description \
|
|
This package provides Python ${python.branch} bindings, \
|
|
modules, and scripts.
|
|
|
|
depends_build-append \
|
|
port:py${python.version}-setuptools \
|
|
port:swig \
|
|
port:swig-python
|
|
|
|
depends_lib-append \
|
|
port:py${python.version}-numpy
|
|
|
|
depends_test-append \
|
|
port:py${python.version}-pytest
|
|
|
|
# Build instructions:
|
|
# https://github.com/facebookresearch/faiss/blob/master/INSTALL.md#compile-from-source
|
|
|
|
python.pep517 no
|
|
use_configure yes
|
|
|
|
configure.args-replace \
|
|
-DFAISS_ENABLE_PYTHON:BOOL=OFF \
|
|
-DFAISS_ENABLE_PYTHON:BOOL=ON
|
|
configure.args-append \
|
|
-DPython_EXECUTABLE=${python.bin} \
|
|
-DSWIG_EXECUTABLE=${prefix}/bin/swig
|
|
configure.pre_args-delete \
|
|
--prefix=${prefix}
|
|
configure.pre_args-replace \
|
|
"-DCMAKE_MAKE_PROGRAM=${python.bin} setup.py --no-user-cfg" \
|
|
-DCMAKE_MAKE_PROGRAM=[portbuild::build_getmaketype]
|
|
|
|
pre-build {
|
|
system -W ${configure.dir} "[portbuild::build_getmaketype] -w all[portbuild::build_getjobsarg] ${build.post_args}"
|
|
}
|
|
|
|
build.post_args-delete \
|
|
VERBOSE=ON
|
|
build.dir ${configure.dir}/faiss/python
|
|
|
|
destroot.dir ${build.dir}
|
|
destroot.target install
|
|
|
|
post-destroot {
|
|
set docdir ${prefix}/share/doc/${subport}
|
|
set tutorialdir ${prefix}/share/${subport}/tutorial
|
|
xinstall -d \
|
|
${destroot}${docdir} \
|
|
${destroot}${tutorialdir}
|
|
xinstall -m 0644 -W ${worksrcpath} README.md LICENSE \
|
|
${destroot}${docdir}
|
|
copy ${worksrcpath}/tutorial/python \
|
|
${destroot}${tutorialdir}
|
|
}
|
|
|
|
test.run yes
|
|
test.env-append \
|
|
"PATH=$env(PATH):${python.prefix}/bin" \
|
|
"PYTHONPATH=${configure.dir}/faiss/python"
|
|
|
|
livecheck.type none
|
|
}
|