Loading android/apex.go +0 −108 Original line number Diff line number Diff line Loading @@ -70,11 +70,6 @@ type ApexInfo struct { // prebuilt, the name here doesn't have the `prebuilt_` prefix. InApexModules []string // Pointers to the ApexContents struct each of which is for apexBundle modules that this // module is part of. The ApexContents gives information about which modules the apexBundle // has and whether a module became part of the apexBundle via a direct dependency or not. ApexContents []*ApexContents // True if this is for a prebuilt_apex. // // If true then this will customize the apex processing to make it suitable for handling Loading Loading @@ -162,7 +157,6 @@ func (i ApexInfo) Equal(other any) bool { // ApexBundleInfo contains information about the dependencies of an apex type ApexBundleInfo struct { Contents *ApexContents } var ApexBundleInfoProvider = blueprint.NewMutatorProvider[ApexBundleInfo]("apex_info") Loading Loading @@ -220,10 +214,6 @@ type ApexModule interface { // this after apex.apexMutator is run. InAnyApex() bool // Returns true if this module is directly in any APEX. Call this AFTER apex.apexMutator is // run. DirectlyInAnyApex() bool // NotInPlatform returns true if the module is not available to the platform due to // apex_available being set and not containing "//apex_available:platform". NotInPlatform() bool Loading Loading @@ -285,9 +275,6 @@ type ApexProperties struct { // See ApexModule.InAnyApex() InAnyApex bool `blueprint:"mutated"` // See ApexModule.DirectlyInAnyApex() DirectlyInAnyApex bool `blueprint:"mutated"` // See ApexModule.NotAvailableForPlatform() NotAvailableForPlatform bool `blueprint:"mutated"` Loading Loading @@ -324,16 +311,6 @@ type AlwaysRequireApexVariantTag interface { AlwaysRequireApexVariant() bool } // Marker interface that identifies dependencies that should inherit the DirectlyInAnyApex state // from the parent to the child. For example, stubs libraries are marked as DirectlyInAnyApex if // their implementation is in an apex. type CopyDirectlyInAnyApexTag interface { blueprint.DependencyTag // Method that differentiates this interface from others. CopyDirectlyInAnyApex() } // Interface that identifies dependencies to skip Apex dependency check type SkipApexAllowedDependenciesCheck interface { // Returns true to skip the Apex dependency check, which limits the allowed dependency in build. Loading Loading @@ -410,11 +387,6 @@ func (m *ApexModuleBase) InAnyApex() bool { return m.ApexProperties.InAnyApex } // Implements ApexModule func (m *ApexModuleBase) DirectlyInAnyApex() bool { return m.ApexProperties.DirectlyInAnyApex } // Implements ApexModule func (m *ApexModuleBase) NotInPlatform() bool { return !m.AvailableFor(AvailableToPlatform) Loading Loading @@ -575,7 +547,6 @@ func mergeApexVariations(apexInfos []ApexInfo) (merged []ApexInfo, aliases [][2] // Variants having the same mergedName are deduped merged[index].InApexVariants = append(merged[index].InApexVariants, variantName) merged[index].InApexModules = append(merged[index].InApexModules, apexInfo.InApexModules...) merged[index].ApexContents = append(merged[index].ApexContents, apexInfo.ApexContents...) merged[index].Updatable = merged[index].Updatable || apexInfo.Updatable // Platform APIs is allowed for this module only when all APEXes containing // the module are with `use_platform_apis: true`. Loading @@ -586,7 +557,6 @@ func mergeApexVariations(apexInfos []ApexInfo) (merged []ApexInfo, aliases [][2] apexInfo.ApexVariationName = mergedName apexInfo.InApexVariants = CopyOf(apexInfo.InApexVariants) apexInfo.InApexModules = CopyOf(apexInfo.InApexModules) apexInfo.ApexContents = append([]*ApexContents(nil), apexInfo.ApexContents...) apexInfo.TestApexes = CopyOf(apexInfo.TestApexes) merged = append(merged, apexInfo) } Loading Loading @@ -674,14 +644,7 @@ func MutateApexTransition(ctx BaseModuleContext, variation string) { apexInfos, _ = mergeApexVariations(apexInfos) } var inApex ApexMembership for _, a := range apexInfos { for _, apexContents := range a.ApexContents { inApex = inApex.merge(apexContents.contents[ctx.ModuleName()]) } } base.ApexProperties.InAnyApex = true base.ApexProperties.DirectlyInAnyApex = inApex == directlyInApex if platformVariation && !ctx.Host() && !module.AvailableFor(AvailableToPlatform) && module.NotAvailableForPlatform() { // Do not install the module for platform, but still allow it to output Loading Loading @@ -772,77 +735,6 @@ func UpdateUniqueApexVariationsForDeps(mctx BottomUpMutatorContext, am ApexModul }) } // UpdateDirectlyInAnyApex uses the final module to store if any variant of this module is directly // in any APEX, and then copies the final value to all the modules. It also copies the // DirectlyInAnyApex value to any transitive dependencies with a CopyDirectlyInAnyApexTag // dependency tag. func UpdateDirectlyInAnyApex(mctx BottomUpMutatorContext, am ApexModule) { base := am.apexModuleBase() // Copy DirectlyInAnyApex and InAnyApex from any transitive dependencies with a // CopyDirectlyInAnyApexTag dependency tag. mctx.WalkDeps(func(child, parent Module) bool { if _, ok := mctx.OtherModuleDependencyTag(child).(CopyDirectlyInAnyApexTag); ok { depBase := child.(ApexModule).apexModuleBase() depBase.apexPropertiesLock.Lock() defer depBase.apexPropertiesLock.Unlock() depBase.ApexProperties.DirectlyInAnyApex = base.ApexProperties.DirectlyInAnyApex depBase.ApexProperties.InAnyApex = base.ApexProperties.InAnyApex return true } return false }) } // ApexMembership tells how a module became part of an APEX. type ApexMembership int const ( notInApex ApexMembership = 0 indirectlyInApex = iota directlyInApex ) // ApexContents gives an information about member modules of an apexBundle. Each apexBundle has an // apexContents, and modules in that apex have a provider containing the apexContents of each // apexBundle they are part of. type ApexContents struct { // map from a module name to its membership in this apexBundle contents map[string]ApexMembership } // NewApexContents creates and initializes an ApexContents that is suitable // for use with an apex module. // - contents is a map from a module name to information about its membership within // the apex. func NewApexContents(contents map[string]ApexMembership) *ApexContents { return &ApexContents{ contents: contents, } } // Updates an existing membership by adding a new direct (or indirect) membership func (i ApexMembership) Add(direct bool) ApexMembership { if direct || i == directlyInApex { return directlyInApex } return indirectlyInApex } // Merges two membership into one. Merging is needed because a module can be a part of an apexBundle // in many different paths. For example, it could be dependend on by the apexBundle directly, but at // the same time, there might be an indirect dependency to the module. In that case, the more // specific dependency (the direct one) is chosen. func (i ApexMembership) merge(other ApexMembership) ApexMembership { if other == directlyInApex || i == directlyInApex { return directlyInApex } if other == indirectlyInApex || i == indirectlyInApex { return indirectlyInApex } return notInApex } //////////////////////////////////////////////////////////////////////////////////////////////////// //Below are routines for extra safety checks. // Loading apex/apex.go +1 −31 Original line number Diff line number Diff line Loading @@ -67,7 +67,6 @@ func RegisterPostDepsMutators(ctx android.RegisterMutatorsContext) { // it should create a platform variant. ctx.BottomUp("mark_platform_availability", markPlatformAvailability) ctx.Transition("apex", &apexTransitionMutator{}) ctx.BottomUp("apex_directly_in_any", apexDirectlyInAnyMutator).MutatesDependencies() } type apexBundleProperties struct { Loading Loading @@ -993,25 +992,7 @@ func (a *apexBundle) ApexInfoMutator(mctx android.TopDownMutatorContext) { return true } // Records whether a certain module is included in this apexBundle via direct dependency or // inndirect dependency. contents := make(map[string]android.ApexMembership) mctx.WalkDeps(func(child, parent android.Module) bool { if !continueApexDepsWalk(child, parent) { return false } // If the parent is apexBundle, this child is directly depended. _, directDep := parent.(*apexBundle) depName := mctx.OtherModuleName(child) contents[depName] = contents[depName].Add(directDep) return true }) // The membership information is saved for later access apexContents := android.NewApexContents(contents) android.SetProvider(mctx, android.ApexBundleInfoProvider, android.ApexBundleInfo{ Contents: apexContents, }) android.SetProvider(mctx, android.ApexBundleInfoProvider, android.ApexBundleInfo{}) minSdkVersion := a.minSdkVersion(mctx) // When min_sdk_version is not set, the apex is built against FutureApiLevel. Loading Loading @@ -1040,7 +1021,6 @@ func (a *apexBundle) ApexInfoMutator(mctx android.TopDownMutatorContext) { UsePlatformApis: a.UsePlatformApis(), InApexVariants: []string{apexVariationName}, InApexModules: []string{a.Name()}, // could be com.mycompany.android.foo ApexContents: []*android.ApexContents{apexContents}, TestApexes: testApexes, BaseApexName: mctx.ModuleName(), ApexAvailableName: proptools.String(a.properties.Apex_available_name), Loading Loading @@ -1242,14 +1222,6 @@ func apexModuleTypeRequiresVariant(module ApexInfoMutator) bool { return true } // See android.UpdateDirectlyInAnyApex // TODO(jiyong): move this to android/apex.go? func apexDirectlyInAnyMutator(mctx android.BottomUpMutatorContext) { if am, ok := mctx.Module().(android.ApexModule); ok { android.UpdateDirectlyInAnyApex(mctx, am) } } const ( // File extensions of an APEX for different packaging methods imageApexSuffix = ".apex" Loading Loading @@ -2180,8 +2152,6 @@ func (a *apexBundle) depVisitor(vctx *visitorContext, ctx android.ModuleContext, ctx.PropertyErrorf("systemserverclasspath_fragments", "systemserverclasspath_fragment content %q of type %q is not supported", depName, ctx.OtherModuleType(child)) } } else if _, ok := depTag.(android.CopyDirectlyInAnyApexTag); ok { // nothing } else if depTag == android.DarwinUniversalVariantTag { // nothing } else if depTag == android.RequiredDepTag { Loading apex/prebuilt.go +1 −14 Original line number Diff line number Diff line Loading @@ -306,10 +306,6 @@ func (p *prebuiltCommon) DepIsInSameApex(ctx android.BaseModuleContext, dep andr // extra copying of files. Contrast that with source apex modules that has to build each variant // from source. func (p *prebuiltCommon) apexInfoMutator(mctx android.TopDownMutatorContext) { // Collect direct dependencies into contents. contents := make(map[string]android.ApexMembership) // Collect the list of dependencies. var dependencies []android.ApexModule mctx.WalkDeps(func(child, parent android.Module) bool { Loading Loading @@ -347,21 +343,13 @@ func (p *prebuiltCommon) apexInfoMutator(mctx android.TopDownMutatorContext) { // behavior whether there is a corresponding source module present or not. depName = android.RemoveOptionalPrebuiltPrefix(depName) // Remember if this module was added as a direct dependency. direct := parent == mctx.Module() contents[depName] = contents[depName].Add(direct) // Add the module to the list of dependencies that need to have an APEX variant. dependencies = append(dependencies, child.(android.ApexModule)) return true }) // Create contents for the prebuilt_apex and store it away for later use. apexContents := android.NewApexContents(contents) android.SetProvider(mctx, android.ApexBundleInfoProvider, android.ApexBundleInfo{ Contents: apexContents, }) android.SetProvider(mctx, android.ApexBundleInfoProvider, android.ApexBundleInfo{}) // Create an ApexInfo for the prebuilt_apex. apexVariationName := p.ApexVariationName() Loading @@ -369,7 +357,6 @@ func (p *prebuiltCommon) apexInfoMutator(mctx android.TopDownMutatorContext) { ApexVariationName: apexVariationName, InApexVariants: []string{apexVariationName}, InApexModules: []string{p.BaseModuleName()}, // BaseModuleName() to avoid the prebuilt_ prefix. ApexContents: []*android.ApexContents{apexContents}, ForPrebuiltApex: true, } Loading java/bootclasspath_fragment.go +0 −5 Original line number Diff line number Diff line Loading @@ -83,10 +83,6 @@ func (b bootclasspathFragmentContentDependencyTag) ExportMember() bool { return true } // Contents of bootclasspath fragments in an apex are considered to be directly in the apex, as if // they were listed in java_libs. func (b bootclasspathFragmentContentDependencyTag) CopyDirectlyInAnyApex() {} // Contents of bootclasspath fragments require files from prebuilt apex files. func (b bootclasspathFragmentContentDependencyTag) RequiresFilesFromPrebuiltApex() {} Loading @@ -96,7 +92,6 @@ var bootclasspathFragmentContentDepTag = bootclasspathFragmentContentDependencyT var _ android.ExcludeFromVisibilityEnforcementTag = bootclasspathFragmentContentDepTag var _ android.ReplaceSourceWithPrebuilt = bootclasspathFragmentContentDepTag var _ android.SdkMemberDependencyTag = bootclasspathFragmentContentDepTag var _ android.CopyDirectlyInAnyApexTag = bootclasspathFragmentContentDepTag var _ android.RequiresFilesFromPrebuiltApexTag = bootclasspathFragmentContentDepTag func IsBootclasspathFragmentContentDepTag(tag blueprint.DependencyTag) bool { Loading java/sdk_library.go +0 −6 Original line number Diff line number Diff line Loading @@ -1314,12 +1314,6 @@ var implLibraryTag = sdkLibraryComponentTag{name: "impl-library"} var _ android.InstallNeededDependencyTag = sdkLibraryComponentTag{} // To satisfy the CopyDirectlyInAnyApexTag interface. Implementation library of the sdk library // in an apex is considered to be directly in the apex, as if it was listed in java_libs. func (t sdkLibraryComponentTag) CopyDirectlyInAnyApex() {} var _ android.CopyDirectlyInAnyApexTag = implLibraryTag func (t sdkLibraryComponentTag) InstallDepNeeded() bool { return t.name == "xml-permissions-file" || t.name == "impl-library" } Loading Loading
android/apex.go +0 −108 Original line number Diff line number Diff line Loading @@ -70,11 +70,6 @@ type ApexInfo struct { // prebuilt, the name here doesn't have the `prebuilt_` prefix. InApexModules []string // Pointers to the ApexContents struct each of which is for apexBundle modules that this // module is part of. The ApexContents gives information about which modules the apexBundle // has and whether a module became part of the apexBundle via a direct dependency or not. ApexContents []*ApexContents // True if this is for a prebuilt_apex. // // If true then this will customize the apex processing to make it suitable for handling Loading Loading @@ -162,7 +157,6 @@ func (i ApexInfo) Equal(other any) bool { // ApexBundleInfo contains information about the dependencies of an apex type ApexBundleInfo struct { Contents *ApexContents } var ApexBundleInfoProvider = blueprint.NewMutatorProvider[ApexBundleInfo]("apex_info") Loading Loading @@ -220,10 +214,6 @@ type ApexModule interface { // this after apex.apexMutator is run. InAnyApex() bool // Returns true if this module is directly in any APEX. Call this AFTER apex.apexMutator is // run. DirectlyInAnyApex() bool // NotInPlatform returns true if the module is not available to the platform due to // apex_available being set and not containing "//apex_available:platform". NotInPlatform() bool Loading Loading @@ -285,9 +275,6 @@ type ApexProperties struct { // See ApexModule.InAnyApex() InAnyApex bool `blueprint:"mutated"` // See ApexModule.DirectlyInAnyApex() DirectlyInAnyApex bool `blueprint:"mutated"` // See ApexModule.NotAvailableForPlatform() NotAvailableForPlatform bool `blueprint:"mutated"` Loading Loading @@ -324,16 +311,6 @@ type AlwaysRequireApexVariantTag interface { AlwaysRequireApexVariant() bool } // Marker interface that identifies dependencies that should inherit the DirectlyInAnyApex state // from the parent to the child. For example, stubs libraries are marked as DirectlyInAnyApex if // their implementation is in an apex. type CopyDirectlyInAnyApexTag interface { blueprint.DependencyTag // Method that differentiates this interface from others. CopyDirectlyInAnyApex() } // Interface that identifies dependencies to skip Apex dependency check type SkipApexAllowedDependenciesCheck interface { // Returns true to skip the Apex dependency check, which limits the allowed dependency in build. Loading Loading @@ -410,11 +387,6 @@ func (m *ApexModuleBase) InAnyApex() bool { return m.ApexProperties.InAnyApex } // Implements ApexModule func (m *ApexModuleBase) DirectlyInAnyApex() bool { return m.ApexProperties.DirectlyInAnyApex } // Implements ApexModule func (m *ApexModuleBase) NotInPlatform() bool { return !m.AvailableFor(AvailableToPlatform) Loading Loading @@ -575,7 +547,6 @@ func mergeApexVariations(apexInfos []ApexInfo) (merged []ApexInfo, aliases [][2] // Variants having the same mergedName are deduped merged[index].InApexVariants = append(merged[index].InApexVariants, variantName) merged[index].InApexModules = append(merged[index].InApexModules, apexInfo.InApexModules...) merged[index].ApexContents = append(merged[index].ApexContents, apexInfo.ApexContents...) merged[index].Updatable = merged[index].Updatable || apexInfo.Updatable // Platform APIs is allowed for this module only when all APEXes containing // the module are with `use_platform_apis: true`. Loading @@ -586,7 +557,6 @@ func mergeApexVariations(apexInfos []ApexInfo) (merged []ApexInfo, aliases [][2] apexInfo.ApexVariationName = mergedName apexInfo.InApexVariants = CopyOf(apexInfo.InApexVariants) apexInfo.InApexModules = CopyOf(apexInfo.InApexModules) apexInfo.ApexContents = append([]*ApexContents(nil), apexInfo.ApexContents...) apexInfo.TestApexes = CopyOf(apexInfo.TestApexes) merged = append(merged, apexInfo) } Loading Loading @@ -674,14 +644,7 @@ func MutateApexTransition(ctx BaseModuleContext, variation string) { apexInfos, _ = mergeApexVariations(apexInfos) } var inApex ApexMembership for _, a := range apexInfos { for _, apexContents := range a.ApexContents { inApex = inApex.merge(apexContents.contents[ctx.ModuleName()]) } } base.ApexProperties.InAnyApex = true base.ApexProperties.DirectlyInAnyApex = inApex == directlyInApex if platformVariation && !ctx.Host() && !module.AvailableFor(AvailableToPlatform) && module.NotAvailableForPlatform() { // Do not install the module for platform, but still allow it to output Loading Loading @@ -772,77 +735,6 @@ func UpdateUniqueApexVariationsForDeps(mctx BottomUpMutatorContext, am ApexModul }) } // UpdateDirectlyInAnyApex uses the final module to store if any variant of this module is directly // in any APEX, and then copies the final value to all the modules. It also copies the // DirectlyInAnyApex value to any transitive dependencies with a CopyDirectlyInAnyApexTag // dependency tag. func UpdateDirectlyInAnyApex(mctx BottomUpMutatorContext, am ApexModule) { base := am.apexModuleBase() // Copy DirectlyInAnyApex and InAnyApex from any transitive dependencies with a // CopyDirectlyInAnyApexTag dependency tag. mctx.WalkDeps(func(child, parent Module) bool { if _, ok := mctx.OtherModuleDependencyTag(child).(CopyDirectlyInAnyApexTag); ok { depBase := child.(ApexModule).apexModuleBase() depBase.apexPropertiesLock.Lock() defer depBase.apexPropertiesLock.Unlock() depBase.ApexProperties.DirectlyInAnyApex = base.ApexProperties.DirectlyInAnyApex depBase.ApexProperties.InAnyApex = base.ApexProperties.InAnyApex return true } return false }) } // ApexMembership tells how a module became part of an APEX. type ApexMembership int const ( notInApex ApexMembership = 0 indirectlyInApex = iota directlyInApex ) // ApexContents gives an information about member modules of an apexBundle. Each apexBundle has an // apexContents, and modules in that apex have a provider containing the apexContents of each // apexBundle they are part of. type ApexContents struct { // map from a module name to its membership in this apexBundle contents map[string]ApexMembership } // NewApexContents creates and initializes an ApexContents that is suitable // for use with an apex module. // - contents is a map from a module name to information about its membership within // the apex. func NewApexContents(contents map[string]ApexMembership) *ApexContents { return &ApexContents{ contents: contents, } } // Updates an existing membership by adding a new direct (or indirect) membership func (i ApexMembership) Add(direct bool) ApexMembership { if direct || i == directlyInApex { return directlyInApex } return indirectlyInApex } // Merges two membership into one. Merging is needed because a module can be a part of an apexBundle // in many different paths. For example, it could be dependend on by the apexBundle directly, but at // the same time, there might be an indirect dependency to the module. In that case, the more // specific dependency (the direct one) is chosen. func (i ApexMembership) merge(other ApexMembership) ApexMembership { if other == directlyInApex || i == directlyInApex { return directlyInApex } if other == indirectlyInApex || i == indirectlyInApex { return indirectlyInApex } return notInApex } //////////////////////////////////////////////////////////////////////////////////////////////////// //Below are routines for extra safety checks. // Loading
apex/apex.go +1 −31 Original line number Diff line number Diff line Loading @@ -67,7 +67,6 @@ func RegisterPostDepsMutators(ctx android.RegisterMutatorsContext) { // it should create a platform variant. ctx.BottomUp("mark_platform_availability", markPlatformAvailability) ctx.Transition("apex", &apexTransitionMutator{}) ctx.BottomUp("apex_directly_in_any", apexDirectlyInAnyMutator).MutatesDependencies() } type apexBundleProperties struct { Loading Loading @@ -993,25 +992,7 @@ func (a *apexBundle) ApexInfoMutator(mctx android.TopDownMutatorContext) { return true } // Records whether a certain module is included in this apexBundle via direct dependency or // inndirect dependency. contents := make(map[string]android.ApexMembership) mctx.WalkDeps(func(child, parent android.Module) bool { if !continueApexDepsWalk(child, parent) { return false } // If the parent is apexBundle, this child is directly depended. _, directDep := parent.(*apexBundle) depName := mctx.OtherModuleName(child) contents[depName] = contents[depName].Add(directDep) return true }) // The membership information is saved for later access apexContents := android.NewApexContents(contents) android.SetProvider(mctx, android.ApexBundleInfoProvider, android.ApexBundleInfo{ Contents: apexContents, }) android.SetProvider(mctx, android.ApexBundleInfoProvider, android.ApexBundleInfo{}) minSdkVersion := a.minSdkVersion(mctx) // When min_sdk_version is not set, the apex is built against FutureApiLevel. Loading Loading @@ -1040,7 +1021,6 @@ func (a *apexBundle) ApexInfoMutator(mctx android.TopDownMutatorContext) { UsePlatformApis: a.UsePlatformApis(), InApexVariants: []string{apexVariationName}, InApexModules: []string{a.Name()}, // could be com.mycompany.android.foo ApexContents: []*android.ApexContents{apexContents}, TestApexes: testApexes, BaseApexName: mctx.ModuleName(), ApexAvailableName: proptools.String(a.properties.Apex_available_name), Loading Loading @@ -1242,14 +1222,6 @@ func apexModuleTypeRequiresVariant(module ApexInfoMutator) bool { return true } // See android.UpdateDirectlyInAnyApex // TODO(jiyong): move this to android/apex.go? func apexDirectlyInAnyMutator(mctx android.BottomUpMutatorContext) { if am, ok := mctx.Module().(android.ApexModule); ok { android.UpdateDirectlyInAnyApex(mctx, am) } } const ( // File extensions of an APEX for different packaging methods imageApexSuffix = ".apex" Loading Loading @@ -2180,8 +2152,6 @@ func (a *apexBundle) depVisitor(vctx *visitorContext, ctx android.ModuleContext, ctx.PropertyErrorf("systemserverclasspath_fragments", "systemserverclasspath_fragment content %q of type %q is not supported", depName, ctx.OtherModuleType(child)) } } else if _, ok := depTag.(android.CopyDirectlyInAnyApexTag); ok { // nothing } else if depTag == android.DarwinUniversalVariantTag { // nothing } else if depTag == android.RequiredDepTag { Loading
apex/prebuilt.go +1 −14 Original line number Diff line number Diff line Loading @@ -306,10 +306,6 @@ func (p *prebuiltCommon) DepIsInSameApex(ctx android.BaseModuleContext, dep andr // extra copying of files. Contrast that with source apex modules that has to build each variant // from source. func (p *prebuiltCommon) apexInfoMutator(mctx android.TopDownMutatorContext) { // Collect direct dependencies into contents. contents := make(map[string]android.ApexMembership) // Collect the list of dependencies. var dependencies []android.ApexModule mctx.WalkDeps(func(child, parent android.Module) bool { Loading Loading @@ -347,21 +343,13 @@ func (p *prebuiltCommon) apexInfoMutator(mctx android.TopDownMutatorContext) { // behavior whether there is a corresponding source module present or not. depName = android.RemoveOptionalPrebuiltPrefix(depName) // Remember if this module was added as a direct dependency. direct := parent == mctx.Module() contents[depName] = contents[depName].Add(direct) // Add the module to the list of dependencies that need to have an APEX variant. dependencies = append(dependencies, child.(android.ApexModule)) return true }) // Create contents for the prebuilt_apex and store it away for later use. apexContents := android.NewApexContents(contents) android.SetProvider(mctx, android.ApexBundleInfoProvider, android.ApexBundleInfo{ Contents: apexContents, }) android.SetProvider(mctx, android.ApexBundleInfoProvider, android.ApexBundleInfo{}) // Create an ApexInfo for the prebuilt_apex. apexVariationName := p.ApexVariationName() Loading @@ -369,7 +357,6 @@ func (p *prebuiltCommon) apexInfoMutator(mctx android.TopDownMutatorContext) { ApexVariationName: apexVariationName, InApexVariants: []string{apexVariationName}, InApexModules: []string{p.BaseModuleName()}, // BaseModuleName() to avoid the prebuilt_ prefix. ApexContents: []*android.ApexContents{apexContents}, ForPrebuiltApex: true, } Loading
java/bootclasspath_fragment.go +0 −5 Original line number Diff line number Diff line Loading @@ -83,10 +83,6 @@ func (b bootclasspathFragmentContentDependencyTag) ExportMember() bool { return true } // Contents of bootclasspath fragments in an apex are considered to be directly in the apex, as if // they were listed in java_libs. func (b bootclasspathFragmentContentDependencyTag) CopyDirectlyInAnyApex() {} // Contents of bootclasspath fragments require files from prebuilt apex files. func (b bootclasspathFragmentContentDependencyTag) RequiresFilesFromPrebuiltApex() {} Loading @@ -96,7 +92,6 @@ var bootclasspathFragmentContentDepTag = bootclasspathFragmentContentDependencyT var _ android.ExcludeFromVisibilityEnforcementTag = bootclasspathFragmentContentDepTag var _ android.ReplaceSourceWithPrebuilt = bootclasspathFragmentContentDepTag var _ android.SdkMemberDependencyTag = bootclasspathFragmentContentDepTag var _ android.CopyDirectlyInAnyApexTag = bootclasspathFragmentContentDepTag var _ android.RequiresFilesFromPrebuiltApexTag = bootclasspathFragmentContentDepTag func IsBootclasspathFragmentContentDepTag(tag blueprint.DependencyTag) bool { Loading
java/sdk_library.go +0 −6 Original line number Diff line number Diff line Loading @@ -1314,12 +1314,6 @@ var implLibraryTag = sdkLibraryComponentTag{name: "impl-library"} var _ android.InstallNeededDependencyTag = sdkLibraryComponentTag{} // To satisfy the CopyDirectlyInAnyApexTag interface. Implementation library of the sdk library // in an apex is considered to be directly in the apex, as if it was listed in java_libs. func (t sdkLibraryComponentTag) CopyDirectlyInAnyApex() {} var _ android.CopyDirectlyInAnyApexTag = implLibraryTag func (t sdkLibraryComponentTag) InstallDepNeeded() bool { return t.name == "xml-permissions-file" || t.name == "impl-library" } Loading