bool TempInputsHaveChanged(TempEntry entry, ChangeDetection detection) { for (int i = 0; i < entry.Inputs.Count; i++) { if (CheckChanged(detection, new FileInfo(entry.InputPaths[i]), entry.Inputs[i])) return true; } return entry.TempDependencies.Any(t => TempInputsHaveChanged(t, detection)); }
TempEntry CreateTempEntry(BuildInstance instance) { var entry = new TempEntry(); bool hashInputs = (instance.Env.InputChangeDetection & ChangeDetection.Hash) != 0; foreach (var input in instance.Inputs) { entry.Inputs.Add(CreateFileEntry(input, hashInputs)); entry.InputPaths.Add(input); } // create entries for each dependent temp build foreach (var build in instance.TempBuilds) entry.TempDependencies.Add(CreateTempEntry(build)); return entry; }