Run Ninja in a clean environment.
This sandboxes Soong's tests better.
Setting "TOP" is slightly ugly, but doing it properly would conflict
with aosp/1609218.
Test: Manual ("m nothing")
Change-Id: Ie3d3cd17f116a5fe0ad25c670fc5ed9c33f8123b
diff --git a/ui/build/soong.go b/ui/build/soong.go
index c2fa427..37f7b97 100644
--- a/ui/build/soong.go
+++ b/ui/build/soong.go
@@ -170,12 +170,15 @@
"--frontend_file", fifo,
"-f", filepath.Join(config.SoongOutDir(), file))
- cmd.Environment.Set("SOONG_OUTDIR", config.SoongOutDir())
+ var ninjaEnv Environment
+ ninjaEnv.Set("TOP", os.Getenv("TOP"))
+ ninjaEnv.Set("SOONG_OUTDIR", config.SoongOutDir())
if os.Getenv("SOONG_DELVE") != "" {
// SOONG_DELVE is already in cmd.Environment
- cmd.Environment.Set("SOONG_DELVE_PATH", shared.ResolveDelveBinary())
+ ninjaEnv.Set("SOONG_DELVE_PATH", shared.ResolveDelveBinary())
}
+ cmd.Environment = &ninjaEnv
cmd.Sandbox = soongSandbox
cmd.RunAndStreamOrFatal()
}