at 23.05-pre 90 lines 2.6 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 "4.14" = mkNewParam { 46 version = "8.06.12"; 47 sha256 = "sha256:17fmb13l18isgwr38hg9r5a0nayf2hhw6acj5153cy1sygsdg3b5"; 48 }; 49 "5.0" = mkNewParam { 50 version = "8.06.13"; 51 sha256 = "sha256-Vpf13g3DEWlUI5aypiowGp2fkQPK0cOGv2XiRUY/Ip4="; 52 }; 53 }; 54 param = params . ${lib.versions.majorMinor ocaml.version} 55 or (throw "labltk is not available for OCaml ${ocaml.version}"); 56in 57 58stdenv.mkDerivation rec { 59 inherit (param) version src; 60 pname = "ocaml${ocaml.version}-labltk"; 61 62 nativeBuildInputs = [ ocaml findlib makeWrapper ]; 63 buildInputs = [ tcl tk ]; 64 65 configureFlags = [ "--use-findlib" "--installbindir" "$(out)/bin" ]; 66 dontAddPrefix = true; 67 dontAddStaticConfigureFlags = true; 68 configurePlatforms = []; 69 70 buildFlags = [ "all" "opt" ]; 71 72 createFindlibDestdir = true; 73 74 postInstall = '' 75 mkdir -p $OCAMLFIND_DESTDIR/stublibs 76 mv $OCAMLFIND_DESTDIR/labltk/dlllabltk.so $OCAMLFIND_DESTDIR/stublibs/ 77 for p in $out/bin/* 78 do 79 wrapProgram $p --set CAML_LD_LIBRARY_PATH $OCAMLFIND_DESTDIR/stublibs 80 done 81 ''; 82 83 meta = { 84 description = "OCaml interface to Tcl/Tk, including OCaml library explorer OCamlBrowser"; 85 homepage = "http://labltk.forge.ocamlcore.org/"; 86 license = lib.licenses.lgpl21; 87 inherit (ocaml.meta) platforms; 88 maintainers = [ lib.maintainers.vbgl ]; 89 }; 90}