From 8558d038d7169c607e5a9b63644494375b33fe25 Mon Sep 17 00:00:00 2001 From: FlightlessMango Date: Tue, 10 Mar 2020 13:39:52 +0100 Subject: [PATCH] refactored the install process --- bin/install.sh | 14 -------- bin/mangohud-setup.sh | 24 ++++++++++++++ bin/run-mangohud-gl-pkg.sh | 2 +- build.sh | 65 +++++++++++++++++++++----------------- libmangohud.conf | 2 ++ src/mangohud.json | 2 +- src/meson.build | 4 +-- 7 files changed, 66 insertions(+), 47 deletions(-) delete mode 100755 bin/install.sh create mode 100755 bin/mangohud-setup.sh create mode 100644 libmangohud.conf diff --git a/bin/install.sh b/bin/install.sh deleted file mode 100755 index 8dfa76fc..00000000 --- a/bin/install.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash - -XDG_DATA_HOME="${XDG_DATA_HOME:-$HOME/.local/share}" -XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}" - -cd $(dirname "$0") -cp -rv ".local/share/MangoHud" "$XDG_DATA_HOME/" -cp -rv ".local/share/vulkan" "$XDG_DATA_HOME/" -if [[ ! -f "$XDG_CONFIG_HOME/MangoHud/MangoHud.conf" ]]; then - cp -rv ".config/MangoHud" "$XDG_CONFIG_HOME/" -fi - -sed -i "s|libMangoHud.so|$XDG_DATA_HOME/MangoHud/libMangoHud32.so|g" "$XDG_DATA_HOME/vulkan/implicit_layer.d/mangohud32.json" -sed -i "s|libMangoHud.so|$XDG_DATA_HOME/MangoHud/libMangoHud.so|g" "$XDG_DATA_HOME/vulkan/implicit_layer.d/mangohud64.json" diff --git a/bin/mangohud-setup.sh b/bin/mangohud-setup.sh new file mode 100755 index 00000000..d8bbfbbc --- /dev/null +++ b/bin/mangohud-setup.sh @@ -0,0 +1,24 @@ +install() { + [ "$UID" -eq 0 ] || exec sudo bash "$0" "$@" + tar -C / -xf MangoHud*.tar + ldconfig + echo "MangoHud Installed" +} + +uninstall() { + [ "$UID" -eq 0 ] || exec sudo bash "$0" "$@" + rm -rfv "/usr/lib/MangoHud" + rm -fv "/usr/share/vulkan/implicit_layer.d/mangohud.json" + rm -fv "/etc/ld.so.conf.d/libmangohud.conf" + rm -fv "/usr/bin/mangohud" +} + +for a in $@; do + case $a in + "install") install;; + "uninstall") uninstall;; + *) + echo "Unrecognized command argument: $a" + echo 'Accepted arguments: "install", "uninstall".' + esac +done \ No newline at end of file diff --git a/bin/run-mangohud-gl-pkg.sh b/bin/run-mangohud-gl-pkg.sh index ef27994d..e8f61e22 100755 --- a/bin/run-mangohud-gl-pkg.sh +++ b/bin/run-mangohud-gl-pkg.sh @@ -17,4 +17,4 @@ fi # pass through the overriden LD_PRELOAD environment variables LD_PRELOAD="${LD_PRELOAD}:${MANGOHUD_LIB_NAME}" -exec env LD_PRELOAD="${LD_PRELOAD}" "$@" +exec env MANGOHUD="1" LD_PRELOAD="${LD_PRELOAD}" "$@" diff --git a/build.sh b/build.sh index acaccfbc..31452cf5 100755 --- a/build.sh +++ b/build.sh @@ -4,7 +4,7 @@ XDG_DATA_HOME="${XDG_DATA_HOME:-$HOME/.local/share}" XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}" DATA_DIR="$XDG_DATA_HOME/MangoHud" LAYER="build/release/usr/share/vulkan/implicit_layer.d/mangohud.json" -INSTALL_DIR="build/package/MangoHud" +INSTALL_DIR="build/package/" IMPLICIT_LAYER_DIR="$XDG_DATA_HOME/vulkan/implicit_layer.d" VERSION=$(git describe --long --tags --always | sed 's/\([^-]*-g\)/r\1/;s/-/./g;s/^v//') @@ -134,35 +134,38 @@ package() { if [[ ! -f "$LIB" || "$LIB" -ot "build/meson64/src/libMangoHud.so" ]]; then build fi - mkdir -p "$INSTALL_DIR/.local/share/"{MangoHud,vulkan/implicit_layer.d} - mkdir -p "$INSTALL_DIR/.config/MangoHud" - - cp "$LIB32" "$INSTALL_DIR/.local/share/MangoHud/libMangoHud32.so" - cp "$LIB" "$INSTALL_DIR/.local/share/MangoHud/libMangoHud.so" - cp "$LAYER" "$INSTALL_DIR/.local/share/vulkan/implicit_layer.d/mangohud64.json" - cp "$LAYER" "$INSTALL_DIR/.local/share/vulkan/implicit_layer.d/mangohud32.json" - cp --preserve=mode "bin/install.sh" "build/package/MangoHud/install.sh" - cp --preserve=mode "bin/run-mangohud-gl.sh" "build/package/MangoHud/run-mangohud-gl.sh" - cp "bin/MangoHud.conf" "$INSTALL_DIR/.config/MangoHud/MangoHud.conf" - cp "bin/MangoHud.conf" "$INSTALL_DIR/.local/share/MangoHud/MangoHud.conf" - sed -i "s|64bit|32bit|g" "$INSTALL_DIR/.local/share/vulkan/implicit_layer.d/mangohud32.json" - - tar -C build/package -cpzf "build/MangoHud-$VERSION.tar.gz" . + mkdir -p "$INSTALL_DIR/usr/bin" + mkdir -p "$INSTALL_DIR/usr/lib/MangoHud" + mkdir -p "$INSTALL_DIR/usr/lib/MangoHud/"{lib32,lib64} + mkdir -p "$INSTALL_DIR/usr/share/vulkan/implicit_layer.d" + mkdir -p "$INSTALL_DIR/etc/ld.so.conf.d" + + cp libmangohud.conf "$INSTALL_DIR/etc/ld.so.conf.d/libmangohud.conf" + cp "$LIB" "$INSTALL_DIR/usr/lib/MangoHud/lib64/libMangoHud.so" + cp "$LIB32" "$INSTALL_DIR/usr/lib/MangoHud/lib32/libMangoHud.so" + cp "$LAYER" "$INSTALL_DIR/usr/share/vulkan/implicit_layer.d/" + cp --preserve=mode "build/release/usr/bin/mangohud" "$INSTALL_DIR/usr/bin/mangohud" + + tar -C build/package -cf "build/MangoHud-package.tar" . +} + +release() { + rm build/MangoHud-package.tar + mkdir -p build/MangoHud + package + cp bin/mangohud-setup.sh build/MangoHud/mangohud-setup.sh + cp build/MangoHud-package.tar build/MangoHud/MangoHud-package.tar + cd build/ + tar -czvf MangoHud-$VERSION.tar.gz MangoHud + cd .. } install() { - PKG="build/MangoHud-$VERSION.tar.gz" - if [[ ! -f "$PKG" || "$PKG" -ot "build/meson64/src/libMangoHud.so" ]]; then - package - fi - if [[ -f "$XDG_CONFIG_HOME/MangoHud/MangoHud.conf" ]]; then - tar xzf "build/MangoHud-$VERSION.tar.gz" -C "$XDG_DATA_HOME/" "./MangoHud/.local/share/"{MangoHud,vulkan} --strip-components=4 - else - tar xzf "build/MangoHud-$VERSION.tar.gz" -C "$XDG_DATA_HOME/" "./MangoHud/.local/share/"{MangoHud,vulkan} --strip-components=4 - tar xzf "build/MangoHud-$VERSION.tar.gz" -C "$XDG_CONFIG_HOME/" "./MangoHud/.config/MangoHud" --strip-components=3 - fi - sed -i "s|libMangoHud.so|$XDG_DATA_HOME/MangoHud/libMangoHud32.so|g" "$XDG_DATA_HOME/vulkan/implicit_layer.d/mangohud32.json" - sed -i "s|libMangoHud.so|$XDG_DATA_HOME/MangoHud/libMangoHud.so|g" "$XDG_DATA_HOME/vulkan/implicit_layer.d/mangohud64.json" + package + [ "$UID" -eq 0 ] || exec sudo bash "$0" "$@" + tar -C / -xf build/MangoHud*.tar + ldconfig + echo "MangoHud Installed" } clean() { @@ -170,8 +173,11 @@ clean() { } uninstall() { - rm -rfv "$XDG_DATA_HOME/MangoHud" - rm -fv "$IMPLICIT_LAYER_DIR"/{mangohud64,mangohud32}.json + [ "$UID" -eq 0 ] || exec sudo bash "$0" "$@" + rm -rfv "/usr/lib/MangoHud" + rm -fv "/usr/share/vulkan/implicit_layer.d/mangohud.json" + rm -fv "/etc/ld.so.conf.d/libmangohud.conf" + rm -fv "/usr/bin/mangohud" } for a in $@; do @@ -184,6 +190,7 @@ for a in $@; do "install") install;; "clean") clean;; "uninstall") uninstall;; + "release") release;; *) echo "Unrecognized command argument: $a" echo 'Accepted arguments: "pull", "configure", "build", "package", "install", "clean", "uninstall".' diff --git a/libmangohud.conf b/libmangohud.conf new file mode 100644 index 00000000..b9eda8c6 --- /dev/null +++ b/libmangohud.conf @@ -0,0 +1,2 @@ +/usr/lib/MangoHud/lib32 +/usr/lib/MangoHud/lib64 \ No newline at end of file diff --git a/src/mangohud.json b/src/mangohud.json index 38e8ed61..5b102aa4 100644 --- a/src/mangohud.json +++ b/src/mangohud.json @@ -1,7 +1,7 @@ { "file_format_version" : "1.0.0", "layer" : { - "name": "MangoHud 64bit", + "name": "MangoHud", "type": "GLOBAL", "api_version": "1.1.125", "library_path": "libMangoHud.so", diff --git a/src/meson.build b/src/meson.build index dc1097f9..3a23a7ba 100644 --- a/src/meson.build +++ b/src/meson.build @@ -95,5 +95,5 @@ install_data( files('../bin/run-mangohud-gl-pkg.sh'), install_dir : get_option('bindir'), install_mode: 'rwxr-xr-x', - rename : ['run-mangohud-gl.sh'] -) + rename : ['mangohud'] +) \ No newline at end of file