mirror of
https://github.com/golang/go
synced 2024-11-23 12:30:11 -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
|
||||
b.init()
|
||||
a := &action{}
|
||||
var tools []*action
|
||||
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)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user