at 18.03-beta 43 lines 1.2 kB view raw
1{ stdenv, fetchzip, ocaml, findlib, jbuilder, cppo, easy-format, biniou }: 2let 3 pname = "yojson"; 4 param = 5 if stdenv.lib.versionAtLeast ocaml.version "4.02" then { 6 version = "1.4.0"; 7 sha256 = "0rzn4yihfi0psd2qmgrx5fvwpby87sqx4zws3ijf49f7wbpycccv"; 8 buildInputs = [ jbuilder ]; 9 extra = { inherit (jbuilder) installPhase; }; 10 } else { 11 version = "1.2.3"; 12 sha256 = "10dvkndgwanvw4agbjln7kgb1n9s6lii7jw82kwxczl5rd1sgmvl"; 13 buildInputs = []; 14 extra = { 15 createFindlibDestdir = true; 16 17 makeFlags = "PREFIX=$(out)"; 18 19 preBuild = "mkdir $out/bin"; 20 }; 21 }; 22in 23stdenv.mkDerivation ({ 24 25 name = "ocaml${ocaml.version}-${pname}-${param.version}"; 26 27 src = fetchzip { 28 url = "https://github.com/mjambon/${pname}/archive/v${param.version}.tar.gz"; 29 inherit (param) sha256; 30 }; 31 32 buildInputs = [ ocaml findlib ] ++ param.buildInputs; 33 34 propagatedBuildInputs = [ cppo easy-format biniou ]; 35 36 meta = with stdenv.lib; { 37 description = "An optimized parsing and printing library for the JSON format"; 38 homepage = "http://mjambon.com/${pname}.html"; 39 license = licenses.bsd3; 40 maintainers = [ maintainers.vbgl ]; 41 platforms = ocaml.meta.platforms or []; 42 }; 43} // param.extra)