aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlberto Gireud <agireud@protonmail.com>2024-03-06 21:49:13 -0600
committerAlberto Gireud <agireud@protonmail.com>2024-03-06 22:06:14 -0600
commitaf85370459af3a4b5244cf8e6642ed7773afc94d (patch)
treee96a8881293dff90a5929e44035796e8fc5f9ebd /app-admin
parentx11-misc/i3-restore: add einfo with link to alternative software (diff)
downloadguru-af85370459af3a4b5244cf8e6642ed7773afc94d.tar.gz
guru-af85370459af3a4b5244cf8e6642ed7773afc94d.tar.bz2
guru-af85370459af3a4b5244cf8e6642ed7773afc94d.zip
app-admin/ananicy-cpp: Add support for Clang compilation and eBPF implementation
Signed-off-by: Alberto Gireud <agireud@protonmail.com>
Diffstat (limited to 'app-admin')
-rw-r--r--app-admin/ananicy-cpp/ananicy-cpp-1.1.1-r3.ebuild (renamed from app-admin/ananicy-cpp/ananicy-cpp-1.1.1-r2.ebuild)39
-rw-r--r--app-admin/ananicy-cpp/metadata.xml4
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
index e97720ff9..abefa9baa 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 52724a179..59b0456ac 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>