Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0c3919e9 authored by Dan Willemsen's avatar Dan Willemsen
Browse files

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
parent 88744e25
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -57,7 +57,15 @@ function run_go

    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_version_file="${out_dir}/.microfactory_$(uname)_version"
    local soong_ui_bin="${out_dir}/soong_ui"
+16 −0
Original line number Diff line number Diff line
@@ -50,6 +50,19 @@ func NewConfig(ctx Context, args ...string) Config {
		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(
		// We're already using it
		"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
		// gomacc
		"GOMACC_PATH",

		// We handle this above
		"OUT_DIR_COMMON_BASE",
	)

	// Tell python not to spam the source tree with .pyc files.