No clang-tidy by default for external and vendor
* Most tidy-external-* and tidy-vendor-* rules
are no longer generated. But external/bcc,
external/android-clat, and some vendor/...
projects still have tidy- rules because they
have explicitly set tidy:true in .bp files.
* Some hardware/* directories are third-party
projects and also disabled by default.
Bug: 244631413
Test: presubmit; make tidy-soong_subset
Change-Id: I17f625e6270de81a111d9cd382fbc39f34edf924
diff --git a/cc/tidy.go b/cc/tidy.go
index 6b5d572..082cf88 100644
--- a/cc/tidy.go
+++ b/cc/tidy.go
@@ -76,7 +76,11 @@
if tidy.Properties.Tidy != nil && !*tidy.Properties.Tidy {
return flags
}
-
+ // Some projects like external/* and vendor/* have clang-tidy disabled by default.
+ // They can enable clang-tidy explicitly with the "tidy:true" property.
+ if config.NoClangTidyForDir(ctx.ModuleDir()) && !proptools.Bool(tidy.Properties.Tidy) {
+ return flags
+ }
// If not explicitly disabled, set flags.Tidy to generate .tidy rules.
// Note that libraries and binaries will depend on .tidy files ONLY if
// the global WITH_TIDY or module 'tidy' property is true.