Stop java_sdk_library_import from depending on source modules
Previously, java_sdk_library_import added the dependencies on its child components in the deps mutator after prebuilts without a matching source module are renamed to the source module name. That meant that the java_sdk_library_import has to use the source module name and ended up depending on the source module unless it was preferred. This change adds a new component deps mutator that runs before the PrebuiltRenameMutator so that the java_sdk_library_import can add dependencies onto the prebuilt modules. It also updates an affected test. Bug: 159902351 Test: m nothing Change-Id: I3576c4873302743e51aff547ea1497bef6d748ac
This commit is contained in:
@@ -86,6 +86,7 @@ func testContext() *android.TestContext {
|
||||
RegisterStubsBuildComponents(ctx)
|
||||
RegisterSdkLibraryBuildComponents(ctx)
|
||||
ctx.PreArchMutators(android.RegisterDefaultsPreArchMutators)
|
||||
ctx.PreArchMutators(android.RegisterComponentsMutator)
|
||||
|
||||
RegisterPrebuiltApisBuildComponents(ctx)
|
||||
|
||||
@@ -684,11 +685,11 @@ func TestJavaSdkLibraryImport_WithSource(t *testing.T) {
|
||||
})
|
||||
|
||||
checkModuleDependencies(t, ctx, "prebuilt_sdklib", "android_common", []string{
|
||||
`prebuilt_sdklib.stubs`,
|
||||
`sdklib.impl`,
|
||||
// This should be prebuilt_sdklib.stubs but is set to sdklib.stubs because the
|
||||
// dependency is added after prebuilts may have been renamed and so has to use
|
||||
// the renamed name.
|
||||
`sdklib.stubs`,
|
||||
`sdklib.xml`,
|
||||
})
|
||||
}
|
||||
|
@@ -973,7 +973,8 @@ func IsXmlPermissionsFileDepTag(depTag blueprint.DependencyTag) bool {
|
||||
|
||||
var implLibraryTag = sdkLibraryComponentTag{name: "impl-library"}
|
||||
|
||||
func (module *SdkLibrary) DepsMutator(ctx android.BottomUpMutatorContext) {
|
||||
// Add the dependencies on the child modules in the component deps mutator.
|
||||
func (module *SdkLibrary) ComponentDepsMutator(ctx android.BottomUpMutatorContext) {
|
||||
for _, apiScope := range module.getGeneratedApiScopes(ctx) {
|
||||
// Add dependencies to the stubs library
|
||||
ctx.AddVariationDependencies(nil, apiScope.stubsTag, module.stubsLibraryModuleName(apiScope))
|
||||
@@ -998,7 +999,12 @@ func (module *SdkLibrary) DepsMutator(ctx android.BottomUpMutatorContext) {
|
||||
// Add dependency to the rule for generating the xml permissions file
|
||||
ctx.AddDependency(module, xmlPermissionsFileTag, module.xmlPermissionsModuleName())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Add other dependencies as normal.
|
||||
func (module *SdkLibrary) DepsMutator(ctx android.BottomUpMutatorContext) {
|
||||
if module.requiresRuntimeImplementationLibrary() {
|
||||
// Only add the deps for the library if it is actually going to be built.
|
||||
module.Library.deps(ctx)
|
||||
}
|
||||
@@ -1874,20 +1880,26 @@ func (module *SdkLibraryImport) createPrebuiltStubsSources(mctx android.Defaulta
|
||||
props.Prefer = proptools.BoolPtr(module.prebuilt.Prefer())
|
||||
}
|
||||
|
||||
func (module *SdkLibraryImport) DepsMutator(ctx android.BottomUpMutatorContext) {
|
||||
// Add the dependencies on the child module in the component deps mutator so that it
|
||||
// creates references to the prebuilt and not the source modules.
|
||||
func (module *SdkLibraryImport) ComponentDepsMutator(ctx android.BottomUpMutatorContext) {
|
||||
for apiScope, scopeProperties := range module.scopeProperties {
|
||||
if len(scopeProperties.Jars) == 0 {
|
||||
continue
|
||||
}
|
||||
|
||||
// Add dependencies to the prebuilt stubs library
|
||||
ctx.AddVariationDependencies(nil, apiScope.stubsTag, module.stubsLibraryModuleName(apiScope))
|
||||
ctx.AddVariationDependencies(nil, apiScope.stubsTag, "prebuilt_"+module.stubsLibraryModuleName(apiScope))
|
||||
|
||||
if len(scopeProperties.Stub_srcs) > 0 {
|
||||
// Add dependencies to the prebuilt stubs source library
|
||||
ctx.AddVariationDependencies(nil, apiScope.stubsSourceTag, module.stubsSourceModuleName(apiScope))
|
||||
ctx.AddVariationDependencies(nil, apiScope.stubsSourceTag, "prebuilt_"+module.stubsSourceModuleName(apiScope))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Add other dependencies as normal.
|
||||
func (module *SdkLibraryImport) DepsMutator(ctx android.BottomUpMutatorContext) {
|
||||
|
||||
implName := module.implLibraryModuleName()
|
||||
if ctx.OtherModuleExists(implName) {
|
||||
|
Reference in New Issue
Block a user