diff options
Diffstat (limited to 'pkgs/development/libraries/qt-5/hooks/fix-qt-module-paths.sh')
-rw-r--r-- | pkgs/development/libraries/qt-5/hooks/fix-qt-module-paths.sh | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/pkgs/development/libraries/qt-5/hooks/fix-qt-module-paths.sh b/pkgs/development/libraries/qt-5/hooks/fix-qt-module-paths.sh new file mode 100644 index 00000000000..916981b5299 --- /dev/null +++ b/pkgs/development/libraries/qt-5/hooks/fix-qt-module-paths.sh @@ -0,0 +1,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 +} |