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

Commit 90b4334a authored by Lukacs T. Berki's avatar Lukacs T. Berki
Browse files

Remove the out/soong/.bootstrap directory.

It's better not to have state hidden in dotfiles (or rather,
dotdirectories) if we can help.

It's questionable whether the "linux-x86" path segment makes sense since
soong_build only ever runs on one operating system, but I didn't want to
rock the boat now.

Drive-by fixed some quoting fixes in rbc-run. Notably, I didn't wrap
`$@` into double quotes because I don't know whether the lack of double
quotes was intended or not.

Also drive-by fixed the fact that "out/soong" was added twice to the
directory name of bpglob. This turned out not to be a problem because
bpglob doesn't need to be explicitly built: if it's needed, it's
declared as an input of the glob files so it'll be built automatically
(at the cost of the first "null build" not actually being a null build)

Test: Presubmits.
Change-Id: I710d8d16cd8212059a0ca1ee95378505303eed83
parent 9de51af7
Loading
Loading
Loading
Loading
+21 −7
Original line number Original line Diff line number Diff line
@@ -4,12 +4,26 @@
#       that will be passed to rbcrun.
#       that will be passed to rbcrun.
[[ $# -gt 0 && -f "$1" ]] || { echo "Usage: ${0##*/} product.mk [Additional rbcrun arguments]" >&2; exit 1; }
[[ $# -gt 0 && -f "$1" ]] || { echo "Usage: ${0##*/} product.mk [Additional rbcrun arguments]" >&2; exit 1; }
set -eu
set -eu
declare -r output_root=${OUT_DIR:-out}

declare -r runner="$output_root/soong/.bootstrap/bin/rbcrun"
case $(uname -s) in
declare -r converter="$output_root/soong/.bootstrap/bin/mk2rbc"
  Linux)
declare -r launcher=$output_root/launchers/run.rbc
    declare -r os="linux-x86";
declare -r makefile=$1
    ;;
  Darwin)
    declare -r os="darwin-x86";
    ;;
  *)
    echo "Unknown OS: $(uname -s)" >&2;
    exit 1;
    ;;
esac

declare -r output_root="${OUT_DIR:-out}"
declare -r runner="${output_root}/soong/host/${os}/bin/rbcrun"
declare -r converter="${output_root}/soong/host/${os}/bin/mk2rbc"
declare -r launcher="$output_root/launchers/run.rbc"
declare -r makefile="$1"
shift
shift
$converter -mode=write -r --outdir $output_root --launcher=$launcher $makefile
"$converter" -mode=write -r --outdir "$output_root" --launcher="$launcher" "$makefile"
$runner RBC_OUT="make,global" RBC_DEBUG="${RBC_DEBUG:-}" $@ $launcher
"$runner" RBC_OUT="make,global" RBC_DEBUG="${RBC_DEBUG:-}" $@ "$launcher"
+12 −12
Original line number Original line Diff line number Diff line
@@ -17,10 +17,10 @@ function test_smoke {
function test_null_build() {
function test_null_build() {
  setup
  setup
  run_soong
  run_soong
  local bootstrap_mtime1=$(stat -c "%y" out/soong/.bootstrap/build.ninja)
  local bootstrap_mtime1=$(stat -c "%y" out/soong/bootstrap.ninja)
  local output_mtime1=$(stat -c "%y" out/soong/build.ninja)
  local output_mtime1=$(stat -c "%y" out/soong/build.ninja)
  run_soong
  run_soong
  local bootstrap_mtime2=$(stat -c "%y" out/soong/.bootstrap/build.ninja)
  local bootstrap_mtime2=$(stat -c "%y" out/soong/bootstrap.ninja)
  local output_mtime2=$(stat -c "%y" out/soong/build.ninja)
  local output_mtime2=$(stat -c "%y" out/soong/build.ninja)


  if [[ "$bootstrap_mtime1" == "$bootstrap_mtime2" ]]; then
  if [[ "$bootstrap_mtime1" == "$bootstrap_mtime2" ]]; then
@@ -36,12 +36,12 @@ function test_null_build() {
function test_soong_build_rebuilt_if_blueprint_changes() {
function test_soong_build_rebuilt_if_blueprint_changes() {
  setup
  setup
  run_soong
  run_soong
  local mtime1=$(stat -c "%y" out/soong/.bootstrap/build.ninja)
  local mtime1=$(stat -c "%y" out/soong/bootstrap.ninja)


  sed -i 's/pluginGenSrcCmd/pluginGenSrcCmd2/g' build/blueprint/bootstrap/bootstrap.go
  sed -i 's/pluginGenSrcCmd/pluginGenSrcCmd2/g' build/blueprint/bootstrap/bootstrap.go


  run_soong
  run_soong
  local mtime2=$(stat -c "%y" out/soong/.bootstrap/build.ninja)
  local mtime2=$(stat -c "%y" out/soong/bootstrap.ninja)


  if [[ "$mtime1" == "$mtime2" ]]; then
  if [[ "$mtime1" == "$mtime2" ]]; then
    fail "Bootstrap Ninja file did not change"
    fail "Bootstrap Ninja file did not change"
@@ -541,7 +541,7 @@ EOF
function test_bp2build_smoke {
function test_bp2build_smoke {
  setup
  setup
  run_soong bp2build
  run_soong bp2build
  [[ -e out/soong/.bootstrap/bp2build_workspace_marker ]] || fail "bp2build marker file not created"
  [[ -e out/soong/bp2build_workspace_marker ]] || fail "bp2build marker file not created"
  [[ -e out/soong/workspace ]] || fail "Bazel workspace not created"
  [[ -e out/soong/workspace ]] || fail "Bazel workspace not created"
}
}


@@ -551,7 +551,7 @@ function test_bp2build_generates_marker_file {


  run_soong bp2build
  run_soong bp2build


  if [[ ! -f "./out/soong/.bootstrap/bp2build_workspace_marker" ]]; then
  if [[ ! -f "./out/soong/bp2build_workspace_marker" ]]; then
    fail "Marker file was not generated"
    fail "Marker file was not generated"
  fi
  fi
}
}
@@ -592,10 +592,10 @@ function test_bp2build_null_build {
  setup
  setup


  run_soong bp2build
  run_soong bp2build
  local mtime1=$(stat -c "%y" out/soong/.bootstrap/bp2build_workspace_marker)
  local mtime1=$(stat -c "%y" out/soong/bp2build_workspace_marker)


  run_soong bp2build
  run_soong bp2build
  local mtime2=$(stat -c "%y" out/soong/.bootstrap/bp2build_workspace_marker)
  local mtime2=$(stat -c "%y" out/soong/bp2build_workspace_marker)


  if [[ "$mtime1" != "$mtime2" ]]; then
  if [[ "$mtime1" != "$mtime2" ]]; then
    fail "Output Ninja file changed on null build"
    fail "Output Ninja file changed on null build"
@@ -626,7 +626,7 @@ EOF
function test_multiple_soong_build_modes() {
function test_multiple_soong_build_modes() {
  setup
  setup
  run_soong json-module-graph bp2build nothing
  run_soong json-module-graph bp2build nothing
  if [[ ! -f "out/soong/.bootstrap/bp2build_workspace_marker" ]]; then
  if [[ ! -f "out/soong/bp2build_workspace_marker" ]]; then
    fail "bp2build marker file was not generated"
    fail "bp2build marker file was not generated"
  fi
  fi


@@ -780,11 +780,11 @@ function test_bp2build_back_and_forth_null_build {
    fail "Output Ninja file changed when switching to bp2build"
    fail "Output Ninja file changed when switching to bp2build"
  fi
  fi


  local marker_mtime1=$(stat -c "%y" out/soong/.bootstrap/bp2build_workspace_marker)
  local marker_mtime1=$(stat -c "%y" out/soong/bp2build_workspace_marker)


  run_soong
  run_soong
  local output_mtime3=$(stat -c "%y" out/soong/build.ninja)
  local output_mtime3=$(stat -c "%y" out/soong/build.ninja)
  local marker_mtime2=$(stat -c "%y" out/soong/.bootstrap/bp2build_workspace_marker)
  local marker_mtime2=$(stat -c "%y" out/soong/bp2build_workspace_marker)
  if [[ "$output_mtime1" != "$output_mtime3" ]]; then
  if [[ "$output_mtime1" != "$output_mtime3" ]]; then
    fail "Output Ninja file changed when switching to regular build from bp2build"
    fail "Output Ninja file changed when switching to regular build from bp2build"
  fi
  fi
@@ -794,7 +794,7 @@ function test_bp2build_back_and_forth_null_build {


  run_soong bp2build
  run_soong bp2build
  local output_mtime4=$(stat -c "%y" out/soong/build.ninja)
  local output_mtime4=$(stat -c "%y" out/soong/build.ninja)
  local marker_mtime3=$(stat -c "%y" out/soong/.bootstrap/bp2build_workspace_marker)
  local marker_mtime3=$(stat -c "%y" out/soong/bp2build_workspace_marker)
  if [[ "$output_mtime1" != "$output_mtime4" ]]; then
  if [[ "$output_mtime1" != "$output_mtime4" ]]; then
    fail "Output Ninja file changed when switching back to bp2build"
    fail "Output Ninja file changed when switching back to bp2build"
  fi
  fi
+4 −4
Original line number Original line Diff line number Diff line
@@ -11,10 +11,10 @@ readonly GENERATED_BUILD_FILE_NAME="BUILD.bazel"
function test_bp2build_null_build() {
function test_bp2build_null_build() {
  setup
  setup
  run_soong bp2build
  run_soong bp2build
  local output_mtime1=$(stat -c "%y" out/soong/.bootstrap/bp2build_workspace_marker)
  local output_mtime1=$(stat -c "%y" out/soong/bp2build_workspace_marker)


  run_soong bp2build
  run_soong bp2build
  local output_mtime2=$(stat -c "%y" out/soong/.bootstrap/bp2build_workspace_marker)
  local output_mtime2=$(stat -c "%y" out/soong/bp2build_workspace_marker)


  if [[ "$output_mtime1" != "$output_mtime2" ]]; then
  if [[ "$output_mtime1" != "$output_mtime2" ]]; then
    fail "Output bp2build marker file changed on null build"
    fail "Output bp2build marker file changed on null build"
@@ -36,10 +36,10 @@ EOF
  touch foo/bar/a.txt foo/bar/b.txt
  touch foo/bar/a.txt foo/bar/b.txt


  run_soong bp2build
  run_soong bp2build
  local output_mtime1=$(stat -c "%y" out/soong/.bootstrap/bp2build_workspace_marker)
  local output_mtime1=$(stat -c "%y" out/soong/bp2build_workspace_marker)


  run_soong bp2build
  run_soong bp2build
  local output_mtime2=$(stat -c "%y" out/soong/.bootstrap/bp2build_workspace_marker)
  local output_mtime2=$(stat -c "%y" out/soong/bp2build_workspace_marker)


  if [[ "$output_mtime1" != "$output_mtime2" ]]; then
  if [[ "$output_mtime1" != "$output_mtime2" ]]; then
    fail "Output bp2build marker file changed on null build"
    fail "Output bp2build marker file changed on null build"
+3 −2
Original line number Original line Diff line number Diff line
@@ -784,12 +784,13 @@ func (c *configImpl) PrebuiltOS() string {
		panic("Unknown GOOS")
		panic("Unknown GOOS")
	}
	}
}
}

func (c *configImpl) HostToolDir() string {
func (c *configImpl) HostToolDir() string {
	return filepath.Join(c.SoongOutDir(), "host", c.PrebuiltOS(), "bin")
	return filepath.Join(c.SoongOutDir(), "host", c.PrebuiltOS(), "bin")
}
}


func (c *configImpl) NamedGlobFile(name string) string {
func (c *configImpl) NamedGlobFile(name string) string {
	return shared.JoinPath(c.SoongOutDir(), ".bootstrap/build-globs."+name+".ninja")
	return shared.JoinPath(c.SoongOutDir(), "globs-"+name+".ninja")
}
}


func (c *configImpl) UsedEnvFile(tag string) string {
func (c *configImpl) UsedEnvFile(tag string) string {
@@ -797,7 +798,7 @@ func (c *configImpl) UsedEnvFile(tag string) string {
}
}


func (c *configImpl) Bp2BuildMarkerFile() string {
func (c *configImpl) Bp2BuildMarkerFile() string {
	return shared.JoinPath(c.SoongOutDir(), ".bootstrap/bp2build_workspace_marker")
	return shared.JoinPath(c.SoongOutDir(), "bp2build_workspace_marker")
}
}


func (c *configImpl) SoongDocsHtml() string {
func (c *configImpl) SoongDocsHtml() string {
+2 −2
Original line number Original line Diff line number Diff line
@@ -263,9 +263,9 @@ func runMakeProductConfig(ctx Context, config Config) {
	}, exportEnvVars...), BannerVars...)
	}, exportEnvVars...), BannerVars...)


	// We need Roboleaf converter and runner in the mixed mode
	// We need Roboleaf converter and runner in the mixed mode
	runMicrofactory(ctx, config, ".bootstrap/bin/mk2rbc", "android/soong/mk2rbc/cmd",
	runMicrofactory(ctx, config, "mk2rbc", "android/soong/mk2rbc/cmd",
		map[string]string{"android/soong": "build/soong"})
		map[string]string{"android/soong": "build/soong"})
	runMicrofactory(ctx, config, ".bootstrap/bin/rbcrun", "rbcrun/cmd",
	runMicrofactory(ctx, config, "rbcrun", "rbcrun/cmd",
		map[string]string{"go.starlark.net": "external/starlark-go", "rbcrun": "build/make/tools/rbcrun"})
		map[string]string{"go.starlark.net": "external/starlark-go", "rbcrun": "build/make/tools/rbcrun"})


	makeVars, err := dumpMakeVars(ctx, config, config.Arguments(), allVars, true, "")
	makeVars, err := dumpMakeVars(ctx, config, config.Arguments(), allVars, true, "")
Loading