diff options
author | vbgl <vbgl@users.noreply.github.com> | 2015-05-26 23:52:32 +0200 |
---|---|---|
committer | vbgl <vbgl@users.noreply.github.com> | 2015-05-26 23:52:32 +0200 |
commit | 2857d5d7a85659b289e3a49d807f89d2b5345715 (patch) | |
tree | 61d5c20ff90c73fe8c3784a313d5294c85fb2da7 /pkgs/build-support | |
parent | f02284a36194619d4533b3349d4f67bc5cd54b19 (diff) | |
parent | c651e7ff610b48a1f73a6db6da34e12174722bbd (diff) | |
download | nixlib-2857d5d7a85659b289e3a49d807f89d2b5345715.tar nixlib-2857d5d7a85659b289e3a49d807f89d2b5345715.tar.gz nixlib-2857d5d7a85659b289e3a49d807f89d2b5345715.tar.bz2 nixlib-2857d5d7a85659b289e3a49d807f89d2b5345715.tar.lz nixlib-2857d5d7a85659b289e3a49d807f89d2b5345715.tar.xz nixlib-2857d5d7a85659b289e3a49d807f89d2b5345715.tar.zst nixlib-2857d5d7a85659b289e3a49d807f89d2b5345715.zip |
Merge pull request #7823 from ericbmerritt/ocaml-enhancements
Ocaml enhancements
Diffstat (limited to 'pkgs/build-support')
-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 000000000000..87bfa6cea120 --- /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; +}) |