git: 9d20c9a6b3e5 - main - benchmarks/mangohud: the port had been updated to version 0.6.5

From: Alexey Dokuchaev <danfe_at_FreeBSD.org>
Date: Tue, 14 Dec 2021 05:16:42 UTC
The branch main has been updated by danfe:

URL: https://cgit.FreeBSD.org/ports/commit/?id=9d20c9a6b3e5a561abff0bf131c9025b555bf133

commit 9d20c9a6b3e5a561abff0bf131c9025b555bf133
Author:     Alexey Dokuchaev <danfe@FreeBSD.org>
AuthorDate: 2021-12-14 05:15:24 +0000
Commit:     Alexey Dokuchaev <danfe@FreeBSD.org>
CommitDate: 2021-12-14 05:15:24 +0000

    benchmarks/mangohud: the port had been updated to version 0.6.5
    
    Now comes with CPU load monitoring enabled by default and better
    system information report in debug mode.  Note that those things
    currently require mounted linprocfs(5) to work.
    
    Reported by:    portscout
---
 benchmarks/mangohud/Makefile                       | 23 +++----
 benchmarks/mangohud/distinfo                       | 12 ++--
 benchmarks/mangohud/files/patch-meson.build        |  6 +-
 .../mangohud/files/patch-src_file__utils.cpp       | 28 ++++++++
 benchmarks/mangohud/files/patch-src_meson.build    |  6 +-
 benchmarks/mangohud/files/patch-src_vulkan.cpp     | 77 ++++++++++++++++++++++
 6 files changed, 130 insertions(+), 22 deletions(-)

diff --git a/benchmarks/mangohud/Makefile b/benchmarks/mangohud/Makefile
index d2e96215ead9..2be3c8377b8f 100644
--- a/benchmarks/mangohud/Makefile
+++ b/benchmarks/mangohud/Makefile
@@ -1,12 +1,11 @@
 # Created by: Alexey Dokuchaev <danfe@FreeBSD.org>
 
 PORTNAME=	mangohud
-PORTVERSION=	0.5.1
+PORTVERSION=	0.6.5
 DISTVERSIONPREFIX=	v
 CATEGORIES=	benchmarks graphics
-
-PATCH_SITES=	https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/
-PATCHFILES=	cec98369ae34d910476b78f98adece96016ab603.diff:-p1
+MASTER_SITES=	https://wrapdb.mesonbuild.com/v1/projects/imgui/1.81/1/get_zip?dummy=/:igw
+DISTFILES=	imgui-1.81-1-wrap.zip:igw
 
 MAINTAINER=	danfe@FreeBSD.org
 COMMENT=	Vulkan/OpenGL overlay for CPU/GPU monitoring
@@ -21,11 +20,15 @@ LIB_DEPENDS=	libinotify.so:devel/libinotify
 
 USES=		compiler:c++14-lang meson pkgconfig python:build xorg
 USE_GITHUB=	yes
-GH_ACCOUNT=	flightlessmango
-GH_PROJECT=	MangoHud
+GH_ACCOUNT=	flightlessmango ocornut:ig
+GH_PROJECT=	MangoHud imgui:ig
+GH_TAGNAME=	v1.81:ig
+GH_SUBDIR=	subprojects/imgui-1.81:ig
 USE_XORG=	x11
 MESON_ARGS=	-Duse_system_vulkan=enabled -Dwith_xnvctrl=disabled
 
+CPPFLAGS+=	-DPROCDIR=\\\"${LINUXBASE}/proc\\\"
+
 PLIST_FILES=	bin/mangohud lib/mangohud/libMangoHud.so \
 		lib/mangohud/libMangoHud_dlsym.so man/man1/mangohud.1.gz \
 		share/vulkan/implicit_layer.d/MangoHud.json
@@ -38,15 +41,13 @@ DBUS_LIB_DEPENDS=	libdbus-1.so:devel/dbus
 DBUS_MESON_OFF=	-Dwith_dbus=disabled
 
 post-patch:
-	@${REINPLACE_CMD} -e '/version : /s,0\.4\.0,${PORTVERSION}, ; \
+	@${REINPLACE_CMD} -e 's,cygwin,${OPSYS:tl}, ; \
 		/^prog_python = /s,3,${PYTHON_VER},' ${WRKSRC}/meson.build
-	@${REINPLACE_CMD} -e '1s,usr/bin/env ba,bin/,' \
-		${WRKSRC}/bin/mangohud.in
 	@${REINPLACE_CMD} -e 's,/usr/share/doc,${PREFIX}/share/examples,' \
 		${WRKSRC}/data/mangohud.1
-	@${REINPLACE_CMD} -e '/#include <sys\/sysinfo\.h>/d' \
-		${WRKSRC}/src/overlay_params.cpp
 	@${REINPLACE_CMD} -e 's,libdl\.so,ld-elf.so,' \
 		${WRKSRC}/src/real_dlsym.cpp
+	@${REINPLACE_CMD} -e 's,def __gnu_linux__,ndef _WIN32,' \
+		${WRKSRC}/src/logging.cpp
 
 .include <bsd.port.mk>
diff --git a/benchmarks/mangohud/distinfo b/benchmarks/mangohud/distinfo
index efa987906dde..e5afe5bc6482 100644
--- a/benchmarks/mangohud/distinfo
+++ b/benchmarks/mangohud/distinfo
@@ -1,5 +1,7 @@
-TIMESTAMP = 1597596860
-SHA256 (flightlessmango-MangoHud-v0.5.1_GH0.tar.gz) = 3e91d4fc7369d46763894c13f3315133871dd02705072981770c3cf58e8081c6
-SIZE (flightlessmango-MangoHud-v0.5.1_GH0.tar.gz) = 15042595
-SHA256 (cec98369ae34d910476b78f98adece96016ab603.diff) = 5af8817cc62bbf441c7a7b735f391bb648e7d90668e7a3746c1b91199698b1d6
-SIZE (cec98369ae34d910476b78f98adece96016ab603.diff) = 551
+TIMESTAMP = 1625725439
+SHA256 (imgui-1.81-1-wrap.zip) = 6d00b442690b6a5c5d8f898311daafbce16d370cf64f53294c3b8c5c661e435f
+SIZE (imgui-1.81-1-wrap.zip) = 1850
+SHA256 (flightlessmango-MangoHud-v0.6.5_GH0.tar.gz) = 5e5490407a64275e04dae7b3068cbfcbb522f02c632c872a212b95025a316f72
+SIZE (flightlessmango-MangoHud-v0.6.5_GH0.tar.gz) = 14828281
+SHA256 (ocornut-imgui-v1.81_GH0.tar.gz) = f7c619e03a06c0f25e8f47262dbc32d61fd033d2c91796812bf0f8c94fca78fb
+SIZE (ocornut-imgui-v1.81_GH0.tar.gz) = 1413443
diff --git a/benchmarks/mangohud/files/patch-meson.build b/benchmarks/mangohud/files/patch-meson.build
index eb9ffcf29134..5068faad2643 100644
--- a/benchmarks/mangohud/files/patch-meson.build
+++ b/benchmarks/mangohud/files/patch-meson.build
@@ -15,6 +15,6 @@
  
 -if dep_vulkan.found()
 +if true
-   datadir = get_option('datadir')
-   if not datadir.startswith('/')
-     datadir = get_option('prefix') / datadir
+   datadir = get_option('vulkan_datadir')
+   if datadir == ''
+     datadir = get_option('datadir')
diff --git a/benchmarks/mangohud/files/patch-src_file__utils.cpp b/benchmarks/mangohud/files/patch-src_file__utils.cpp
new file mode 100644
index 000000000000..4ae32c1fc2b2
--- /dev/null
+++ b/benchmarks/mangohud/files/patch-src_file__utils.cpp
@@ -0,0 +1,28 @@
+--- src/file_utils.cpp.orig	2021-07-08 06:23:59 UTC
++++ src/file_utils.cpp
+@@ -109,7 +109,7 @@ std::string read_symlink(const char * link)
+ 
+ std::string get_exe_path()
+ {
+-    return read_symlink("/proc/self/exe");
++    return read_symlink(PROCDIR "/self/exe");
+ }
+ 
+ std::string get_wine_exe_name(bool keep_ext)
+@@ -119,14 +119,14 @@ std::string get_wine_exe_name(bool keep_ext)
+         return std::string();
+     }
+ 
+-    std::string line = read_line("/proc/self/comm"); // max 16 characters though
++    std::string line = read_line(PROCDIR "/self/comm"); // max 16 characters though
+     if (ends_with(line, ".exe", true))
+     {
+         auto dot = keep_ext ? std::string::npos : line.find_last_of('.');
+         return line.substr(0, dot);
+     }
+ 
+-    std::ifstream cmdline("/proc/self/cmdline");
++    std::ifstream cmdline(PROCDIR "/self/cmdline");
+     // Iterate over arguments (separated by NUL byte).
+     while (std::getline(cmdline, line, '\0')) {
+         auto n = std::string::npos;
diff --git a/benchmarks/mangohud/files/patch-src_meson.build b/benchmarks/mangohud/files/patch-src_meson.build
index 2a87d1c1eef4..9f796c446235 100644
--- a/benchmarks/mangohud/files/patch-src_meson.build
+++ b/benchmarks/mangohud/files/patch-src_meson.build
@@ -13,11 +13,11 @@
      dep_dl,
      dep_rt,
      dep_pthread,
--    dep_vulkan],
-+    dep_inotify],
+-    dep_vulkan,
++    dep_inotify,
+     windows_deps],
    include_directories : [inc_common],
    link_args : link_args,
-   install_dir : libdir_mangohud,
 @@ -187,7 +187,7 @@ configure_file(input : '../bin/mangohud.in',
  if get_option('include_doc')
    install_data(
diff --git a/benchmarks/mangohud/files/patch-src_vulkan.cpp b/benchmarks/mangohud/files/patch-src_vulkan.cpp
new file mode 100644
index 000000000000..7c8876346f01
--- /dev/null
+++ b/benchmarks/mangohud/files/patch-src_vulkan.cpp
@@ -0,0 +1,77 @@
+--- src/vulkan.cpp.orig	2021-07-08 06:23:59 UTC
++++ src/vulkan.cpp
+@@ -33,7 +33,7 @@
+ #include <vector>
+ #include <list>
+ #include <array>
+-#ifdef __gnu_linux__
++#ifndef _WIN32
+ #include <libgen.h>
+ #include <unistd.h>
+ #endif
+@@ -464,10 +464,10 @@ struct overlay_draw *get_overlay_draw(struct swapchain
+ 
+ void init_cpu_stats(overlay_params& params)
+ {
+-#ifdef __gnu_linux__
+    auto& enabled = params.enabled;
+    enabled[OVERLAY_PARAM_ENABLED_cpu_stats] = cpuStats.Init()
+                            && enabled[OVERLAY_PARAM_ENABLED_cpu_stats];
++#ifdef __gnu_linux__
+    enabled[OVERLAY_PARAM_ENABLED_cpu_temp] = cpuStats.GetCpuFile()
+                            && enabled[OVERLAY_PARAM_ENABLED_cpu_temp];
+    enabled[OVERLAY_PARAM_ENABLED_cpu_power] = cpuStats.InitCpuPowerData()
+@@ -600,21 +600,24 @@ void init_gpu_stats(uint32_t& vendorID, overlay_params
+ }
+ 
+ void init_system_info(){
+-   #ifdef __gnu_linux__
+       const char* ld_preload = getenv("LD_PRELOAD");
+       if (ld_preload)
+          unsetenv("LD_PRELOAD");
+ 
+-      ram =  exec("cat /proc/meminfo | grep 'MemTotal' | awk '{print $2}'");
++      ram = exec("grep MemTotal " PROCDIR "/meminfo | awk '{print $2}'");
+       trim(ram);
+-      cpu =  exec("cat /proc/cpuinfo | grep 'model name' | tail -n1 | sed 's/^.*: //' | sed 's/([^)]*)/()/g' | tr -d '(/)'");
++      cpu = exec("grep 'model name' " PROCDIR "/cpuinfo | tail -n1 | sed 's/^.*: //' | sed 's/([^)]*)/()/g' | tr -d '(/)'");
+       trim(cpu);
+       kernel = exec("uname -r");
+       trim(kernel);
+       os = exec("cat /etc/*-release | grep 'PRETTY_NAME' | cut -d '=' -f 2-");
+       os.erase(remove(os.begin(), os.end(), '\"' ), os.end());
+       trim(os);
+-      cpusched = read_line("/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor");
++      gpu = exec("pciconf -lv | grep -A2 ^vgapci0 | tail -1 | cut -d\\' -f2");
++      trim(gpu);
++      driver = exec("glxinfo -B | grep 'OpenGL version' | sed 's/^.*: //'");
++      trim(driver);
++      cpusched = exec("sysctl -b kern.sched.name");
+ 
+       const char* mangohud_recursion = getenv("MANGOHUD_RECURSION");
+       if (!mangohud_recursion) {
+@@ -669,6 +672,8 @@ void init_system_info(){
+       else {
+            wineVersion = "";
+       }
++
++#ifdef __gnu_linux__
+       // check for gamemode and vkbasalt
+       stringstream ss;
+       string line;
+@@ -686,6 +691,7 @@ void init_system_info(){
+          if (HUDElements.gamemode_bol && HUDElements.vkbasalt_bol)
+             break;
+       }
++#endif
+ 
+       if (ld_preload)
+          setenv("LD_PRELOAD", ld_preload, 1);
+@@ -697,7 +703,6 @@ void init_system_info(){
+                 << "Gpu:" << gpu << "\n"
+                 << "Driver:" << driver << "\n"
+                 << "CPU Scheduler:" << cpusched << std::endl;
+-#endif
+ #endif
+ }
+