Module Mod_src.Deps

Source dependencies.

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

write m ~src_root ~srcs ~o writes dependencies of 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 to 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:B0_std.Fpath.t -> B00.Memo.t -> B0_std.Fpath.t -> Mod_name.Set.t B0_std.Fpath.Map.t B00.Memo.fiber

read ~src_root depsfile reads dependencies produced by write as a map from absolute file paths to their dependencies. Relative file paths are made absolute using src_root (defaults to Os.Dir.cwd).