about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/science/logic/why3/with-provers.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/applications/science/logic/why3/with-provers.nix')
-rw-r--r--nixpkgs/pkgs/applications/science/logic/why3/with-provers.nix30
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"
+  '';
+}