diff options
author | Jules Aguillon <jules@j3s.fr> | 2023-07-04 14:05:47 +0200 |
---|---|---|
committer | Vincent Laporte <vbgl@users.noreply.github.com> | 2024-01-02 13:38:23 +0100 |
commit | b722b9ddffa719177373d0f1f299c8528e5fed85 (patch) | |
tree | 53dd52a407e988f38722accd0fd39a618bf066f6 /pkgs/development/ocaml-modules | |
parent | fb353d7ce61f74cd0eec385a9537a87832c1c390 (diff) | |
download | nixlib-b722b9ddffa719177373d0f1f299c8528e5fed85.tar nixlib-b722b9ddffa719177373d0f1f299c8528e5fed85.tar.gz nixlib-b722b9ddffa719177373d0f1f299c8528e5fed85.tar.bz2 nixlib-b722b9ddffa719177373d0f1f299c8528e5fed85.tar.lz nixlib-b722b9ddffa719177373d0f1f299c8528e5fed85.tar.xz nixlib-b722b9ddffa719177373d0f1f299c8528e5fed85.tar.zst nixlib-b722b9ddffa719177373d0f1f299c8528e5fed85.zip |
ocamlPackages.logs: Optional dependency on lwt and cmdliner
These are optional dependencies for the library. Making them optional is useful to reduce the size of other packages. By default, the dependencies are all provided and the output is unchanged.
Diffstat (limited to 'pkgs/development/ocaml-modules')
-rw-r--r-- | pkgs/development/ocaml-modules/logs/default.nix | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/pkgs/development/ocaml-modules/logs/default.nix b/pkgs/development/ocaml-modules/logs/default.nix index 0b8ffed91e49..bd7326883829 100644 --- a/pkgs/development/ocaml-modules/logs/default.nix +++ b/pkgs/development/ocaml-modules/logs/default.nix @@ -3,10 +3,23 @@ , fmtSupport ? lib.versionAtLeast ocaml.version "4.08" , js_of_ocaml , jsooSupport ? true +, lwtSupport ? true +, cmdlinerSupport ? true }: let pname = "logs"; webpage = "https://erratique.ch/software/${pname}"; + + optional_deps = [ + { pkg = js_of_ocaml; enable_flag = "--with-js_of_ocaml"; enabled = jsooSupport; } + { pkg = fmt; enable_flag = "--with-fmt"; enabled = fmtSupport; } + { pkg = lwt; enable_flag = "--with-lwt"; enabled = lwtSupport; } + { pkg = cmdliner; enable_flag = "--with-cmdliner"; enabled = cmdlinerSupport; } + ]; + enable_flags = + lib.concatMap (d: [ d.enable_flag (lib.boolToString d.enabled)]) optional_deps; + optional_buildInputs = + map (d: d.pkg) (lib.filter (d: d.enabled) optional_deps); in if lib.versionOlder ocaml.version "4.03" @@ -23,14 +36,12 @@ stdenv.mkDerivation rec { }; nativeBuildInputs = [ ocaml findlib ocamlbuild topkg ]; - buildInputs = [ cmdliner lwt topkg ] - ++ lib.optional fmtSupport fmt - ++ lib.optional jsooSupport js_of_ocaml; + buildInputs = [ topkg ] ++ optional_buildInputs; propagatedBuildInputs = [ result ]; strictDeps = true; - buildPhase = "${topkg.run} build --with-js_of_ocaml ${lib.boolToString jsooSupport} --with-fmt ${lib.boolToString fmtSupport}"; + buildPhase = "${topkg.run} build ${lib.escapeShellArgs enable_flags}"; inherit (topkg) installPhase; |