summary refs log tree commit diff
path: root/pkgs/development/libraries/qt-5/make-qt-wrapper.sh
blob: 4a5651f74c9bfd36d586a990a52ba7fbf731b115 (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
44
45
46
wrapQtProgram() {
    local prog="$1"
    shift
    wrapProgram "$prog" \
        --prefix QT_PLUGIN_PATH : "$QT_PLUGIN_PATH" \
        --prefix QML_IMPORT_PATH : "$QML_IMPORT_PATH" \
        --prefix QML2_IMPORT_PATH : "$QML2_IMPORT_PATH" \
        --prefix XDG_DATA_DIRS : "$RUNTIME_XDG_DATA_DIRS" \
        --prefix XDG_CONFIG_DIRS : "$RUNTIME_XDG_CONFIG_DIRS" \
        --prefix GIO_EXTRA_MODULES : "$GIO_EXTRA_MODULES" \
        "$@"
}

makeQtWrapper() {
    local old="$1"
    local new="$2"
    shift
    shift
    makeWrapper "$old" "$new" \
        --prefix QT_PLUGIN_PATH : "$QT_PLUGIN_PATH" \
        --prefix QML_IMPORT_PATH : "$QML_IMPORT_PATH" \
        --prefix QML2_IMPORT_PATH : "$QML2_IMPORT_PATH" \
        --prefix XDG_DATA_DIRS : "$RUNTIME_XDG_DATA_DIRS" \
        --prefix XDG_CONFIG_DIRS : "$RUNTIME_XDG_CONFIG_DIRS" \
        --prefix GIO_EXTRA_MODULES : "$GIO_EXTRA_MODULES" \
        "$@"
}

_makeQtWrapperSetup() {
    # cannot use addToSearchPath because these directories may not exist yet
    export QT_PLUGIN_PATH="$QT_PLUGIN_PATH${QT_PLUGIN_PATH:+:}${!outputLib}/lib/qt5/plugins"
    export QML_IMPORT_PATH="$QML_IMPORT_PATH${QML_IMPORT_PATH:+:}${!outputLib}/lib/qt5/imports"
    export QML2_IMPORT_PATH="$QML2_IMPORT_PATH${QML2_IMPORT_PATH:+:}${!outputLib}/lib/qt5/qml"
    export RUNTIME_XDG_DATA_DIRS="$RUNTIME_XDG_DATA_DIRS${RUNTIME_XDG_DATA_DIRS:+:}${!outputBin}/share${GSETTINGS_SCHEMAS_PATH:+:$GSETTINGS_SCHEMAS_PATH}"
    export RUNTIME_XDG_CONFIG_DIRS="$RUNTIME_XDG_CONFIG_DIRS${RUNTIME_XDG_CONFIG_DIRS:+:}${!outputBin}/etc/xdg"
}

prePhases+=(_makeQtWrapperSetup)

_findGioModules() {
    if [ -d "$1"/lib/gio/modules ] && [ -n "$(ls -A $1/lib/gio/modules)" ] ; then
        export GIO_EXTRA_MODULES="$GIO_EXTRA_MODULES${GIO_EXTRA_MODULES:+:}$1/lib/gio/modules"
    fi
}

envHooks+=(_findGioModules)