Add custom SystemModules to bootclasspath to reduce duplication
Adds a library dependency to each of the dummy system modules created by testing.go so that any changes in the behavior were detected by the existing tests which were then fixed. Bug: 141359858 Test: m checkbuild Change-Id: Id4442f4aa3931ac93049f3367b96a5b49cc075e1
This commit is contained in:
parent
9f6cbaca21
commit
68289b0efd
4 changed files with 21 additions and 2 deletions
|
@ -535,7 +535,9 @@ func (j *Module) deps(ctx android.BottomUpMutatorContext) {
|
|||
ctx.PropertyErrorf("sdk_version",
|
||||
`system_modules is required to be set when sdk_version is "none", did you mean "core_platform"`)
|
||||
} else if *j.deviceProperties.System_modules != "none" {
|
||||
// Add the system modules to both the system modules and bootclasspath.
|
||||
ctx.AddVariationDependencies(nil, systemModulesTag, *j.deviceProperties.System_modules)
|
||||
ctx.AddVariationDependencies(nil, bootClasspathTag, *j.deviceProperties.System_modules)
|
||||
}
|
||||
if ctx.ModuleName() == "android_stubs_current" ||
|
||||
ctx.ModuleName() == "android_system_stubs_current" ||
|
||||
|
@ -848,6 +850,12 @@ func (j *Module) collectDeps(ctx android.ModuleContext) deps {
|
|||
}
|
||||
default:
|
||||
switch tag {
|
||||
case bootClasspathTag:
|
||||
// If a system modules dependency has been added to the bootclasspath
|
||||
// then add its libs to the bootclasspath.
|
||||
sm := module.(*SystemModules)
|
||||
deps.bootClasspath = append(deps.bootClasspath, sm.headerJars...)
|
||||
|
||||
case systemModulesTag:
|
||||
if deps.systemModules != nil {
|
||||
panic("Found two system module dependencies")
|
||||
|
|
|
@ -124,7 +124,7 @@ func TestClasspath(t *testing.T) {
|
|||
name: "nostdlib system_modules",
|
||||
properties: `sdk_version: "none", system_modules: "core-platform-api-stubs-system-modules"`,
|
||||
system: "core-platform-api-stubs-system-modules",
|
||||
bootclasspath: []string{`""`},
|
||||
bootclasspath: []string{"core-platform-api-stubs-system-modules-lib"},
|
||||
classpath: []string{},
|
||||
},
|
||||
{
|
||||
|
|
|
@ -101,6 +101,9 @@ type SystemModules struct {
|
|||
|
||||
properties SystemModulesProperties
|
||||
|
||||
// The aggregated header jars from all jars specified in the libs property.
|
||||
// Used when system module is added as a dependency to bootclasspath.
|
||||
headerJars android.Paths
|
||||
outputDir android.Path
|
||||
outputDeps android.Paths
|
||||
}
|
||||
|
@ -118,6 +121,8 @@ func (system *SystemModules) GenerateAndroidBuildActions(ctx android.ModuleConte
|
|||
jars = append(jars, dep.HeaderJars()...)
|
||||
})
|
||||
|
||||
system.headerJars = jars
|
||||
|
||||
system.outputDir, system.outputDeps = TransformJarsToSystemModules(ctx, "java.base", jars)
|
||||
}
|
||||
|
||||
|
|
|
@ -114,7 +114,13 @@ func GatherRequiredDepsForTest() string {
|
|||
for _, extra := range systemModules {
|
||||
bp += fmt.Sprintf(`
|
||||
java_system_modules {
|
||||
name: "%s",
|
||||
name: "%[1]s",
|
||||
libs: ["%[1]s-lib"],
|
||||
}
|
||||
java_library {
|
||||
name: "%[1]s-lib",
|
||||
sdk_version: "none",
|
||||
system_modules: "none",
|
||||
}
|
||||
`, extra)
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue