Disable external/grpc-grpc even with TIDY_EXTERNAL_VENDOR=1
Some projects do not allow or fix tidy warnings to avoid warnings-as-errors. They should not run clang-tidy even with TIDY_EXTERNAL_VENDOR=1. Bug: 244631413 Test: presubmit; TIDY_EXTERNAL_VENDOR=1 make tidy-external_subset Change-Id: Id86a55c222fdad813c1c3434245c86bb97d0cad6
This commit is contained in:
parent
d21c46a5f8
commit
ff2efae9b0
2 changed files with 15 additions and 7 deletions
|
@ -205,11 +205,18 @@ func TidyChecksForDir(dir string) string {
|
|||
return tidyDefault
|
||||
}
|
||||
|
||||
func NoClangTidyForDir(dir string) bool {
|
||||
func neverTidyForDir(dir string) bool {
|
||||
// This function can be extended if tidy needs to be disabled for more directories.
|
||||
return strings.HasPrefix(dir, "external/grpc-grpc")
|
||||
}
|
||||
|
||||
func NoClangTidyForDir(allowExternalVendor bool, dir string) bool {
|
||||
// Tidy can be disable for a module in dir, if the dir is "neverTidyForDir",
|
||||
// or if it belongs to external|vendor and !allowExternalVendor.
|
||||
// This function depends on TidyChecksForDir, which selects tidyExternalVendor
|
||||
// checks for external/vendor projects. For those projects we disable clang-tidy
|
||||
// by default, unless some modules enable clang-tidy with tidy:true.
|
||||
return TidyChecksForDir(dir) == tidyExternalVendor
|
||||
// checks for external/vendor projects.
|
||||
return neverTidyForDir(dir) ||
|
||||
(!allowExternalVendor && TidyChecksForDir(dir) == tidyExternalVendor)
|
||||
}
|
||||
|
||||
// Returns a globally disabled tidy checks, overriding locally selected checks.
|
||||
|
|
|
@ -79,9 +79,10 @@ func (tidy *tidyFeature) flags(ctx ModuleContext, flags Flags) Flags {
|
|||
// Some projects like external/* and vendor/* have clang-tidy disabled by default,
|
||||
// unless they are enabled explicitly with the "tidy:true" property or
|
||||
// when TIDY_EXTERNAL_VENDOR is set to true.
|
||||
if !ctx.Config().IsEnvTrue("TIDY_EXTERNAL_VENDOR") &&
|
||||
!proptools.Bool(tidy.Properties.Tidy) &&
|
||||
config.NoClangTidyForDir(ctx.ModuleDir()) {
|
||||
if !proptools.Bool(tidy.Properties.Tidy) &&
|
||||
config.NoClangTidyForDir(
|
||||
ctx.Config().IsEnvTrue("TIDY_EXTERNAL_VENDOR"),
|
||||
ctx.ModuleDir()) {
|
||||
return flags
|
||||
}
|
||||
// If not explicitly disabled, set flags.Tidy to generate .tidy rules.
|
||||
|
|
Loading…
Reference in a new issue