summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Kehayias <john.kehayias@protonmail.com>2022-02-23 17:29:39 -0500
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2022-02-26 21:28:18 -0500
commit31ecd80db714abfc3ef536b458fc4c1ed778d3c6 (patch)
tree396e93c019fa6f4cdf5cbf3e701311d299c6d9e5
parent7f8bc02fd8c5cb7db517b54f87dc16705d779f1d (diff)
downloadguix-patches-31ecd80db714abfc3ef536b458fc4c1ed778d3c6.tar
guix-patches-31ecd80db714abfc3ef536b458fc4c1ed778d3c6.tar.gz
gnu: Add mangohud.
* gnu/packages/graphics.scm (mangohud): New variable. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
-rw-r--r--gnu/packages/graphics.scm84
1 files changed, 84 insertions, 0 deletions
diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index 04f92e2b07..f5152b0ba2 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -28,6 +28,7 @@
;;; Copyright © 2021 Ekaitz Zarraga <ekaitz@elenq.tech>
;;; Copyright © 2021, 2022 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2022 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -80,11 +81,13 @@
#:use-module (gnu packages kde-frameworks)
#:use-module (gnu packages libusb)
#:use-module (gnu packages linux)
+ #:use-module (gnu packages logging)
#:use-module (gnu packages llvm)
#:use-module (gnu packages lua)
#:use-module (gnu packages maths)
#:use-module (gnu packages mp3)
#:use-module (gnu packages multiprecision)
+ #:use-module (gnu packages pciutils)
#:use-module (gnu packages pdf)
#:use-module (gnu packages perl)
#:use-module (gnu packages photo)
@@ -117,6 +120,7 @@
#:use-module (guix build-system python)
#:use-module (guix build-system qt)
#:use-module (guix download)
+ #:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix hg-download)
#:use-module ((guix licenses) #:prefix license:)
@@ -863,6 +867,86 @@ other vector formats such as:
distills complex, animated scenes into a set of baked geometric results.")
(license license:bsd-3)))
+(define-public mangohud
+ (package
+ (name "mangohud")
+ (version "0.6.6-1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/flightlessmango/MangoHud/")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0ka004wxkajmvs5vy60r4ckm7f169c61rrd46w6gywkaqf5yp1ab"))))
+ (build-system meson-build-system)
+ (arguments
+ (list
+ #:build-type "release"
+ #:configure-flags
+ #~(list "-Duse_system_vulkan=enabled"
+ "-Duse_system_spdlog=enabled"
+ "-Dwith_xnvctrl=disabled"
+ "-Dappend_libdir_mangohud=false"
+ (string-append "-Dvulkan_datadir="
+ #$(this-package-input "vulkan-headers") "/share"))
+ #:phases
+ #~(modify-phases %standard-phases
+ ;; Mangohud tries to build the imgui library as a meson submodule,
+ ;; so we change the dependency to the imgui input instead.
+ (add-after 'unpack 'unbundle-imgui
+ (lambda _
+ (substitute* "meson.build"
+ (("dearimgui_sp = .*")
+ "")
+ (("dearimgui_sp.get_variable\\('imgui_dep'\\)")
+ (string-append
+ "declare_dependency(dependencies: "
+ "cpp.find_library('imgui'), include_directories: '"
+ #$(this-package-input "imgui") "/include/imgui')")))))
+ (add-after 'unpack 'patch-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "src/meson.build"
+ (("\\\\\\$LIB")
+ "lib"))
+ (substitute* "src/loaders/loader_libdrm.cpp"
+ (("libdrm.so.2")
+ (search-input-file inputs "lib/libdrm.so.2"))
+ (("libdrm_amdgpu.so.1")
+ (search-input-file inputs "lib/libdrm_amdgpu.so.1")))
+ (substitute* "src/overlay.cpp"
+ (("glxinfo")
+ (search-input-file inputs "bin/glxinfo")))
+ (substitute* "src/loaders/loader_x11.cpp"
+ (("libX11.so.6")
+ (search-input-file inputs "lib/libX11.so.6")))
+ (substitute* "src/pci_ids.cpp"
+ (("/usr/share/hwdata/pci.ids")
+ (search-input-file inputs "share/hwdata/pci.ids")))
+ (substitute* "src/dbus.cpp"
+ (("libdbus-1.so.3")
+ (search-input-file inputs "lib/libdbus-1.so.3"))))))))
+ (inputs
+ (list dbus
+ glslang
+ `(,hwdata "pci")
+ imgui-1.86
+ libdrm
+ libx11
+ mesa
+ mesa-utils
+ python-mako
+ spdlog
+ vulkan-headers
+ vulkan-loader))
+ (native-inputs (list pkg-config python))
+ (home-page "https://github.com/flightlessmango/MangoHud/")
+ (synopsis "Vulkan and OpenGL overlay for monitoring performance and hardware")
+ (description "MangoHud is a Vulkan and OpenGL overlay for monitoring
+frames per second (FPS), temperatures, CPU/GPU load and more.")
+ (license license:expat)))
+
(define-public ogre
(package
(name "ogre")