# Copyright 2026 # Distributed under the terms of the GNU General Public License v2 EAPI=8 inherit cmake cuda git-r3 toolchain-funcs DESCRIPTION="PrismML llama.cpp fork with Bonsai low-bit model support" HOMEPAGE="https://github.com/PrismML-Eng/llama.cpp" EGIT_REPO_URI="${HOMEPAGE}.git" EGIT_BRANCH="prism" LICENSE="MIT" SLOT="0" KEYWORDS="" PROPERTIES="live" IUSE="cuda curl openmp openssl vulkan" RDEPEND=" curl? ( net-misc/curl:= ) cuda? ( dev-util/nvidia-cuda-toolkit:= ) openmp? ( llvm-runtimes/openmp:= ) openssl? ( dev-libs/openssl:= ) vulkan? ( media-libs/vulkan-loader ) " DEPEND=" ${RDEPEND} vulkan? ( dev-util/spirv-headers dev-util/vulkan-headers ) " BDEPEND=" vulkan? ( media-libs/shaderc ) " pkg_pretend() { use openmp && tc-check-openmp } pkg_setup() { use openmp && tc-check-openmp } src_prepare() { use cuda && cuda_src_prepare cmake_src_prepare } src_configure() { local mycmakeargs=( -DLLAMA_BUILD_TESTS=OFF -DLLAMA_BUILD_EXAMPLES=OFF -DLLAMA_BUILD_SERVER=ON -DLLAMA_BUILD_UI=OFF -DLLAMA_USE_PREBUILT_UI=OFF -DLLAMA_TESTS_INSTALL=OFF -DLLAMA_CURL=$(usex curl) -DLLAMA_OPENSSL=$(usex openssl) -DGGML_NATIVE=OFF -DGGML_CCACHE=OFF -DGGML_CUDA=$(usex cuda) -DGGML_OPENMP=$(usex openmp) -DGGML_RPC=ON -DGGML_VULKAN=$(usex vulkan) -DCMAKE_INSTALL_INCLUDEDIR="include/${PN}" -DCMAKE_INSTALL_LIBDIR="$(get_libdir)/${PN}" -DCMAKE_INSTALL_BINDIR="libexec/${PN}" -DCMAKE_INSTALL_RPATH="\$ORIGIN/../../$(get_libdir)/${PN};\$ORIGIN" ) if use cuda; then local -x CUDAHOSTCXX="$(cuda_gccdir)" cuda_add_sandbox addpredict "/dev/char/" fi cmake_src_configure } src_install() { cmake_src_install local tool for tool in llama llama-cli llama-server; do if [[ -x ${ED}/usr/libexec/${PN}/${tool} ]]; then dosym -r "/usr/libexec/${PN}/${tool}" "/usr/bin/prism-${tool}" fi done }