aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmilio Jesus Gallego Arias2018-10-10 19:34:21 +0200
committerEmilio Jesus Gallego Arias2018-10-10 19:34:21 +0200
commit1dda3ff073193785c68166f33154db36cb270c95 (patch)
tree018ccb1b211a1ecdc549ddefacc78345c1b1c4f9
parent040ad198e38776bb9f398329243b2fe41434f2d5 (diff)
[dune] Require that `plugin_base.dune` exists in plugin dirs.
`coq_dune` should not consider a directory as a plugin one if the `plugin_base.dune` file doesn't exists, as the generated `dune` file for that dir will try to include it. We have had problems with this in the past due to spurious dirs.
-rw-r--r--tools/coq_dune.ml3
1 files changed, 2 insertions, 1 deletions
diff --git a/tools/coq_dune.ml b/tools/coq_dune.ml
index ff6cefdf24..4f4e6d5d6f 100644
--- a/tools/coq_dune.ml
+++ b/tools/coq_dune.ml
@@ -226,7 +226,8 @@ let scan_mlg4 m d =
List.fold_left (fun m f -> add_map_list ["plugins"; d] (choose_ml4g_form f) m) m ml4
let scan_plugins m =
- let dirs = Sys.(List.filter (fun f -> is_directory @@ "plugins/"^f) Array.(to_list @@ readdir "plugins/")) in
+ let is_plugin_directory dir = Sys.(is_directory dir && file_exists (dir ^ "/plugin_base.dune")) in
+ let dirs = Sys.(List.filter (fun f -> is_plugin_directory @@ "plugins/"^f) Array.(to_list @@ readdir "plugins/")) in
List.fold_left scan_mlg4 m dirs
(* Process .vfiles.d and generate a skeleton for the dune file *)