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: *Manifestfile_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); }