mirror of
https://github.com/golang/go
synced 2024-11-18 12:04:57 -07:00
[dev.cc] cmd/go: do not install tools while executing them
Change-Id: I3417efc203f555a0a6101701f387ead84f9a08d1 Reviewed-on: https://go-review.googlesource.com/5577 Reviewed-by: Rob Pike <r@golang.org>
This commit is contained in:
parent
e8d9c8d163
commit
264c099ba7
@ -347,8 +347,26 @@ func runInstall(cmd *Command, args []string) {
|
|||||||
var b builder
|
var b builder
|
||||||
b.init()
|
b.init()
|
||||||
a := &action{}
|
a := &action{}
|
||||||
|
var tools []*action
|
||||||
for _, p := range pkgs {
|
for _, p := range pkgs {
|
||||||
a.deps = append(a.deps, b.action(modeInstall, modeInstall, p))
|
// If p is a tool, delay the installation until the end of the build.
|
||||||
|
// This avoids installing assemblers/compilers that are being executed
|
||||||
|
// by other steps in the build.
|
||||||
|
// cmd/cgo is handled specially in b.action, so that we can
|
||||||
|
// both build and use it in the same 'go install'.
|
||||||
|
action := b.action(modeInstall, modeInstall, p)
|
||||||
|
if goTools[p.ImportPath] == toTool && p.ImportPath != "cmd/cgo" {
|
||||||
|
a.deps = append(a.deps, action.deps...)
|
||||||
|
action.deps = append(action.deps, a)
|
||||||
|
tools = append(tools, action)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
a.deps = append(a.deps, action)
|
||||||
|
}
|
||||||
|
if len(tools) > 0 {
|
||||||
|
a = &action{
|
||||||
|
deps: tools,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
b.do(a)
|
b.do(a)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user