// findOriginalTasks finds the original parse tasks for the original set of targets. func findOriginalTasks(state *core.BuildState, targets []core.BuildLabel) { for _, target := range targets { if target == core.BuildLabelStdin { for label := range utils.ReadStdin() { findOriginalTask(state, core.ParseBuildLabels([]string{label})[0]) } } else { findOriginalTask(state, target) } } state.TaskDone() // initial target adding counts as one. }
// please mimics the core build 'loop' from src/please.go. func please(tid int, state *core.BuildState) { for { label, _, t := state.NextTask() switch t { case core.Stop, core.Kill: return case core.Build: Build(tid, state, label) default: panic(fmt.Sprintf("unexpected task type: %d", t)) } state.TaskDone() } }
func please(tid int, state *core.BuildState, parsePackageOnly bool, include, exclude []string) { for { label, dependor, t := state.NextTask() switch t { case core.Stop, core.Kill: return case core.Parse, core.SubincludeParse: parse.Parse(tid, state, label, dependor, parsePackageOnly, include, exclude) case core.Build, core.SubincludeBuild: build.Build(tid, state, label) case core.Test: test.Test(tid, state, label) } state.TaskDone() } }