From 4d436fe4acded839a53aa150011ac52b1c7320ac Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fran=C3=A7ois=20Bobot?= <francois.bobot@cea.fr>
Date: Tue, 17 Nov 2020 18:51:02 +0100
Subject: [PATCH] Try to factorize the definitions

---
 nix/default.nix | 39 ++++++++++++++++++---------------------
 1 file changed, 18 insertions(+), 21 deletions(-)

diff --git a/nix/default.nix b/nix/default.nix
index ead32f42..aee52baf 100644
--- a/nix/default.nix
+++ b/nix/default.nix
@@ -10,25 +10,22 @@ let
          rev = "0f0b14258be090303c5013c2e29234040fa9766c";
          sha256 = "0srpsnr5fhn2zp36jx3inj6vrs5n302hh3vv0c7rsc90aq5i27cr";
      }) {};
+     mk_framac_clang = { name, llvmPackages, llvm } :
+       plugins.helpers.simple_plugin
+         { inherit pkgs stdenv src opam2nix ocaml_version plugins name;
+           deps = [ llvmPackages.clang-unwrapped llvm pkgs.gnused ];
+           opamPackages = [ "camlp5" ];
+           preFramaCTests = ''
+             echo CONFIGURING Why3 for Frama_Clang.
+             export HOME=$(mktemp -d)
+             why3 config --detect
+           '';
+         }    
+     ;
 in
-(plugins.helpers.simple_plugin
-   { inherit pkgs stdenv src opam2nix ocaml_version plugins;
-     name = "frama-clang-on-llvm-9";
-     deps = [ unstablePckgs.llvmPackages_9.clang-unwrapped unstablePckgs.llvm_9 pkgs.gnused ];
-     opamPackages = [ "camlp5" ];
-     preFramaCTests = ''
-       echo CONFIGURING Why3 for Frama_Clang.
-       export HOME=$(mktemp -d)
-       why3 config --detect
-     '';
-   }) // { on-llvm10 = (plugins.helpers.simple_plugin
-   { inherit pkgs stdenv src opam2nix ocaml_version plugins;
-     name = "frama-clang-on-llvm-10";
-     deps = [ unstablePckgs.llvmPackages_10.clang-unwrapped unstablePckgs.llvm_10 pkgs.gnused ];
-     opamPackages = [ "camlp5" ];
-     preFramaCTests = ''
-       echo CONFIGURING Why3 for Frama_Clang.
-       export HOME=$(mktemp -d)
-       why3 config --detect
-     '';
-   }); }
+(mk_framac_clang { name = "frama-clang-on-llvm-9";
+                   llvmPackages = unstablePckgs.llvmPackages_9;
+                   llvm = unstablePckgs.llvm_9; }) //
+    { on-llvm10 = (mk_framac_clang { name = "frama-clang-on-llvm-10";
+                                     llvmPackages = unstablePckgs.llvmPackages_10;
+                                     llvm = unstablePckgs.llvm_10; }); }
-- 
GitLab