compiler: add support for CGO_ENABLED environment variable
Этот коммит содержится в:
родитель
9a69c6bcca
коммит
1a32a68674
3 изменённых файлов: 16 добавлений и 2 удалений
|
@ -65,6 +65,12 @@ func (c *Config) BuildTags() []string {
|
||||||
return tags
|
return tags
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// CgoEnabled returns true if (and only if) CGo is enabled. It is true by
|
||||||
|
// default and false if CGO_ENABLED is set to "0".
|
||||||
|
func (c *Config) CgoEnabled() bool {
|
||||||
|
return goenv.Get("CGO_ENABLED") == "1"
|
||||||
|
}
|
||||||
|
|
||||||
// GC returns the garbage collection strategy in use on this platform. Valid
|
// GC returns the garbage collection strategy in use on this platform. Valid
|
||||||
// values are "none", "leaking", and "conservative".
|
// values are "none", "leaking", and "conservative".
|
||||||
func (c *Config) GC() string {
|
func (c *Config) GC() string {
|
||||||
|
|
|
@ -193,7 +193,7 @@ func (c *Compiler) Compile(mainPath string) []error {
|
||||||
GOOS: c.GOOS(),
|
GOOS: c.GOOS(),
|
||||||
GOROOT: goenv.Get("GOROOT"),
|
GOROOT: goenv.Get("GOROOT"),
|
||||||
GOPATH: goenv.Get("GOPATH"),
|
GOPATH: goenv.Get("GOPATH"),
|
||||||
CgoEnabled: true,
|
CgoEnabled: c.CgoEnabled(),
|
||||||
UseAllFiles: false,
|
UseAllFiles: false,
|
||||||
Compiler: "gc", // must be one of the recognized compilers
|
Compiler: "gc", // must be one of the recognized compilers
|
||||||
BuildTags: c.BuildTags(),
|
BuildTags: c.BuildTags(),
|
||||||
|
@ -203,7 +203,7 @@ func (c *Compiler) Compile(mainPath string) []error {
|
||||||
GOOS: c.GOOS(),
|
GOOS: c.GOOS(),
|
||||||
GOROOT: goenv.Get("TINYGOROOT"),
|
GOROOT: goenv.Get("TINYGOROOT"),
|
||||||
GOPATH: overlayGopath,
|
GOPATH: overlayGopath,
|
||||||
CgoEnabled: true,
|
CgoEnabled: c.CgoEnabled(),
|
||||||
UseAllFiles: false,
|
UseAllFiles: false,
|
||||||
Compiler: "gc", // must be one of the recognized compilers
|
Compiler: "gc", // must be one of the recognized compilers
|
||||||
BuildTags: c.BuildTags(),
|
BuildTags: c.BuildTags(),
|
||||||
|
|
|
@ -18,6 +18,7 @@ var Keys = []string{
|
||||||
"GOROOT",
|
"GOROOT",
|
||||||
"GOPATH",
|
"GOPATH",
|
||||||
"GOCACHE",
|
"GOCACHE",
|
||||||
|
"CGO_ENABLED",
|
||||||
"TINYGOROOT",
|
"TINYGOROOT",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -57,6 +58,13 @@ func Get(name string) string {
|
||||||
panic("could not find cache dir: " + err.Error())
|
panic("could not find cache dir: " + err.Error())
|
||||||
}
|
}
|
||||||
return filepath.Join(dir, "tinygo")
|
return filepath.Join(dir, "tinygo")
|
||||||
|
case "CGO_ENABLED":
|
||||||
|
val := os.Getenv("CGO_ENABLED")
|
||||||
|
if val == "1" || val == "0" {
|
||||||
|
return val
|
||||||
|
}
|
||||||
|
// Default to enabling CGo.
|
||||||
|
return "1"
|
||||||
case "TINYGOROOT":
|
case "TINYGOROOT":
|
||||||
return sourceDir()
|
return sourceDir()
|
||||||
default:
|
default:
|
||||||
|
|
Загрузка…
Создание таблицы
Сослаться в новой задаче