summary refs log tree commit diff
path: root/pkgs/development/libraries/qt-5/hooks/fix-qt-module-paths.sh
blob: 916981b5299f69644824a7c273d2ea03ef6e6ef5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# fixQtModulePaths
#
# Usage: fixQtModulePaths _dir_
#
# Find Qt module definitions in directory _dir_ and patch the module paths.
#
fixQtModulePaths () {
    local dir="$1"
    local bin="${!outputBin}"
    local dev="${!outputDev}"
    local lib="${!outputLib}"

    if [ -d "$dir" ]; then
        find "$dir" -name 'qt_*.pri' | while read pr; do
            if grep -q '\$\$QT_MODULE_' "${pr:?}"; then
                echo "fixQtModulePaths: Fixing module paths in \`${pr:?}'..."
                sed -i "${pr:?}" \
                    -e "s|\\\$\\\$QT_MODULE_LIB_BASE|$dev/lib|g" \
                    -e "s|\\\$\\\$QT_MODULE_HOST_LIB_BASE|$dev/lib|g" \
                    -e "s|\\\$\\\$QT_MODULE_INCLUDE_BASE|$dev/include|g" \
                    -e "s|\\\$\\\$QT_MODULE_BIN_BASE|$dev/bin|g"
            fi
        done
    elif [ -e "$dir" ]; then
        echo "fixQtModulePaths: Warning: \`$dir' is not a directory"
    else
        echo "fixQtModulePaths: Warning: \`$dir' does not exist"
    fi

    if [ "z$dev" != "z$lib" ]; then
        if [ -d "$lib/lib" ]; then
            mkdir -p "$dev/lib"
            lndir -silent "$lib/lib" "$dev/lib"
        fi
    fi

    if [ "z$bin" != "z$dev" ]; then
        if [ -d "$bin/bin" ]; then
            mkdir -p "$dev/bin"
            lndir -silent "$bin/bin" "$dev/bin"
        fi
    fi
}