Function addFilePost [src]
Add a file as a dependency of process being cached, after the initial hash has been
calculated.
This is useful for processes that don't know the all the files that are
depended on ahead of time. For example, a source file that can import
other files will need to be recompiled if the imported file is changed.
Prototype
pub fn addFilePost(self: *Manifest, file_path: []const u8) !void
Parameters
self: *Manifest
file_path: []const u8
Source
pub fn addFilePost(self: *Manifest, file_path: []const u8) !void {
assert(self.manifest_file != null);
const gpa = self.cache.gpa;
const prefixed_path = try self.cache.findPrefix(file_path);
errdefer gpa.free(prefixed_path.sub_path);
const gop = try self.files.getOrPutAdapted(gpa, prefixed_path, FilesAdapter{});
errdefer _ = self.files.pop();
if (gop.found_existing) {
gpa.free(prefixed_path.sub_path);
return;
}
gop.key_ptr.* = .{
.prefixed_path = prefixed_path,
.max_file_size = null,
.handle = null,
.stat = undefined,
.bin_digest = undefined,
.contents = null,
};
self.files.lockPointers();
defer self.files.unlockPointers();
try self.populateFileHash(gop.key_ptr);
}