Ensure consistent APEX variation for java_sdk_library and java_sdk_library_import
Previously, a java_sdk_library with shared_library = true would create a variation per APEX because it depends on an sdkLibraryXml module which generates a file containing the APEX name. However, a shared java_sdk_library_import would create a merged APEX variation. The inconsistent variations caused failures in sdkDepsReplaceMutator. This change ensures that both java_sdk_library and java_sdk_library_import create an APEX specific variation when their shared_library property is true. Bug: 190499958 Test: m nothing - ran the above command after modifying the test to reproduce the problem and then after fixing to verify that it fixed the problem. Change-Id: Iee81776a8569db3e871c40cbde14d248dfeb56e4
This commit is contained in:
@@ -684,6 +684,15 @@ func (c *commonToSdkLibraryAndImport) initCommonAfterDefaultsApplied(ctx android
|
||||
return true
|
||||
}
|
||||
|
||||
// uniqueApexVariations provides common implementation of the ApexModule.UniqueApexVariations
|
||||
// method.
|
||||
func (c *commonToSdkLibraryAndImport) uniqueApexVariations() bool {
|
||||
// A java_sdk_library that is a shared library produces an XML file that makes the shared library
|
||||
// usable from an AndroidManifest.xml's <uses-library> entry. That XML file contains the name of
|
||||
// the APEX and so it needs a unique variation per APEX.
|
||||
return c.sharedLibrary()
|
||||
}
|
||||
|
||||
func (c *commonToSdkLibraryAndImport) generateCommonBuildActions(ctx android.ModuleContext) {
|
||||
c.doctagPaths = android.PathsForModuleSrc(ctx, c.commonSdkLibraryProperties.Doctag_files)
|
||||
}
|
||||
@@ -1528,6 +1537,7 @@ func (module *SdkLibrary) createStubsSourcesAndApi(mctx android.DefaultableHookC
|
||||
mctx.CreateModule(DroidstubsFactory, &props)
|
||||
}
|
||||
|
||||
// Implements android.ApexModule
|
||||
func (module *SdkLibrary) DepIsInSameApex(mctx android.BaseModuleContext, dep android.Module) bool {
|
||||
depTag := mctx.OtherModuleDependencyTag(dep)
|
||||
if depTag == xmlPermissionsFileTag {
|
||||
@@ -1536,6 +1546,11 @@ func (module *SdkLibrary) DepIsInSameApex(mctx android.BaseModuleContext, dep an
|
||||
return module.Library.DepIsInSameApex(mctx, dep)
|
||||
}
|
||||
|
||||
// Implements android.ApexModule
|
||||
func (module *SdkLibrary) UniqueApexVariations() bool {
|
||||
return module.uniqueApexVariations()
|
||||
}
|
||||
|
||||
// Creates the xml file that publicizes the runtime library
|
||||
func (module *SdkLibrary) createXmlFile(mctx android.DefaultableHookContext) {
|
||||
props := struct {
|
||||
@@ -2086,6 +2101,11 @@ func (module *SdkLibraryImport) ShouldSupportSdkVersion(ctx android.BaseModuleCo
|
||||
return nil
|
||||
}
|
||||
|
||||
// Implements android.ApexModule
|
||||
func (module *SdkLibraryImport) UniqueApexVariations() bool {
|
||||
return module.uniqueApexVariations()
|
||||
}
|
||||
|
||||
func (module *SdkLibraryImport) OutputFiles(tag string) (android.Paths, error) {
|
||||
return module.commonOutputFiles(tag)
|
||||
}
|
||||
|
Reference in New Issue
Block a user