diff options
author | Eric Merritt <eric@afiniate.com> | 2015-05-21 11:03:57 -0500 |
---|---|---|
committer | Eric Merritt <eric@afiniate.com> | 2015-05-22 10:12:21 -0700 |
commit | d814c50505c0583bc2b80e6af2f62fe02cb24971 (patch) | |
tree | 8088ba6aae0d516686a0bd843d264c31dd5d0d8e /pkgs/build-support/ocaml | |
parent | ae0e3c8974f8ab0710ad81dad005d3127ac91eca (diff) | |
download | nixpkgs-d814c50505c0583bc2b80e6af2f62fe02cb24971.tar nixpkgs-d814c50505c0583bc2b80e6af2f62fe02cb24971.tar.gz nixpkgs-d814c50505c0583bc2b80e6af2f62fe02cb24971.tar.bz2 nixpkgs-d814c50505c0583bc2b80e6af2f62fe02cb24971.tar.lz nixpkgs-d814c50505c0583bc2b80e6af2f62fe02cb24971.tar.xz nixpkgs-d814c50505c0583bc2b80e6af2f62fe02cb24971.tar.zst nixpkgs-d814c50505c0583bc2b80e6af2f62fe02cb24971.zip |
add an ocaml specific builder to the system
Diffstat (limited to 'pkgs/build-support/ocaml')
-rw-r--r-- | pkgs/build-support/ocaml/default.nix | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/pkgs/build-support/ocaml/default.nix b/pkgs/build-support/ocaml/default.nix new file mode 100644 index 00000000000..87bfa6cea12 --- /dev/null +++ b/pkgs/build-support/ocaml/default.nix @@ -0,0 +1,36 @@ +{ stdenv, writeText, ocaml, findlib, camlp4 }: + +{ name, version, buildInputs ? [], + createFindlibDestdir ? true, + dontStrip ? true, + minimumSupportedOcamlVersion ? null, + hasSharedObjects ? false, + setupHook ? null, + meta ? {}, ... +}@args: +let + ocaml_version = (builtins.parseDrvName ocaml.name).version; + defaultMeta = { + platforms = ocaml.meta.platforms; + }; +in + assert minimumSupportedOcamlVersion != null -> + stdenv.lib.versionOlder minimumSupportedOcamlVersion ocaml_version; + +stdenv.mkDerivation (args // { + name = "ocaml-${name}-${version}"; + + buildInputs = [ ocaml findlib camlp4 ] ++ buildInputs; + + setupHook = if setupHook == null && hasSharedObjects + then writeText "setupHook.sh" '' + export CAML_LD_LIBRARY_PATH="''${CAML_LD_LIBRARY_PATH}''${CAML_LD_LIBRARY_PATH:+:}''$1/lib/ocaml/${ocaml_version}/site-lib/${name}/" + '' + else setupHook; + + inherit ocaml_version; + inherit createFindlibDestdir; + inherit dontStrip; + + meta = defaultMeta // meta; +}) |