diff --git a/bin/mangohud-setup.sh b/bin/mangohud-setup.sh index 43f60e89..b13b2572 100755 --- a/bin/mangohud-setup.sh +++ b/bin/mangohud-setup.sh @@ -21,6 +21,18 @@ mangohud_config() { echo } +mangohud_uninstall() { + [ "$UID" -eq 0 ] || exec $SU_CMD bash "$0" uninstall + rm -rfv "/usr/lib/mangohud" + rm -fv "/usr/share/vulkan/implicit_layer.d/MangoHud.x86.json" + rm -fv "/usr/share/vulkan/implicit_layer.d/MangoHud.x86_64.json" + rm -fv "/usr/share/vulkan/implicit_layer.d/MangoHud.json" + rm -frv "/usr/share/doc/mangohud" + rm -fv "/usr/share/man/man1/mangohud.1" + rm -fv "/usr/bin/mangohud" + rm -fv "/usr/bin/mangohud.x86" +} + mangohud_install() { rm -rf "$HOME/.local/share/MangoHud/" rm -f "$HOME/.local/share/vulkan/implicit_layer.d/"{mangohud32.json,mangohud64.json} @@ -29,28 +41,30 @@ mangohud_install() { [ "$UID" -eq 0 ] || tar xf MangoHud-package.tar [ "$UID" -eq 0 ] || exec $SU_CMD bash "$0" install - install -vm644 -D ./usr/lib/mangohud/lib32/libMangoHud.so /usr/lib/mangohud/lib32/libMangoHud.so - install -vm644 -D ./usr/lib/mangohud/lib64/libMangoHud.so /usr/lib/mangohud/lib64/libMangoHud.so - install -vm644 -D ./usr/lib/mangohud/lib32/libMangoHud_dlsym.so /usr/lib/mangohud/lib32/libMangoHud_dlsym.so - install -vm644 -D ./usr/lib/mangohud/lib64/libMangoHud_dlsym.so /usr/lib/mangohud/lib64/libMangoHud_dlsym.so - install -vm644 -D ./usr/share/vulkan/implicit_layer.d/MangoHud.x86.json /usr/share/vulkan/implicit_layer.d/MangoHud.x86.json - install -vm644 -D ./usr/share/vulkan/implicit_layer.d/MangoHud.x86_64.json /usr/share/vulkan/implicit_layer.d/MangoHud.x86_64.json - install -vm644 -D ./usr/share/doc/mangohud/MangoHud.conf.example /usr/share/doc/mangohud/MangoHud.conf.example + mangohud_uninstall + + install -Dvm644 ./usr/lib/mangohud/lib32/libMangoHud.so /usr/lib/mangohud/lib32/libMangoHud.so + install -Dvm644 ./usr/lib/mangohud/lib32/libMangoHud_dlsym.so /usr/lib/mangohud/lib32/libMangoHud_dlsym.so + + install -Dvm644 ./usr/lib/mangohud/lib/libMangoHud.so /usr/lib/mangohud/lib/libMangoHud.so + install -Dvm644 ./usr/lib/mangohud/lib/libMangoHud_dlsym.so /usr/lib/mangohud/lib/libMangoHud_dlsym.so - install -vm755 ./usr/bin/mangohud.x86 /usr/bin/mangohud.x86 + install -Dvm644 ./usr/share/vulkan/implicit_layer.d/MangoHud.json /usr/share/vulkan/implicit_layer.d/MangoHud.json + install -Dvm644 ./usr/share/doc/mangohud/MangoHud.conf.example /usr/share/doc/mangohud/MangoHud.conf.example + install -Dvm644 ./usr/share/man/man1/mangohud.1 /usr/share/man/man1/mangohud.1 install -vm755 ./usr/bin/mangohud /usr/bin/mangohud - echo "MangoHud Installed" -} + # FIXME get the triplet somehow + ln -sv lib /usr/lib/mangohud/lib64 + ln -sv lib /usr/lib/mangohud/x86_64 + ln -sv lib /usr/lib/mangohud/x86_64-linux-gnu + ln -sv lib32 /usr/lib/mangohud/i686 + #ln -sv lib32 /usr/lib/mangohud/i386-linux-gnu + ln -sv lib32 /usr/lib/mangohud/i686-linux-gnu + #ln -sv lib /usr/lib/mangohud/aarch64-linux-gnu + #ln -sv lib /usr/lib/mangohud/arm-linux-gnueabihf -mangohud_uninstall() { - [ "$UID" -eq 0 ] || exec $SU_CMD bash "$0" uninstall - rm -rfv "/usr/lib/mangohud" - rm -fv "/usr/share/vulkan/implicit_layer.d/MangoHud.x86.json" - rm -fv "/usr/share/vulkan/implicit_layer.d/MangoHud.x86_64.json" - rm -frv "/usr/share/doc/mangohud" - rm -fv "/usr/bin/mangohud" - rm -fv "/usr/bin/mangohud.x86" + echo "MangoHud Installed" } for a in $@; do diff --git a/build.sh b/build.sh index c4b45508..2934fc2b 100755 --- a/build.sh +++ b/build.sh @@ -25,7 +25,7 @@ for os_release in ${OS_RELEASE_FILES[@]} ; do done dependencies() { - if [[ ! -f build/release/usr/lib64/libMangoHud.so ]]; then + if [[ ! -f build/release/usr/lib/libMangoHud.so ]]; then missing_deps() { echo "# Missing dependencies:$INSTALL" read -rp "Do you wish the script to install these packages? [y/N]" PERMISSION @@ -142,14 +142,14 @@ configure() { dependencies git submodule update --init --depth 50 if [[ ! -f "build/meson64/build.ninja" ]]; then - meson build/meson64 --libdir lib/mangohud/lib64 --prefix /usr -Dappend_libdir_mangohud=false $@ ${CONFIGURE_OPTS} + meson build/meson64 --libdir lib/mangohud/lib --prefix /usr -Dappend_libdir_mangohud=false -Dld_libdir_prefix=true $@ ${CONFIGURE_OPTS} fi if [[ ! -f "build/meson32/build.ninja" ]]; then export CC="gcc -m32" export CXX="g++ -m32" export PKG_CONFIG_PATH="/usr/lib32/pkgconfig:/usr/lib/i386-linux-gnu/pkgconfig:/usr/lib/pkgconfig:${PKG_CONFIG_PATH_32}" export LLVM_CONFIG="/usr/bin/llvm-config32" - meson build/meson32 --libdir lib/mangohud/lib32 --prefix /usr -Dappend_libdir_mangohud=false $@ ${CONFIGURE_OPTS} + meson build/meson32 --libdir lib/mangohud/lib32 --prefix /usr -Dappend_libdir_mangohud=false -Dld_libdir_prefix=true $@ ${CONFIGURE_OPTS} fi } @@ -162,7 +162,7 @@ build() { } package() { - LIB="build/release/usr/lib/mangohud/lib64/libMangoHud.so" + LIB="build/release/usr/lib/mangohud/lib/libMangoHud.so" LIB32="build/release/usr/lib/mangohud/lib32/libMangoHud.so" if [[ ! -f "$LIB" || "$LIB" -ot "build/meson64/src/libMangoHud.so" ]]; then build @@ -181,6 +181,19 @@ release() { -C build -czvf build/MangoHud-$VERSION.tar.gz MangoHud } +uninstall() { + [ "$UID" -eq 0 ] || exec $SU_CMD bash "$0" uninstall + rm -rfv "/usr/lib/mangohud" + rm -rfv "/usr/share/doc/mangohud" + rm -fv "/usr/share/man/man1/mangohud.1" + rm -fv "/usr/share/vulkan/implicit_layer.d/mangohud.json" + rm -fv "/usr/share/vulkan/implicit_layer.d/MangoHud.json" + rm -fv "/usr/share/vulkan/implicit_layer.d/MangoHud.x86.json" + rm -fv "/usr/share/vulkan/implicit_layer.d/MangoHud.x86_64.json" + rm -fv "/usr/bin/mangohud" + rm -fv "/usr/bin/mangohud.x86" +} + install() { rm -rf "$HOME/.local/share/MangoHud/" rm -f "$HOME/.local/share/vulkan/implicit_layer.d/"{mangohud32.json,mangohud64.json} @@ -188,16 +201,19 @@ install() { [ "$UID" -eq 0 ] || mkdir -pv "${CONFIG_DIR}" [ "$UID" -eq 0 ] || exec $SU_CMD bash "$0" install - /usr/bin/install -vm644 -D ./build/release/usr/lib/mangohud/lib32/libMangoHud.so /usr/lib/mangohud/lib32/libMangoHud.so - /usr/bin/install -vm644 -D ./build/release/usr/lib/mangohud/lib64/libMangoHud.so /usr/lib/mangohud/lib64/libMangoHud.so - /usr/bin/install -vm644 -D ./build/release/usr/lib/mangohud/lib32/libMangoHud_dlsym.so /usr/lib/mangohud/lib32/libMangoHud_dlsym.so - /usr/bin/install -vm644 -D ./build/release/usr/lib/mangohud/lib64/libMangoHud_dlsym.so /usr/lib/mangohud/lib64/libMangoHud_dlsym.so - /usr/bin/install -vm644 -D ./build/release/usr/share/vulkan/implicit_layer.d/MangoHud.x86.json /usr/share/vulkan/implicit_layer.d/MangoHud.x86.json - /usr/bin/install -vm644 -D ./build/release/usr/share/vulkan/implicit_layer.d/MangoHud.x86_64.json /usr/share/vulkan/implicit_layer.d/MangoHud.x86_64.json - /usr/bin/install -vm644 -D ./build/release/usr/share/doc/mangohud/MangoHud.conf.example /usr/share/doc/mangohud/MangoHud.conf.example + uninstall + $SU_CMD ninja -C build/meson32 install + $SU_CMD ninja -C build/meson64 install - /usr/bin/install -vm755 ./build/release/usr/bin/mangohud.x86 /usr/bin/mangohud.x86 - /usr/bin/install -vm755 ./build/release/usr/bin/mangohud /usr/bin/mangohud + # FIXME get the triplet somehow + ln -sv lib /usr/lib/mangohud/lib64 + ln -sv lib /usr/lib/mangohud/x86_64 + ln -sv lib /usr/lib/mangohud/x86_64-linux-gnu + ln -sv lib32 /usr/lib/mangohud/i686 + #ln -sv lib32 /usr/lib/mangohud/i386-linux-gnu + ln -sv lib32 /usr/lib/mangohud/i686-linux-gnu + #ln -sv lib /usr/lib/mangohud/aarch64-linux-gnu + #ln -sv lib /usr/lib/mangohud/arm-linux-gnueabihf echo "MangoHud Installed" } @@ -212,18 +228,6 @@ clean() { rm -rf "build" } -uninstall() { - [ "$UID" -eq 0 ] || exec $SU_CMD bash "$0" uninstall - rm -rfv "/usr/lib/mangohud" - rm -rfv "/usr/share/doc/mangohud" - rm -fv "/usr/share/vulkan/implicit_layer.d/mangohud.json" - rm -fv "/usr/share/vulkan/implicit_layer.d/MangoHud.json" - rm -fv "/usr/share/vulkan/implicit_layer.d/MangoHud.x86.json" - rm -fv "/usr/share/vulkan/implicit_layer.d/MangoHud.x86_64.json" - rm -fv "/usr/bin/mangohud" - rm -fv "/usr/bin/mangohud.x86" -} - usage() { if test -z $1; then echo "Unrecognized command argument: $a" diff --git a/meson_options.txt b/meson_options.txt index 2c0394ed..87338e5e 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -1,7 +1,7 @@ option('glibcxx_asserts', type : 'boolean', value : false) option('use_system_vulkan', type : 'feature', value : 'disabled', description: 'Use system vulkan headers instead of the provided ones') -option('mangohud_prefix', type : 'string', value : '', description: 'Add prefix to cross-compiled library, like "lib32-".') option('append_libdir_mangohud', type : 'boolean', value : true, description: 'Append "mangohud" to libdir path or not.') +option('ld_libdir_prefix', type : 'boolean', value : false, description: 'Set ld libdir to "$prefix/lib/mangohud/\$LIB"') option('include_doc', type : 'boolean', value : true, description: 'Include the example config') option('with_nvml', type : 'combo', value : 'enabled', choices: ['enabled', 'system', 'disabled'], description: 'Enable NVML support') option('with_xnvctrl', type : 'feature', value : 'enabled', description: 'Enable XNVCtrl support') diff --git a/src/meson.build b/src/meson.build index b4867153..205f13c7 100644 --- a/src/meson.build +++ b/src/meson.build @@ -9,6 +9,12 @@ else ld_libdir_mangohud = get_option('prefix') + '/\$LIB/' endif +# For build.sh +if get_option('ld_libdir_prefix') + # FIXME derive from libdir + ld_libdir_mangohud = get_option('prefix') + '/lib/mangohud/\$LIB/' +endif + overlay_shaders = [ 'overlay.frag', 'overlay.vert', @@ -167,7 +173,7 @@ mangohud_dlsym = shared_library( configure_file(input : 'mangohud.json.in', output : '@0@.json'.format(meson.project_name()), configuration : {'ld_libdir_mangohud' : ld_libdir_mangohud, - 'PROJECT_NAME' : meson.project_name()}, + 'PROJECT_NAME' : meson.project_name().to_upper()}, install : true, install_dir : join_paths(get_option('datadir'), 'vulkan', 'implicit_layer.d'), )