Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit deab08e6 authored by Kousik Kumar's avatar Kousik Kumar Committed by Automerger Merge Worker
Browse files

Merge "Add remote execution support for clang-tidy actions" am: 20cccd2e

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

Change-Id: I38233bbeb4ddbbcd79eb480cadfafe29b3b03f32
parents 1200e780 20cccd2e
Loading
Loading
Loading
Loading
+18 −4
Original line number Diff line number Diff line
@@ -174,12 +174,21 @@ var (
		},
		"crossCompile", "format")

	clangTidy = pctx.AndroidStaticRule("clangTidy",
	clangTidy, clangTidyRE = remoteexec.StaticRules(pctx, "clangTidy",
		blueprint.RuleParams{
			Command:     "rm -f $out && ${config.ClangBin}/clang-tidy $tidyFlags $in -- $cFlags && touch $out",
			Command:     "rm -f $out && $reTemplate${config.ClangBin}/clang-tidy $tidyFlags $in -- $cFlags && touch $out",
			CommandDeps: []string{"${config.ClangBin}/clang-tidy"},
		},
		"cFlags", "tidyFlags")
		&remoteexec.REParams{
			Labels:       map[string]string{"type": "lint", "tool": "clang-tidy", "lang": "cpp"},
			ExecStrategy: "${config.REClangTidyExecStrategy}",
			Inputs:       []string{"$in"},
			// OutputFile here is $in for remote-execution since its possible that
			// clang-tidy modifies the given input file itself and $out refers to the
			// ".tidy" file generated for ninja-dependency reasons.
			OutputFiles:  []string{"$in"},
			Platform:     map[string]string{remoteexec.PoolKey: "${config.REClangTidyPool}"},
		}, []string{"cFlags", "tidyFlags"}, []string{})

	_ = pctx.SourcePathVariable("yasmCmd", "prebuilts/misc/${config.HostPrebuiltTag}/yasm/yasm")

@@ -569,8 +578,13 @@ func TransformSourceToObj(ctx android.ModuleContext, subdir string, srcFiles and
			tidyFile := android.ObjPathWithExt(ctx, subdir, srcFile, "tidy")
			tidyFiles = append(tidyFiles, tidyFile)

			rule := clangTidy
			if ctx.Config().IsEnvTrue("RBE_CLANG_TIDY") {
				rule = clangTidyRE
			}

			ctx.Build(pctx, android.BuildParams{
				Rule:        clangTidy,
				Rule:        rule,
				Description: "clang-tidy " + srcFile.Rel(),
				Output:      tidyFile,
				Input:       srcFile,
+2 −0
Original line number Diff line number Diff line
@@ -261,7 +261,9 @@ func init() {

	pctx.VariableFunc("RECXXPool", remoteexec.EnvOverrideFunc("RBE_CXX_POOL", remoteexec.DefaultPool))
	pctx.VariableFunc("RECXXLinksPool", remoteexec.EnvOverrideFunc("RBE_CXX_LINKS_POOL", remoteexec.DefaultPool))
	pctx.VariableFunc("REClangTidyPool", remoteexec.EnvOverrideFunc("RBE_CLANG_TIDY_POOL", remoteexec.DefaultPool))
	pctx.VariableFunc("RECXXLinksExecStrategy", remoteexec.EnvOverrideFunc("RBE_CXX_LINKS_EXEC_STRATEGY", remoteexec.LocalExecStrategy))
	pctx.VariableFunc("REClangTidyExecStrategy", remoteexec.EnvOverrideFunc("RBE_CLANG_TIDY_EXEC_STRATEGY", remoteexec.LocalExecStrategy))
	pctx.VariableFunc("REAbiDumperExecStrategy", remoteexec.EnvOverrideFunc("RBE_ABI_DUMPER_EXEC_STRATEGY", remoteexec.LocalExecStrategy))
	pctx.VariableFunc("REAbiLinkerExecStrategy", remoteexec.EnvOverrideFunc("RBE_ABI_LINKER_EXEC_STRATEGY", remoteexec.LocalExecStrategy))
}