Merge "Make the bazel sandwich ignore targets that don't exist" into main
This commit is contained in:
commit
7997b3bb1c
2 changed files with 22 additions and 0 deletions
|
@ -22,6 +22,7 @@ import (
|
||||||
"os"
|
"os"
|
||||||
"path"
|
"path"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
"regexp"
|
||||||
"runtime"
|
"runtime"
|
||||||
"sort"
|
"sort"
|
||||||
"strings"
|
"strings"
|
||||||
|
@ -1054,9 +1055,23 @@ var (
|
||||||
|
|
||||||
func GetBazelSandwichCqueryRequests(config Config) ([]cqueryKey, error) {
|
func GetBazelSandwichCqueryRequests(config Config) ([]cqueryKey, error) {
|
||||||
result := make([]cqueryKey, 0, len(allowlists.BazelSandwichTargets))
|
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
|
// 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.
|
// synonymous with soong modules, and soong targets are a configuration a module is built in.
|
||||||
for _, target := range allowlists.BazelSandwichTargets {
|
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
|
var soongTarget Target
|
||||||
if target.Host {
|
if target.Host {
|
||||||
soongTarget = config.BuildOSTarget
|
soongTarget = config.BuildOSTarget
|
||||||
|
|
|
@ -52,6 +52,10 @@ function copy_directory {
|
||||||
cp -R "$REAL_TOP/$dir" "$MOCK_TOP/$parent"
|
cp -R "$REAL_TOP/$dir" "$MOCK_TOP/$parent"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function delete_directory {
|
||||||
|
rm -rf "$MOCK_TOP/$1"
|
||||||
|
}
|
||||||
|
|
||||||
function symlink_file {
|
function symlink_file {
|
||||||
local file="$1"
|
local file="$1"
|
||||||
|
|
||||||
|
@ -138,6 +142,9 @@ function create_mock_bazel {
|
||||||
copy_directory build/bazel
|
copy_directory build/bazel
|
||||||
copy_directory build/bazel_common_rules
|
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 packages/modules/common/build
|
||||||
symlink_directory prebuilts/bazel
|
symlink_directory prebuilts/bazel
|
||||||
symlink_directory prebuilts/clang
|
symlink_directory prebuilts/clang
|
||||||
|
|
Loading…
Reference in a new issue