go.go 773 B

12345678910111213141516171819202122232425
  1. package main
  2. import (
  3. "fmt"
  4. "os"
  5. "os/exec"
  6. "time"
  7. )
  8. func buildV2Ray(targetFile string, version string, goOS GoOS, goArch GoArch) error {
  9. ldFlags := "-s"
  10. if version != "custom" {
  11. year, month, day := time.Now().UTC().Date()
  12. today := fmt.Sprintf("%04d%02d%02d", year, int(month), day)
  13. ldFlags = ldFlags + " -X v2ray.com/core.version=" + version + " -X v2ray.com/core.build=" + today
  14. }
  15. cmd := exec.Command("go", "build", "-tags", "json", "-o", targetFile, "-compiler", "gc", "-ldflags", ldFlags, "v2ray.com/core/main")
  16. cmd.Env = append(cmd.Env, "GOOS="+string(goOS), "GOARCH="+string(goArch), "CGO_ENABLED=0")
  17. cmd.Env = append(cmd.Env, os.Environ()...)
  18. output, err := cmd.CombinedOutput()
  19. if len(output) > 0 {
  20. fmt.Println(string(output))
  21. }
  22. return err
  23. }