Fix OUT_DIR_COMMON_BASE with soong_ui
Currently, Kati is the only one that is respecting OUT_DIR_COMMON_BASE, causing the build to fail when ninja tries to match up the Soong and Kati ninja files. The soong_ui.bash script change is necessary to move the microfactory built outputs to the correct location. The config.go change takes care of setting OUT_DIR in the environment of every subprocess, so that we could remove the OUT_DIR_COMMON_BASE handling from Make once the USE_SOONG_UI=false path goes away. Bug: 35929763 Test: m -j blueprint_tools Test: OUT_DIR=... m -j blueprint_tools Test: OUT_DIR_COMMON_BASE=... m -j blueprint_tools Change-Id: I4184f2b4392d32c5bea51e51162a48df0e5c90d5
This commit is contained in:
parent
88744e25d4
commit
0c3919e996
|
@ -57,7 +57,15 @@ function run_go
|
||||||
|
|
||||||
local mf_src="${TOP}/build/soong/cmd/microfactory"
|
local mf_src="${TOP}/build/soong/cmd/microfactory"
|
||||||
|
|
||||||
local out_dir="${OUT_DIR:-${TOP}/out}"
|
local out_dir="${OUT_DIR-}"
|
||||||
|
if [ -z "${out_dir}" ]; then
|
||||||
|
if [ "${OUT_DIR_COMMON_BASE-}" ]; then
|
||||||
|
out_dir="${OUT_DIR_COMMON_BASE}/$(basename ${TOP})"
|
||||||
|
else
|
||||||
|
out_dir="${TOP}/out"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
local mf_bin="${out_dir}/microfactory_$(uname)"
|
local mf_bin="${out_dir}/microfactory_$(uname)"
|
||||||
local mf_version_file="${out_dir}/.microfactory_$(uname)_version"
|
local mf_version_file="${out_dir}/.microfactory_$(uname)_version"
|
||||||
local soong_ui_bin="${out_dir}/soong_ui"
|
local soong_ui_bin="${out_dir}/soong_ui"
|
||||||
|
|
|
@ -50,6 +50,19 @@ func NewConfig(ctx Context, args ...string) Config {
|
||||||
environ: OsEnvironment(),
|
environ: OsEnvironment(),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Make sure OUT_DIR is set appropriately
|
||||||
|
if _, ok := ret.environ.Get("OUT_DIR"); !ok {
|
||||||
|
outDir := "out"
|
||||||
|
if baseDir, ok := ret.environ.Get("OUT_DIR_COMMON_BASE"); ok {
|
||||||
|
if wd, err := os.Getwd(); err != nil {
|
||||||
|
ctx.Fatalln("Failed to get working directory:", err)
|
||||||
|
} else {
|
||||||
|
outDir = filepath.Join(baseDir, filepath.Base(wd))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ret.environ.Set("OUT_DIR", outDir)
|
||||||
|
}
|
||||||
|
|
||||||
ret.environ.Unset(
|
ret.environ.Unset(
|
||||||
// We're already using it
|
// We're already using it
|
||||||
"USE_SOONG_UI",
|
"USE_SOONG_UI",
|
||||||
|
@ -67,6 +80,9 @@ func NewConfig(ctx Context, args ...string) Config {
|
||||||
// Used by the goma compiler wrapper, but should only be set by
|
// Used by the goma compiler wrapper, but should only be set by
|
||||||
// gomacc
|
// gomacc
|
||||||
"GOMACC_PATH",
|
"GOMACC_PATH",
|
||||||
|
|
||||||
|
// We handle this above
|
||||||
|
"OUT_DIR_COMMON_BASE",
|
||||||
)
|
)
|
||||||
|
|
||||||
// Tell python not to spam the source tree with .pyc files.
|
// Tell python not to spam the source tree with .pyc files.
|
||||||
|
|
Loading…
Reference in New Issue