Relax cflag checks for -Xclang and -target*
Allow flags in cflags that start with "-target".
Allow "-Xclang <arg>" in cflags.
Bug: 350058746
Test: builds
Flag: EXEMPT bugfix
Change-Id: I1bf64268047949d747f53d8b111fc26298aee958
diff --git a/cc/check.go b/cc/check.go
index 32d1f06..e3af3b2 100644
--- a/cc/check.go
+++ b/cc/check.go
@@ -45,7 +45,8 @@
ctx.PropertyErrorf(prop, "-Weverything is not allowed in Android.bp files. "+
"Build with `m ANDROID_TEMPORARILY_ALLOW_WEVERYTHING=true` to experiment locally with -Weverything.")
}
- } else if strings.HasPrefix(flag, "-target") || strings.HasPrefix(flag, "--target") {
+ } else if strings.HasPrefix(flag, "-target ") || strings.HasPrefix(flag, "--target ") ||
+ strings.HasPrefix(flag, "-target=") || strings.HasPrefix(flag, "--target=") {
ctx.PropertyErrorf(prop, "Bad flag: `%s`, use the correct target soong rule.", flag)
} else if strings.Contains(flag, " ") {
args := strings.Split(flag, " ")
@@ -63,6 +64,10 @@
if len(args) > 2 {
ctx.PropertyErrorf(prop, "`-mllvm` only takes one argument: `%s`", flag)
}
+ } else if args[0] == "-Xclang" {
+ if len(args) > 2 {
+ ctx.PropertyErrorf(prop, "`-Xclang` only takes one argument: `%s`", flag)
+ }
} else if strings.HasPrefix(flag, "-D") && strings.Contains(flag, "=") {
// Do nothing in this case.
// For now, we allow space characters in -DNAME=def form to allow use cases