mirror of
https://github.com/golang/go
synced 2024-11-21 20:14:52 -07:00
goinstall: always rebuild a package after its dependencies are built
R=golang-dev, r CC=golang-dev https://golang.org/cl/4627047
This commit is contained in:
parent
3c06518405
commit
c967ba0210
@ -150,7 +150,7 @@ func logPackage(pkg string) {
|
||||
}
|
||||
|
||||
// install installs the package named by path, which is needed by parent.
|
||||
func install(pkg, parent string) {
|
||||
func install(pkg, parent string) (built bool) {
|
||||
// Make sure we're not already trying to install pkg.
|
||||
switch visit[pkg] {
|
||||
case done:
|
||||
@ -201,9 +201,12 @@ func install(pkg, parent string) {
|
||||
errorf("%s: package has no files\n", pkg)
|
||||
return
|
||||
}
|
||||
var depBuilt bool
|
||||
for _, p := range dirInfo.Imports {
|
||||
if p != "C" {
|
||||
install(p, pkg)
|
||||
if install(p, pkg) {
|
||||
depBuilt = true
|
||||
}
|
||||
}
|
||||
}
|
||||
if errors {
|
||||
@ -224,20 +227,22 @@ func install(pkg, parent string) {
|
||||
script.Clean()
|
||||
}
|
||||
if *doInstall {
|
||||
if script.Stale() {
|
||||
if depBuilt || script.Stale() {
|
||||
vlogf("%s: install\n", pkg)
|
||||
if err := script.Run(); err != nil {
|
||||
errorf("%s: install: %v\n", pkg, err)
|
||||
return
|
||||
}
|
||||
built = true
|
||||
} else {
|
||||
vlogf("%s: install: up-to-date\n", pkg)
|
||||
vlogf("%s: up-to-date\n", pkg)
|
||||
}
|
||||
}
|
||||
if remote {
|
||||
// mark package as installed in $GOROOT/goinstall.log
|
||||
logPackage(pkg)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user