const DefaultPkgConfig = `pkg-config`
var ( BuildA bool // -a flag BuildBuildmode string // -buildmode flag BuildContext = defaultContext() BuildMod string // -mod flag BuildI bool // -i flag bool // -linkshared flag BuildMSan bool // -msan flag BuildN bool // -n flag BuildO string // -o flag BuildP = runtime.NumCPU() // -p flag BuildPkgdir string // -pkgdir flag BuildRace bool // -race flag BuildToolexec []string // -toolexec flag BuildToolchainName string BuildToolchainCompiler func() string BuildToolchainLinker func() string BuildTrimpath bool // -trimpath flag BuildV bool // -v flag BuildWork bool // -work flag BuildX bool // -x flag CmdName string // "build", "install", "list", "mod tidy", etc. DebugActiongraph string // -debug-actiongraph flag (undocumented, unstable) )
These are general "build flags" used by build and other commands.
var ( Goarch = BuildContext.GOARCH Goos = BuildContext.GOOS ExeSuffix = exeSuffix() // ModulesEnabled specifies whether the go command is running // in module-aware mode (as opposed to GOPATH mode). // It is equal to modload.Enabled, but not all packages can import modload. ModulesEnabled bool )
Global build parameters (used during package load)
var ( GOROOT = BuildContext.GOROOT GOBIN = Getenv("GOBIN") GOROOTbin = filepath.Join(GOROOT, "bin") GOROOTpkg = filepath.Join(GOROOT, "pkg") GOROOTsrc = filepath.Join(GOROOT, "src") GOROOT_FINAL = findGOROOT_FINAL() // Used in envcmd.MkEnv and build ID computations. GOARM = envOr("GOARM", fmt.Sprint(objabi.GOARM)) GO386 = envOr("GO386", objabi.GO386) GOMIPS = envOr("GOMIPS", objabi.GOMIPS) GOMIPS64 = envOr("GOMIPS64", objabi.GOMIPS64) GOPPC64 = envOr("GOPPC64", fmt.Sprintf("%s%d", "power", objabi.GOPPC64)) GOWASM = envOr("GOWASM", fmt.Sprint(objabi.GOWASM)) GOPROXY = envOr("GOPROXY", "direct") GOSUMDB = envOr("GOSUMDB", "off") GOPRIVATE = Getenv("GOPRIVATE") GONOPROXY = envOr("GONOPROXY", GOPRIVATE) GONOSUMDB = envOr("GONOSUMDB", GOPRIVATE) )
var CmdEnv []EnvVar
CmdEnv is the new environment for running go tool commands. User binaries (during go test or go run) are run with OrigEnv, not CmdEnv.
var OSArchSupportsCgo = map[string]bool{ "aix/ppc64": true, "android/386": true, "android/amd64": true, "android/arm": true, "android/arm64": true, "darwin/386": false, "darwin/amd64": true, "darwin/arm": true, "darwin/arm64": true, "dragonfly/amd64": true, "freebsd/386": true, "freebsd/amd64": true, "freebsd/arm": true, "illumos/amd64": true, "js/wasm": false, "linux/386": true, "linux/amd64": true, "linux/arm": true, "linux/arm64": true, "linux/mips": true, "linux/mips64": true, "linux/mips64le": true, "linux/mipsle": true, "linux/ppc64": false, "linux/ppc64le": true, "linux/riscv64": true, "linux/s390x": true, "linux/sparc64": true, "nacl/386": false, "nacl/amd64p32": false, "nacl/arm": false, "netbsd/386": true, "netbsd/amd64": true, "netbsd/arm": true, "netbsd/arm64": true, "openbsd/386": true, "openbsd/amd64": true, "openbsd/arm": true, "openbsd/arm64": true, "plan9/386": false, "plan9/amd64": false, "plan9/arm": false, "solaris/amd64": true, "windows/386": true, "windows/amd64": true, "windows/arm": false, }
var OrigEnv []string
OrigEnv is the original environment of the program at startup.
func CanGetenv(key string) bool
CanGetenv reports whether key is a valid go/env configuration key.
func DefaultCC(goos, goarch string) string
func DefaultCXX(goos, goarch string) string
func EnvFile() (string, error)
EnvFile returns the name of the Go environment configuration file.
func GetArchEnv() (key, val string)
GetArchEnv returns the name and setting of the GOARCH-specific architecture environment variable. If the current architecture has no GOARCH-specific variable, GetArchEnv returns empty key and value.
func Getenv(key string) string
Getenv gets the value for the configuration key. It consults the operating system environment and then the go/env file. If Getenv is called for a key that cannot be set in the go/env file (for example GODEBUG), it panics. This ensures that CanGetenv is accurate, so that 'go env -w' stays in sync with what Getenv can retrieve.
type EnvVar struct { Name string Value string }
An EnvVar is an environment variable Name=Value.