Merge "Pass TIDY_TIMEOUT to clang-tidy"

This commit is contained in:
Chih-hung Hsieh
2021-09-10 19:36:29 +00:00
committed by Gerrit Code Review

View File

@@ -198,13 +198,14 @@ var (
// Rule for invoking clang-tidy (a clang-based linter). // Rule for invoking clang-tidy (a clang-based linter).
clangTidy, clangTidyRE = pctx.RemoteStaticRules("clangTidy", clangTidy, clangTidyRE = pctx.RemoteStaticRules("clangTidy",
blueprint.RuleParams{ blueprint.RuleParams{
Command: "rm -f $out && $reTemplate${config.ClangBin}/clang-tidy $tidyFlags $in -- $cFlags && touch $out", Command: "rm -f $out && $tidyVars $reTemplate${config.ClangBin}/clang-tidy $tidyFlags $in -- $cFlags && touch $out",
CommandDeps: []string{"${config.ClangBin}/clang-tidy"}, CommandDeps: []string{"${config.ClangBin}/clang-tidy"},
}, },
&remoteexec.REParams{ &remoteexec.REParams{
Labels: map[string]string{"type": "lint", "tool": "clang-tidy", "lang": "cpp"}, Labels: map[string]string{"type": "lint", "tool": "clang-tidy", "lang": "cpp"},
ExecStrategy: "${config.REClangTidyExecStrategy}", ExecStrategy: "${config.REClangTidyExecStrategy}",
Inputs: []string{"$in"}, Inputs: []string{"$in"},
EnvironmentVariables: []string{"TIDY_TIMEOUT"},
// Although clang-tidy has an option to "fix" source files, that feature is hardly useable // Although clang-tidy has an option to "fix" source files, that feature is hardly useable
// under parallel compilation and RBE. So we assume no OutputFiles here. // under parallel compilation and RBE. So we assume no OutputFiles here.
// The clang-tidy fix option is best run locally in single thread. // The clang-tidy fix option is best run locally in single thread.
@@ -212,7 +213,7 @@ var (
// (1) New timestamps trigger clang and clang-tidy compilations again. // (1) New timestamps trigger clang and clang-tidy compilations again.
// (2) Changing source files caused concurrent clang or clang-tidy jobs to crash. // (2) Changing source files caused concurrent clang or clang-tidy jobs to crash.
Platform: map[string]string{remoteexec.PoolKey: "${config.REClangTidyPool}"}, Platform: map[string]string{remoteexec.PoolKey: "${config.REClangTidyPool}"},
}, []string{"cFlags", "tidyFlags"}, []string{}) }, []string{"cFlags", "tidyFlags", "tidyVars"}, []string{})
_ = pctx.SourcePathVariable("yasmCmd", "prebuilts/misc/${config.HostPrebuiltTag}/yasm/yasm") _ = pctx.SourcePathVariable("yasmCmd", "prebuilts/misc/${config.HostPrebuiltTag}/yasm/yasm")
@@ -442,8 +443,13 @@ func transformSourceToObj(ctx android.ModuleContext, subdir string, srcFiles and
// Source files are one-to-one with tidy, coverage, or kythe files, if enabled. // Source files are one-to-one with tidy, coverage, or kythe files, if enabled.
objFiles := make(android.Paths, len(srcFiles)) objFiles := make(android.Paths, len(srcFiles))
var tidyFiles android.Paths var tidyFiles android.Paths
var tidyVars string
if flags.tidy { if flags.tidy {
tidyFiles = make(android.Paths, 0, len(srcFiles)) tidyFiles = make(android.Paths, 0, len(srcFiles))
tidyTimeout := ctx.Config().Getenv("TIDY_TIMEOUT")
if len(tidyTimeout) > 0 {
tidyVars += "TIDY_TIMEOUT=" + tidyTimeout
}
} }
var coverageFiles android.Paths var coverageFiles android.Paths
if flags.gcovCoverage { if flags.gcovCoverage {
@@ -647,6 +653,7 @@ func transformSourceToObj(ctx android.ModuleContext, subdir string, srcFiles and
Args: map[string]string{ Args: map[string]string{
"cFlags": moduleToolingFlags, "cFlags": moduleToolingFlags,
"tidyFlags": config.TidyFlagsForSrcFile(srcFile, flags.tidyFlags), "tidyFlags": config.TidyFlagsForSrcFile(srcFile, flags.tidyFlags),
"tidyVars": tidyVars,
}, },
}) })
} }