Merge changes from topic "buildnumberfromfile"
* changes: Allow jar wrapper to take quoted arguments Add rspfile support to RuleBuilder Prepare droiddoc for using RuleBuilder Manually escape BuildNumberFromFile Fix android.Expand and ninja escaping Add RuleBuilder helper functions for built and prebuilt tools Add documentation to droiddoc.go module types
This commit is contained in:
@@ -816,7 +816,7 @@ func (a *AndroidAppImport) uncompressEmbeddedJniLibs(
|
||||
rule := android.NewRuleBuilder()
|
||||
rule.Command().
|
||||
Textf(`if (zipinfo %s 'lib/*.so' 2>/dev/null | grep -v ' stor ' >/dev/null) ; then`, inputPath).
|
||||
Tool(ctx.Config().HostToolPath(ctx, "zip2zip")).
|
||||
BuiltTool(ctx, "zip2zip").
|
||||
FlagWithInput("-i ", inputPath).
|
||||
FlagWithOutput("-o ", outputPath).
|
||||
FlagWithArg("-0 ", "'lib/**/*.so'").
|
||||
@@ -843,7 +843,7 @@ func (a *AndroidAppImport) uncompressDex(
|
||||
rule := android.NewRuleBuilder()
|
||||
rule.Command().
|
||||
Textf(`if (zipinfo %s '*.dex' 2>/dev/null | grep -v ' stor ' >/dev/null) ; then`, inputPath).
|
||||
Tool(ctx.Config().HostToolPath(ctx, "zip2zip")).
|
||||
BuiltTool(ctx, "zip2zip").
|
||||
FlagWithInput("-i ", inputPath).
|
||||
FlagWithOutput("-o ", outputPath).
|
||||
FlagWithArg("-0 ", "'classes*.dex'").
|
||||
@@ -1067,7 +1067,7 @@ func (u *usesLibrary) verifyUsesLibrariesManifest(ctx android.ModuleContext, man
|
||||
outputFile := android.PathForModuleOut(ctx, "manifest_check", "AndroidManifest.xml")
|
||||
|
||||
rule := android.NewRuleBuilder()
|
||||
cmd := rule.Command().Tool(ctx.Config().HostToolPath(ctx, "manifest_check")).
|
||||
cmd := rule.Command().BuiltTool(ctx, "manifest_check").
|
||||
Flag("--enforce-uses-libraries").
|
||||
Input(manifest).
|
||||
FlagWithOutput("-o ", outputFile)
|
||||
|
@@ -229,7 +229,7 @@ func buildBootImage(ctx android.SingletonContext, config bootImageConfig) *bootI
|
||||
if image.zip != nil {
|
||||
rule := android.NewRuleBuilder()
|
||||
rule.Command().
|
||||
Tool(ctx.Config().HostToolPath(ctx, "soong_zip")).
|
||||
BuiltTool(ctx, "soong_zip").
|
||||
FlagWithOutput("-o ", image.zip).
|
||||
FlagWithArg("-C ", image.dir.String()).
|
||||
FlagWithInputList("-f ", allFiles, " -f ")
|
||||
@@ -438,7 +438,7 @@ func dumpOatRules(ctx android.SingletonContext, image *bootImage) {
|
||||
rule := android.NewRuleBuilder()
|
||||
rule.Command().
|
||||
// TODO: for now, use the debug version for better error reporting
|
||||
Tool(ctx.Config().HostToolPath(ctx, "oatdumpd")).
|
||||
BuiltTool(ctx, "oatdumpd").
|
||||
FlagWithInputList("--runtime-arg -Xbootclasspath:", image.dexPaths.Paths(), ":").
|
||||
FlagWithList("--runtime-arg -Xbootclasspath-locations:", image.dexLocations, ":").
|
||||
FlagWithArg("--image=", dexpreopt.PathToLocation(image.images[arch], arch)).Implicit(image.images[arch]).
|
||||
|
@@ -500,6 +500,7 @@ func (j *Javadoc) OutputFiles(tag string) (android.Paths, error) {
|
||||
}
|
||||
}
|
||||
|
||||
// javadoc converts .java source files to documentation using javadoc.
|
||||
func JavadocFactory() android.Module {
|
||||
module := &Javadoc{}
|
||||
|
||||
@@ -509,6 +510,7 @@ func JavadocFactory() android.Module {
|
||||
return module
|
||||
}
|
||||
|
||||
// javadoc_host converts .java source files to documentation using javadoc.
|
||||
func JavadocHostFactory() android.Module {
|
||||
module := &Javadoc{}
|
||||
|
||||
@@ -798,7 +800,7 @@ func (j *Javadoc) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
||||
"srcJarDir": android.PathForModuleOut(ctx, "srcjars").String(),
|
||||
"stubsDir": android.PathForModuleOut(ctx, "stubsDir").String(),
|
||||
"srcJars": strings.Join(j.srcJars.Strings(), " "),
|
||||
"opts": opts,
|
||||
"opts": proptools.NinjaEscape(opts),
|
||||
"bootclasspathArgs": bootClasspathArgs,
|
||||
"classpathArgs": classpathArgs,
|
||||
"sourcepathArgs": sourcepathArgs,
|
||||
@@ -831,6 +833,7 @@ type Droiddoc struct {
|
||||
apiFilePath android.Path
|
||||
}
|
||||
|
||||
// droiddoc converts .java source files to documentation using doclava or dokka.
|
||||
func DroiddocFactory() android.Module {
|
||||
module := &Droiddoc{}
|
||||
|
||||
@@ -841,6 +844,7 @@ func DroiddocFactory() android.Module {
|
||||
return module
|
||||
}
|
||||
|
||||
// droiddoc_host converts .java source files to documentation using doclava or dokka.
|
||||
func DroiddocHostFactory() android.Module {
|
||||
module := &Droiddoc{}
|
||||
|
||||
@@ -918,7 +922,7 @@ func (d *Droiddoc) collectDoclavaDocsFlags(ctx android.ModuleContext, implicits
|
||||
args := " -source 1.8 -J-Xmx1600m -J-XX:-OmitStackTraceInFastThrow -XDignore.symbol.file " +
|
||||
"-doclet com.google.doclava.Doclava -docletpath " + jsilver.String() + ":" + doclava.String() + " " +
|
||||
"-hdf page.build " + ctx.Config().BuildId() + "-" + ctx.Config().BuildNumberFromFile() + " " +
|
||||
`-hdf page.now "$$(` + date + ` @$$(cat ` + ctx.Config().Getenv("BUILD_DATETIME_FILE") + `) "+%d %b %Y %k:%M")" `
|
||||
`-hdf page.now "$(` + date + ` @$(cat ` + ctx.Config().Getenv("BUILD_DATETIME_FILE") + `) "+%d %b %Y %k:%M")" `
|
||||
|
||||
if String(d.properties.Custom_template) == "" {
|
||||
// TODO: This is almost always droiddoc-templates-sdk
|
||||
@@ -1095,7 +1099,7 @@ func (d *Droiddoc) transformDoclava(ctx android.ModuleContext, implicits android
|
||||
"srcJarDir": android.PathForModuleOut(ctx, "srcjars").String(),
|
||||
"stubsDir": android.PathForModuleOut(ctx, "stubsDir").String(),
|
||||
"srcJars": strings.Join(d.Javadoc.srcJars.Strings(), " "),
|
||||
"opts": opts,
|
||||
"opts": proptools.NinjaEscape(opts),
|
||||
"bootclasspathArgs": bootclasspathArgs,
|
||||
"classpathArgs": classpathArgs,
|
||||
"sourcepathArgs": sourcepathArgs,
|
||||
@@ -1117,7 +1121,7 @@ func (d *Droiddoc) transformCheckApi(ctx android.ModuleContext, apiFile, removed
|
||||
Args: map[string]string{
|
||||
"msg": msg,
|
||||
"classpath": checkApiClasspath.FormJavaClassPath(""),
|
||||
"opts": opts,
|
||||
"opts": proptools.NinjaEscape(opts),
|
||||
"apiFile": apiFile.String(),
|
||||
"apiFileToCheck": d.apiFile.String(),
|
||||
"removedApiFile": removedApiFile.String(),
|
||||
@@ -1140,7 +1144,7 @@ func (d *Droiddoc) transformDokka(ctx android.ModuleContext, implicits android.P
|
||||
"stubsDir": android.PathForModuleOut(ctx, "dokka-stubsDir").String(),
|
||||
"srcJars": strings.Join(d.Javadoc.srcJars.Strings(), " "),
|
||||
"classpathArgs": classpathArgs,
|
||||
"opts": opts,
|
||||
"opts": proptools.NinjaEscape(opts),
|
||||
"docZip": d.Javadoc.docZip.String(),
|
||||
},
|
||||
})
|
||||
@@ -1258,6 +1262,9 @@ type Droidstubs struct {
|
||||
jdiffStubsSrcJar android.WritablePath
|
||||
}
|
||||
|
||||
// droidstubs passes sources files through Metalava to generate stub .java files that only contain the API to be
|
||||
// documented, filtering out hidden classes and methods. The resulting .java files are intended to be passed to
|
||||
// a droiddoc module to generate documentation.
|
||||
func DroidstubsFactory() android.Module {
|
||||
module := &Droidstubs{}
|
||||
|
||||
@@ -1268,6 +1275,10 @@ func DroidstubsFactory() android.Module {
|
||||
return module
|
||||
}
|
||||
|
||||
// droidstubs_host passes sources files through Metalava to generate stub .java files that only contain the API
|
||||
// to be documented, filtering out hidden classes and methods. The resulting .java files are intended to be
|
||||
// passed to a droiddoc_host module to generate documentation. Use a droidstubs_host instead of a droidstubs
|
||||
// module when symbols needed by the source files are provided by java_library_host modules.
|
||||
func DroidstubsHostFactory() android.Module {
|
||||
module := &Droidstubs{}
|
||||
|
||||
@@ -1558,7 +1569,7 @@ func (d *Droidstubs) transformMetalava(ctx android.ModuleContext, implicits andr
|
||||
"bootclasspathArgs": bootclasspathArgs,
|
||||
"classpathArgs": classpathArgs,
|
||||
"sourcepathArgs": sourcepathArgs,
|
||||
"opts": opts,
|
||||
"opts": proptools.NinjaEscape(opts),
|
||||
},
|
||||
})
|
||||
}
|
||||
@@ -1581,7 +1592,7 @@ func (d *Droidstubs) transformCheckApi(ctx android.ModuleContext,
|
||||
"bootclasspathArgs": bootclasspathArgs,
|
||||
"classpathArgs": classpathArgs,
|
||||
"sourcepathArgs": sourcepathArgs,
|
||||
"opts": opts,
|
||||
"opts": proptools.NinjaEscape(opts),
|
||||
"msg": msg,
|
||||
},
|
||||
})
|
||||
@@ -1602,7 +1613,7 @@ func (d *Droidstubs) transformJdiff(ctx android.ModuleContext, implicits android
|
||||
"srcJarDir": android.PathForModuleOut(ctx, "jdiff-srcjars").String(),
|
||||
"stubsDir": android.PathForModuleOut(ctx, "jdiff-stubsDir").String(),
|
||||
"srcJars": strings.Join(d.Javadoc.srcJars.Strings(), " "),
|
||||
"opts": opts,
|
||||
"opts": proptools.NinjaEscape(opts),
|
||||
"bootclasspathArgs": bootclasspathArgs,
|
||||
"classpathArgs": classpathArgs,
|
||||
"sourcepathArgs": sourcepathArgs,
|
||||
@@ -1781,6 +1792,7 @@ type ExportedDroiddocDir struct {
|
||||
dir android.Path
|
||||
}
|
||||
|
||||
// droiddoc_exported_dir exports a directory of html templates or nullability annotations for use by doclava.
|
||||
func ExportedDroiddocDirFactory() android.Module {
|
||||
module := &ExportedDroiddocDir{}
|
||||
module.AddProperties(&module.properties)
|
||||
|
@@ -2088,14 +2088,14 @@ func (j *DexImport) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
||||
|
||||
// use zip2zip to uncompress classes*.dex files
|
||||
rule.Command().
|
||||
Tool(ctx.Config().HostToolPath(ctx, "zip2zip")).
|
||||
BuiltTool(ctx, "zip2zip").
|
||||
FlagWithInput("-i ", inputJar).
|
||||
FlagWithOutput("-o ", temporary).
|
||||
FlagWithArg("-0 ", "'classes*.dex'")
|
||||
|
||||
// use zipalign to align uncompressed classes*.dex files
|
||||
rule.Command().
|
||||
Tool(ctx.Config().HostToolPath(ctx, "zipalign")).
|
||||
BuiltTool(ctx, "zipalign").
|
||||
Flag("-f").
|
||||
Text("4").
|
||||
Input(temporary).
|
||||
|
@@ -34,7 +34,7 @@ func genProto(ctx android.ModuleContext, protoFile android.Path, flags android.P
|
||||
// Proto generated java files have an unknown package name in the path, so package the entire output directory
|
||||
// into a srcjar.
|
||||
rule.Command().
|
||||
Tool(ctx.Config().HostToolPath(ctx, "soong_zip")).
|
||||
BuiltTool(ctx, "soong_zip").
|
||||
Flag("-jar").
|
||||
FlagWithOutput("-o ", srcJarFile).
|
||||
FlagWithArg("-C ", outDir.String()).
|
||||
|
@@ -296,7 +296,7 @@ func createSdkFrameworkAidl(ctx android.SingletonContext) {
|
||||
rule.Command().
|
||||
Text("rm -f").Output(aidl)
|
||||
rule.Command().
|
||||
Tool(ctx.Config().HostToolPath(ctx, "sdkparcelables")).
|
||||
BuiltTool(ctx, "sdkparcelables").
|
||||
Input(jar).
|
||||
Output(aidl)
|
||||
|
||||
|
Reference in New Issue
Block a user