# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# shellcheck shell=bash
# shellcheck disable=SC2034
EAPI=8
inherit cmake linux-info llvm-utils
DESCRIPTION="Ananicy rewritten in C++ for much lower CPU and memory usage"
HOMEPAGE="https://gitlab.com/ananicy-cpp/ananicy-cpp"
if [[ "${PV}" == *_p* ]]; then
COMMIT=""
SRC_URI="https://gitlab.com/ananicy-cpp/ananicy-cpp/-/archive/${COMMIT}/${PN}-${COMMIT}.tar.bz2"
S="${WORKDIR}/${PN}-${COMMIT}"
else
SRC_URI="https://gitlab.com/ananicy-cpp/ananicy-cpp/-/archive/v${PV}/${PN}-v${PV}.tar.bz2"
S="${WORKDIR}/${PN}-v${PV}"
fi
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64"
IUSE="bpf cachyos-rules clang systemd"
REQUIRED_USE="
bpf? ( clang )
"
RDEPEND="
!app-admin/ananicy
>=dev-cpp/nlohmann_json-3.9
>=dev-libs/libfmt-8:=
>=dev-libs/spdlog-1.9:=
bpf? (
dev-libs/elfutils
dev-libs/libbpf:=
dev-util/bpftool
)
cachyos-rules? ( app-admin/ananicy-rules-cachyos )
systemd? ( sys-apps/systemd )
"
DEPEND="${RDEPEND}"
BDEPEND="
clang? ( >=llvm-core/clang-20 )
"
PATCHES=(
"${FILESDIR}/${PN}-1.1.1-remove-debug-flags.patch"
"${FILESDIR}/${PN}-1.1.1-include-unistd.patch"
)
pkg_setup() {
if use bpf ; then
CONFIG_CHECK="~BPF ~BPF_EVENTS ~BPF_SYSCALL ~HAVE_EBPF_JIT"
fi
linux-info_pkg_setup
}
src_configure() {
local mycmakeargs=(
-DENABLE_SYSTEMD="$(usex systemd)"
-DUSE_BPF_PROC_IMPL="$(usex bpf)"
-DUSE_EXTERNAL_FMTLIB=ON
-DUSE_EXTERNAL_JSON=ON
-DUSE_EXTERNAL_SPDLOG=ON
-DVERSION="${PV}"
)
# no useless ccache automagic
mycmakeargs+=( -DCCACHE=OFF )
if use clang; then
CC=${CHOST}-clang
CXX=${CHOST}-clang++
llvm_fix_clang_version CC CXX
if use bpf ; then
mycmakeargs+=( -DBPF_BUILD_LIBBPF=OFF )
fi
fi
cmake_src_configure
}
src_install() {
cmake_src_install
if ! use systemd ; then
doinitd "${FILESDIR}/${PN}.initd"
fi
keepdir /etc/ananicy.d
}