Module Src.Deps

Source dependencies.

As found by Tool.ocamldep.

val write : ?⁠src_root:B00_std.Fpath.t -> B00.Memo.t -> srcs:B00_std.Fpath.t list -> o:B00_std.Fpath.t -> unit

write m ~src_root ~srcs ~o writes the module dependencies of each file in srcs in file o. If src_root if specified it is used as the cwd for the operation and assumed to be a prefix of every file in srcs, this allows the output not to the depend on absolute paths.

UPSTREAM FIXME. We don't actually do what is mentioned about src_root. The problem is that the path of parse errors end up being wrongly reported. It would be nice to add an option for output prefix trimming to the tool and/or control on the whole toolchain for how errors are reported. This means that for now we cannot cache these operations across machines.

val read : ?⁠src_root:B00_std.Fpath.t -> B00.Memo.t -> B00_std.Fpath.t -> Name.Set.t B00_std.Fpath.Map.t B00_std.Fut.t

read ~src_root file reads dependencies produced by write as a map from absolute file paths to their dependencies. Relative file paths are made absolute relative to src_root if specified.