CalAnonSync/build.go

65 lines
1.1 KiB
Go
Raw Normal View History

2018-04-08 21:37:38 +02:00
// +build ignore
package main
import (
2018-04-09 12:20:09 +02:00
"flag"
2018-04-08 21:37:38 +02:00
"os"
"os/exec"
"strings"
)
2018-04-09 12:20:09 +02:00
var reproducible = flag.Bool("r", false, "If set, the build will remove local directories from the debug infos.")
2018-04-08 21:37:38 +02:00
func main() {
2018-04-09 12:20:09 +02:00
flag.Parse()
2018-04-08 21:37:38 +02:00
env := os.Environ()
wd, err := os.Getwd()
if err != nil {
panic(err)
}
2018-04-09 12:20:09 +02:00
env = append(env, "GOPATH="+wd, "CGO_ENABLED=0")
args := []string{"build", "-ldflags=-s -w"}
if *reproducible {
args = append(args,
"-asmflags=all=-trimpath="+wd,
"-gcflags=all=-trimpath="+wd,
"-a",
)
}
2018-04-08 21:37:38 +02:00
2018-04-09 12:20:09 +02:00
if len(flag.Args()) == 1 {
target := flag.Arg(0)
2018-04-08 21:37:38 +02:00
targetParts := strings.Split(target, "/")
if len(targetParts) != 2 {
println("Invalid target specification. Example: windows/386")
os.Exit(1)
}
env = append(env,
"GOOS="+targetParts[0],
"GOARCH"+targetParts[1],
)
ext := ""
if targetParts[0] == "windows" {
ext = ".exe"
}
args = append(args, "-o", "calanonsync-"+targetParts[0]+"-"+targetParts[1]+ext)
}
args = append(args, "calanonsync")
cmd := exec.Command("go", args...)
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
cmd.Env = env
err = cmd.Run()
if err != nil {
panic(err)
}
}