Merge "Run "ravenizer" on ravenwood jars" into main
This commit is contained in:
28
java/base.go
28
java/base.go
@@ -222,6 +222,13 @@ type CommonProperties struct {
|
|||||||
// the stubs via libs, but should be set to true when the module depends on
|
// the stubs via libs, but should be set to true when the module depends on
|
||||||
// the stubs via static libs.
|
// the stubs via static libs.
|
||||||
Is_stubs_module *bool
|
Is_stubs_module *bool
|
||||||
|
|
||||||
|
// If true, enable the "Ravenizer" tool on the output jar.
|
||||||
|
// "Ravenizer" is a tool for Ravenwood tests, but it can also be enabled on other kinds
|
||||||
|
// of java targets.
|
||||||
|
Ravenizer struct {
|
||||||
|
Enabled *bool
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Properties that are specific to device modules. Host module factories should not add these when
|
// Properties that are specific to device modules. Host module factories should not add these when
|
||||||
@@ -558,6 +565,10 @@ type Module struct {
|
|||||||
// List of soong module dependencies required to compile the current module.
|
// List of soong module dependencies required to compile the current module.
|
||||||
// This information is printed out to `Dependencies` field in module_bp_java_deps.json
|
// This information is printed out to `Dependencies` field in module_bp_java_deps.json
|
||||||
compileDepNames []string
|
compileDepNames []string
|
||||||
|
|
||||||
|
ravenizer struct {
|
||||||
|
enabled bool
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var _ android.InstallableModule = (*Module)(nil)
|
var _ android.InstallableModule = (*Module)(nil)
|
||||||
@@ -1116,7 +1127,6 @@ func (j *Module) addGeneratedSrcJars(path android.Path) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (j *Module) compile(ctx android.ModuleContext, extraSrcJars, extraClasspathJars, extraCombinedJars android.Paths) {
|
func (j *Module) compile(ctx android.ModuleContext, extraSrcJars, extraClasspathJars, extraCombinedJars android.Paths) {
|
||||||
|
|
||||||
// Auto-propagating jarjar rules
|
// Auto-propagating jarjar rules
|
||||||
jarjarProviderData := j.collectJarJarRules(ctx)
|
jarjarProviderData := j.collectJarJarRules(ctx)
|
||||||
if jarjarProviderData != nil {
|
if jarjarProviderData != nil {
|
||||||
@@ -1133,6 +1143,10 @@ func (j *Module) compile(ctx android.ModuleContext, extraSrcJars, extraClasspath
|
|||||||
|
|
||||||
j.exportAidlIncludeDirs = android.PathsForModuleSrc(ctx, j.deviceProperties.Aidl.Export_include_dirs)
|
j.exportAidlIncludeDirs = android.PathsForModuleSrc(ctx, j.deviceProperties.Aidl.Export_include_dirs)
|
||||||
|
|
||||||
|
if re := proptools.Bool(j.properties.Ravenizer.Enabled); re {
|
||||||
|
j.ravenizer.enabled = re
|
||||||
|
}
|
||||||
|
|
||||||
deps := j.collectDeps(ctx)
|
deps := j.collectDeps(ctx)
|
||||||
flags := j.collectBuilderFlags(ctx, deps)
|
flags := j.collectBuilderFlags(ctx, deps)
|
||||||
|
|
||||||
@@ -1555,6 +1569,18 @@ func (j *Module) compile(ctx android.ModuleContext, extraSrcJars, extraClasspath
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if j.ravenizer.enabled {
|
||||||
|
ravenizerInput := outputFile
|
||||||
|
ravenizerOutput := android.PathForModuleOut(ctx, "ravenizer", jarName)
|
||||||
|
ctx.Build(pctx, android.BuildParams{
|
||||||
|
Rule: ravenizer,
|
||||||
|
Description: "ravenizer",
|
||||||
|
Input: ravenizerInput,
|
||||||
|
Output: ravenizerOutput,
|
||||||
|
})
|
||||||
|
outputFile = ravenizerOutput
|
||||||
|
}
|
||||||
|
|
||||||
// Check package restrictions if necessary.
|
// Check package restrictions if necessary.
|
||||||
if len(j.properties.Permitted_packages) > 0 {
|
if len(j.properties.Permitted_packages) > 0 {
|
||||||
// Time stamp file created by the package check rule.
|
// Time stamp file created by the package check rule.
|
||||||
|
@@ -258,6 +258,13 @@ var (
|
|||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
|
ravenizer = pctx.AndroidStaticRule("ravenizer",
|
||||||
|
blueprint.RuleParams{
|
||||||
|
Command: "rm -f $out && ${ravenizer} --in-jar $in --out-jar $out",
|
||||||
|
CommandDeps: []string{"${ravenizer}"},
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
zipalign = pctx.AndroidStaticRule("zipalign",
|
zipalign = pctx.AndroidStaticRule("zipalign",
|
||||||
blueprint.RuleParams{
|
blueprint.RuleParams{
|
||||||
Command: "if ! ${config.ZipAlign} -c -p 4 $in > /dev/null; then " +
|
Command: "if ! ${config.ZipAlign} -c -p 4 $in > /dev/null; then " +
|
||||||
@@ -307,6 +314,7 @@ func init() {
|
|||||||
pctx.Import("android/soong/java/config")
|
pctx.Import("android/soong/java/config")
|
||||||
|
|
||||||
pctx.HostBinToolVariable("aconfig", "aconfig")
|
pctx.HostBinToolVariable("aconfig", "aconfig")
|
||||||
|
pctx.HostBinToolVariable("ravenizer", "ravenizer")
|
||||||
pctx.HostBinToolVariable("keep-flagged-apis", "keep-flagged-apis")
|
pctx.HostBinToolVariable("keep-flagged-apis", "keep-flagged-apis")
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -765,6 +773,16 @@ func TransformJetifier(ctx android.ModuleContext, outputFile android.WritablePat
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TransformRavenizer(ctx android.ModuleContext, outputFile android.WritablePath,
|
||||||
|
inputFile android.Path) {
|
||||||
|
ctx.Build(pctx, android.BuildParams{
|
||||||
|
Rule: ravenizer,
|
||||||
|
Description: "ravenizer",
|
||||||
|
Output: outputFile,
|
||||||
|
Input: inputFile,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
func GenerateMainClassManifest(ctx android.ModuleContext, outputFile android.WritablePath, mainClass string) {
|
func GenerateMainClassManifest(ctx android.ModuleContext, outputFile android.WritablePath, mainClass string) {
|
||||||
android.WriteFileRule(ctx, outputFile, "Main-Class: "+mainClass+"\n")
|
android.WriteFileRule(ctx, outputFile, "Main-Class: "+mainClass+"\n")
|
||||||
}
|
}
|
||||||
|
@@ -143,6 +143,9 @@ func (r *ravenwoodTest) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
|||||||
HostTemplate: "${RavenwoodTestConfigTemplate}",
|
HostTemplate: "${RavenwoodTestConfigTemplate}",
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// Always enable Ravenizer for ravenwood tests.
|
||||||
|
r.Library.ravenizer.enabled = true
|
||||||
|
|
||||||
r.Library.GenerateAndroidBuildActions(ctx)
|
r.Library.GenerateAndroidBuildActions(ctx)
|
||||||
|
|
||||||
// Start by depending on all files installed by dependencies
|
// Start by depending on all files installed by dependencies
|
||||||
|
Reference in New Issue
Block a user