You've already forked macports-ports
mirror of
https://github.com/macports/macports-ports.git
synced 2026-07-12 18:20:25 -07:00
149 lines
5.6 KiB
Tcl
149 lines
5.6 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 github 1.0
|
|
PortGroup cmake 1.1
|
|
PortGroup legacysupport 1.1
|
|
|
|
github.setup ggerganov llama.cpp 9811 b
|
|
github.tarball_from archive
|
|
set git-commit 9df0680
|
|
# This line is for displaying commit in CLI only
|
|
revision 0
|
|
categories llm
|
|
maintainers {i0ntempest @i0ntempest} openmaintainer
|
|
license MIT
|
|
|
|
description LLM inference in C/C++
|
|
long_description The main goal of ${name} is to enable LLM inference with minimal\
|
|
setup and state-of-the-art performance on a wide variety of hardware\
|
|
- locally and in the cloud.
|
|
|
|
checksums rmd160 cfb94b8cebc7284469d4609f4700e15ec07afb42 \
|
|
sha256 c6f44bea9a1a2ad00a8c2fa1b36f1b480ed55dab9fec5ee818b78ca23d573473 \
|
|
size 35014040
|
|
|
|
# error: 'filesystem' file not found on 10.14
|
|
legacysupport.newest_darwin_requires_legacy \
|
|
18
|
|
legacysupport.use_mp_libcxx \
|
|
yes
|
|
|
|
depends_build-append path:bin/pkg-config:pkgconfig
|
|
|
|
depends_lib-append port:curl
|
|
|
|
compiler.cxx_standard 2017
|
|
|
|
# cmake relies on git for version info. We need to set them manually.
|
|
configure.args-append -DGGML_LTO=ON \
|
|
-DGGML_CCACHE=OFF \
|
|
-DGGML_OPENMP=OFF \
|
|
-DLLAMA_CURL=ON \
|
|
-DLLAMA_BUILD_NUMBER=${version} \
|
|
-DLLAMA_BUILD_COMMIT=${git-commit} \
|
|
-DLLAMA_BUILD_TESTS=OFF \
|
|
-DGGML_METAL=OFF \
|
|
-DGGML_METAL_EMBED_LIBRARY=OFF
|
|
|
|
variant blas description {Uses BLAS, improves performance} {
|
|
configure.args-append \
|
|
-DGGML_BLAS=ON
|
|
if {${os.platform} eq "darwin" && ${os.subplatform} eq "macosx"} {
|
|
configure.args-append \
|
|
-DGGML_ACCELLERATE=ON \
|
|
-DGGML_BLAS_VENDOR=Apple
|
|
} else {
|
|
configure.args-append \
|
|
-DGGML_ACCELLERATE=OFF \
|
|
-DGGML_BLAS_VENDOR=OpenBLAS
|
|
|
|
depends_lib-append \
|
|
path:lib/libopenblas.dylib:OpenBLAS
|
|
}
|
|
}
|
|
|
|
variant openmp description {enable parallelism support using OpenMP} {
|
|
compiler.openmp_version \
|
|
4.5
|
|
compiler.blacklist-append \
|
|
{macports-clang-[0-9].*}
|
|
configure.args-replace \
|
|
-DGGML_OPENMP=OFF \
|
|
-DGGML_OPENMP=ON
|
|
if {[string match *clang* ${configure.compiler}]} {
|
|
configure.ldflags-append \
|
|
-L${prefix}/lib/libomp -lomp
|
|
}
|
|
}
|
|
|
|
variant metal description {Enable Metal support} {
|
|
configure.args-append \
|
|
-DGGML_METAL_MACOSX_VERSION_MIN=${macos_version_major}
|
|
configure.args-replace \
|
|
-DGGML_METAL=OFF -DGGML_METAL=ON
|
|
configure.args-replace \
|
|
-DGGML_METAL_EMBED_LIBRARY=OFF -DGGML_METAL_EMBED_LIBRARY=ON
|
|
}
|
|
|
|
variant model_converters description {install extra model conversion Python scripts} {
|
|
post-destroot {
|
|
xinstall -d ${destroot}${prefix}/share/${name}
|
|
xinstall -m 644 {*}[glob ${worksrcpath}/convert*.py] ${destroot}${prefix}/share/${name}
|
|
}
|
|
|
|
notes-append "
|
|
Model conversion scripts have been installed to:
|
|
|
|
${prefix}/share/${name}/
|
|
|
|
These scripts should be executed in a Python virtual environment with at least\
|
|
these dependencies installed:
|
|
numpy
|
|
pytorch
|
|
transformers
|
|
gguf
|
|
"
|
|
}
|
|
|
|
# This can replace the variant above once we have all the dependencies updated and fixed
|
|
# See: https://github.com/macports/macports-ports/pull/27526
|
|
#variant model_converters description {install extra model conversion Python scripts} {
|
|
# set ::python_branch 3.12
|
|
# set ::python_version [string map {. ""} ${::python_branch}]
|
|
# depends_run-append port:python${::python_version} \
|
|
# port:py${::python_version}-numpy \
|
|
# port:py${::python_version}-pytorch \
|
|
# port:py${::python_version}-transformers \
|
|
# port:py${::python_version}-gguf
|
|
#
|
|
# post-patch {
|
|
# reinplace "s|#!/usr/bin/env python3|#!${prefix}/bin/python${::python_branch}|" {*}[glob ${worksrcpath}/convert*.py]
|
|
# }
|
|
#
|
|
# post-destroot {
|
|
# xinstall -d ${destroot}${prefix}/libexec/${name}
|
|
# xinstall -m 755 {*}[glob ${worksrcpath}/convert*.py] ${destroot}${prefix}/libexec/${name}
|
|
# foreach file [glob -directory ${destroot}${prefix}/libexec/${name} *.py] {
|
|
# set filebasename [file rootname [file tail $file]]
|
|
# set link ${destroot}${prefix}/bin/[lindex [split ${name} .] 0]-[string map {_ -} ${filebasename}]
|
|
# set target [string replace ${file} 0 [string length ${destroot}]-1]
|
|
# ui_debug "Creating symlink: ${link} => ${target}"
|
|
# ln -s ${target} ${link}
|
|
# }
|
|
# }
|
|
#}
|
|
|
|
variant native description {Force local build and optimize for CPU} {
|
|
configure.args-append \
|
|
-DGGML_NATIVE=ON
|
|
}
|
|
|
|
default_variants +blas +openmp
|
|
|
|
# error: use of undeclared identifier 'MTLGPUFamilyApple7' on 10.14
|
|
if {${os.platform} eq "darwin" && ${os.subplatform} eq "macosx" && \
|
|
(${os.major} >= 20 && ${configure.sdk_version} >= 11)} {
|
|
default_variants +metal
|
|
}
|