diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/science/logic/why3/with-provers.nix')
-rw-r--r-- | nixpkgs/pkgs/applications/science/logic/why3/with-provers.nix | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/science/logic/why3/with-provers.nix b/nixpkgs/pkgs/applications/science/logic/why3/with-provers.nix new file mode 100644 index 000000000000..3528dbd3a647 --- /dev/null +++ b/nixpkgs/pkgs/applications/science/logic/why3/with-provers.nix @@ -0,0 +1,30 @@ +{ stdenv, makeWrapper, runCommand, symlinkJoin, why3 }: +provers: +let configAwkScript = runCommand "why3-conf.awk" { inherit provers; } + '' + for p in $provers; do + for b in $p/bin/*; do + BASENAME=$(basename $b) + echo "/^command =/{ gsub(\"$BASENAME\", \"$b\") }" >> $out + done + done + echo '{ print }' >> $out + ''; +in stdenv.mkDerivation { + name = "${why3.name}-with-provers"; + + phases = [ "buildPhase" "installPhase" ]; + + buildInputs = [ why3 makeWrapper ] ++ provers; + + buildPhase = '' + mkdir -p $out/share/why3/ + why3 config --detect-provers -C $out/share/why3/why3.conf + awk -i inplace -f ${configAwkScript} $out/share/why3/why3.conf + ''; + + installPhase = '' + mkdir -p $out/bin + makeWrapper ${why3}/bin/why3 $out/bin/why3 --add-flags "--extra-config $out/share/why3/why3.conf" + ''; +} |