Documentation ¶
Overview ¶
Package cfg holds configuration shared by multiple parts of the go command.
Index ¶
Constants ¶
const DefaultPkgConfig = `pkg-config`
Variables ¶
var ( BuildA bool // -a flag BuildBuildmode string // -buildmode flag BuildContext = defaultContext() BuildMod string // -mod flag BuildModReason string // reason -mod flag is set, if set by default BuildI bool // -i 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 ModCacheRW bool // -modcacherw flag ModFile string // -modfile 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", "https://proxy.golang.org,direct") GOSUMDB = envOr("GOSUMDB", "sum.golang.org") GOPRIVATE = Getenv("GOPRIVATE") GONOPROXY = envOr("GONOPROXY", GOPRIVATE) GONOSUMDB = envOr("GONOSUMDB", GOPRIVATE) GOINSECURE = Getenv("GOINSECURE") )
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, "freebsd/arm64": 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, "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.
Functions ¶
func DefaultCXX ¶
func GetArchEnv ¶
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 ¶
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.