at 22.05-pre 81 lines 2.3 kB view raw
1{ stdenv, lib, makeWrapper, fetchzip, ocaml, findlib, tcl, tk }: 2 3let 4 params = 5 let mkNewParam = { version, sha256, rev ? version }: { 6 inherit version; 7 src = fetchzip { 8 url = "https://github.com/garrigue/labltk/archive/${rev}.tar.gz"; 9 inherit sha256; 10 }; 11 }; in 12 rec { 13 "4.06" = mkNewParam { 14 version = "8.06.4"; 15 rev = "labltk-8.06.4"; 16 sha256 = "03xwnnnahb2rf4siymzqyqy8zgrx3h26qxjgbp5dh1wdl7n02c7g"; 17 }; 18 "4.07" = mkNewParam { 19 version = "8.06.5"; 20 rev = "1b71e2c6f3ae6847d3d5e79bf099deb7330fb419"; 21 sha256 = "02vchmrm3izrk7daldd22harhgrjhmbw6i1pqw6hmfmrmrypypg2"; 22 }; 23 _8_06_7 = mkNewParam { 24 version = "8.06.7"; 25 sha256 = "1cqnxjv2dvw9csiz4iqqyx6rck04jgylpglk8f69kgybf7k7xk2h"; 26 }; 27 "4.08" = _8_06_7; 28 "4.09" = _8_06_7; 29 "4.10" = mkNewParam { 30 version = "8.06.8"; 31 sha256 = "0lfjc7lscq81ibqb3fcybdzs2r1i2xl7rsgi7linq46a0pcpkinw"; 32 }; 33 "4.11" = mkNewParam { 34 version = "8.06.9"; 35 sha256 = "1k42k3bjkf22gk39lwwzqzfhgjyhxnclslldrzpg5qy1829pbnc0"; 36 }; 37 "4.12" = mkNewParam { 38 version = "8.06.10"; 39 sha256 = "06cck7wijq4zdshzhxm6jyl8k3j0zglj2axsyfk6q1sq754zyf4a"; 40 }; 41 "4.13" = mkNewParam { 42 version = "8.06.11"; 43 sha256 = "1zjpg9jvs6i9jvbgn6zgispwqiv8rxvaszxcx9ha9fax3wzhv9qy"; 44 }; 45 }; 46 param = params . ${lib.versions.majorMinor ocaml.version} 47 or (throw "labltk is not available for OCaml ${ocaml.version}"); 48in 49 50stdenv.mkDerivation rec { 51 inherit (param) version src; 52 name = "ocaml${ocaml.version}-labltk-${version}"; 53 54 buildInputs = [ ocaml findlib tcl tk makeWrapper ]; 55 56 configureFlags = [ "--use-findlib" "--installbindir" "$(out)/bin" ]; 57 dontAddPrefix = true; 58 dontAddStaticConfigureFlags = true; 59 configurePlatforms = []; 60 61 buildFlags = [ "all" "opt" ]; 62 63 createFindlibDestdir = true; 64 65 postInstall = '' 66 mkdir -p $OCAMLFIND_DESTDIR/stublibs 67 mv $OCAMLFIND_DESTDIR/labltk/dlllabltk.so $OCAMLFIND_DESTDIR/stublibs/ 68 for p in $out/bin/* 69 do 70 wrapProgram $p --set CAML_LD_LIBRARY_PATH $OCAMLFIND_DESTDIR/stublibs 71 done 72 ''; 73 74 meta = { 75 description = "OCaml interface to Tcl/Tk, including OCaml library explorer OCamlBrowser"; 76 homepage = "http://labltk.forge.ocamlcore.org/"; 77 license = lib.licenses.lgpl21; 78 inherit (ocaml.meta) platforms; 79 maintainers = [ lib.maintainers.vbgl ]; 80 }; 81}