nixos/doh-server: init
[NixPkgs.git] / pkgs / applications / audio / faust / faust2jaqt.nix
blob2fe663431aac6a0157dc4cd8314a033f336e59ce
2   faust,
3   jack2,
4   qtbase,
5   libsndfile,
6   alsa-lib,
7   writeText,
8   buildPackages,
9   which,
11 let
12   # Wrap the binary coming out of the the compilation script, so it knows QT_PLUGIN_PATH
13   wrapBinary = writeText "wrapBinary" ''
14     source ${buildPackages.makeWrapper}/nix-support/setup-hook
15     for p in $FILES; do
16       workpath=$PWD
17       cd -- "$(dirname "$p")"
18       binary=$(basename --suffix=.dsp "$p")
19       rm -f .$binary-wrapped
20       wrapProgram $binary --set QT_PLUGIN_PATH "${qtbase}/${qtbase.qtPluginPrefix}"
21       sed -i $binary -e 's@exec@cd "$(dirname "$(readlink -f "''${BASH_SOURCE[0]}")")" \&\& exec@g'
22       cd $workpath
23     done
24   '';
26 faust.wrapWithBuildEnv {
28   baseName = "faust2jaqt";
30   scripts = [
31     "faust2jaqt"
32     "faust2jackserver"
33   ];
35   propagatedBuildInputs = [
36     jack2
37     qtbase
38     libsndfile
39     alsa-lib
40     which
41   ];
43   dontWrapQtApps = true;
45   preFixup = ''
46     for script in "$out"/bin/*; do
47       # append the wrapping code to the compilation script
48       cat ${wrapBinary} >> $script
49       # prevent the qmake error when running the script
50       sed -i "/QMAKE=/c\ QMAKE="${qtbase.dev}/bin/qmake"" $script
51     done
52   '';