github.com/rakyll/go@v0.0.0-20170216000551-64c02460d703/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 // The test coverage mode affects package loading. Sigh. 45 var TestCoverMode string // -covermode flag 46 47 // An EnvVar is an environment variable Name=Value. 48 type EnvVar struct { 49 Name string 50 Value string 51 } 52 53 // OrigEnv is the original environment of the program at startup. 54 var OrigEnv []string 55 56 // CmdEnv is the new environment for running go tool commands. 57 // User binaries (during go test or go run) are run with OrigEnv, 58 // not CmdEnv. 59 var CmdEnv []EnvVar 60 61 // Global build parameters (used during package load) 62 var ( 63 Goarch string 64 Goos string 65 ExeSuffix string 66 Gopath []string 67 ) 68 69 var ( 70 GOROOT = filepath.Clean(runtime.GOROOT()) 71 GOBIN = os.Getenv("GOBIN") 72 GOROOTbin = filepath.Join(GOROOT, "bin") 73 GOROOTpkg = filepath.Join(GOROOT, "pkg") 74 GOROOTsrc = filepath.Join(GOROOT, "src") 75 )