Prettify soong ninja build descriptions

am: 67a5c132c5

Change-Id: Ifaa329e7d9c636e738fcd3119a47b7a44ebe5074
This commit is contained in:
Colin Cross
2017-05-10 23:46:12 +00:00
committed by android-build-merger
16 changed files with 249 additions and 187 deletions

View File

@@ -16,6 +16,7 @@ package android
import ( import (
"encoding/json" "encoding/json"
"path/filepath"
"github.com/google/blueprint" "github.com/google/blueprint"
) )
@@ -39,8 +40,9 @@ func createApiLevelsJson(ctx blueprint.SingletonContext, file string,
} }
ctx.Build(pctx, blueprint.BuildParams{ ctx.Build(pctx, blueprint.BuildParams{
Rule: WriteFile, Rule: WriteFile,
Outputs: []string{file}, Description: "generate " + filepath.Base(file),
Outputs: []string{file},
Args: map[string]string{ Args: map[string]string{
"content": string(jsonStr[:]), "content": string(jsonStr[:]),
}, },

View File

@@ -224,6 +224,21 @@ const (
HostCross HostCross
) )
func (class OsClass) String() string {
switch class {
case Generic:
return "generic"
case Device:
return "device"
case Host:
return "host"
case HostCross:
return "host cross"
default:
panic(fmt.Errorf("unknown class %d", class))
}
}
func (os OsType) String() string { func (os OsType) String() string {
return os.Name return os.Name
} }

View File

@@ -36,6 +36,7 @@ type ModuleBuildParams struct {
Rule blueprint.Rule Rule blueprint.Rule
Deps blueprint.Deps Deps blueprint.Deps
Depfile WritablePath Depfile WritablePath
Description string
Output WritablePath Output WritablePath
Outputs WritablePaths Outputs WritablePaths
ImplicitOutput WritablePath ImplicitOutput WritablePath
@@ -480,6 +481,23 @@ func (a *ModuleBase) GenerateBuildActions(ctx blueprint.ModuleContext) {
missingDeps: ctx.GetMissingDependencies(), missingDeps: ctx.GetMissingDependencies(),
} }
desc := "//" + ctx.ModuleDir() + ":" + ctx.ModuleName() + " "
var suffix []string
if androidCtx.Os().Class != Device && androidCtx.Os().Class != Generic {
suffix = append(suffix, androidCtx.Os().String())
}
if !androidCtx.PrimaryArch() {
suffix = append(suffix, androidCtx.Arch().ArchType.String())
}
ctx.Variable(pctx, "moduleDesc", desc)
s := ""
if len(suffix) > 0 {
s = " [" + strings.Join(suffix, " ") + "]"
}
ctx.Variable(pctx, "moduleDescSuffix", s)
if a.Enabled() { if a.Enabled() {
a.module.GenerateAndroidBuildActions(androidCtx) a.module.GenerateAndroidBuildActions(androidCtx)
if ctx.Failed() { if ctx.Failed() {
@@ -516,11 +534,12 @@ type androidModuleContext struct {
module Module module Module
} }
func (a *androidModuleContext) ninjaError(outputs []string, err error) { func (a *androidModuleContext) ninjaError(desc string, outputs []string, err error) {
a.ModuleContext.Build(pctx, blueprint.BuildParams{ a.ModuleContext.Build(pctx, blueprint.BuildParams{
Rule: ErrorRule, Rule: ErrorRule,
Outputs: outputs, Description: desc,
Optional: true, Outputs: outputs,
Optional: true,
Args: map[string]string{ Args: map[string]string{
"error": err.Error(), "error": err.Error(),
}, },
@@ -530,8 +549,9 @@ func (a *androidModuleContext) ninjaError(outputs []string, err error) {
func (a *androidModuleContext) Build(pctx blueprint.PackageContext, params blueprint.BuildParams) { func (a *androidModuleContext) Build(pctx blueprint.PackageContext, params blueprint.BuildParams) {
if a.missingDeps != nil { if a.missingDeps != nil {
a.ninjaError(params.Outputs, fmt.Errorf("module %s missing dependencies: %s\n", a.ninjaError(params.Description, params.Outputs,
a.ModuleName(), strings.Join(a.missingDeps, ", "))) fmt.Errorf("module %s missing dependencies: %s\n",
a.ModuleName(), strings.Join(a.missingDeps, ", ")))
return return
} }
@@ -552,6 +572,10 @@ func (a *androidModuleContext) ModuleBuild(pctx blueprint.PackageContext, params
Optional: !params.Default, Optional: !params.Default,
} }
if params.Description != "" {
bparams.Description = "${moduleDesc}" + params.Description + "${moduleDescSuffix}"
}
if params.Depfile != nil { if params.Depfile != nil {
bparams.Depfile = params.Depfile.String() bparams.Depfile = params.Depfile.String()
} }
@@ -569,8 +593,9 @@ func (a *androidModuleContext) ModuleBuild(pctx blueprint.PackageContext, params
} }
if a.missingDeps != nil { if a.missingDeps != nil {
a.ninjaError(bparams.Outputs, fmt.Errorf("module %s missing dependencies: %s\n", a.ninjaError(bparams.Description, bparams.Outputs,
a.ModuleName(), strings.Join(a.missingDeps, ", "))) fmt.Errorf("module %s missing dependencies: %s\n",
a.ModuleName(), strings.Join(a.missingDeps, ", ")))
return return
} }
@@ -624,6 +649,9 @@ func (a *androidBaseContextImpl) Debug() bool {
} }
func (a *androidBaseContextImpl) PrimaryArch() bool { func (a *androidBaseContextImpl) PrimaryArch() bool {
if len(a.config.Targets[a.target.Os.Class]) <= 1 {
return true
}
return a.target.Arch.ArchType == a.config.Targets[a.target.Os.Class][0].Arch.ArchType return a.target.Arch.ArchType == a.config.Targets[a.target.Os.Class][0].Arch.ArchType
} }
@@ -686,12 +714,13 @@ func (a *androidModuleContext) InstallFileName(installPath OutputPath, name stri
} }
a.ModuleBuild(pctx, ModuleBuildParams{ a.ModuleBuild(pctx, ModuleBuildParams{
Rule: Cp, Rule: Cp,
Output: fullInstallPath, Description: "install " + fullInstallPath.Base(),
Input: srcPath, Output: fullInstallPath,
Implicits: implicitDeps, Input: srcPath,
OrderOnly: orderOnlyDeps, Implicits: implicitDeps,
Default: !a.AConfig().EmbeddedInMake(), OrderOnly: orderOnlyDeps,
Default: !a.AConfig().EmbeddedInMake(),
}) })
a.installFiles = append(a.installFiles, fullInstallPath) a.installFiles = append(a.installFiles, fullInstallPath)
@@ -711,10 +740,11 @@ func (a *androidModuleContext) InstallSymlink(installPath OutputPath, name strin
if !a.skipInstall(fullInstallPath) { if !a.skipInstall(fullInstallPath) {
a.ModuleBuild(pctx, ModuleBuildParams{ a.ModuleBuild(pctx, ModuleBuildParams{
Rule: Symlink, Rule: Symlink,
Output: fullInstallPath, Description: "install symlink " + fullInstallPath.Base(),
OrderOnly: Paths{srcPath}, Output: fullInstallPath,
Default: !a.AConfig().EmbeddedInMake(), OrderOnly: Paths{srcPath},
Default: !a.AConfig().EmbeddedInMake(),
Args: map[string]string{ Args: map[string]string{
"fromPath": srcPath.String(), "fromPath": srcPath.String(),
}, },

View File

@@ -45,7 +45,6 @@ var (
Deps: blueprint.DepsGCC, Deps: blueprint.DepsGCC,
Command: "$relPwd ${config.CcWrapper}$ccCmd -c $cFlags -MD -MF ${out}.d -o $out $in", Command: "$relPwd ${config.CcWrapper}$ccCmd -c $cFlags -MD -MF ${out}.d -o $out $in",
CommandDeps: []string{"$ccCmd"}, CommandDeps: []string{"$ccCmd"},
Description: "cc $out",
}, },
"ccCmd", "cFlags") "ccCmd", "cFlags")
@@ -54,7 +53,6 @@ var (
Command: "$ldCmd ${crtBegin} @${out}.rsp " + Command: "$ldCmd ${crtBegin} @${out}.rsp " +
"${libFlags} ${crtEnd} -o ${out} ${ldFlags}", "${libFlags} ${crtEnd} -o ${out} ${ldFlags}",
CommandDeps: []string{"$ldCmd"}, CommandDeps: []string{"$ldCmd"},
Description: "ld $out",
Rspfile: "${out}.rsp", Rspfile: "${out}.rsp",
RspfileContent: "${in}", RspfileContent: "${in}",
}, },
@@ -64,7 +62,6 @@ var (
blueprint.RuleParams{ blueprint.RuleParams{
Command: "$ldCmd -nostdlib -Wl,-r ${in} -o ${out} ${ldFlags}", Command: "$ldCmd -nostdlib -Wl,-r ${in} -o ${out} ${ldFlags}",
CommandDeps: []string{"$ldCmd"}, CommandDeps: []string{"$ldCmd"},
Description: "partialLd $out",
}, },
"ldCmd", "ldFlags") "ldCmd", "ldFlags")
@@ -72,7 +69,6 @@ var (
blueprint.RuleParams{ blueprint.RuleParams{
Command: "rm -f ${out} && $arCmd $arFlags $out @${out}.rsp", Command: "rm -f ${out} && $arCmd $arFlags $out @${out}.rsp",
CommandDeps: []string{"$arCmd"}, CommandDeps: []string{"$arCmd"},
Description: "ar $out",
Rspfile: "${out}.rsp", Rspfile: "${out}.rsp",
RspfileContent: "${in}", RspfileContent: "${in}",
}, },
@@ -82,7 +78,6 @@ var (
blueprint.RuleParams{ blueprint.RuleParams{
Command: "rm -f ${out} && ${config.MacArPath} $arFlags $out $in", Command: "rm -f ${out} && ${config.MacArPath} $arFlags $out $in",
CommandDeps: []string{"${config.MacArPath}"}, CommandDeps: []string{"${config.MacArPath}"},
Description: "ar $out",
}, },
"arFlags") "arFlags")
@@ -90,7 +85,6 @@ var (
blueprint.RuleParams{ blueprint.RuleParams{
Command: "cp -f ${inAr} ${out}.tmp && ${config.MacArPath} $arFlags ${out}.tmp $in && mv ${out}.tmp ${out}", Command: "cp -f ${inAr} ${out}.tmp && ${config.MacArPath} $arFlags ${out}.tmp $in && mv ${out}.tmp ${out}",
CommandDeps: []string{"${config.MacArPath}", "${inAr}"}, CommandDeps: []string{"${config.MacArPath}", "${inAr}"},
Description: "ar $out",
}, },
"arFlags", "inAr") "arFlags", "inAr")
@@ -98,14 +92,12 @@ var (
blueprint.RuleParams{ blueprint.RuleParams{
Command: "${config.MacStripPath} -u -r -o $out $in", Command: "${config.MacStripPath} -u -r -o $out $in",
CommandDeps: []string{"${config.MacStripPath}"}, CommandDeps: []string{"${config.MacStripPath}"},
Description: "strip $out",
}) })
prefixSymbols = pctx.AndroidStaticRule("prefixSymbols", prefixSymbols = pctx.AndroidStaticRule("prefixSymbols",
blueprint.RuleParams{ blueprint.RuleParams{
Command: "$objcopyCmd --prefix-symbols=${prefix} ${in} ${out}", Command: "$objcopyCmd --prefix-symbols=${prefix} ${in} ${out}",
CommandDeps: []string{"$objcopyCmd"}, CommandDeps: []string{"$objcopyCmd"},
Description: "prefixSymbols $out",
}, },
"objcopyCmd", "prefix") "objcopyCmd", "prefix")
@@ -117,14 +109,12 @@ var (
Deps: blueprint.DepsGCC, Deps: blueprint.DepsGCC,
Command: "CROSS_COMPILE=$crossCompile $stripPath ${args} -i ${in} -o ${out} -d ${out}.d", Command: "CROSS_COMPILE=$crossCompile $stripPath ${args} -i ${in} -o ${out} -d ${out}.d",
CommandDeps: []string{"$stripPath"}, CommandDeps: []string{"$stripPath"},
Description: "strip $out",
}, },
"args", "crossCompile") "args", "crossCompile")
emptyFile = pctx.AndroidStaticRule("emptyFile", emptyFile = pctx.AndroidStaticRule("emptyFile",
blueprint.RuleParams{ blueprint.RuleParams{
Command: "rm -f $out && touch $out", Command: "rm -f $out && touch $out",
Description: "empty file $out",
}) })
_ = pctx.SourcePathVariable("copyGccLibPath", "build/soong/scripts/copygcclib.sh") _ = pctx.SourcePathVariable("copyGccLibPath", "build/soong/scripts/copygcclib.sh")
@@ -135,7 +125,6 @@ var (
Deps: blueprint.DepsGCC, Deps: blueprint.DepsGCC,
Command: "$copyGccLibPath $out $ccCmd $cFlags -print-file-name=${libName}", Command: "$copyGccLibPath $out $ccCmd $cFlags -print-file-name=${libName}",
CommandDeps: []string{"$copyGccLibPath", "$ccCmd"}, CommandDeps: []string{"$copyGccLibPath", "$ccCmd"},
Description: "copy gcc $out",
}, },
"ccCmd", "cFlags", "libName") "ccCmd", "cFlags", "libName")
@@ -155,7 +144,6 @@ var (
blueprint.RuleParams{ blueprint.RuleParams{
Command: "rm -f $out && ${config.ClangBin}/clang-tidy $tidyFlags $in -- $cFlags && touch $out", Command: "rm -f $out && ${config.ClangBin}/clang-tidy $tidyFlags $in -- $cFlags && touch $out",
CommandDeps: []string{"${config.ClangBin}/clang-tidy"}, CommandDeps: []string{"${config.ClangBin}/clang-tidy"},
Description: "tidy $out",
}, },
"cFlags", "tidyFlags") "cFlags", "tidyFlags")
@@ -165,7 +153,6 @@ var (
blueprint.RuleParams{ blueprint.RuleParams{
Command: "$yasmCmd $asFlags -o $out $in", Command: "$yasmCmd $asFlags -o $out $in",
CommandDeps: []string{"$yasmCmd"}, CommandDeps: []string{"$yasmCmd"},
Description: "yasm $out",
}, },
"asFlags") "asFlags")
@@ -175,7 +162,6 @@ var (
blueprint.RuleParams{ blueprint.RuleParams{
Command: "rm -f $out && $sAbiDumper -o ${out} $in $exportDirs -- $cFlags -Wno-packed -Qunused-arguments -isystem ${config.RSIncludePath}", Command: "rm -f $out && $sAbiDumper -o ${out} $in $exportDirs -- $cFlags -Wno-packed -Qunused-arguments -isystem ${config.RSIncludePath}",
CommandDeps: []string{"$sAbiDumper"}, CommandDeps: []string{"$sAbiDumper"},
Description: "header-abi-dumper $in -o $out $exportDirs",
}, },
"cFlags", "exportDirs") "cFlags", "exportDirs")
@@ -185,7 +171,6 @@ var (
blueprint.RuleParams{ blueprint.RuleParams{
Command: "$sAbiLinker -o ${out} $symbolFile -arch $arch -api $api $exportedHeaderFlags @${out}.rsp ", Command: "$sAbiLinker -o ${out} $symbolFile -arch $arch -api $api $exportedHeaderFlags @${out}.rsp ",
CommandDeps: []string{"$sAbiLinker"}, CommandDeps: []string{"$sAbiLinker"},
Description: "header-abi-linker $in -o $out",
Rspfile: "${out}.rsp", Rspfile: "${out}.rsp",
RspfileContent: "${in}", RspfileContent: "${in}",
}, },
@@ -197,7 +182,6 @@ var (
blueprint.RuleParams{ blueprint.RuleParams{
Command: "$sAbiDiffer -advice-only -o ${out} -new $in -old $referenceDump", Command: "$sAbiDiffer -advice-only -o ${out} -new $in -old $referenceDump",
CommandDeps: []string{"$sAbiDiffer"}, CommandDeps: []string{"$sAbiDiffer"},
Description: "header-abi-diff -o ${out} -new $in -old $referenceDump",
}, },
"referenceDump") "referenceDump")
) )
@@ -323,10 +307,11 @@ func TransformSourceToObj(ctx android.ModuleContext, subdir string, srcFiles and
if srcFile.Ext() == ".asm" { if srcFile.Ext() == ".asm" {
ctx.ModuleBuild(pctx, android.ModuleBuildParams{ ctx.ModuleBuild(pctx, android.ModuleBuildParams{
Rule: yasm, Rule: yasm,
Output: objFile, Description: "yasm " + srcFile.Rel(),
Input: srcFile, Output: objFile,
OrderOnly: deps, Input: srcFile,
OrderOnly: deps,
Args: map[string]string{ Args: map[string]string{
"asFlags": flags.yasmFlags, "asFlags": flags.yasmFlags,
}, },
@@ -367,7 +352,11 @@ func TransformSourceToObj(ctx android.ModuleContext, subdir string, srcFiles and
default: default:
panic("unrecoginzied ccCmd") panic("unrecoginzied ccCmd")
} }
}
ccDesc := ccCmd
if flags.clang {
ccCmd = "${config.ClangBin}/" + ccCmd ccCmd = "${config.ClangBin}/" + ccCmd
} else { } else {
ccCmd = gccCmd(flags.toolchain, ccCmd) ccCmd = gccCmd(flags.toolchain, ccCmd)
@@ -382,6 +371,7 @@ func TransformSourceToObj(ctx android.ModuleContext, subdir string, srcFiles and
ctx.ModuleBuild(pctx, android.ModuleBuildParams{ ctx.ModuleBuild(pctx, android.ModuleBuildParams{
Rule: cc, Rule: cc,
Description: ccDesc + " " + srcFile.Rel(),
Output: objFile, Output: objFile,
ImplicitOutputs: implicitOutputs, ImplicitOutputs: implicitOutputs,
Input: srcFile, Input: srcFile,
@@ -397,9 +387,10 @@ func TransformSourceToObj(ctx android.ModuleContext, subdir string, srcFiles and
tidyFiles = append(tidyFiles, tidyFile) tidyFiles = append(tidyFiles, tidyFile)
ctx.ModuleBuild(pctx, android.ModuleBuildParams{ ctx.ModuleBuild(pctx, android.ModuleBuildParams{
Rule: clangTidy, Rule: clangTidy,
Output: tidyFile, Description: "clang-tidy " + srcFile.Rel(),
Input: srcFile, Output: tidyFile,
Input: srcFile,
// We must depend on objFile, since clang-tidy doesn't // We must depend on objFile, since clang-tidy doesn't
// support exporting dependencies. // support exporting dependencies.
Implicit: objFile, Implicit: objFile,
@@ -415,10 +406,11 @@ func TransformSourceToObj(ctx android.ModuleContext, subdir string, srcFiles and
sAbiDumpFiles = append(sAbiDumpFiles, sAbiDumpFile) sAbiDumpFiles = append(sAbiDumpFiles, sAbiDumpFile)
ctx.ModuleBuild(pctx, android.ModuleBuildParams{ ctx.ModuleBuild(pctx, android.ModuleBuildParams{
Rule: sAbiDump, Rule: sAbiDump,
Output: sAbiDumpFile, Description: "header-abi-dumper " + srcFile.Rel(),
Input: srcFile, Output: sAbiDumpFile,
Implicit: objFile, Input: srcFile,
Implicit: objFile,
Args: map[string]string{ Args: map[string]string{
"cFlags": moduleCflags, "cFlags": moduleCflags,
"exportDirs": flags.sAbiFlags, "exportDirs": flags.sAbiFlags,
@@ -452,10 +444,11 @@ func TransformObjToStaticLib(ctx android.ModuleContext, objFiles android.Paths,
} }
ctx.ModuleBuild(pctx, android.ModuleBuildParams{ ctx.ModuleBuild(pctx, android.ModuleBuildParams{
Rule: ar, Rule: ar,
Output: outputFile, Description: "static link " + outputFile.Base(),
Inputs: objFiles, Output: outputFile,
Implicits: deps, Inputs: objFiles,
Implicits: deps,
Args: map[string]string{ Args: map[string]string{
"arFlags": arFlags, "arFlags": arFlags,
"arCmd": arCmd, "arCmd": arCmd,
@@ -477,24 +470,27 @@ func transformDarwinObjToStaticLib(ctx android.ModuleContext, objFiles android.P
dummyAr := android.PathForModuleOut(ctx, "dummy"+staticLibraryExtension) dummyAr := android.PathForModuleOut(ctx, "dummy"+staticLibraryExtension)
ctx.ModuleBuild(pctx, android.ModuleBuildParams{ ctx.ModuleBuild(pctx, android.ModuleBuildParams{
Rule: emptyFile, Rule: emptyFile,
Output: dummy, Description: "empty object file",
Implicits: deps, Output: dummy,
Implicits: deps,
}) })
ctx.ModuleBuild(pctx, android.ModuleBuildParams{ ctx.ModuleBuild(pctx, android.ModuleBuildParams{
Rule: darwinAr, Rule: darwinAr,
Output: dummyAr, Description: "empty static archive",
Input: dummy, Output: dummyAr,
Input: dummy,
Args: map[string]string{ Args: map[string]string{
"arFlags": arFlags, "arFlags": arFlags,
}, },
}) })
ctx.ModuleBuild(pctx, android.ModuleBuildParams{ ctx.ModuleBuild(pctx, android.ModuleBuildParams{
Rule: darwinAppendAr, Rule: darwinAppendAr,
Output: outputFile, Description: "static link " + outputFile.Base(),
Input: dummy, Output: outputFile,
Input: dummy,
Args: map[string]string{ Args: map[string]string{
"arFlags": "d", "arFlags": "d",
"inAr": dummyAr.String(), "inAr": dummyAr.String(),
@@ -519,10 +515,11 @@ func transformDarwinObjToStaticLib(ctx android.ModuleContext, objFiles android.P
} }
build := android.ModuleBuildParams{ build := android.ModuleBuildParams{
Rule: darwinAr, Rule: darwinAr,
Output: out, Description: "static link " + out.Base(),
Inputs: l, Output: out,
Implicits: deps, Inputs: l,
Implicits: deps,
Args: map[string]string{ Args: map[string]string{
"arFlags": arFlags, "arFlags": arFlags,
}, },
@@ -592,10 +589,11 @@ func TransformObjToDynamicBinary(ctx android.ModuleContext,
} }
ctx.ModuleBuild(pctx, android.ModuleBuildParams{ ctx.ModuleBuild(pctx, android.ModuleBuildParams{
Rule: ld, Rule: ld,
Output: outputFile, Description: "link " + outputFile.Base(),
Inputs: objFiles, Output: outputFile,
Implicits: deps, Inputs: objFiles,
Implicits: deps,
Args: map[string]string{ Args: map[string]string{
"ldCmd": ldCmd, "ldCmd": ldCmd,
"crtBegin": crtBegin.String(), "crtBegin": crtBegin.String(),
@@ -618,10 +616,11 @@ func TransformDumpToLinkedDump(ctx android.ModuleContext, sAbiDumps android.Path
linkedDumpDep = symbolFile.Path() linkedDumpDep = symbolFile.Path()
} }
ctx.ModuleBuild(pctx, android.ModuleBuildParams{ ctx.ModuleBuild(pctx, android.ModuleBuildParams{
Rule: sAbiLink, Rule: sAbiLink,
Output: outputFile, Description: "header-abi-linker " + outputFile.Base(),
Inputs: sAbiDumps, Output: outputFile,
Implicit: linkedDumpDep, Inputs: sAbiDumps,
Implicit: linkedDumpDep,
Args: map[string]string{ Args: map[string]string{
"symbolFile": symbolFileStr, "symbolFile": symbolFileStr,
"arch": ctx.Arch().ArchType.Name, "arch": ctx.Arch().ArchType.Name,
@@ -636,10 +635,11 @@ func SourceAbiDiff(ctx android.ModuleContext, inputDump android.Path, referenceD
baseName string) android.OptionalPath { baseName string) android.OptionalPath {
outputFile := android.PathForModuleOut(ctx, baseName+".abidiff") outputFile := android.PathForModuleOut(ctx, baseName+".abidiff")
ctx.ModuleBuild(pctx, android.ModuleBuildParams{ ctx.ModuleBuild(pctx, android.ModuleBuildParams{
Rule: sAbiDiff, Rule: sAbiDiff,
Output: outputFile, Description: "header-abi-diff " + outputFile.Base(),
Input: inputDump, Output: outputFile,
Implicit: referenceDump, Input: inputDump,
Implicit: referenceDump,
Args: map[string]string{ Args: map[string]string{
"referenceDump": referenceDump.String(), "referenceDump": referenceDump.String(),
}, },
@@ -654,9 +654,10 @@ func TransformSharedObjectToToc(ctx android.ModuleContext, inputFile android.Wri
crossCompile := gccCmd(flags.toolchain, "") crossCompile := gccCmd(flags.toolchain, "")
ctx.ModuleBuild(pctx, android.ModuleBuildParams{ ctx.ModuleBuild(pctx, android.ModuleBuildParams{
Rule: toc, Rule: toc,
Output: outputFile, Description: "generate toc " + inputFile.Base(),
Input: inputFile, Output: outputFile,
Input: inputFile,
Args: map[string]string{ Args: map[string]string{
"crossCompile": crossCompile, "crossCompile": crossCompile,
}, },
@@ -675,9 +676,10 @@ func TransformObjsToObj(ctx android.ModuleContext, objFiles android.Paths,
} }
ctx.ModuleBuild(pctx, android.ModuleBuildParams{ ctx.ModuleBuild(pctx, android.ModuleBuildParams{
Rule: partialLd, Rule: partialLd,
Output: outputFile, Description: "link " + outputFile.Base(),
Inputs: objFiles, Output: outputFile,
Inputs: objFiles,
Args: map[string]string{ Args: map[string]string{
"ldCmd": ldCmd, "ldCmd": ldCmd,
"ldFlags": flags.ldFlags, "ldFlags": flags.ldFlags,
@@ -692,9 +694,10 @@ func TransformBinaryPrefixSymbols(ctx android.ModuleContext, prefix string, inpu
objcopyCmd := gccCmd(flags.toolchain, "objcopy") objcopyCmd := gccCmd(flags.toolchain, "objcopy")
ctx.ModuleBuild(pctx, android.ModuleBuildParams{ ctx.ModuleBuild(pctx, android.ModuleBuildParams{
Rule: prefixSymbols, Rule: prefixSymbols,
Output: outputFile, Description: "prefix symbols " + outputFile.Base(),
Input: inputFile, Output: outputFile,
Input: inputFile,
Args: map[string]string{ Args: map[string]string{
"objcopyCmd": objcopyCmd, "objcopyCmd": objcopyCmd,
"prefix": prefix, "prefix": prefix,
@@ -718,9 +721,10 @@ func TransformStrip(ctx android.ModuleContext, inputFile android.Path,
} }
ctx.ModuleBuild(pctx, android.ModuleBuildParams{ ctx.ModuleBuild(pctx, android.ModuleBuildParams{
Rule: strip, Rule: strip,
Output: outputFile, Description: "strip " + outputFile.Base(),
Input: inputFile, Output: outputFile,
Input: inputFile,
Args: map[string]string{ Args: map[string]string{
"crossCompile": crossCompile, "crossCompile": crossCompile,
"args": args, "args": args,
@@ -732,9 +736,10 @@ func TransformDarwinStrip(ctx android.ModuleContext, inputFile android.Path,
outputFile android.WritablePath) { outputFile android.WritablePath) {
ctx.ModuleBuild(pctx, android.ModuleBuildParams{ ctx.ModuleBuild(pctx, android.ModuleBuildParams{
Rule: darwinStrip, Rule: darwinStrip,
Output: outputFile, Description: "strip " + outputFile.Base(),
Input: inputFile, Output: outputFile,
Input: inputFile,
}) })
} }
@@ -756,8 +761,9 @@ func CopyGccLib(ctx android.ModuleContext, libName string,
flags builderFlags, outputFile android.WritablePath) { flags builderFlags, outputFile android.WritablePath) {
ctx.ModuleBuild(pctx, android.ModuleBuildParams{ ctx.ModuleBuild(pctx, android.ModuleBuildParams{
Rule: copyGccLib, Rule: copyGccLib,
Output: outputFile, Description: "copy gcc library " + libName,
Output: outputFile,
Args: map[string]string{ Args: map[string]string{
"ccCmd": gccCmd(flags.toolchain, "gcc"), "ccCmd": gccCmd(flags.toolchain, "gcc"),
"cFlags": flags.globalFlags, "cFlags": flags.globalFlags,

View File

@@ -37,7 +37,6 @@ var (
blueprint.RuleParams{ blueprint.RuleParams{
Command: "BISON_PKGDATADIR=$yaccDataDir $yaccCmd -d $yaccFlags --defines=$hFile -o $out $in", Command: "BISON_PKGDATADIR=$yaccDataDir $yaccCmd -d $yaccFlags --defines=$hFile -o $out $in",
CommandDeps: []string{"$yaccCmd"}, CommandDeps: []string{"$yaccCmd"},
Description: "yacc $out",
}, },
"yaccFlags", "hFile") "yaccFlags", "hFile")
@@ -45,7 +44,6 @@ var (
blueprint.RuleParams{ blueprint.RuleParams{
Command: "$lexCmd -o$out $in", Command: "$lexCmd -o$out $in",
CommandDeps: []string{"$lexCmd"}, CommandDeps: []string{"$lexCmd"},
Description: "lex $out",
}) })
aidl = pctx.AndroidStaticRule("aidl", aidl = pctx.AndroidStaticRule("aidl",
@@ -54,7 +52,6 @@ var (
CommandDeps: []string{"$aidlCmd"}, CommandDeps: []string{"$aidlCmd"},
Depfile: "${out}.d", Depfile: "${out}.d",
Deps: blueprint.DepsGCC, Deps: blueprint.DepsGCC,
Description: "aidl $out",
}, },
"aidlFlags", "outDir") "aidlFlags", "outDir")
) )
@@ -64,6 +61,7 @@ func genYacc(ctx android.ModuleContext, yaccFile android.Path, outFile android.M
ctx.ModuleBuild(pctx, android.ModuleBuildParams{ ctx.ModuleBuild(pctx, android.ModuleBuildParams{
Rule: yacc, Rule: yacc,
Description: "yacc " + yaccFile.Rel(),
Output: outFile, Output: outFile,
ImplicitOutput: headerFile, ImplicitOutput: headerFile,
Input: yaccFile, Input: yaccFile,
@@ -79,9 +77,10 @@ func genYacc(ctx android.ModuleContext, yaccFile android.Path, outFile android.M
func genAidl(ctx android.ModuleContext, aidlFile android.Path, outFile android.ModuleGenPath, aidlFlags string) android.Paths { func genAidl(ctx android.ModuleContext, aidlFile android.Path, outFile android.ModuleGenPath, aidlFlags string) android.Paths {
ctx.ModuleBuild(pctx, android.ModuleBuildParams{ ctx.ModuleBuild(pctx, android.ModuleBuildParams{
Rule: aidl, Rule: aidl,
Output: outFile, Description: "aidl " + aidlFile.Rel(),
Input: aidlFile, Output: outFile,
Input: aidlFile,
Args: map[string]string{ Args: map[string]string{
"aidlFlags": aidlFlags, "aidlFlags": aidlFlags,
"outDir": android.PathForModuleGen(ctx, "aidl").String(), "outDir": android.PathForModuleGen(ctx, "aidl").String(),
@@ -94,9 +93,10 @@ func genAidl(ctx android.ModuleContext, aidlFile android.Path, outFile android.M
func genLex(ctx android.ModuleContext, lexFile android.Path, outFile android.ModuleGenPath) { func genLex(ctx android.ModuleContext, lexFile android.Path, outFile android.ModuleGenPath) {
ctx.ModuleBuild(pctx, android.ModuleBuildParams{ ctx.ModuleBuild(pctx, android.ModuleBuildParams{
Rule: lex, Rule: lex,
Output: outFile, Description: "lex " + lexFile.Rel(),
Input: lexFile, Output: outFile,
Input: lexFile,
}) })
} }

View File

@@ -31,7 +31,6 @@ var (
// let us have only implicit outputs. // let us have only implicit outputs.
Command: "$versionerCmd -o $outDir $srcDir $depsPath && touch $out", Command: "$versionerCmd -o $outDir $srcDir $depsPath && touch $out",
CommandDeps: []string{"$versionerCmd"}, CommandDeps: []string{"$versionerCmd"},
Description: "versioner preprocess $in",
}, },
"depsPath", "srcDir", "outDir") "depsPath", "srcDir", "outDir")
) )
@@ -238,6 +237,7 @@ func processHeadersWithVersioner(ctx android.ModuleContext, srcDir, outDir andro
timestampFile := android.PathForModuleOut(ctx, "versioner.timestamp") timestampFile := android.PathForModuleOut(ctx, "versioner.timestamp")
ctx.ModuleBuild(pctx, android.ModuleBuildParams{ ctx.ModuleBuild(pctx, android.ModuleBuildParams{
Rule: preprocessBionicHeaders, Rule: preprocessBionicHeaders,
Description: "versioner preprocess " + srcDir.Rel(),
Output: timestampFile, Output: timestampFile,
Implicits: append(srcFiles, depsGlob...), Implicits: append(srcFiles, depsGlob...),
ImplicitOutputs: installPaths, ImplicitOutputs: installPaths,

View File

@@ -32,7 +32,6 @@ var (
blueprint.RuleParams{ blueprint.RuleParams{
Command: "$toolPath --arch $arch --api $apiLevel --api-map " + Command: "$toolPath --arch $arch --api $apiLevel --api-map " +
"$apiMap $vndk $in $out", "$apiMap $vndk $in $out",
Description: "genStubSrc $out",
CommandDeps: []string{"$toolPath"}, CommandDeps: []string{"$toolPath"},
}, "arch", "apiLevel", "apiMap", "vndk") }, "arch", "apiLevel", "apiMap", "vndk")
@@ -251,10 +250,11 @@ func compileStubLibrary(ctx ModuleContext, flags Flags, symbolFile, apiLevel, vn
symbolFilePath := android.PathForModuleSrc(ctx, symbolFile) symbolFilePath := android.PathForModuleSrc(ctx, symbolFile)
apiLevelsJson := android.GetApiLevelsJson(ctx) apiLevelsJson := android.GetApiLevelsJson(ctx)
ctx.ModuleBuild(pctx, android.ModuleBuildParams{ ctx.ModuleBuild(pctx, android.ModuleBuildParams{
Rule: genStubSrc, Rule: genStubSrc,
Outputs: []android.WritablePath{stubSrcPath, versionScriptPath}, Description: "generate stubs " + symbolFilePath.Rel(),
Input: symbolFilePath, Outputs: []android.WritablePath{stubSrcPath, versionScriptPath},
Implicits: []android.Path{apiLevelsJson}, Input: symbolFilePath,
Implicits: []android.Path{apiLevelsJson},
Args: map[string]string{ Args: map[string]string{
"arch": arch, "arch": arch,
"apiLevel": apiLevel, "apiLevel": apiLevel,

View File

@@ -113,10 +113,11 @@ func (n *ndkSingleton) GenerateBuildActions(ctx blueprint.SingletonContext) {
combinedLicense := getNdkInstallBase(ctx).Join(ctx, "NOTICE") combinedLicense := getNdkInstallBase(ctx).Join(ctx, "NOTICE")
ctx.Build(pctx, blueprint.BuildParams{ ctx.Build(pctx, blueprint.BuildParams{
Rule: android.Cat, Rule: android.Cat,
Outputs: []string{combinedLicense.String()}, Description: "combine licenses",
Inputs: licensePaths, Outputs: []string{combinedLicense.String()},
Optional: true, Inputs: licensePaths,
Optional: true,
}) })
depPaths := append(installPaths, combinedLicense.String()) depPaths := append(installPaths, combinedLicense.String())

View File

@@ -30,7 +30,6 @@ var (
blueprint.RuleParams{ blueprint.RuleParams{
Command: "$protocCmd --cpp_out=$outDir $protoFlags $in", Command: "$protocCmd --cpp_out=$outDir $protoFlags $in",
CommandDeps: []string{"$protocCmd"}, CommandDeps: []string{"$protocCmd"},
Description: "protoc $out",
}, "protoFlags", "outDir") }, "protoFlags", "outDir")
) )
@@ -48,9 +47,10 @@ func genProto(ctx android.ModuleContext, protoFile android.Path,
outFile := android.GenPathWithExt(ctx, "proto", protoFile, "pb.cc") outFile := android.GenPathWithExt(ctx, "proto", protoFile, "pb.cc")
headerFile := android.GenPathWithExt(ctx, "proto", protoFile, "pb.h") headerFile := android.GenPathWithExt(ctx, "proto", protoFile, "pb.h")
ctx.ModuleBuild(pctx, android.ModuleBuildParams{ ctx.ModuleBuild(pctx, android.ModuleBuildParams{
Rule: proto, Rule: proto,
Outputs: android.WritablePaths{outFile, headerFile}, Description: "protoc " + protoFile.Rel(),
Input: protoFile, Outputs: android.WritablePaths{outFile, headerFile},
Input: protoFile,
Args: map[string]string{ Args: map[string]string{
"outDir": protoDir(ctx).String(), "outDir": protoDir(ctx).String(),
"protoFlags": protoFlags, "protoFlags": protoFlags,

View File

@@ -30,7 +30,6 @@ var relocationPackerRule = pctx.AndroidStaticRule("packRelocations",
blueprint.RuleParams{ blueprint.RuleParams{
Command: "rm -f $out && cp $in $out && $relocationPackerCmd $out", Command: "rm -f $out && cp $in $out && $relocationPackerCmd $out",
CommandDeps: []string{"$relocationPackerCmd"}, CommandDeps: []string{"$relocationPackerCmd"},
Description: "pack relocations $out",
}) })
type RelocationPackerProperties struct { type RelocationPackerProperties struct {
@@ -77,8 +76,9 @@ func (p *relocationPacker) needsPacking(ctx ModuleContext) bool {
func (p *relocationPacker) pack(ctx ModuleContext, in, out android.ModuleOutPath, flags builderFlags) { func (p *relocationPacker) pack(ctx ModuleContext, in, out android.ModuleOutPath, flags builderFlags) {
ctx.ModuleBuild(pctx, android.ModuleBuildParams{ ctx.ModuleBuild(pctx, android.ModuleBuildParams{
Rule: relocationPackerRule, Rule: relocationPackerRule,
Output: out, Description: "pack relocations",
Input: in, Output: out,
Input: in,
}) })
} }

View File

@@ -39,7 +39,6 @@ var (
CommandDeps: []string{"$rsCmd"}, CommandDeps: []string{"$rsCmd"},
Depfile: "${out}.d", Depfile: "${out}.d",
Deps: blueprint.DepsGCC, Deps: blueprint.DepsGCC,
Description: "rsCpp $out",
}, },
"depFiles", "outDir", "rsFlags", "stampFile") "depFiles", "outDir", "rsFlags", "stampFile")
) )
@@ -67,6 +66,7 @@ func rsGenerateCpp(ctx android.ModuleContext, rsFiles android.Paths, rsFlags str
ctx.ModuleBuild(pctx, android.ModuleBuildParams{ ctx.ModuleBuild(pctx, android.ModuleBuildParams{
Rule: rsCpp, Rule: rsCpp,
Description: "llvm-rs-cc",
Output: stampFile, Output: stampFile,
ImplicitOutputs: cppFiles, ImplicitOutputs: cppFiles,
Inputs: rsFiles, Inputs: rsFiles,

View File

@@ -218,11 +218,17 @@ func (g *generator) GenerateAndroidBuildActions(ctx android.ModuleContext) {
} }
func (g *generator) generateSourceFile(ctx android.ModuleContext, task generateTask) { func (g *generator) generateSourceFile(ctx android.ModuleContext, task generateTask) {
desc := "generate"
if len(task.out) == 1 {
desc += " " + task.out[0].Base()
}
params := android.ModuleBuildParams{ params := android.ModuleBuildParams{
Rule: g.rule, Rule: g.rule,
Outputs: task.out, Description: "generate",
Inputs: task.in, Outputs: task.out,
Implicits: g.deps, Inputs: task.in,
Implicits: g.deps,
} }
if g.properties.Depfile { if g.properties.Depfile {
depfile := android.GenPathWithExt(ctx, "", task.out[0], task.out[0].Ext()+".d") depfile := android.GenPathWithExt(ctx, "", task.out[0], task.out[0].Ext()+".d")

View File

@@ -34,7 +34,6 @@ var (
`-J $javaDir || ( rm -rf "$javaDir/*"; exit 41 ) && ` + `-J $javaDir || ( rm -rf "$javaDir/*"; exit 41 ) && ` +
`find $javaDir -name "*.java" > $javaFileList`, `find $javaDir -name "*.java" > $javaFileList`,
CommandDeps: []string{"$aaptCmd"}, CommandDeps: []string{"$aaptCmd"},
Description: "aapt create R.java $out",
}, },
"aaptFlags", "publicResourcesFile", "proguardOptionsFile", "javaDir", "javaFileList") "aaptFlags", "publicResourcesFile", "proguardOptionsFile", "javaDir", "javaFileList")
@@ -42,7 +41,6 @@ var (
blueprint.RuleParams{ blueprint.RuleParams{
Command: `rm -f $out && $aaptCmd package $aaptFlags -F $out`, Command: `rm -f $out && $aaptCmd package $aaptFlags -F $out`,
CommandDeps: []string{"$aaptCmd"}, CommandDeps: []string{"$aaptCmd"},
Description: "aapt export package $out",
}, },
"aaptFlags", "publicResourcesFile", "proguardOptionsFile", "javaDir", "javaFileList") "aaptFlags", "publicResourcesFile", "proguardOptionsFile", "javaDir", "javaFileList")
@@ -51,7 +49,6 @@ var (
// TODO: add-jni-shared-libs-to-package // TODO: add-jni-shared-libs-to-package
Command: `cp -f $in $out.tmp && $aaptCmd package -u $aaptFlags -F $out.tmp && mv $out.tmp $out`, Command: `cp -f $in $out.tmp && $aaptCmd package -u $aaptFlags -F $out.tmp && mv $out.tmp $out`,
CommandDeps: []string{"$aaptCmd"}, CommandDeps: []string{"$aaptCmd"},
Description: "aapt package $out",
}, },
"aaptFlags") "aaptFlags")
@@ -59,7 +56,6 @@ var (
blueprint.RuleParams{ blueprint.RuleParams{
Command: `java -jar $signapkCmd $certificates $in $out`, Command: `java -jar $signapkCmd $certificates $in $out`,
CommandDeps: []string{"$signapkCmd"}, CommandDeps: []string{"$signapkCmd"},
Description: "signapk $out",
}, },
"certificates") "certificates")
@@ -68,7 +64,7 @@ var (
Command: "java -classpath $androidManifestMergerCmd com.android.manifmerger.Main merge " + Command: "java -classpath $androidManifestMergerCmd com.android.manifmerger.Main merge " +
"--main $in --libs $libsManifests --out $out", "--main $in --libs $libsManifests --out $out",
CommandDeps: []string{"$androidManifestMergerCmd"}, CommandDeps: []string{"$androidManifestMergerCmd"},
Description: "merge manifest files $out", Description: "merge manifest files",
}, },
"libsManifests") "libsManifests")
) )
@@ -87,9 +83,10 @@ func CreateResourceJavaFiles(ctx android.ModuleContext, flags []string,
proguardOptionsFile := android.PathForModuleOut(ctx, "proguard.options") proguardOptionsFile := android.PathForModuleOut(ctx, "proguard.options")
ctx.ModuleBuild(pctx, android.ModuleBuildParams{ ctx.ModuleBuild(pctx, android.ModuleBuildParams{
Rule: aaptCreateResourceJavaFile, Rule: aaptCreateResourceJavaFile,
Outputs: android.WritablePaths{publicResourcesFile, proguardOptionsFile, javaFileList}, Description: "aapt create R.java",
Implicits: deps, Outputs: android.WritablePaths{publicResourcesFile, proguardOptionsFile, javaFileList},
Implicits: deps,
Args: map[string]string{ Args: map[string]string{
"aaptFlags": strings.Join(flags, " "), "aaptFlags": strings.Join(flags, " "),
"publicResourcesFile": publicResourcesFile.String(), "publicResourcesFile": publicResourcesFile.String(),
@@ -106,9 +103,10 @@ func CreateExportPackage(ctx android.ModuleContext, flags []string, deps android
outputFile := android.PathForModuleOut(ctx, "package-export.apk") outputFile := android.PathForModuleOut(ctx, "package-export.apk")
ctx.ModuleBuild(pctx, android.ModuleBuildParams{ ctx.ModuleBuild(pctx, android.ModuleBuildParams{
Rule: aaptCreateAssetsPackage, Rule: aaptCreateAssetsPackage,
Output: outputFile, Description: "aapt export package",
Implicits: deps, Output: outputFile,
Implicits: deps,
Args: map[string]string{ Args: map[string]string{
"aaptFlags": strings.Join(flags, " "), "aaptFlags": strings.Join(flags, " "),
}, },
@@ -123,9 +121,10 @@ func CreateAppPackage(ctx android.ModuleContext, flags []string, jarFile android
resourceApk := android.PathForModuleOut(ctx, "resources.apk") resourceApk := android.PathForModuleOut(ctx, "resources.apk")
ctx.ModuleBuild(pctx, android.ModuleBuildParams{ ctx.ModuleBuild(pctx, android.ModuleBuildParams{
Rule: aaptAddResources, Rule: aaptAddResources,
Output: resourceApk, Description: "aapt package",
Input: jarFile, Output: resourceApk,
Input: jarFile,
Args: map[string]string{ Args: map[string]string{
"aaptFlags": strings.Join(flags, " "), "aaptFlags": strings.Join(flags, " "),
}, },
@@ -139,9 +138,10 @@ func CreateAppPackage(ctx android.ModuleContext, flags []string, jarFile android
} }
ctx.ModuleBuild(pctx, android.ModuleBuildParams{ ctx.ModuleBuild(pctx, android.ModuleBuildParams{
Rule: signapk, Rule: signapk,
Output: outputFile, Description: "signapk",
Input: resourceApk, Output: outputFile,
Input: resourceApk,
Args: map[string]string{ Args: map[string]string{
"certificates": strings.Join(certificateArgs, " "), "certificates": strings.Join(certificateArgs, " "),
}, },

View File

@@ -45,7 +45,6 @@ var (
`find $outDir -name "*.class" > $out`, `find $outDir -name "*.class" > $out`,
Rspfile: "$out.rsp", Rspfile: "$out.rsp",
RspfileContent: "$in", RspfileContent: "$in",
Description: "javac $outDir",
}, },
"javacCmd", "javacFlags", "bootClasspath", "classpath", "outDir") "javacCmd", "javacFlags", "bootClasspath", "classpath", "outDir")
@@ -53,7 +52,6 @@ var (
blueprint.RuleParams{ blueprint.RuleParams{
Command: `$jarCmd -o $out $jarArgs`, Command: `$jarCmd -o $out $jarArgs`,
CommandDeps: []string{"$jarCmd"}, CommandDeps: []string{"$jarCmd"},
Description: "jar $out",
}, },
"jarCmd", "jarArgs") "jarCmd", "jarArgs")
@@ -63,7 +61,6 @@ var (
`$dxCmd --dex --output=$outDir $dxFlags $in || ( rm -rf "$outDir"; exit 41 ) && ` + `$dxCmd --dex --output=$outDir $dxFlags $in || ( rm -rf "$outDir"; exit 41 ) && ` +
`find "$outDir" -name "classes*.dex" > $out`, `find "$outDir" -name "classes*.dex" > $out`,
CommandDeps: []string{"$dxCmd"}, CommandDeps: []string{"$dxCmd"},
Description: "dex $out",
}, },
"outDir", "dxFlags") "outDir", "dxFlags")
@@ -71,7 +68,6 @@ var (
blueprint.RuleParams{ blueprint.RuleParams{
Command: "java -jar $jarjarCmd process $rulesFile $in $out", Command: "java -jar $jarjarCmd process $rulesFile $in $out",
CommandDeps: []string{"$jarjarCmd", "$rulesFile"}, CommandDeps: []string{"$jarjarCmd", "$rulesFile"},
Description: "jarjar $out",
}, },
"rulesFile") "rulesFile")
@@ -81,7 +77,6 @@ var (
`find $outDir -name "*.class" > $classFile && ` + `find $outDir -name "*.class" > $classFile && ` +
`find $outDir -type f -a \! -name "*.class" -a \! -name "MANIFEST.MF" > $resourceFile || ` + `find $outDir -type f -a \! -name "*.class" -a \! -name "MANIFEST.MF" > $resourceFile || ` +
`(rm -rf $outDir; exit 42)`, `(rm -rf $outDir; exit 42)`,
Description: "extract java prebuilt $outDir",
}, },
"outDir", "classFile", "resourceFile") "outDir", "classFile", "resourceFile")
) )
@@ -122,10 +117,11 @@ func TransformJavaToClasses(ctx android.ModuleContext, srcFiles android.Paths, s
deps = append(deps, srcFileLists...) deps = append(deps, srcFileLists...)
ctx.ModuleBuild(pctx, android.ModuleBuildParams{ ctx.ModuleBuild(pctx, android.ModuleBuildParams{
Rule: javac, Rule: javac,
Output: classFileList, Description: "javac",
Inputs: srcFiles, Output: classFileList,
Implicits: deps, Inputs: srcFiles,
Implicits: deps,
Args: map[string]string{ Args: map[string]string{
"javacFlags": javacFlags, "javacFlags": javacFlags,
"bootClasspath": flags.bootClasspath, "bootClasspath": flags.bootClasspath,
@@ -156,9 +152,10 @@ func TransformClassesToJar(ctx android.ModuleContext, classes []jarSpec,
} }
ctx.ModuleBuild(pctx, android.ModuleBuildParams{ ctx.ModuleBuild(pctx, android.ModuleBuildParams{
Rule: jar, Rule: jar,
Output: outputFile, Description: "jar",
Implicits: deps, Output: outputFile,
Implicits: deps,
Args: map[string]string{ Args: map[string]string{
"jarArgs": strings.Join(jarArgs, " "), "jarArgs": strings.Join(jarArgs, " "),
}, },
@@ -174,9 +171,10 @@ func TransformClassesJarToDex(ctx android.ModuleContext, classesJar android.Path
outputFile := android.PathForModuleOut(ctx, "dex.filelist") outputFile := android.PathForModuleOut(ctx, "dex.filelist")
ctx.ModuleBuild(pctx, android.ModuleBuildParams{ ctx.ModuleBuild(pctx, android.ModuleBuildParams{
Rule: dx, Rule: dx,
Output: outputFile, Description: "dx",
Input: classesJar, Output: outputFile,
Input: classesJar,
Args: map[string]string{ Args: map[string]string{
"dxFlags": flags.dxFlags, "dxFlags": flags.dxFlags,
"outDir": outDir.String(), "outDir": outDir.String(),
@@ -202,9 +200,10 @@ func TransformDexToJavaLib(ctx android.ModuleContext, resources []jarSpec,
jarArgs = append(jarArgs, dexJarSpec.soongJarArgs()) jarArgs = append(jarArgs, dexJarSpec.soongJarArgs())
ctx.ModuleBuild(pctx, android.ModuleBuildParams{ ctx.ModuleBuild(pctx, android.ModuleBuildParams{
Rule: jar, Rule: jar,
Output: outputFile, Description: "jar",
Implicits: deps, Output: outputFile,
Implicits: deps,
Args: map[string]string{ Args: map[string]string{
"jarArgs": strings.Join(jarArgs, " "), "jarArgs": strings.Join(jarArgs, " "),
}, },
@@ -216,10 +215,11 @@ func TransformDexToJavaLib(ctx android.ModuleContext, resources []jarSpec,
func TransformJarJar(ctx android.ModuleContext, classesJar android.Path, rulesFile android.Path) android.Path { func TransformJarJar(ctx android.ModuleContext, classesJar android.Path, rulesFile android.Path) android.Path {
outputFile := android.PathForModuleOut(ctx, "classes-jarjar.jar") outputFile := android.PathForModuleOut(ctx, "classes-jarjar.jar")
ctx.ModuleBuild(pctx, android.ModuleBuildParams{ ctx.ModuleBuild(pctx, android.ModuleBuildParams{
Rule: jarjar, Rule: jarjar,
Output: outputFile, Description: "jarjar",
Input: classesJar, Output: outputFile,
Implicit: rulesFile, Input: classesJar,
Implicit: rulesFile,
Args: map[string]string{ Args: map[string]string{
"rulesFile": rulesFile.String(), "rulesFile": rulesFile.String(),
}, },
@@ -236,9 +236,10 @@ func TransformPrebuiltJarToClasses(ctx android.ModuleContext,
resourceFileList := android.PathForModuleOut(ctx, "extracted/resources.list") resourceFileList := android.PathForModuleOut(ctx, "extracted/resources.list")
ctx.ModuleBuild(pctx, android.ModuleBuildParams{ ctx.ModuleBuild(pctx, android.ModuleBuildParams{
Rule: extractPrebuilt, Rule: extractPrebuilt,
Outputs: android.WritablePaths{classFileList, resourceFileList}, Description: "extract classes",
Input: prebuilt, Outputs: android.WritablePaths{classFileList, resourceFileList},
Input: prebuilt,
Args: map[string]string{ Args: map[string]string{
"outDir": classDir.String(), "outDir": classDir.String(),
"classFile": classFileList.String(), "classFile": classFileList.String(),

View File

@@ -37,7 +37,6 @@ var (
blueprint.RuleParams{ blueprint.RuleParams{
Command: "$aidlCmd -d$depFile $aidlFlags $in $out", Command: "$aidlCmd -d$depFile $aidlFlags $in $out",
CommandDeps: []string{"$aidlCmd"}, CommandDeps: []string{"$aidlCmd"},
Description: "aidl $out",
}, },
"depFile", "aidlFlags") "depFile", "aidlFlags")
@@ -45,14 +44,12 @@ var (
blueprint.RuleParams{ blueprint.RuleParams{
Command: "$logtagsCmd -o $out $in $allLogtagsFile", Command: "$logtagsCmd -o $out $in $allLogtagsFile",
CommandDeps: []string{"$logtagsCmd"}, CommandDeps: []string{"$logtagsCmd"},
Description: "logtags $out",
}) })
mergeLogtags = pctx.AndroidStaticRule("mergeLogtags", mergeLogtags = pctx.AndroidStaticRule("mergeLogtags",
blueprint.RuleParams{ blueprint.RuleParams{
Command: "$mergeLogtagsCmd -o $out $in", Command: "$mergeLogtagsCmd -o $out $in",
CommandDeps: []string{"$mergeLogtagsCmd"}, CommandDeps: []string{"$mergeLogtagsCmd"},
Description: "merge logtags $out",
}) })
) )
@@ -61,9 +58,10 @@ func genAidl(ctx android.ModuleContext, aidlFile android.Path, aidlFlags string)
depFile := javaFile.String() + ".d" depFile := javaFile.String() + ".d"
ctx.ModuleBuild(pctx, android.ModuleBuildParams{ ctx.ModuleBuild(pctx, android.ModuleBuildParams{
Rule: aidl, Rule: aidl,
Output: javaFile, Description: "aidl " + aidlFile.Rel(),
Input: aidlFile, Output: javaFile,
Input: aidlFile,
Args: map[string]string{ Args: map[string]string{
"depFile": depFile, "depFile": depFile,
"aidlFlags": aidlFlags, "aidlFlags": aidlFlags,
@@ -77,9 +75,10 @@ func genLogtags(ctx android.ModuleContext, logtagsFile android.Path) android.Pat
javaFile := android.GenPathWithExt(ctx, "logtags", logtagsFile, "java") javaFile := android.GenPathWithExt(ctx, "logtags", logtagsFile, "java")
ctx.ModuleBuild(pctx, android.ModuleBuildParams{ ctx.ModuleBuild(pctx, android.ModuleBuildParams{
Rule: logtags, Rule: logtags,
Output: javaFile, Description: "logtags " + logtagsFile.Rel(),
Input: logtagsFile, Output: javaFile,
Input: logtagsFile,
}) })
return javaFile return javaFile
@@ -122,8 +121,9 @@ func (l *logtagsSingleton) GenerateBuildActions(ctx blueprint.SingletonContext)
}) })
ctx.Build(pctx, blueprint.BuildParams{ ctx.Build(pctx, blueprint.BuildParams{
Rule: mergeLogtags, Rule: mergeLogtags,
Outputs: []string{"$allLogtagsFile"}, Description: "merge logtags",
Inputs: allLogtags.Strings(), Outputs: []string{"$allLogtagsFile"},
Inputs: allLogtags.Strings(),
}) })
} }

View File

@@ -35,7 +35,6 @@ var (
`$parCmd -o $parFile $parArgs && echo '#!/usr/bin/env python' | cat - $parFile > $out && ` + `$parCmd -o $parFile $parArgs && echo '#!/usr/bin/env python' | cat - $parFile > $out && ` +
`chmod +x $out && (rm -f $initFile; rm -f $stub; rm -f $parFile)`, `chmod +x $out && (rm -f $initFile; rm -f $stub; rm -f $parFile)`,
CommandDeps: []string{"$parCmd", "$template"}, CommandDeps: []string{"$parCmd", "$template"},
Description: "build par $out",
}, },
"initFile", "interp", "main", "template", "stub", "parCmd", "parFile", "parArgs") "initFile", "interp", "main", "template", "stub", "parCmd", "parFile", "parArgs")
) )
@@ -78,9 +77,10 @@ func registerBuildActionForModuleFileList(ctx android.ModuleContext,
} }
ctx.ModuleBuild(pctx, android.ModuleBuildParams{ ctx.ModuleBuild(pctx, android.ModuleBuildParams{
Rule: android.WriteFile, Rule: android.WriteFile,
Output: fileList, Description: "generate " + fileList.Rel(),
Implicits: files, Output: fileList,
Implicits: files,
Args: map[string]string{ Args: map[string]string{
"content": strings.Join(content, "\n"), "content": strings.Join(content, "\n"),
}, },
@@ -126,9 +126,10 @@ func registerBuildActionForParFile(ctx android.ModuleContext,
} }
ctx.ModuleBuild(pctx, android.ModuleBuildParams{ ctx.ModuleBuild(pctx, android.ModuleBuildParams{
Rule: par, Rule: par,
Output: binFile, Description: "python archive",
Implicits: implicits, Output: binFile,
Implicits: implicits,
Args: map[string]string{ Args: map[string]string{
"initFile": initFile, "initFile": initFile,
// the "\" isn't being interpreted by regex parser, it's being // the "\" isn't being interpreted by regex parser, it's being