summaryrefslogtreecommitdiff
blob: a0fde0e3916e8bde26eeecb1b4412bafa31c5bbe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

inherit autotools

if [[ "${PV}" == "9999" ]]; then
	inherit git-r3
	EGIT_REPO_URI="https://github.com/zevv/duc.git"
else
	KEYWORDS="~amd64 ~x86"
	SRC_URI="https://github.com/zevv/${PN}/releases/download/${PV}/${P}.tar.gz"
fi

DESCRIPTION="Library and suite of tools for inspecting disk usage"
HOMEPAGE="https://github.com/zevv/duc"

LICENSE="LGPL-3"
SLOT="0"
IUSE="cairo gui leveldb ncurses sqlite +tokyocabinet X"

REQUIRED_USE="
	^^ ( tokyocabinet leveldb sqlite )
	X? ( cairo gui )
"

DEPEND="
	cairo? ( x11-libs/cairo x11-libs/pango )
	gui? (
		X? (
			x11-libs/cairo[X]
			x11-libs/libX11
			x11-libs/pango[X]
		)
		!X? ( >=media-libs/glfw-3.0 )
	)
	leveldb? ( dev-libs/leveldb:= )
	ncurses? ( sys-libs/ncurses:= )
	sqlite? ( dev-db/sqlite:3 )
	tokyocabinet? ( dev-db/tokyocabinet )
"
RDEPEND="${DEPEND}"
PATCHES=(
	"${FILESDIR}"/${PN}-1.4.1-tinfo.patch
)

src_unpack() {
	if [[ "${PV}" == "9999" ]]; then
		git-r3_src_unpack
	else
		unpack ${A}
	fi
}

src_prepare() {
	sed -i -e "/ldconfig/d" -e "/install-exec-hook/d" Makefile.am || die

	default

	eautoreconf
}

src_configure() {
	local myconf=( $(use_enable ncurses ui) )

	if use tokyocabinet; then
		myconf+=( --with-db-backend=tokyocabinet )
	elif use leveldb; then
		myconf+=( --with-db-backend=leveldb )
	else
		myconf+=( --with-db-backend=sqlite3 )
	fi

	# Necessary logic for cairo
	if use gui && use X; then
		# X backend GUI
		myconf+=( --enable-x11 --disable-opengl --enable-cairo )
	elif use gui; then
		# OpenGL backend GUI
		myconf+=( --disable-x11 --enable-opengl $(use_enable cairo) )
	else
		# No GUI
		myconf+=( $(use_enable cairo) --disable-x11 --disable-opengl )
	fi

	econf ${myconf[@]}
}