commit: af85370459af3a4b5244cf8e6642ed7773afc94d Author: Alberto Gireud <agireud <AT> protonmail <DOT> com> AuthorDate: Thu Mar 7 03:49:13 2024 +0000 Commit: Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org> CommitDate: Thu Mar 7 04:06:14 2024 +0000 URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=af853704
app-admin/ananicy-cpp: Add support for Clang compilation and eBPF implementation Signed-off-by: Alberto Gireud <agireud <AT> protonmail.com> ...1.1.1-r2.ebuild => ananicy-cpp-1.1.1-r3.ebuild} | 39 ++++++++++++++++++++-- app-admin/ananicy-cpp/metadata.xml | 4 +++ 2 files changed, 40 insertions(+), 3 deletions(-) diff --git a/app-admin/ananicy-cpp/ananicy-cpp-1.1.1-r2.ebuild b/app-admin/ananicy-cpp/ananicy-cpp-1.1.1-r3.ebuild similarity index 55% rename from app-admin/ananicy-cpp/ananicy-cpp-1.1.1-r2.ebuild rename to app-admin/ananicy-cpp/ananicy-cpp-1.1.1-r3.ebuild index e97720ff94..abefa9baaf 100644 --- a/app-admin/ananicy-cpp/ananicy-cpp-1.1.1-r2.ebuild +++ b/app-admin/ananicy-cpp/ananicy-cpp-1.1.1-r3.ebuild @@ -10,32 +10,65 @@ HOMEPAGE="https://gitlab.com/ananicy-cpp/ananicy-cpp" LICENSE="GPL-3" SLOT="0" KEYWORDS="~amd64" -IUSE="systemd" +IUSE="bpf clang systemd" +REQUIRED_USE=" + bpf? ( clang ) +" SRC_URI="https://gitlab.com/ananicy-cpp/ananicy-cpp/-/archive/v${PV}/${PN}-v${PV}.tar.bz2" S="${WORKDIR}/${PN}-v${PV}" -DEPEND=" +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 + ) systemd? ( sys-apps/systemd ) " -RDEPEND="${DEPEND}" + +DEPEND=" + >=dev-build/cmake-3.17 + clang? ( >=sys-devel/clang-10 ) + ${RDEPEND} +" PATCHES=( "${FILESDIR}/${P}-remove-debug-flags.patch" ) +pkg_setup() { + if use bpf ; then + CONFIG_CHECK+="~BPF ~BPF_EVENTS ~BPF_SYSCALL ~HAVE_EBPF_JIT" + fi +} + 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} ) + + if use clang; then + local version_clang=$(clang --version 2>/dev/null | grep -F -- 'clang version' | awk '{ print $3 }') + [[ -n ${version_clang} ]] && version_clang=$(ver_cut 1 "${version_clang}") + [[ -z ${version_clang} ]] && die "Failed to read clang version!" + CC=${CHOST}-clang-${version_clang} + CXX=${CHOST}-clang++-${version_clang} + + if use bpf ; then + mycmakeargs+=( -DBPF_BUILD_LIBBPF=OFF ) + fi + fi + cmake_src_configure } diff --git a/app-admin/ananicy-cpp/metadata.xml b/app-admin/ananicy-cpp/metadata.xml index 52724a1795..59b0456acf 100644 --- a/app-admin/ananicy-cpp/metadata.xml +++ b/app-admin/ananicy-cpp/metadata.xml @@ -10,4 +10,8 @@ <remote-id type="gitlab">ananicy-cpp/ananicy-cpp</remote-id> <remote-id type="github">kuche1/minq-ananicy</remote-id> </upstream> + <use> + <flag name="bpf">Use eBPF for processing</flag> + <flag name="clang">Use Clang compiler instead of GCC</flag> + </use> </pkgmetadata>