Run "ravenizer" on ravenwood jars
Ravenizer is a new tool to preprocess ravenwood tests. It can optionally be applied to other java targets (for analyzing them, etc). The actual tool is being implemented internally, so in AOSP, we just use a script that copies the jar file as a replacement. Test: manual -- run `m RavenwoodBivalentTest` and make sure the ravenizer log message shows up. Flag: EXEMPT host test change only Bug: 360390999 Change-Id: I6d1f81e7c425397b16c37e7c30267957097387fd
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 static libs.
|
||||
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
|
||||
@@ -558,6 +565,10 @@ type Module struct {
|
||||
// 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
|
||||
compileDepNames []string
|
||||
|
||||
ravenizer struct {
|
||||
enabled bool
|
||||
}
|
||||
}
|
||||
|
||||
var _ android.InstallableModule = (*Module)(nil)
|
||||
@@ -1113,7 +1124,6 @@ func (j *Module) addGeneratedSrcJars(path android.Path) {
|
||||
}
|
||||
|
||||
func (j *Module) compile(ctx android.ModuleContext, extraSrcJars, extraClasspathJars, extraCombinedJars android.Paths) {
|
||||
|
||||
// Auto-propagating jarjar rules
|
||||
jarjarProviderData := j.collectJarJarRules(ctx)
|
||||
if jarjarProviderData != nil {
|
||||
@@ -1130,6 +1140,10 @@ func (j *Module) compile(ctx android.ModuleContext, extraSrcJars, extraClasspath
|
||||
|
||||
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)
|
||||
flags := j.collectBuilderFlags(ctx, deps)
|
||||
|
||||
@@ -1568,6 +1582,18 @@ func (j *Module) compile(ctx android.ModuleContext, extraSrcJars, extraClasspath
|
||||
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.
|
||||
if len(j.properties.Permitted_packages) > 0 {
|
||||
// Time stamp file created by the package check rule.
|
||||
|
Reference in New Issue
Block a user