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:
@@ -115,6 +115,18 @@ var preArch = []RegisterMutatorFunc{
|
||||
// a DefaultableHook.
|
||||
RegisterDefaultsPreArchMutators,
|
||||
|
||||
// Add dependencies on any components so that any component references can be
|
||||
// resolved within the deps mutator.
|
||||
//
|
||||
// Must be run after defaults so it can be used to create dependencies on the
|
||||
// component modules that are creating in a DefaultableHook.
|
||||
//
|
||||
// Must be run before RegisterPrebuiltsPreArchMutators, i.e. before prebuilts are
|
||||
// renamed. That is so that if a module creates components using a prebuilt module
|
||||
// type that any dependencies (which must use prebuilt_ prefixes) are resolved to
|
||||
// the prebuilt module and not the source module.
|
||||
RegisterComponentsMutator,
|
||||
|
||||
// Create an association between prebuilt modules and their corresponding source
|
||||
// modules (if any).
|
||||
//
|
||||
@@ -252,8 +264,21 @@ func (mutator *mutator) Parallel() MutatorHandle {
|
||||
return mutator
|
||||
}
|
||||
|
||||
func RegisterComponentsMutator(ctx RegisterMutatorsContext) {
|
||||
ctx.BottomUp("component-deps", componentDepsMutator).Parallel()
|
||||
}
|
||||
|
||||
// A special mutator that runs just prior to the deps mutator to allow the dependencies
|
||||
// on component modules to be added so that they can depend directly on a prebuilt
|
||||
// module.
|
||||
func componentDepsMutator(ctx BottomUpMutatorContext) {
|
||||
if m := ctx.Module(); m.Enabled() {
|
||||
m.ComponentDepsMutator(ctx)
|
||||
}
|
||||
}
|
||||
|
||||
func depsMutator(ctx BottomUpMutatorContext) {
|
||||
if m, ok := ctx.Module().(Module); ok && m.Enabled() {
|
||||
if m := ctx.Module(); m.Enabled() {
|
||||
m.DepsMutator(ctx)
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user