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:
@@ -535,7 +535,9 @@ func (j *Module) deps(ctx android.BottomUpMutatorContext) {
|
|||||||
ctx.PropertyErrorf("sdk_version",
|
ctx.PropertyErrorf("sdk_version",
|
||||||
`system_modules is required to be set when sdk_version is "none", did you mean "core_platform"`)
|
`system_modules is required to be set when sdk_version is "none", did you mean "core_platform"`)
|
||||||
} else if *j.deviceProperties.System_modules != "none" {
|
} 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, systemModulesTag, *j.deviceProperties.System_modules)
|
||||||
|
ctx.AddVariationDependencies(nil, bootClasspathTag, *j.deviceProperties.System_modules)
|
||||||
}
|
}
|
||||||
if ctx.ModuleName() == "android_stubs_current" ||
|
if ctx.ModuleName() == "android_stubs_current" ||
|
||||||
ctx.ModuleName() == "android_system_stubs_current" ||
|
ctx.ModuleName() == "android_system_stubs_current" ||
|
||||||
@@ -848,6 +850,12 @@ func (j *Module) collectDeps(ctx android.ModuleContext) deps {
|
|||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
switch tag {
|
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:
|
case systemModulesTag:
|
||||||
if deps.systemModules != nil {
|
if deps.systemModules != nil {
|
||||||
panic("Found two system module dependencies")
|
panic("Found two system module dependencies")
|
||||||
|
@@ -124,7 +124,7 @@ func TestClasspath(t *testing.T) {
|
|||||||
name: "nostdlib system_modules",
|
name: "nostdlib system_modules",
|
||||||
properties: `sdk_version: "none", system_modules: "core-platform-api-stubs-system-modules"`,
|
properties: `sdk_version: "none", system_modules: "core-platform-api-stubs-system-modules"`,
|
||||||
system: "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{},
|
classpath: []string{},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@@ -101,6 +101,9 @@ type SystemModules struct {
|
|||||||
|
|
||||||
properties SystemModulesProperties
|
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
|
outputDir android.Path
|
||||||
outputDeps android.Paths
|
outputDeps android.Paths
|
||||||
}
|
}
|
||||||
@@ -118,6 +121,8 @@ func (system *SystemModules) GenerateAndroidBuildActions(ctx android.ModuleConte
|
|||||||
jars = append(jars, dep.HeaderJars()...)
|
jars = append(jars, dep.HeaderJars()...)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
system.headerJars = jars
|
||||||
|
|
||||||
system.outputDir, system.outputDeps = TransformJarsToSystemModules(ctx, "java.base", jars)
|
system.outputDir, system.outputDeps = TransformJarsToSystemModules(ctx, "java.base", jars)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -114,7 +114,13 @@ func GatherRequiredDepsForTest() string {
|
|||||||
for _, extra := range systemModules {
|
for _, extra := range systemModules {
|
||||||
bp += fmt.Sprintf(`
|
bp += fmt.Sprintf(`
|
||||||
java_system_modules {
|
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)
|
`, extra)
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user