# Copyright 2023-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 PYTHON_COMPAT=( python3_{12..13} ) inherit meson python-single-r1 DESCRIPTION="Overlay for monitoring FPS, temperatures, CPU/GPU load and more" HOMEPAGE="https://github.com/flightlessmango/MangoHud" if [[ "${PV}" == "9999" ]]; then inherit git-r3 VULKAN_HEADER_VER="1.2.158" VULKAN_HEADER_WRAP_VER="${VULKAN_HEADER_VER}-2" IMGUI_VER="1.89.9" IMGUI_WRAP="${IMGUI_VER}-2" IMPLOT_VER="0.16" IMPLOT_WRAP="${IMPLOT_VER}-1" EGIT_REPO_URI="https://github.com/flightlessmango/MangoHud" SRC_URI=" https://github.com/KhronosGroup/Vulkan-Headers/archive/v${VULKAN_HEADER_VER}.tar.gz -> vulkan-headers-${VULKAN_HEADER_VER}.tar.gz https://wrapdb.mesonbuild.com/v2/vulkan-headers_${VULKAN_HEADER_WRAP_VER}/get_patch -> vulkan-headers-${VULKAN_HEADER_WRAP_VER}-wrap.zip https://github.com/ocornut/imgui/archive/refs/tags/v${IMGUI_VER}.tar.gz -> imgui-${IMGUI_VER}.tar.gz https://wrapdb.mesonbuild.com/v2/imgui_${IMGUI_WRAP}/get_patch -> imgui_${IMGUI_WRAP}_patch.zip https://github.com/epezent/implot/archive/refs/tags/v${IMPLOT_VER}.tar.gz -> implot-${IMPLOT_VER}.tar.gz https://wrapdb.mesonbuild.com/v2/implot_${IMPLOT_WRAP}/get_patch -> implot_${IMPLOT_WRAP}_patch.zip " else SUFFIX="$(ver_cut 5)" MY_PV1="$(ver_cut 1-3)${SUFFIX:+-}${SUFFIX}" MY_PV2="$(ver_cut 1-3)" SRC_URI="https://github.com/flightlessmango/MangoHud/releases/download/v${MY_PV2}/MangoHud-v${MY_PV1}-Source.tar.xz" S="${WORKDIR}/MangoHud-v${MY_PV2}" KEYWORDS="~amd64" fi LICENSE="MIT" SLOT="0" IUSE="dbus plots test wayland +X" REQUIRED_USE=" || ( wayland X ) ${PYTHON_REQUIRED_USE} " RESTRICT="!test? ( test )" CDEPEND=" dev-cpp/nlohmann_json:= dev-libs/libfmt:= dev-libs/spdlog:= media-libs/glew:= media-libs/glfw media-libs/libglvnd X? ( x11-libs/libX11 ) wayland? ( dev-libs/wayland x11-libs/libxkbcommon ) " DEPEND=" ${CDEPEND} dbus? ( sys-apps/dbus ) test? ( dev-util/cmocka ) " RDEPEND=" ${CDEPEND} ${PYTHON_DEPS} plots? ( $(python_gen_cond_dep ' dev-python/matplotlib[${PYTHON_USEDEP}] dev-python/numpy[${PYTHON_USEDEP}] ') ) " BDEPEND=" ${PYTHON_DEPS} dev-util/glslang $(python_gen_cond_dep ' dev-python/mako[${PYTHON_USEDEP}] ') test? ( dev-libs/appstream ${RDEPEND} ) " if [[ ${PV} == "9999" ]]; then BDEPEND+=" app-arch/unzip" fi python_check_deps() { python_has_version "dev-python/mako[${PYTHON_USEDEP}]" } src_unpack() { if [[ "${PV}" == "9999" ]]; then git-r3_src_unpack fi default } src_prepare() { default if [[ "${PV}" == "9999" ]]; then mv "${WORKDIR}/Vulkan-Headers-${VULKAN_HEADER_VER}" "${S}/subprojects/Vulkan-Headers-${VULKAN_HEADER_VER}" || die mv "${WORKDIR}/imgui-${IMGUI_VER}" "${S}/subprojects/imgui-${IMGUI_VER}" || die mv "${WORKDIR}/implot-${IMPLOT_VER}" "${S}/subprojects/implot-${IMPLOT_VER}" || die fi # Install documents into versioned dir sed -i "s/'doc', 'mangohud'/'doc', '${PF}'/" data/meson.build || die } src_configure() { local emesonargs=( $(meson_feature X with_x11) $(meson_feature dbus with_dbus) $(meson_feature plots mangoplot) $(meson_feature test tests) $(meson_feature wayland with_wayland) -Dappend_libdir_mangohud=true -Ddynamic_string_tokens=true -Dglibcxx_asserts=false -Dinclude_doc=true -Dmangoapp=true -Dmangoapp_layer=true -Dmangohudctl=true -Duse_system_spdlog=enabled -Dwith_xnvctrl=disabled ) meson_src_configure } src_install() { meson_src_install if use plots; then python_optimize "${D}" python_fix_shebang "${D}" fi }