aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/pkgs/applications/science/logic/why3/with-provers.nix
diff options
context:
space:
mode:
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/applications/science/logic/why3/with-provers.nix')
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/science/logic/why3/with-provers.nix30
1 files changed, 30 insertions, 0 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/science/logic/why3/with-provers.nix b/infra/libkookie/nixpkgs/pkgs/applications/science/logic/why3/with-provers.nix
new file mode 100644
index 000000000000..3528dbd3a647
--- /dev/null
+++ b/infra/libkookie/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"
+ '';
+}