This disables propagated of Qt 5 build inputs at the request of @edolstra. If this breaks your build, you need to add the missing dependencies yourself. If this breaks your package at runtime, you need to wrap your package to set either the plugin path or the QML import path.
54 lines
1.5 KiB
Bash
54 lines
1.5 KiB
Bash
addQtModule() {
|
|
if [[ -d "$1/mkspecs" ]]; then
|
|
|
|
@lndir@/bin/lndir -silent "$1/mkspecs" "$qtOut/mkspecs"
|
|
if [[ -n $qtSubmodule ]]; then
|
|
find "$1/mkspecs" -printf 'mkspecs/%P\n' >> "$qtOut/nix-support/qt-inputs"
|
|
fi
|
|
|
|
if [[ -d "$1/bin" ]]; then
|
|
@lndir@/bin/lndir -silent "$1/bin" "$qtOut/bin"
|
|
if [[ -n $qtSubmodule ]]; then
|
|
find "$1/bin" -printf 'bin/%P\n' >> "$qtOut/nix-support/qt-inputs"
|
|
fi
|
|
fi
|
|
|
|
if [[ -d "$1/include" ]]; then
|
|
@lndir@/bin/lndir -silent "$1/include" "$qtOut/include"
|
|
if [[ -n $qtSubmodule ]]; then
|
|
find "$1/include" -printf 'include/%P\n' >> "$qtOut/nix-support/qt-inputs"
|
|
fi
|
|
fi
|
|
|
|
if [[ -n $qtSubmodule ]] && [[ -d "$1/lib" ]]; then
|
|
@lndir@/bin/lndir -silent "$1/lib" "$qtOut/lib"
|
|
find "$1/lib" -printf 'lib/%P\n' >> "$qtOut/nix-support/qt-inputs"
|
|
fi
|
|
fi
|
|
}
|
|
|
|
setQMakePath() {
|
|
export PATH="$qtOut/bin${PATH:+:}$PATH"
|
|
}
|
|
|
|
qtOut=""
|
|
if [[ -z $qtSubmodule ]]; then
|
|
qtOut="$PWD/qmake-$name"
|
|
else
|
|
qtOut=$out
|
|
fi
|
|
|
|
mkdir -p "$qtOut/bin" "$qtOut/mkspecs" "$qtOut/include" "$qtOut/nix-support" "$qtOut/lib"
|
|
|
|
cp "@out@/bin/qmake" "$qtOut/bin"
|
|
cat >"$qtOut/bin/qt.conf" <<EOF
|
|
[Paths]
|
|
Prefix = $qtOut
|
|
Plugins = $qtOut/lib/qt5/plugins
|
|
Imports = $qtOut/lib/qt5/imports
|
|
Qml2Imports = $qtOut/lib/qt5/qml
|
|
EOF
|
|
|
|
envHooks+=(addQtModule)
|
|
preConfigurePhases+=" setQMakePath"
|