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

Commit 7997b3bb authored by Cole Faust's avatar Cole Faust Committed by Gerrit Code Review
Browse files

Merge "Make the bazel sandwich ignore targets that don't exist" into main

parents fac9d8e7 16d10942
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ import (
	"os"
	"path"
	"path/filepath"
	"regexp"
	"runtime"
	"sort"
	"strings"
@@ -1054,9 +1055,23 @@ var (

func GetBazelSandwichCqueryRequests(config Config) ([]cqueryKey, error) {
	result := make([]cqueryKey, 0, len(allowlists.BazelSandwichTargets))
	labelRegex := regexp.MustCompile("^@?//([a-zA-Z0-9/_-]+):[a-zA-Z0-9_-]+$")
	// Note that bazel "targets" are different from soong "targets", the bazel targets are
	// synonymous with soong modules, and soong targets are a configuration a module is built in.
	for _, target := range allowlists.BazelSandwichTargets {
		match := labelRegex.FindStringSubmatch(target.Label)
		if match == nil {
			return nil, fmt.Errorf("invalid label, must match `^@?//([a-zA-Z0-9/_-]+):[a-zA-Z0-9_-]+$`: %s", target.Label)
		}
		if _, err := os.Stat(absolutePath(match[1])); err != nil {
			if os.IsNotExist(err) {
				// Ignore bazel sandwich targets that don't exist.
				continue
			} else {
				return nil, err
			}
		}

		var soongTarget Target
		if target.Host {
			soongTarget = config.BuildOSTarget
+7 −0
Original line number Diff line number Diff line
@@ -52,6 +52,10 @@ function copy_directory {
  cp -R "$REAL_TOP/$dir" "$MOCK_TOP/$parent"
}

function delete_directory {
  rm -rf "$MOCK_TOP/$1"
}

function symlink_file {
  local file="$1"

@@ -138,6 +142,9 @@ function create_mock_bazel {
  copy_directory build/bazel
  copy_directory build/bazel_common_rules

  # This requires pulling more tools into the mock top to build partitions
  delete_directory build/bazel/examples/partitions

  symlink_directory packages/modules/common/build
  symlink_directory prebuilts/bazel
  symlink_directory prebuilts/clang