# -*- 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           github  1.0
PortGroup           cmake   1.1

github.setup        ashvardanian StringZilla 4.6.0 v
github.tarball_from archive
name                stringzilla
revision            0

homepage            https://ashvardanian.com/posts/stringzilla

description         \
    SIMD-accelerated string search, sort, hash, and edit distance library

long_description    \
    StringZilla is a C/C++ library that provides SIMD-accelerated \
    implementations of common string operations including substring \
    search, sorting, hashing, and edit distance computation, using \
    NEON, AVX2, AVX-512, and SVE intrinsics.

categories          devel textproc
license             Apache-2
maintainers         nomaintainer

# _mm512_loadu_epi8 and other AVX-512 intrinsics require Apple Clang 11+ (Xcode 11);
# on older macOS, MacPorts will fall back to macports-clang.
compiler.blacklist-append {clang < 1100}

checksums           rmd160  68f4241cc189695eadabc77a444b2aaf0a37a4f7 \
                    sha256  cba35adab6f0b25d277451e0130798d1a8742e4c52d0ab29c5a5fca54242d0e3 \
                    size    786214

configure.args-append \
                    -DSTRINGZILLA_INSTALL=ON \
                    -DSTRINGZILLA_BUILD_TEST=OFF \
                    -DSTRINGZILLA_BUILD_BENCHMARK=OFF \
                    -DSTRINGZILLA_BUILD_SHARED=ON \
                    -DSTRINGZILLAS_BUILD_SHARED=OFF \
                    -DSTRINGZILLA_BUILD_CUDA=OFF \
                    -DSTRINGZILLA_USE_SANITIZERS=OFF

variant parallel description {Build the multi-threaded parallel algorithms library (C++20)} {
    configure.args-replace  -DSTRINGZILLAS_BUILD_SHARED=OFF \
                            -DSTRINGZILLAS_BUILD_SHARED=ON
}
