cmd/gomobile: inherit env vars when running build subprocesses.
Change-Id: I687ce7f0730d4081d0c53d1eb2aa8bb99ff0f957 Reviewed-on: https://go-review.googlesource.com/6510 Reviewed-by: David Crawshaw <crawshaw@golang.org>
This commit is contained in:
parent
614540a6db
commit
388f1b8302
@ -362,6 +362,7 @@ func gobuild(src, libPath string) error {
|
||||
printcmd("%s", strings.Join(gocmd.Env, " ")+" "+strings.Join(gocmd.Args, " "))
|
||||
}
|
||||
if !buildN {
|
||||
gocmd.Env = environ(gocmd.Env)
|
||||
if err := gocmd.Run(); err != nil {
|
||||
return err
|
||||
}
|
||||
@ -414,3 +415,27 @@ cSL5bhq0N5XHK77sscxW9vXjG0LJMXmFZPp9F6aV6ejkMIXyJ/Yz/EqeaJFwilTq
|
||||
Mc6xR47qkdzu0dQ1aPm4XD7AWDtIvPo/GG2DKOucLBbQc2cOWtKS
|
||||
-----END RSA PRIVATE KEY-----
|
||||
`
|
||||
|
||||
// environ merges os.Environ and the given "key=value" pairs.
|
||||
func environ(kv []string) []string {
|
||||
environ := map[string]string{}
|
||||
for _, ev := range os.Environ() {
|
||||
elem := strings.SplitN(ev, "=", 2)
|
||||
if len(elem) != 2 {
|
||||
panic(fmt.Sprintf("malformed env var %q from os.Environ", ev))
|
||||
}
|
||||
environ[elem[0]] = elem[1]
|
||||
}
|
||||
for _, ev := range kv {
|
||||
elem := strings.SplitN(ev, "=", 2)
|
||||
if len(elem) != 2 {
|
||||
panic(fmt.Sprintf("malformed env var %q from input", ev))
|
||||
}
|
||||
environ[elem[0]] = elem[1]
|
||||
}
|
||||
ret := make([]string, 0, len(environ))
|
||||
for k, v := range environ {
|
||||
ret = append(ret, k+"="+v)
|
||||
}
|
||||
return ret
|
||||
}
|
||||
|
@ -187,6 +187,7 @@ func runInit(cmd *command) error {
|
||||
printcmd("%s", strings.Join(make.Env, " ")+" "+strings.Join(make.Args, " "))
|
||||
}
|
||||
if !buildN {
|
||||
make.Env = environ(make.Env)
|
||||
if err := make.Run(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user