Consolidate the code to resolve a deapexer module dependency.
It will get more logic in upcoming CLs. Add a property to DeapexerInfo for the APEX name, for use in error messages. Test: m nothing Bug: 192006406 Change-Id: I957f3df8b34543a38cde38768dac93e78132d672
This commit is contained in:
21
java/java.go
21
java/java.go
@@ -1319,7 +1319,6 @@ func (j *Import) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
||||
j.classLoaderContexts = make(dexpreopt.ClassLoaderContextMap)
|
||||
|
||||
var flags javaBuilderFlags
|
||||
var deapexerModule android.Module
|
||||
|
||||
ctx.VisitDirectDeps(func(module android.Module) {
|
||||
tag := ctx.OtherModuleDependencyTag(module)
|
||||
@@ -1340,11 +1339,6 @@ func (j *Import) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
||||
}
|
||||
|
||||
addCLCFromDep(ctx, module, j.classLoaderContexts)
|
||||
|
||||
// Save away the `deapexer` module on which this depends, if any.
|
||||
if tag == android.DeapexerTag {
|
||||
deapexerModule = module
|
||||
}
|
||||
})
|
||||
|
||||
if Bool(j.properties.Installable) {
|
||||
@@ -1359,16 +1353,11 @@ func (j *Import) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
||||
// obtained from the associated deapexer module.
|
||||
ai := ctx.Provider(android.ApexInfoProvider).(android.ApexInfo)
|
||||
if ai.ForPrebuiltApex {
|
||||
if deapexerModule == nil {
|
||||
// This should never happen as a variant for a prebuilt_apex is only created if the
|
||||
// deapexer module has been configured to export the dex implementation jar for this module.
|
||||
ctx.ModuleErrorf("internal error: module %q does not depend on a `deapexer` module for prebuilt_apex %q",
|
||||
j.Name(), ai.ApexVariationName)
|
||||
return
|
||||
}
|
||||
|
||||
// Get the path of the dex implementation jar from the `deapexer` module.
|
||||
di := ctx.OtherModuleProvider(deapexerModule, android.DeapexerProvider).(android.DeapexerInfo)
|
||||
di := android.FindDeapexerProviderForModule(ctx)
|
||||
if di == nil {
|
||||
return // An error has been reported by FindDeapexerProviderForModule.
|
||||
}
|
||||
if dexOutputPath := di.PrebuiltExportPath(apexRootRelativePathToJavaLib(j.BaseModuleName())); dexOutputPath != nil {
|
||||
dexJarFile := makeDexJarPathFromPath(dexOutputPath)
|
||||
j.dexJarFile = dexJarFile
|
||||
@@ -1379,7 +1368,7 @@ func (j *Import) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
||||
} else {
|
||||
// This should never happen as a variant for a prebuilt_apex is only created if the
|
||||
// prebuilt_apex has been configured to export the java library dex file.
|
||||
ctx.ModuleErrorf("internal error: no dex implementation jar available from prebuilt_apex %q", deapexerModule.Name())
|
||||
ctx.ModuleErrorf("internal error: no dex implementation jar available from prebuilt APEX %s", di.ApexModuleName())
|
||||
}
|
||||
} else if Bool(j.dexProperties.Compile_dex) {
|
||||
sdkDep := decodeSdkDep(ctx, android.SdkContext(j))
|
||||
|
Reference in New Issue
Block a user