diff options
-rw-r--r-- | cc/builder.go | 40 | ||||
-rw-r--r-- | cc/gen.go | 16 | ||||
-rw-r--r-- | common/defs.go | 1 | ||||
-rw-r--r-- | common/glob.go | 6 | ||||
-rw-r--r-- | common/module.go | 9 | ||||
-rw-r--r-- | java/app_builder.go | 31 | ||||
-rw-r--r-- | java/builder.go | 21 | ||||
-rw-r--r-- | java/gen.go | 17 |
8 files changed, 67 insertions, 74 deletions
diff --git a/cc/builder.go b/cc/builder.go index 3d5bb779..a1d7f2c4 100644 --- a/cc/builder.go +++ b/cc/builder.go @@ -45,6 +45,7 @@ var ( Depfile: "${out}.d", Deps: blueprint.DepsGCC, Command: "$relPwd $ccCmd -c $cFlags -MD -MF ${out}.d -o $out $in", + CommandDeps: []string{"$ccCmd"}, Description: "cc $out", }, "ccCmd", "cFlags") @@ -53,6 +54,7 @@ var ( blueprint.RuleParams{ Command: "$ldCmd ${ldDirFlags} ${crtBegin} @${out}.rsp " + "${libFlags} ${crtEnd} -o ${out} ${ldFlags}", + CommandDeps: []string{"$ldCmd"}, Description: "ld $out", Rspfile: "${out}.rsp", RspfileContent: "${in}", @@ -62,6 +64,7 @@ var ( partialLd = pctx.StaticRule("partialLd", blueprint.RuleParams{ Command: "$ldCmd -r ${in} -o ${out}", + CommandDeps: []string{"$ldCmd"}, Description: "partialLd $out", }, "ldCmd") @@ -69,6 +72,7 @@ var ( ar = pctx.StaticRule("ar", blueprint.RuleParams{ Command: "rm -f ${out} && $arCmd $arFlags $out @${out}.rsp", + CommandDeps: []string{"$arCmd"}, Description: "ar $out", Rspfile: "${out}.rsp", RspfileContent: "${in}", @@ -78,6 +82,7 @@ var ( darwinAr = pctx.StaticRule("darwinAr", blueprint.RuleParams{ Command: "rm -f ${out} && $arCmd $arFlags $out $in", + CommandDeps: []string{"$arCmd"}, Description: "ar $out", }, "arCmd", "arFlags") @@ -85,6 +90,7 @@ var ( darwinAppendAr = pctx.StaticRule("darwinAppendAr", blueprint.RuleParams{ Command: "cp -f ${inAr} ${out}.tmp && $arCmd $arFlags ${out}.tmp $in && mv ${out}.tmp ${out}", + CommandDeps: []string{"$arCmd"}, Description: "ar $out", }, "arCmd", "arFlags", "inAr") @@ -92,6 +98,7 @@ var ( prefixSymbols = pctx.StaticRule("prefixSymbols", blueprint.RuleParams{ Command: "$objcopyCmd --prefix-symbols=${prefix} ${in} ${out}", + CommandDeps: []string{"$objcopyCmd"}, Description: "prefixSymbols $out", }, "objcopyCmd", "prefix") @@ -103,6 +110,7 @@ var ( Depfile: "${out}.d", Deps: blueprint.DepsGCC, Command: "$copyGccLibPath $out $ccCmd $cFlags -print-file-name=${libName}", + CommandDeps: []string{"$copyGccLibPath", "$ccCmd"}, Description: "copy gcc $out", }, "ccCmd", "cFlags", "libName") @@ -202,13 +210,11 @@ func TransformSourceToObj(ctx common.AndroidModuleContext, subdir string, srcFil ccCmd = gccCmd(flags.toolchain, ccCmd) } - objDeps := append([]string{ccCmd}, deps...) - ctx.Build(pctx, blueprint.BuildParams{ Rule: cc, Outputs: []string{objFile}, Inputs: []string{srcFile}, - Implicits: objDeps, + Implicits: deps, Args: map[string]string{ "cFlags": moduleCflags, "ccCmd": ccCmd, @@ -227,10 +233,9 @@ func TransformObjToStaticLib(ctx common.AndroidModuleContext, objFiles []string, arFlags := "crsPD" ctx.Build(pctx, blueprint.BuildParams{ - Rule: ar, - Outputs: []string{outputFile}, - Inputs: objFiles, - Implicits: []string{arCmd}, + Rule: ar, + Outputs: []string{outputFile}, + Inputs: objFiles, Args: map[string]string{ "arFlags": arFlags, "arCmd": arCmd, @@ -337,7 +342,6 @@ func TransformObjToDynamicBinary(ctx common.AndroidModuleContext, ldDirs = append(ldDirs, dir) } - deps = append(deps, ldCmd) deps = append(deps, sharedLibs...) deps = append(deps, staticLibs...) deps = append(deps, lateStaticLibs...) @@ -368,13 +372,10 @@ func TransformObjsToObj(ctx common.AndroidModuleContext, objFiles []string, ldCmd := gccCmd(flags.toolchain, "ld") - deps := []string{ldCmd} - ctx.Build(pctx, blueprint.BuildParams{ - Rule: partialLd, - Outputs: []string{outputFile}, - Inputs: objFiles, - Implicits: deps, + Rule: partialLd, + Outputs: []string{outputFile}, + Inputs: objFiles, Args: map[string]string{ "ldCmd": ldCmd, }, @@ -388,10 +389,9 @@ func TransformBinaryPrefixSymbols(ctx common.AndroidModuleContext, prefix string objcopyCmd := gccCmd(flags.toolchain, "objcopy") ctx.Build(pctx, blueprint.BuildParams{ - Rule: prefixSymbols, - Outputs: []string{outputFile}, - Inputs: []string{inputFile}, - Implicits: []string{objcopyCmd}, + Rule: prefixSymbols, + Outputs: []string{outputFile}, + Inputs: []string{inputFile}, Args: map[string]string{ "objcopyCmd": objcopyCmd, "prefix": prefix, @@ -405,10 +405,6 @@ func CopyGccLib(ctx common.AndroidModuleContext, libName string, ctx.Build(pctx, blueprint.BuildParams{ Rule: copyGccLib, Outputs: []string{outputFile}, - Implicits: []string{ - "$copyGccLibPath", - gccCmd(flags.toolchain, "gcc"), - }, Args: map[string]string{ "ccCmd": gccCmd(flags.toolchain, "gcc"), "cFlags": flags.globalFlags, @@ -38,6 +38,7 @@ var ( blueprint.RuleParams{ Command: "BISON_PKGDATADIR=$yaccDataDir $yaccCmd -d $yaccFlags -o $cppFile $in && " + "cp -f $hppFile $hFile", + CommandDeps: []string{"$yaccCmd"}, Description: "yacc $out", }, "yaccFlags", "cppFile", "hppFile", "hFile") @@ -45,6 +46,7 @@ var ( lex = pctx.StaticRule("lex", blueprint.RuleParams{ Command: "$lexCmd -o$out $in", + CommandDeps: []string{"$lexCmd"}, Description: "lex $out", }) ) @@ -57,10 +59,9 @@ func genYacc(ctx common.AndroidModuleContext, yaccFile, yaccFlags string) (cppFi headerFile = pathtools.ReplaceExtension(cppFile, "h") ctx.Build(pctx, blueprint.BuildParams{ - Rule: yacc, - Outputs: []string{cppFile, headerFile}, - Inputs: []string{yaccFile}, - Implicits: []string{"$yaccCmd"}, + Rule: yacc, + Outputs: []string{cppFile, headerFile}, + Inputs: []string{yaccFile}, Args: map[string]string{ "yaccFlags": yaccFlags, "cppFile": cppFile, @@ -78,10 +79,9 @@ func genLex(ctx common.AndroidModuleContext, lexFile string) (cppFile string) { cppFile = pathtools.ReplaceExtension(cppFile, "cpp") ctx.Build(pctx, blueprint.BuildParams{ - Rule: lex, - Outputs: []string{cppFile}, - Inputs: []string{lexFile}, - Implicits: []string{"$lexCmd"}, + Rule: lex, + Outputs: []string{cppFile}, + Inputs: []string{lexFile}, }) return cppFile diff --git a/common/defs.go b/common/defs.go index 0001ce1b..67fcb1f3 100644 --- a/common/defs.go +++ b/common/defs.go @@ -33,6 +33,7 @@ var ( androidbp = pctx.StaticRule("androidbp", blueprint.RuleParams{ Command: androidbpCmd + " ${srcDir}/Android.bp $in $out", + CommandDeps: []string{androidbpCmd}, Description: "androidbp $out", }) diff --git a/common/glob.go b/common/glob.go index 152be94e..3de18eef 100644 --- a/common/glob.go +++ b/common/glob.go @@ -46,6 +46,7 @@ var ( globRule = pctx.StaticRule("globRule", blueprint.RuleParams{ Command: fmt.Sprintf(`%s -o $out $excludes "$glob"`, globCmd), + CommandDeps: []string{globCmd}, Description: "glob $glob", Restat: true, @@ -95,9 +96,8 @@ func GlobRule(ctx globContext, globPattern string, excludes []string, // Create a rule to rebuild fileListFile if a directory in depFile changes. fileListFile // will only be rewritten if it has changed, preventing unnecesary build.ninja regenerations. ctx.Build(pctx, blueprint.BuildParams{ - Rule: globRule, - Outputs: []string{fileListFile}, - Implicits: []string{globCmd}, + Rule: globRule, + Outputs: []string{fileListFile}, Args: map[string]string{ "glob": globPattern, "excludes": JoinWithPrefixAndQuote(excludes, "-e "), diff --git a/common/module.go b/common/module.go index cb38513c..33a801fe 100644 --- a/common/module.go +++ b/common/module.go @@ -570,11 +570,10 @@ func (c *buildTargetSingleton) GenerateBuildActions(ctx blueprint.SingletonConte transMk := filepath.Join("androidmk", "Android_"+strings.Replace(filepath.Dir(origBp), "/", "_", -1)+".mk") ctx.Build(pctx, blueprint.BuildParams{ - Rule: androidbp, - Outputs: []string{transMk}, - Inputs: []string{bpFile}, - Implicits: []string{androidbpCmd}, - Optional: true, + Rule: androidbp, + Outputs: []string{transMk}, + Inputs: []string{bpFile}, + Optional: true, }) androidMks = append(androidMks, transMk) diff --git a/java/app_builder.go b/java/app_builder.go index 8e907d22..4b3d3153 100644 --- a/java/app_builder.go +++ b/java/app_builder.go @@ -34,6 +34,7 @@ var ( `$aaptCmd package -m $aaptFlags -P $publicResourcesFile -G $proguardOptionsFile ` + `-J $javaDir || ( rm -rf "$javaDir/*"; exit 41 ) && ` + `find $javaDir -name "*.java" > $javaFileList`, + CommandDeps: []string{"$aaptCmd"}, Description: "aapt create R.java $out", }, "aaptFlags", "publicResourcesFile", "proguardOptionsFile", "javaDir", "javaFileList") @@ -41,6 +42,7 @@ var ( aaptCreateAssetsPackage = pctx.StaticRule("aaptCreateAssetsPackage", blueprint.RuleParams{ Command: `rm -f $out && $aaptCmd package $aaptFlags -F $out`, + CommandDeps: []string{"$aaptCmd"}, Description: "aapt export package $out", }, "aaptFlags", "publicResourcesFile", "proguardOptionsFile", "javaDir", "javaFileList") @@ -49,6 +51,7 @@ var ( blueprint.RuleParams{ // TODO: add-jni-shared-libs-to-package Command: `cp -f $in $out.tmp && $aaptCmd package -u $aaptFlags -F $out.tmp && mv $out.tmp $out`, + CommandDeps: []string{"$aaptCmd"}, Description: "aapt package $out", }, "aaptFlags") @@ -56,6 +59,7 @@ var ( zipalign = pctx.StaticRule("zipalign", blueprint.RuleParams{ Command: `$zipalignCmd -f $zipalignFlags 4 $in $out`, + CommandDeps: []string{"$zipalignCmd"}, Description: "zipalign $out", }, "zipalignFlags") @@ -63,6 +67,7 @@ var ( signapk = pctx.StaticRule("signapk", blueprint.RuleParams{ Command: `java -jar $signapkCmd $certificates $in $out`, + CommandDeps: []string{"$signapkCmd"}, Description: "signapk $out", }, "certificates") @@ -71,6 +76,7 @@ var ( blueprint.RuleParams{ Command: "java -classpath $androidManifestMergerCmd com.android.manifmerger.Main merge " + "--main $in --libs $libsManifests --out $out", + CommandDeps: []string{"$androidManifestMergerCmd"}, Description: "merge manifest files $out", }, "libsManifests") @@ -96,8 +102,6 @@ func CreateResourceJavaFiles(ctx common.AndroidModuleContext, flags []string, publicResourcesFile := filepath.Join(common.ModuleOutDir(ctx), "public_resources.xml") proguardOptionsFile := filepath.Join(common.ModuleOutDir(ctx), "proguard.options") - deps = append([]string{"$aaptCmd"}, deps...) - ctx.Build(pctx, blueprint.BuildParams{ Rule: aaptCreateResourceJavaFile, Outputs: []string{publicResourcesFile, proguardOptionsFile, javaFileList}, @@ -117,8 +121,6 @@ func CreateResourceJavaFiles(ctx common.AndroidModuleContext, flags []string, func CreateExportPackage(ctx common.AndroidModuleContext, flags []string, deps []string) string { outputFile := filepath.Join(common.ModuleOutDir(ctx), "package-export.apk") - deps = append([]string{"$aaptCmd"}, deps...) - ctx.Build(pctx, blueprint.BuildParams{ Rule: aaptCreateAssetsPackage, Outputs: []string{outputFile}, @@ -137,10 +139,9 @@ func CreateAppPackage(ctx common.AndroidModuleContext, flags []string, jarFile s resourceApk := filepath.Join(common.ModuleOutDir(ctx), "resources.apk") ctx.Build(pctx, blueprint.BuildParams{ - Rule: aaptAddResources, - Outputs: []string{resourceApk}, - Inputs: []string{jarFile}, - Implicits: []string{"$aaptCmd"}, + Rule: aaptAddResources, + Outputs: []string{resourceApk}, + Inputs: []string{jarFile}, Args: map[string]string{ "aaptFlags": strings.Join(flags, " "), }, @@ -154,10 +155,9 @@ func CreateAppPackage(ctx common.AndroidModuleContext, flags []string, jarFile s } ctx.Build(pctx, blueprint.BuildParams{ - Rule: signapk, - Outputs: []string{signedApk}, - Inputs: []string{resourceApk}, - Implicits: []string{"$signapkCmd"}, + Rule: signapk, + Outputs: []string{signedApk}, + Inputs: []string{resourceApk}, Args: map[string]string{ "certificates": strings.Join(certificateArgs, " "), }, @@ -166,10 +166,9 @@ func CreateAppPackage(ctx common.AndroidModuleContext, flags []string, jarFile s outputFile := filepath.Join(common.ModuleOutDir(ctx), "package.apk") ctx.Build(pctx, blueprint.BuildParams{ - Rule: zipalign, - Outputs: []string{outputFile}, - Inputs: []string{signedApk}, - Implicits: []string{"$zipalignCmd"}, + Rule: zipalign, + Outputs: []string{outputFile}, + Inputs: []string{signedApk}, Args: map[string]string{ "zipalignFlags": "", }, diff --git a/java/builder.go b/java/builder.go index 4eda6adf..36506ae0 100644 --- a/java/builder.go +++ b/java/builder.go @@ -52,6 +52,7 @@ var ( jar = pctx.StaticRule("jar", blueprint.RuleParams{ Command: `$jarCmd -o $out $jarArgs`, + CommandDeps: []string{"$jarCmd"}, Description: "jar $out", }, "jarCmd", "jarArgs") @@ -61,6 +62,7 @@ var ( Command: `rm -rf "$outDir" && mkdir -p "$outDir" && ` + `$dxCmd --dex --output=$outDir $dxFlags $in || ( rm -rf "$outDir"; exit 41 ) && ` + `find "$outDir" -name "classes*.dex" > $out`, + CommandDeps: []string{"$dxCmd"}, Description: "dex $out", }, "outDir", "dxFlags") @@ -68,6 +70,7 @@ var ( jarjar = pctx.StaticRule("jarjar", blueprint.RuleParams{ Command: "java -jar $jarjarCmd process $rulesFile $in $out", + CommandDeps: []string{"$jarjarCmd", "$rulesFile"}, Description: "jarjar $out", }, "rulesFile") @@ -156,8 +159,6 @@ func TransformClassesToJar(ctx common.AndroidModuleContext, classes []jarSpec, jarArgs = append(jarArgs, "-m "+manifest) } - deps = append(deps, "$jarCmd") - ctx.Build(pctx, blueprint.BuildParams{ Rule: jar, Outputs: []string{outputFile}, @@ -177,10 +178,9 @@ func TransformClassesJarToDex(ctx common.AndroidModuleContext, classesJar string outputFile := filepath.Join(common.ModuleOutDir(ctx), "dex.filelist") ctx.Build(pctx, blueprint.BuildParams{ - Rule: dx, - Outputs: []string{outputFile}, - Inputs: []string{classesJar}, - Implicits: []string{"$dxCmd"}, + Rule: dx, + Outputs: []string{outputFile}, + Inputs: []string{classesJar}, Args: map[string]string{ "dxFlags": flags.dxFlags, "outDir": outDir, @@ -205,8 +205,6 @@ func TransformDexToJavaLib(ctx common.AndroidModuleContext, resources []jarSpec, deps = append(deps, dexJarSpec.fileList) jarArgs = append(jarArgs, dexJarSpec.soongJarArgs()) - deps = append(deps, "$jarCmd") - ctx.Build(pctx, blueprint.BuildParams{ Rule: jar, Outputs: []string{outputFile}, @@ -222,10 +220,9 @@ func TransformDexToJavaLib(ctx common.AndroidModuleContext, resources []jarSpec, func TransformJarJar(ctx common.AndroidModuleContext, classesJar string, rulesFile string) string { outputFile := filepath.Join(common.ModuleOutDir(ctx), "classes-jarjar.jar") ctx.Build(pctx, blueprint.BuildParams{ - Rule: jarjar, - Outputs: []string{outputFile}, - Inputs: []string{classesJar}, - Implicits: []string{"$jarjarCmd"}, + Rule: jarjar, + Outputs: []string{outputFile}, + Inputs: []string{classesJar}, Args: map[string]string{ "rulesFile": rulesFile, }, diff --git a/java/gen.go b/java/gen.go index 6e8313a9..f9898754 100644 --- a/java/gen.go +++ b/java/gen.go @@ -44,6 +44,7 @@ var ( aidl = pctx.StaticRule("aidl", blueprint.RuleParams{ Command: "$aidlCmd -d$depFile $aidlFlags $in $out", + CommandDeps: []string{"$aidlCmd"}, Description: "aidl $out", }, "depFile", "aidlFlags") @@ -51,12 +52,14 @@ var ( logtags = pctx.StaticRule("logtags", blueprint.RuleParams{ Command: "$logtagsCmd -o $out $in $allLogtagsFile", + CommandDeps: []string{"$logtagsCmd"}, Description: "logtags $out", }) mergeLogtags = pctx.StaticRule("mergeLogtags", blueprint.RuleParams{ Command: "$mergeLogtagsCmd -o $out $in", + CommandDeps: []string{"$mergeLogtagsCmd"}, Description: "merge logtags $out", }) ) @@ -68,10 +71,9 @@ func genAidl(ctx common.AndroidModuleContext, aidlFile, aidlFlags string) string depFile := javaFile + ".d" ctx.Build(pctx, blueprint.BuildParams{ - Rule: aidl, - Outputs: []string{javaFile}, - Inputs: []string{aidlFile}, - Implicits: []string{"$aidlCmd"}, + Rule: aidl, + Outputs: []string{javaFile}, + Inputs: []string{aidlFile}, Args: map[string]string{ "depFile": depFile, "aidlFlags": aidlFlags, @@ -87,10 +89,9 @@ func genLogtags(ctx common.AndroidModuleContext, logtagsFile string) string { javaFile = pathtools.ReplaceExtension(javaFile, "java") ctx.Build(pctx, blueprint.BuildParams{ - Rule: logtags, - Outputs: []string{javaFile}, - Inputs: []string{logtagsFile}, - Implicits: []string{"$logtagsCmd"}, + Rule: logtags, + Outputs: []string{javaFile}, + Inputs: []string{logtagsFile}, }) return javaFile |