github.com/slayercat/go@v0.0.0-20170428012452-c51559813f61/src/cmd/go/internal/cfg/cfg.go (about) 1 // Copyright 2017 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 // Package cfg holds configuration shared by multiple parts 6 // of the go command. 7 package cfg 8 9 import ( 10 "go/build" 11 "os" 12 "path/filepath" 13 "runtime" 14 ) 15 16 // These are general "build flags" used by build and other commands. 17 var ( 18 BuildA bool // -a flag 19 BuildBuildmode string // -buildmode flag 20 BuildContext = build.Default 21 BuildI bool // -i flag 22 BuildLdflags []string // -ldflags flag 23 BuildLinkshared bool // -linkshared flag 24 BuildMSan bool // -msan flag 25 BuildN bool // -n flag 26 BuildO string // -o flag 27 BuildP = runtime.NumCPU() // -p flag 28 BuildPkgdir string // -pkgdir flag 29 BuildRace bool // -race flag 30 BuildToolexec []string // -toolexec flag 31 BuildToolchainName string 32 BuildToolchainCompiler func() string 33 BuildToolchainLinker func() string 34 BuildV bool // -v flag 35 BuildWork bool // -work flag 36 BuildX bool // -x flag 37 ) 38 39 func init() { 40 BuildToolchainCompiler = func() string { return "missing-compiler" } 41 BuildToolchainLinker = func() string { return "missing-linker" } 42 } 43 44 // An EnvVar is an environment variable Name=Value. 45 type EnvVar struct { 46 Name string 47 Value string 48 } 49 50 // OrigEnv is the original environment of the program at startup. 51 var OrigEnv []string 52 53 // CmdEnv is the new environment for running go tool commands. 54 // User binaries (during go test or go run) are run with OrigEnv, 55 // not CmdEnv. 56 var CmdEnv []EnvVar 57 58 // Global build parameters (used during package load) 59 var ( 60 Goarch string 61 Goos string 62 ExeSuffix string 63 Gopath []string 64 ) 65 66 var ( 67 GOROOT = filepath.Clean(runtime.GOROOT()) 68 GOBIN = os.Getenv("GOBIN") 69 GOROOTbin = filepath.Join(GOROOT, "bin") 70 GOROOTpkg = filepath.Join(GOROOT, "pkg") 71 GOROOTsrc = filepath.Join(GOROOT, "src") 72 )