if _, ok := seen[tgt.a]; ok {
return nil
}
- depInfo, err := depRead(tgt)
+ dep, err := depRead(tgt)
if err != nil {
return nil
}
+ DepInfoCache[tgt.Dep()] = depInfo
seen[tgt.a] = struct{}{}
var alwayses []*Tgt
returnReady := false
- if depInfo.always {
- if depInfo.build == BuildUUID {
- tracef(
- CDebug, "ood: %s%s always, but already build",
- strings.Repeat(". ", level), tgt,
- )
+ if dep.always {
+ if dep.build == BuildUUID {
+ tracef(CDebug, "ood: %s%s always, but already build",
+ strings.Repeat(". ", level), tgt)
returnReady = true
} else {
tracef(CDebug, "ood: %s%s always", strings.Repeat(". ", level), tgt)
returnReady = true
}
}
- for _, dep := range depInfo.ifchanges {
- if dep.tgt.a == tgt.a {
+ for _, ifchange := range dep.ifchanges {
+ if ifchange.tgt.rel == tgt.rel {
continue
}
- if !includeSrc && isSrc(dep.tgt) {
+ if !includeSrc && isSrc(ifchange.tgt) {
continue
}
if !returnReady {
- if m, ok := deps[dep.tgt.a]; ok {
- m[tgt.a] = tgt
+ if m, ok := deps[ifchange.tgt.rel]; ok {
+ m[tgt.rel] = tgt
} else {
- deps[dep.tgt.a] = map[string]*Tgt{tgt.a: tgt}
+ deps[ifchange.tgt.rel] = map[string]*Tgt{tgt.rel: tgt}
}
alwayses = append(alwayses,
collectDeps(dep.tgt, level+1, deps, includeSrc, seen)...)
}
}
}
+ InodeCache = make(map[string][]*Inode)
}
+ TgtCache = nil
+ HashCache = nil
+ InodeCache = nil
if len(seen) == 0 {
return seen
}
tracef(CDebug, "checking %d dependant targets: %v", len(queueSrc), queueSrc)
queue := make(map[string]*Tgt)
for _, tgt := range queueSrc {
- for _, dep := range deps[tgt.a] {
- queue[dep.a] = dep
+ for _, dep := range deps[tgt.rel] {
+ queue[dep.rel] = dep
}
}
return nil
}
queueSrc = append(queueSrc, tgt)
- seen[tgt.a] = tgt
+ seen[tgt.rel] = tgt
jobs++
}
Jobs.Wait()
close(okChecker)
}()
for _, tgt := range tgts {
- if _, ok := seen[tgt.a]; ok {
+ if _, ok := seen[tgt.rel]; ok {
tracef(CDebug, "%s was already build as a dependant", tgt)
continue
}