Merge "Document preArch mutators"

This commit is contained in:
Paul Duffin 2020-05-05 15:24:16 +00:00 committed by Gerrit Code Review
commit d0666441b5
1 changed files with 42 additions and 0 deletions

View File

@ -81,11 +81,53 @@ type RegisterMutatorFunc func(RegisterMutatorsContext)
var preArch = []RegisterMutatorFunc{ var preArch = []RegisterMutatorFunc{
RegisterNamespaceMutator, RegisterNamespaceMutator,
// Rename package module types. // Rename package module types.
//
// The package module type does not have a name property, instead its name is determined
// by the location of the containing .bp file relative to the root of the file structure
// being built by Soong. Unfortunately, due to limitations in LoadHook the module has to
// be given a synthetic temporary name which is then fixed up by these mutators.
RegisterPackageRenamer, RegisterPackageRenamer,
// Create an association between prebuilt modules and their corresponding source
// modules (if any).
RegisterPrebuiltsPreArchMutators, RegisterPrebuiltsPreArchMutators,
// Check the visibility rules are valid.
//
// This must run after the package renamer mutators so that any issues found during
// validation of the package's default_visibility property are reported using the
// correct package name and not the synthetic name.
//
// This must also be run before defaults mutators as the rules for validation are
// different before checking the rules than they are afterwards. e.g.
// visibility: ["//visibility:private", "//visibility:public"]
// would be invalid if specified in a module definition but is valid if it results
// from something like this:
//
// defaults {
// name: "defaults",
// // Be inaccessible outside a package by default.
// visibility: ["//visibility:private"]
// }
//
// defaultable_module {
// name: "defaultable_module",
// defaults: ["defaults"],
// // Override the default.
// visibility: ["//visibility:public"]
// }
//
RegisterVisibilityRuleChecker, RegisterVisibilityRuleChecker,
// Apply properties from defaults modules to the referencing modules.
RegisterDefaultsPreArchMutators, RegisterDefaultsPreArchMutators,
// Gather the visibility rules for all modules for us during visibility enforcement.
//
// This must come after the defaults mutators to ensure that any visibility supplied
// in a defaults module has been successfully applied before the rules are gathered.
RegisterVisibilityRuleGatherer, RegisterVisibilityRuleGatherer,
} }