summaryrefslogtreecommitdiff
path: root/app-misc/fastfetch/fastfetch-0.1.9999.ebuild
blob: 4123d1f245d33260c2fd827e4ab631ae43ecd6dc (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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
# Copyright 2022-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

LUA_COMPAT=( lua5-{1,3,4} luajit )
inherit cmake flag-o-matic lua-single

DESCRIPTION="Fast neofetch-like system information tool"
HOMEPAGE="https://github.com/fastfetch-cli/fastfetch"
if [[ ${PV} == *9999 ]]; then
	inherit git-r3
	EGIT_REPO_URI="https://github.com/fastfetch-cli/fastfetch.git"
	[[ ${PV} == *0.1.9999 ]] && EGIT_BRANCH=master
	[[ ${PV} == *0.2.9999 ]] && EGIT_BRANCH=dev
	[[ "${EGIT_BRANCH}" == "" ]] && die "Please set a git branch"
else
	SRC_URI="https://github.com/fastfetch-cli/fastfetch/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"
	KEYWORDS="~amd64 ~arm ~arm64 ~loong ~m68k ~ppc ~ppc64 ~riscv ~sparc ~x86"
fi

LICENSE="MIT"
SLOT="0"
IUSE="X chafa dbus ddcutil drm efl elf gnome imagemagick lua opencl opengl pulseaudio sqlite test vaapi vdpau vulkan wayland xcb xrandr"
RESTRICT="!test? ( test )"

# note - qa-vdb will always report errors because fastfetch loads the libs dynamically
# make sure to crank yyjson minimum version to match bundled version
RDEPEND="
	>=dev-libs/yyjson-0.12.0:=
	sys-apps/hwdata
	virtual/zlib:=
	chafa? ( media-gfx/chafa )
	dbus? ( sys-apps/dbus )
	ddcutil? ( app-misc/ddcutil:= )
	drm? ( x11-libs/libdrm )
	elf? ( virtual/libelf:= )
	gnome? (
		dev-libs/glib
		gnome-base/dconf
	)
	imagemagick? ( media-gfx/imagemagick:= )
	lua? ( ${LUA_DEPS} )
	opencl? ( virtual/opencl )
	opengl? (
		media-libs/libglvnd[X?]
		X? ( x11-libs/libX11 )
	)
	pulseaudio? ( media-libs/libpulse )
	sqlite? ( dev-db/sqlite:3 )
	vaapi? ( media-libs/libva:=[X?] )
	vdpau? ( x11-libs/libvdpau )
	vulkan? (
		media-libs/vulkan-loader
		sys-apps/pciutils
	)
	wayland? ( dev-libs/wayland )
	xcb? ( x11-libs/libxcb )
	xrandr? ( x11-libs/libXrandr )
"
DEPEND="
	${RDEPEND}
	efl? ( dev-libs/efl )
	opengl? ( X? ( x11-base/xorg-proto ) )
	xcb? ( x11-base/xorg-proto )
	xrandr? ( x11-base/xorg-proto )
	vulkan? ( dev-util/vulkan-headers )
"
BDEPEND="virtual/pkgconfig"

REQUIRED_USE="
	chafa? ( imagemagick )
	lua? ( ${LUA_REQUIRED_USE} )
"

PATCHES=(
	"${FILESDIR}"/${PN}-2.64.1-cmake_lua_version.patch
)

pkg_setup() {
	use lua && lua-single_pkg_setup
}

src_configure() {
	local fastfetch_enable_imagemagick7=no
	local fastfetch_enable_imagemagick6=no
	if use imagemagick; then
		fastfetch_enable_imagemagick7=$(has_version '>=media-gfx/imagemagick-7.0.0' && echo yes || echo no)
		fastfetch_enable_imagemagick6=$(has_version '<media-gfx/imagemagick-7.0.0' && echo yes || echo no)
	fi

	local glx=no
	if use X; then
		if use opengl; then
			glx=yes
		else
			ewarn 'USE="X" adds GLX support for USE="opengl"'
			ewarn 'This build with USE="X -opengl" will not include any extra X support.'
		fi
	fi

	local mycmakeargs=(
		# requires >=dev-libs/quickjs-ng-0.15
		-DENABLE_QUICKJS=no

		-DENABLE_RPM=no
		-DENABLE_ZLIB=yes
		-DENABLE_SYSTEM_YYJSON=yes
		-DIS_MUSL=$(usex elibc_musl)
		-DINSTALL_LICENSE=no
		-DBUILD_FLASHFETCH=no
		-DPACKAGES_REMOVE_DISABLED=yes

		-DENABLE_CHAFA=$(usex chafa)
		-DENABLE_DBUS=$(usex dbus)
		-DENABLE_DCONF=$(usex gnome)
		-DENABLE_DDCUTIL=$(usex ddcutil)
		-DENABLE_DRM=$(usex drm)
		-DENABLE_EET=$(usex efl)
		-DENABLE_ELF=$(usex elf)
		-DENABLE_EGL=$(usex opengl)
		-DENABLE_GIO=$(usex gnome)
		-DENABLE_GLX=${glx}
		-DENABLE_IMAGEMAGICK6=${fastfetch_enable_imagemagick6}
		-DENABLE_IMAGEMAGICK7=${fastfetch_enable_imagemagick7}
		-DENABLE_LUA=$(usex lua)
		-DENABLE_OPENCL=$(usex opencl)
		-DENABLE_PULSE=$(usex pulseaudio)
		-DENABLE_SQLITE3=$(usex sqlite)
		-DENABLE_VADRM=$(usex vaapi)
		-DENABLE_VDPAU=$(usex vdpau)
		-DENABLE_VULKAN=$(usex vulkan)
		-DENABLE_WAYLAND=$(usex wayland)
		-DENABLE_XCB_RANDR=$(usex xcb)
		-DENABLE_XRANDR=$(usex xrandr)
		-DBUILD_TESTS=$(usex test)
	)

	if use vaapi && use X; then
		mycmakeargs+=( -DENABLE_VAX11=1 )
	else
		mycmakeargs+=( -DENABLE_VAX11=0 )
	fi

	if use lua; then
		mycmakeargs+=(
			-DLUA_VERSION="$(lua_get_version)"
		)
	fi

	append-cppflags -DNDEBUG

	cmake_src_configure
}