Unverified Commit 24469dbb authored by ckie's avatar ckie Committed by GitHub
Browse files

Merge pull request #220824 from 9ary/dxvk-dll-overrides

dxvk: fix DLL override setup
dxvk: fix unbound variable warning in setup_dxvk.sh
dxvk: fix all shellcheck warnings
parents c12da211 b09533e7
Loading
Loading
Loading
Loading
+20 −19
Original line number Diff line number Diff line
@@ -2,11 +2,14 @@

set -eu -o pipefail

# shellcheck disable=SC2034
{
    dxvk32_dir=@dxvk32@/bin
    dxvk64_dir=@dxvk64@/bin

    mcfgthreads32_dir=@mcfgthreads32@/bin
    mcfgthreads64_dir=@mcfgthreads64@/bin
}

## Defaults

@@ -42,7 +45,7 @@ usage() {
    exit 1
}

case "$1" in
case "${1:-}" in
    uninstall|install)
        action=$1
        shift
@@ -51,7 +54,7 @@ case "$1" in
        usage
        ;;
    *)
        if [ ! -z "${1:-}" ]; then
        if [ -n "${1:-}" ]; then
            echo "Unrecognized command: $1"
        fi
        usage
@@ -62,19 +65,19 @@ esac
do_symlink=false
do_makeprefix=false

while [ ! -z "${1:-}" ]; do
while [ -n "${1:-}" ]; do
    case "$1" in
        --with-dxgi)
            targets[dxgi]=1
            ;;
        --without-dxgi)
            unset targets[dxgi]
            unset "targets[dxgi]"
            ;;
        --with-d3d10)
            targets[d3d10]=1
            ;;
        --without-d3d10)
            unset targets[d3d10]
            unset "targets[d3d10]"
            ;;
        -s|--symlink)
            do_symlink=true
@@ -90,7 +93,7 @@ while [ ! -z "${1:-}" ]; do
            ;;
        -p|--prefix)
            shift
            if [ ! -z "${1:-}" ]; then
            if [ -n "${1:-}" ]; then
                WINEPREFIX=$1
            else
                echo "Required PREFIX missing"
@@ -223,8 +226,7 @@ uninstall_file() {

install_override() {
    dll=$(basename "$1")
    $wine reg add 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' /v "$dll" /d native /f >/dev/null 2>&1
    if [ $? -ne 0 ]; then
    if ! $wine reg add 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' /v "$dll" /d native /f >/dev/null 2>&1; then
        echo -e "Failed to add override for $dll"
        exit 1
    fi
@@ -232,8 +234,7 @@ install_override() {

uninstall_override() {
    dll=$(basename "$1")
    $wine reg delete 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' /v "$dll" /f > /dev/null 2>&1
    if [ $? -ne 0 ]; then
    if ! $wine reg delete 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' /v "$dll" /f > /dev/null 2>&1; then
        echo "Failed to remove override for $dll"
    fi
}
@@ -243,16 +244,16 @@ uninstall_override() {
declare -A paths

for target in "${!targets[@]}"; do
    [ ${targets[$target]} -eq 1 ] || continue
    [ "${targets[$target]}" -eq 1 ] || continue
    for dll in ${dlls[$target]}; do
        dllname=$(basename "$dll")
        basedir=$(dirname "$dll")

        if [ ! -z "${win32_sys_path:-}" ]; then
        if [ -n "${win32_sys_path:-}" ]; then
            basedir32=${basedir}32_dir
            paths["${!basedir32}/$dllname"]="$win32_sys_path/$dllname"
        fi
        if [ ! -z "${win64_sys_path:-}" ]; then
        if [ -n "${win64_sys_path:-}" ]; then
            basedir64=${basedir}64_dir
            paths["${!basedir64}/$dllname"]="$win64_sys_path/$dllname"
        fi
@@ -260,6 +261,6 @@ for target in "${!targets[@]}"; do
done

for srcpath in "${!paths[@]}"; do
    ${action}_file "$srcpath" "${paths["$srcpath"]}"
    ${action}_override "$(basename srcpath)"
    "${action}_file" "$srcpath" "${paths["$srcpath"]}"
    "${action}_override" "$(basename "$srcpath" .dll)"
done