Merge "Change default DEFAULT_TIDY_HEADER_DIRS to empty" am: 6e304f5a88 am: 030f75fa56

Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1584224

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: If65ff865c1f7f0d3b44a5418fbeb86e7fa9c9a8b
This commit is contained in:
Chih-hung Hsieh 2021-02-17 18:54:12 +00:00 committed by Automerger Merge Worker
commit 39e4767dcb
3 changed files with 26 additions and 23 deletions

View File

@ -137,6 +137,16 @@ func HasAnyPrefix(s string, prefixList []string) bool {
return false
}
// Returns true if any string in the given list has the given substring.
func SubstringInList(list []string, substr string) bool {
for _, s := range list {
if strings.Contains(s, substr) {
return true
}
}
return false
}
// Returns true if any string in the given list has the given prefix.
func PrefixInList(list []string, prefix string) bool {
for _, s := range list {

View File

@ -87,27 +87,11 @@ func init() {
}, ",")
})
// Give warnings to header files only in selected directories.
// Do not give warnings to external or vendor header files, which contain too
// many warnings.
// To reduce duplicate warnings from the same header files,
// header-filter will contain only the module directory and
// those specified by DEFAULT_TIDY_HEADER_DIRS.
pctx.VariableFunc("TidyDefaultHeaderDirs", func(ctx android.PackageVarContext) string {
if override := ctx.Config().Getenv("DEFAULT_TIDY_HEADER_DIRS"); override != "" {
return override
}
return strings.Join([]string{
"art/",
"bionic/",
"bootable/",
"build/",
"cts/",
"dalvik/",
"developers/",
"development/",
"frameworks/",
"libcore/",
"libnativehelper/",
"system/",
}, "|")
return ctx.Config().Getenv("DEFAULT_TIDY_HEADER_DIRS")
})
// Use WTIH_TIDY_FLAGS to pass extra global default clang-tidy flags.

View File

@ -20,6 +20,7 @@ import (
"github.com/google/blueprint/proptools"
"android/soong/android"
"android/soong/cc/config"
)
@ -75,9 +76,17 @@ func (tidy *tidyFeature) flags(ctx ModuleContext, flags Flags) Flags {
}
esc := proptools.NinjaAndShellEscapeList
flags.TidyFlags = append(flags.TidyFlags, esc(tidy.Properties.Tidy_flags)...)
// If TidyFlags is empty, add default header filter.
if len(flags.TidyFlags) == 0 {
headerFilter := "-header-filter=\"(" + ctx.ModuleDir() + "|${config.TidyDefaultHeaderDirs})\""
// If TidyFlags does not contain -header-filter, add default header filter.
// Find the substring because the flag could also appear as --header-filter=...
// and with or without single or double quotes.
if !android.SubstringInList(flags.TidyFlags, "-header-filter=") {
defaultDirs := ctx.Config().Getenv("DEFAULT_TIDY_HEADER_DIRS")
headerFilter := "-header-filter="
if defaultDirs == "" {
headerFilter += ctx.ModuleDir() + "/"
} else {
headerFilter += "\"(" + ctx.ModuleDir() + "/|" + defaultDirs + ")\""
}
flags.TidyFlags = append(flags.TidyFlags, headerFilter)
}