diff options
Diffstat (limited to 'pkgs/development/tools/ocaml/findlib/default.nix')
-rw-r--r-- | pkgs/development/tools/ocaml/findlib/default.nix | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/pkgs/development/tools/ocaml/findlib/default.nix b/pkgs/development/tools/ocaml/findlib/default.nix index 51df81cea5ef0..f48ce5abf3f45 100644 --- a/pkgs/development/tools/ocaml/findlib/default.nix +++ b/pkgs/development/tools/ocaml/findlib/default.nix @@ -44,6 +44,15 @@ stdenv.mkDerivation rec { mkdir -p $OCAMLFIND_DESTDIR fi } + detectOcamlConflicts () { + local conflict + conflict="$(ocamlfind list |& grep "has multiple definitions" || true)" + if [[ -n "$conflict" ]]; then + echo "Conflicting ocaml packages detected"; + echo "$conflict" + exit 1 + fi + } # run for every buildInput addEnvHooks "$targetOffset" addOCamlPath @@ -51,6 +60,10 @@ stdenv.mkDerivation rec { preInstallHooks+=(createOcamlDestDir) # run even in nix-shell, and even without buildInputs addEnvHooks "$hostOffset" exportOcamlDestDir + # runs after all calls to addOCamlPath + if [[ -z "''${dontDetectOcamlConflicts-}" ]]; then + postHooks+=("detectOcamlConflicts") + fi ''; meta = { |