2015-03-23 18:01:27 +01:00
|
|
|
{ faust
|
2021-06-10 04:57:09 +02:00
|
|
|
, alsa-lib
|
2023-04-03 16:04:07 +02:00
|
|
|
, qtbase
|
|
|
|
, writeText
|
2023-08-15 00:01:54 +02:00
|
|
|
, buildPackages
|
2015-03-23 18:01:27 +01:00
|
|
|
}:
|
2023-04-03 16:04:07 +02:00
|
|
|
let
|
|
|
|
# Wrap the binary coming out of the the compilation script, so it knows QT_PLUGIN_PATH
|
|
|
|
wrapBinary = writeText "wrapBinary" ''
|
2023-08-15 00:01:54 +02:00
|
|
|
source ${buildPackages.makeWrapper}/nix-support/setup-hook
|
2023-04-03 16:04:07 +02:00
|
|
|
for p in $FILES; do
|
|
|
|
workpath=$PWD
|
|
|
|
cd -- "$(dirname "$p")"
|
|
|
|
binary=$(basename --suffix=.dsp "$p")
|
|
|
|
rm -f .$binary-wrapped
|
|
|
|
wrapProgram $binary --set QT_PLUGIN_PATH "${qtbase}/${qtbase.qtPluginPrefix}"
|
|
|
|
sed -i $binary -e 's@exec@cd "$(dirname "$(readlink -f "''${BASH_SOURCE[0]}")")" \&\& exec@g'
|
|
|
|
cd $workpath
|
|
|
|
done
|
|
|
|
'';
|
|
|
|
in
|
2015-03-23 18:01:27 +01:00
|
|
|
faust.wrapWithBuildEnv {
|
|
|
|
|
|
|
|
baseName = "faust2alqt";
|
|
|
|
|
|
|
|
propagatedBuildInputs = [
|
2021-06-10 04:57:09 +02:00
|
|
|
alsa-lib
|
2023-04-03 16:04:07 +02:00
|
|
|
qtbase
|
2015-03-23 18:01:27 +01:00
|
|
|
];
|
|
|
|
|
2023-04-03 16:04:07 +02:00
|
|
|
dontWrapQtApps = true;
|
|
|
|
|
|
|
|
preFixup = ''
|
|
|
|
for script in "$out"/bin/*; do
|
|
|
|
# append the wrapping code to the compilation script
|
|
|
|
cat ${wrapBinary} >> $script
|
|
|
|
# prevent the qmake error when running the script
|
|
|
|
sed -i "/QMAKE=/c\ QMAKE="${qtbase.dev}/bin/qmake"" $script
|
|
|
|
done
|
|
|
|
'';
|
2015-03-23 18:01:27 +01:00
|
|
|
}
|