mirror of
https://github.com/gentoo-mirror/guru.git
synced 2026-07-09 15:13:31 -04:00
Closes: https://bugs.gentoo.org/974994 Signed-off-by: Kostadin Shishmanov <kostadinshishmanov@protonmail.com>
150 lines
3.9 KiB
Bash
150 lines
3.9 KiB
Bash
# Copyright 1999-2026 Gentoo Authors
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
EAPI=8
|
|
|
|
PYTHON_COMPAT=( python3_{12..14} )
|
|
|
|
inherit flag-o-matic python-single-r1 meson-multilib toolchain-funcs
|
|
|
|
DESCRIPTION="Vulkan and OpenGL overlay for monitoring FPS, sensors, system load and more"
|
|
HOMEPAGE="https://github.com/flightlessmango/MangoHud"
|
|
|
|
# Check subprojects/vulkan-headers.wrap for this value
|
|
VK_HEADERS_VER="1.4.346"
|
|
|
|
SRC_URI="
|
|
https://github.com/KhronosGroup/Vulkan-Headers/archive/v${VK_HEADERS_VER}.tar.gz
|
|
-> Vulkan-Headers-${VK_HEADERS_VER}.tar.gz
|
|
https://github.com/KhronosGroup/Vulkan-Utility-Libraries/archive/v${VK_HEADERS_VER}.tar.gz
|
|
-> Vulkan-Utility-Libraries-${VK_HEADERS_VER}.tar.gz
|
|
"
|
|
|
|
if [[ ${PV} == 9999 ]]; then
|
|
inherit git-r3
|
|
EGIT_REPO_URI="https://github.com/flightlessmango/MangoHud.git"
|
|
else
|
|
SRC_URI+="https://github.com/flightlessmango/MangoHud/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
|
|
KEYWORDS="~amd64"
|
|
S="${WORKDIR}/MangoHud-${PV}"
|
|
fi
|
|
|
|
LICENSE="MIT"
|
|
SLOT="0"
|
|
IUSE="+dbus +X xnvctrl wayland mangoapp mangohudctl mangoplot video_cards_nvidia test"
|
|
RESTRICT="test" # tests aren't enabled upstream
|
|
|
|
REQUIRED_USE="
|
|
${PYTHON_REQUIRED_USE}
|
|
|| ( X wayland )
|
|
xnvctrl? ( video_cards_nvidia X )
|
|
mangoapp? ( X )
|
|
"
|
|
|
|
BDEPEND="
|
|
dev-util/glslang
|
|
test? ( dev-util/cmocka )
|
|
$(python_gen_cond_dep 'dev-python/mako[${PYTHON_USEDEP}]')
|
|
"
|
|
|
|
DEPEND="
|
|
${PYTHON_DEPS}
|
|
dev-libs/spdlog:=[${MULTILIB_USEDEP}]
|
|
dev-libs/libfmt:=[${MULTILIB_USEDEP}]
|
|
=media-libs/imgui-1.91.6*:=[${MULTILIB_USEDEP}]
|
|
=media-libs/implot-0.16*:=[${MULTILIB_USEDEP}]
|
|
x11-libs/libxkbcommon:=[${MULTILIB_USEDEP}]
|
|
dbus? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
|
|
X? ( x11-libs/libX11[${MULTILIB_USEDEP}] )
|
|
video_cards_nvidia? (
|
|
x11-drivers/nvidia-drivers[${MULTILIB_USEDEP}]
|
|
xnvctrl? ( x11-drivers/nvidia-drivers[static-libs] )
|
|
)
|
|
wayland? ( dev-libs/wayland[${MULTILIB_USEDEP}] )
|
|
mangoapp? (
|
|
=media-libs/imgui-1.91.6*[glfw,opengl]
|
|
media-libs/glfw[X(+)?,wayland(+)?]
|
|
)
|
|
"
|
|
|
|
RDEPEND="
|
|
${DEPEND}
|
|
media-libs/libglvnd[${MULTILIB_USEDEP}]
|
|
media-libs/vulkan-loader[${MULTILIB_USEDEP}]
|
|
mangoplot? (
|
|
media-fonts/lato
|
|
$(python_gen_cond_dep '
|
|
|| (
|
|
dev-python/matplotlib[gtk3,${PYTHON_USEDEP}]
|
|
dev-python/matplotlib[qt5(-),${PYTHON_USEDEP}]
|
|
dev-python/matplotlib[qt6(-),${PYTHON_USEDEP}]
|
|
dev-python/matplotlib[wxwidgets,${PYTHON_USEDEP}]
|
|
)
|
|
')
|
|
)
|
|
"
|
|
|
|
PATCHES=(
|
|
"${FILESDIR}/${PN}-0.8.3-system-imgui.patch"
|
|
)
|
|
|
|
src_unpack() {
|
|
default
|
|
|
|
if [[ $PV == 9999 ]]; then
|
|
git-r3_src_unpack
|
|
fi
|
|
|
|
unpack Vulkan-Headers-${VK_HEADERS_VER}.tar.gz
|
|
unpack Vulkan-Utility-Libraries-${VK_HEADERS_VER}.tar.gz
|
|
}
|
|
|
|
src_prepare() {
|
|
default
|
|
|
|
mv "${WORKDIR}/Vulkan-Headers-${VK_HEADERS_VER}" "${S}/subprojects/" || die
|
|
mv "${WORKDIR}/Vulkan-Utility-Libraries-${VK_HEADERS_VER}" "${S}/subprojects/" || die
|
|
|
|
pushd subprojects || die
|
|
mv packagefiles/vulkan-headers/* Vulkan-Headers-${VK_HEADERS_VER} || die
|
|
mv packagefiles/vulkan-utility-libraries/* Vulkan-Utility-Libraries-${VK_HEADERS_VER} || die
|
|
# save some space when using FEATURES=installsources
|
|
rm -rf "*.wrap" "{packagefiles/imgui-0.16}" || die
|
|
popd || die
|
|
}
|
|
|
|
multilib_src_configure() {
|
|
# workaround for lld
|
|
# https://github.com/flightlessmango/MangoHud/issues/1240
|
|
if tc-ld-is-lld; then
|
|
append-ldflags -Wl,--undefined-version
|
|
fi
|
|
|
|
local emesonargs=(
|
|
-Dappend_libdir_mangohud=false
|
|
-Dinclude_doc=false
|
|
-Duse_system_spdlog=enabled
|
|
$(meson_feature video_cards_nvidia with_nvml)
|
|
$(meson_feature xnvctrl with_xnvctrl)
|
|
$(meson_feature X with_x11)
|
|
$(meson_feature wayland with_wayland)
|
|
$(meson_feature dbus with_dbus)
|
|
$(meson_use mangoapp mangoapp)
|
|
$(meson_use mangohudctl mangohudctl)
|
|
$(meson_feature mangoplot mangoplot)
|
|
$(meson_feature test tests)
|
|
)
|
|
meson_src_configure
|
|
}
|
|
|
|
pkg_postinst() {
|
|
if ! use xnvctrl; then
|
|
einfo ""
|
|
einfo "If mangohud can't get GPU load, or other GPU information,"
|
|
einfo "and you have an older Nvidia device."
|
|
einfo ""
|
|
einfo "Try enabling the 'xnvctrl' useflag."
|
|
einfo ""
|
|
fi
|
|
}
|