about summary refs log tree commit diff
path: root/pkgs/development/ocaml-modules/ppxlib
diff options
context:
space:
mode:
authorVincent Laporte <Vincent.Laporte@gmail.com>2020-05-12 21:14:39 +0200
committerVincent Laporte <vbgl@users.noreply.github.com>2020-05-18 18:19:06 +0200
commit4a873aa29ebd44601b86849d39648991939c32e2 (patch)
tree66a26f8db3e92e62f96e3f427873c9a739dff29e /pkgs/development/ocaml-modules/ppxlib
parentf31adf28b7ac2cc31081ddbd566f94932740564e (diff)
ocamlPackages.ppxlib: minor refactoring
Diffstat (limited to 'pkgs/development/ocaml-modules/ppxlib')
-rw-r--r--pkgs/development/ocaml-modules/ppxlib/default.nix29
1 files changed, 18 insertions, 11 deletions
diff --git a/pkgs/development/ocaml-modules/ppxlib/default.nix b/pkgs/development/ocaml-modules/ppxlib/default.nix
index bbaf9e27cf4de..8821e56212958 100644
--- a/pkgs/development/ocaml-modules/ppxlib/default.nix
+++ b/pkgs/development/ocaml-modules/ppxlib/default.nix
@@ -1,23 +1,30 @@
-{ stdenv, fetchFromGitHub, buildDunePackage
-, version ? "0.8.1"
+{ lib, fetchFromGitHub, buildDunePackage, ocaml
+, legacy ? false
 , ocaml-compiler-libs, ocaml-migrate-parsetree, ppx_derivers, stdio
 }:
 
-let sha256 =
-  { "0.8.1" = "0vm0jajmg8135scbg0x60ivyy5gzv4abwnl7zls2mrw23ac6kml6";
-    "0.12.0" = "1cg0is23c05k1rc94zcdz452p9zn11dpqxm1pnifwx5iygz3w0a1";
-  }."${version}"
-; in
+let param =
+  if legacy then {
+    version = "0.8.1";
+    sha256 = "0vm0jajmg8135scbg0x60ivyy5gzv4abwnl7zls2mrw23ac6kml6";
+  } else {
+    version = "0.12.0";
+    sha256 = "1cg0is23c05k1rc94zcdz452p9zn11dpqxm1pnifwx5iygz3w0a1";
+  }; in
+
+if lib.versionAtLeast ocaml.version "4.10" && legacy
+then throw "ppxlib-${param.version} is not available for OCaml ${ocaml.version}"
+else
 
 buildDunePackage rec {
   pname = "ppxlib";
-  inherit version;
+  inherit (param) version;
 
   src = fetchFromGitHub {
     owner = "ocaml-ppx";
     repo = pname;
     rev = version;
-    inherit sha256;
+    inherit (param) sha256;
   };
 
   propagatedBuildInputs = [
@@ -26,8 +33,8 @@ buildDunePackage rec {
 
   meta = {
     description = "Comprehensive ppx tool set";
-    license = stdenv.lib.licenses.mit;
-    maintainers = [ stdenv.lib.maintainers.vbgl ];
+    license = lib.licenses.mit;
+    maintainers = [ lib.maintainers.vbgl ];
     inherit (src.meta) homepage;
   };
 }