mirror of
https://github.com/octoleo/syncthing.git
synced 2025-02-02 11:58:28 +00:00
build: Clean up environment handling
Don't set variables for cross compilation when building assets, cleaner check for Go version.
This commit is contained in:
parent
66f480519b
commit
b6f32b6e45
36
build.go
36
build.go
@ -46,6 +46,8 @@ func main() {
|
|||||||
log.SetOutput(os.Stdout)
|
log.SetOutput(os.Stdout)
|
||||||
log.SetFlags(0)
|
log.SetFlags(0)
|
||||||
|
|
||||||
|
// If GOPATH isn't set, set it correctly with the assumption that we are
|
||||||
|
// in $GOPATH/src/github.com/syncthing/syncthing.
|
||||||
if os.Getenv("GOPATH") == "" {
|
if os.Getenv("GOPATH") == "" {
|
||||||
cwd, err := os.Getwd()
|
cwd, err := os.Getwd()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -55,6 +57,12 @@ func main() {
|
|||||||
log.Println("GOPATH is", gopath)
|
log.Println("GOPATH is", gopath)
|
||||||
os.Setenv("GOPATH", gopath)
|
os.Setenv("GOPATH", gopath)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// We use Go 1.5+ vendoring.
|
||||||
|
os.Setenv("GO15VENDOREXPERIMENT", "1")
|
||||||
|
|
||||||
|
// Set path to $GOPATH/bin:$PATH so that we can for sure find tools we
|
||||||
|
// might have installed during "build.go setup".
|
||||||
os.Setenv("PATH", fmt.Sprintf("%s%cbin%c%s", os.Getenv("GOPATH"), os.PathSeparator, os.PathListSeparator, os.Getenv("PATH")))
|
os.Setenv("PATH", fmt.Sprintf("%s%cbin%c%s", os.Getenv("GOPATH"), os.PathSeparator, os.PathListSeparator, os.Getenv("PATH")))
|
||||||
|
|
||||||
flag.StringVar(&goarch, "goarch", runtime.GOARCH, "GOARCH")
|
flag.StringVar(&goarch, "goarch", runtime.GOARCH, "GOARCH")
|
||||||
@ -153,9 +161,9 @@ func main() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func checkRequiredGoVersion() (float64, bool) {
|
func checkRequiredGoVersion() (float64, bool) {
|
||||||
ver := run("go", "version")
|
re := regexp.MustCompile(`go(\d+\.\d+)`)
|
||||||
re := regexp.MustCompile(`go version go(\d+\.\d+)`)
|
ver := runtime.Version()
|
||||||
if m := re.FindSubmatch(ver); len(m) == 2 {
|
if m := re.FindStringSubmatch(ver); len(m) == 2 {
|
||||||
vs := string(m[1])
|
vs := string(m[1])
|
||||||
// This is a standard go build. Verify that it's new enough.
|
// This is a standard go build. Verify that it's new enough.
|
||||||
f, err := strconv.ParseFloat(vs, 64)
|
f, err := strconv.ParseFloat(vs, 64)
|
||||||
@ -163,7 +171,9 @@ func checkRequiredGoVersion() (float64, bool) {
|
|||||||
log.Printf("*** Couldn't parse Go version out of %q.\n*** This isn't known to work, proceed on your own risk.", vs)
|
log.Printf("*** Couldn't parse Go version out of %q.\n*** This isn't known to work, proceed on your own risk.", vs)
|
||||||
return 0, false
|
return 0, false
|
||||||
}
|
}
|
||||||
if f < minGoVersion {
|
if f < 1.5 {
|
||||||
|
log.Printf("*** Go version %.01f doesn't support the vendoring mechanism.\n*** Ensure correct dependencies in your $GOPATH.", f)
|
||||||
|
} else if f < minGoVersion {
|
||||||
log.Fatalf("*** Go version %.01f is less than required %.01f.\n*** This is known not to work, not proceeding.", f, minGoVersion)
|
log.Fatalf("*** Go version %.01f is less than required %.01f.\n*** This is known not to work, not proceeding.", f, minGoVersion)
|
||||||
}
|
}
|
||||||
return f, true
|
return f, true
|
||||||
@ -186,7 +196,6 @@ func setup() {
|
|||||||
func test(pkgs ...string) {
|
func test(pkgs ...string) {
|
||||||
lazyRebuildAssets()
|
lazyRebuildAssets()
|
||||||
|
|
||||||
setBuildEnv()
|
|
||||||
useRace := runtime.GOARCH == "amd64"
|
useRace := runtime.GOARCH == "amd64"
|
||||||
switch runtime.GOOS {
|
switch runtime.GOOS {
|
||||||
case "darwin", "linux", "freebsd", "windows":
|
case "darwin", "linux", "freebsd", "windows":
|
||||||
@ -203,8 +212,6 @@ func test(pkgs ...string) {
|
|||||||
|
|
||||||
func bench(pkgs ...string) {
|
func bench(pkgs ...string) {
|
||||||
lazyRebuildAssets()
|
lazyRebuildAssets()
|
||||||
|
|
||||||
setBuildEnv()
|
|
||||||
runPrint("go", append([]string{"test", "-run", "NONE", "-bench", "."}, pkgs...)...)
|
runPrint("go", append([]string{"test", "-run", "NONE", "-bench", "."}, pkgs...)...)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -224,7 +231,9 @@ func install(pkg string, tags []string) {
|
|||||||
args = append(args, "-race")
|
args = append(args, "-race")
|
||||||
}
|
}
|
||||||
args = append(args, pkg)
|
args = append(args, pkg)
|
||||||
setBuildEnv()
|
|
||||||
|
os.Setenv("GOOS", goos)
|
||||||
|
os.Setenv("GOARCH", goarch)
|
||||||
runPrint("go", args...)
|
runPrint("go", args...)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -245,7 +254,9 @@ func build(pkg string, tags []string) {
|
|||||||
args = append(args, "-race")
|
args = append(args, "-race")
|
||||||
}
|
}
|
||||||
args = append(args, pkg)
|
args = append(args, pkg)
|
||||||
setBuildEnv()
|
|
||||||
|
os.Setenv("GOOS", goos)
|
||||||
|
os.Setenv("GOARCH", goarch)
|
||||||
runPrint("go", args...)
|
runPrint("go", args...)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -408,14 +419,7 @@ func listFiles(dir string) []string {
|
|||||||
return res
|
return res
|
||||||
}
|
}
|
||||||
|
|
||||||
func setBuildEnv() {
|
|
||||||
os.Setenv("GOOS", goos)
|
|
||||||
os.Setenv("GOARCH", goarch)
|
|
||||||
os.Setenv("GO15VENDOREXPERIMENT", "1")
|
|
||||||
}
|
|
||||||
|
|
||||||
func rebuildAssets() {
|
func rebuildAssets() {
|
||||||
setBuildEnv()
|
|
||||||
runPipe("lib/auto/gui.files.go", "go", "run", "script/genassets.go", "gui")
|
runPipe("lib/auto/gui.files.go", "go", "run", "script/genassets.go", "gui")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user