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 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 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 -> Mod_name.Set.t B00_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 B00_std.Os.Dir:cwd
).