EAPI=8 ROCM_VERSION=10.1.0 LLVM_COMPAT=( 23 ) inherit cmake git-r3 llvm-r2 rocm DESCRIPTION="Local inference engine optimized for AMD Strix Halo (gfx1151)" HOMEPAGE="https://github.com/gufo-org/gufo" EGIT_REPO_URI="https://github.com/gufo-org/gufo.git" EGIT_COMMIT="v${PV}" SRC_URI=" https://github.com/ROCm/rocm-libraries/releases/download/therock-${ROCM_VERSION%.*}/hipcub.tar.gz -> hipcub-${ROCM_VERSION}.tar.gz https://github.com/ROCm/rocm-libraries/releases/download/therock-${ROCM_VERSION%.*}/rocwmma.tar.gz -> rocwmma-${ROCM_VERSION}.tar.gz " S="${WORKDIR}/${P}" LICENSE="MIT BSD Apache-2.0" SLOT="0" KEYWORDS="~amd64" REQUIRED_USE="amdgpu_targets_gfx1151" # sci-libs/rocWMMA:0/10.1[${ROCM_USEDEP}] # media-libs/soxr DEPEND=" $(llvm_gen_dep ' llvm-core/clang:${LLVM_SLOT}= ') dev-util/hip:0/10.1[hip,video_cards_amdgpu] sci-libs/hipBLAS:0/10.1[${ROCM_USEDEP}] sci-libs/hipBLASLt:0/10.1[${ROCM_USEDEP}] sci-libs/hipCUB:0/10.1[${ROCM_USEDEP}] sci-libs/rocBLAS:0/10.1[${ROCM_USEDEP}] sci-libs/rocPRIM:0/10.1[${ROCM_USEDEP}] dev-libs/icu net-misc/curl dev-libs/openssl media-libs/libpng virtual/jpeg media-libs/libwebp media-libs/libsndfile media-video/ffmpeg " RDEPEND="${DEPEND}" BDEPEND=" dev-build/cmake app-alternatives/ninja virtual/pkgconfig dev-util/hipcc:0/10.1 " PATCHES=( "${FILESDIR}"/${PN}-remove-soxr-dep.patch #"${FILESDIR}"/${PN}-remove-unused-model-support.patch "${FILESDIR}"/${PN}-fix-type-mismatches.patch # We remove support for Deepseek model, in part because it requires # rocWMMA headers, which mismatch *hard*. Seems to be similar to # https://github.com/ggml-org/llama.cpp/issues/30839 "${FILESDIR}"/${PN}-remove-deepseek-v4-flash-model.patch ) src_unpack() { git-r3_src_unpack unpack "hipcub-${ROCM_VERSION}.tar.gz" unpack "rocwmma-${ROCM_VERSION}.tar.gz" } src_configure() { local llvm_prefix=$(get_llvm_prefix) || die local -x CC="${llvm_prefix}/bin/clang" local -x CXX="${llvm_prefix}/bin/clang++" local hipclangpath hipclangpath=$(hipconfig --hipclangpath) || die local hipclang="${hipclangpath}/${CHOST}-clang" [[ -x ${hipclang} ]] || die "HIP Clang not found: ${hipclang}" local revision revision=$(git -C "${S}" rev-parse --short=7 HEAD) || die export ROCM_PATH="${EPREFIX}/usr" export HIP_PATH="${EPREFIX}/usr" local mycmakeargs=( -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_SKIP_RPATH=ON -DCMAKE_HIP_COMPILER="${hipclang}" -DCMAKE_HIP_COMPILER_ROCM_ROOT="${EPREFIX}/usr" -DCMAKE_HIP_ARCHITECTURES=gfx1151 -DENGINE_ENABLE_HIP=ON -DBUILD_TESTING=OFF -DGUFO_BUILD_TOOLS=OFF -DGUFO_RELEASE_VERSION="${PV}" -DGUFO_REVISION="${revision}" -DGUFO_FFMPEG_EXECUTABLE="${EPREFIX}/usr/bin/ffmpeg" -DGUFO_FFPROBE_EXECUTABLE="${EPREFIX}/usr/bin/ffprobe" -DHIPCUB_INCLUDE_DIR="${WORKDIR}/hipcub/library/include" -DROCWMMA_INCLUDE_DIR="${WORKDIR}/rocwmma/library/include" ) cmake_src_configure } src_test() { "${BUILD_DIR}/gufo" --version || die "${BUILD_DIR}/gufo" --help >/dev/null || die }