# Copyright 2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

# LocalAI image-segmentation backend: Meta's SAM 3 (Segment Anything)
# via sam3.cpp, built from the exact commit this LocalAI release pins.
# The engine compiles into a dlopen-able module library loaded by a
# CGO-free Go gRPC server from LocalAI's own Go module (the ggml-go
# backend family layout).

EAPI=8

LOCAL_AI_ENGINE_LIB="libgosam3.so"
LOCAL_AI_ENGINE_LIB_ENV="SAM3_LIBRARY"

inherit local-ai-ggml-go

# The sam3.cpp commit LocalAI v4.11.0 builds against. Source of truth:
# backend/go/sam3-cpp/Makefile (SAM3_VERSION) at the upstream release
# tag; the ggml pin is that commit's submodule gitlink (PABannier's
# ggml fork).
SAM3_COMMIT="416186c501d060df7ca02989d49b38080f5f81f3"
GGML_COMMIT="331b9cba52b23d895bc4ad218c007eb5e667540f"

DESCRIPTION="LocalAI image-segmentation backend (sam3.cpp gRPC server)"
SRC_URI="
	${LOCAL_AI_GO_SRC_URI}
	https://github.com/PABannier/sam3.cpp/archive/${SAM3_COMMIT}.tar.gz -> sam3.cpp-${SAM3_COMMIT}.tar.gz
	https://github.com/PABannier/ggml/archive/${GGML_COMMIT}.tar.gz -> pabannier-ggml-${GGML_COMMIT}.tar.gz
"
S="${WORKDIR}/LocalAI-${PV}/backend/go/sam3-cpp"

KEYWORDS="~amd64"

src_unpack() {
	local-ai-backend_go_unpack

	local ggml=( "pabannier-ggml-${GGML_COMMIT}.tar.gz" "ggml-${GGML_COMMIT}" ggml )
	local-ai-backend_engine_unpack "sam3.cpp-${SAM3_COMMIT}.tar.gz" sam3.cpp "${ggml[@]}"
}