commit:     e73850c45728d03f15d798b1224a15584b6120b0
Author:     Anna (cybertailor) Vyalkova <cyber+gentoo <AT> sysrq <DOT> in>
AuthorDate: Tue Jan  7 17:52:36 2025 +0000
Commit:     Anna Vyalkova <cyber+gentoo <AT> sysrq <DOT> in>
CommitDate: Tue Jan  7 19:58:59 2025 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=e73850c4

net-im/conduit: use llvm-r2 eclass

Signed-off-by: Anna (cybertailor) Vyalkova <cyber+gentoo <AT> sysrq.in>

 net-im/conduit/conduit-0.9.0-r1.ebuild | 39 ++++++++++++++++++++++++----------
 1 file changed, 28 insertions(+), 11 deletions(-)

diff --git a/net-im/conduit/conduit-0.9.0-r1.ebuild 
b/net-im/conduit/conduit-0.9.0-r1.ebuild
index 8f3ceb4b9..7b8501af8 100644
--- a/net-im/conduit/conduit-0.9.0-r1.ebuild
+++ b/net-im/conduit/conduit-0.9.0-r1.ebuild
@@ -1,8 +1,6 @@
-# Copyright 2023-2024 Gentoo Authors
+# Copyright 2023-2025 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
-# Auto-Generated by cargo-ebuild 0.5.4
-
 EAPI=8
 
 CRATES="
@@ -373,6 +371,8 @@ CRATES="
        zune-core@0.4.12
        zune-jpeg@0.4.11
 "
+LLVM_COMPAT=( {15..19} )
+RUST_MIN_VER="1.79.0"
 
 declare -A GIT_CRATES=(
        
[ruma-appservice-api]='https://github.com/ruma/ruma;c06af4385e0e30c48a8e9ca3d488da32102d0db9;ruma-%commit%/crates/ruma-appservice-api'
@@ -390,9 +390,7 @@ declare -A GIT_CRATES=(
        
[ruma]='https://github.com/ruma/ruma;c06af4385e0e30c48a8e9ca3d488da32102d0db9;ruma-%commit%/crates/ruma'
 )
 
-RUST_MIN_VER="1.75.0"
-
-inherit cargo systemd toolchain-funcs
+inherit cargo llvm-r2 systemd toolchain-funcs
 
 MY_P="${PN}-v${PV}"
 DESCRIPTION="Matrix homeserver written in Rust"
@@ -430,7 +428,7 @@ IUSE="jemalloc rocksdb system-rocksdb"
 #      - app-arch/lz4 ("lz4-sys" crate doesn't look for system library... 
ironic)
 #      - dev-db/sqlite:3 ("conduit" pulls "rusqlite[bundled]" explicitly)
 #      - sys-libs/zlib ("rust-librocksdb-sys" pulls "libz-sys[static]" by 
default)
-DEPEND="
+COMMON_DEPEND="
        jemalloc? ( dev-libs/jemalloc:= )
        rocksdb? (
                app-arch/snappy:=
@@ -438,13 +436,21 @@ DEPEND="
                system-rocksdb? ( dev-libs/rocksdb )
        )
 "
-RDEPEND="${DEPEND}
+RDEPEND="${COMMON_DEPEND}
        acct-user/conduit
        app-misc/ca-certificates
 "
+# clang needed for bindgen
+DEPEND="${COMMON_DEPEND}
+       rocksdb? (
+               $(llvm_gen_dep '
+                       llvm-core/clang:${LLVM_SLOT}
+                       llvm-core/llvm:${LLVM_SLOT}
+               ')
+       )
+"
 BDEPEND="
        rocksdb? (
-               llvm-core/clang
                virtual/pkgconfig
        )
 "
@@ -453,9 +459,12 @@ DOCS=( {APPSERVICES,CODE_OF_CONDUCT,DEPLOY,README,TURN}.md 
)
 
 QA_FLAGS_IGNORED="usr/bin/${PN}"
 
-src_configure() {
-       tc-export AR CC
+pkg_setup() {
+       use rocksdb && llvm-r2_pkg_setup
+       rust_pkg_setup
+}
 
+src_configure() {
        # Tracker bug for that Cargo nonsense:
        # https://bugs.gentoo.org/709568
        export PKG_CONFIG_ALLOW_CROSS=1
@@ -466,6 +475,14 @@ src_configure() {
        if use system-rocksdb; then
                export ROCKSDB_INCLUDE_DIR="${ESYSROOT}/usr/include"
                export ROCKSDB_LIB_DIR="${ESYSROOT}/usr/$(get_libdir)"
+       elif use rocksdb; then
+               # Rust uses 'gcc' or 'clang' (not 'g++' or 'clang++'), so C++ 
standard
+               # library needs to be linked explicitly.
+               if [[ $(tc-get-cxx-stdlib) == "libstdc++" ]]; then
+                       append-ldflags -lstdc++
+               elif [[ $(tc-get-cxx-stdlib) == "libc++" ]]; then
+                       append-ldflags -lc++
+               fi
        fi
 
        local myfeatures=(

Reply via email to