Merge "Generate info about the selected app variant in platform builds" into main

This commit is contained in:
Treehugger Robot
2024-03-14 22:05:43 +00:00
committed by Gerrit Code Review
7 changed files with 77 additions and 22 deletions

View File

@@ -2434,29 +2434,14 @@ func (a *apexBundle) GenerateAndroidBuildActions(ctx android.ModuleContext) {
a.providePrebuiltInfo(ctx)
}
var prebuiltInfoProvider = blueprint.NewProvider[prebuiltInfo]()
// contents of prebuilt_info.json
type prebuiltInfo struct {
// Name of the apex, without the prebuilt_ prefix
Name string
Is_prebuilt bool
// This is relative to root of the workspace.
// In case of mainline modules, this file contains the build_id that was used
// to generate the mainline module prebuilt.
Prebuilt_info_file_path string `json:",omitempty"`
}
// Set prebuiltInfoProvider. This will be used by `apex_prebuiltinfo_singleton` to print out a metadata file
// with information about whether source or prebuilt of an apex was used during the build.
func (a *apexBundle) providePrebuiltInfo(ctx android.ModuleContext) {
info := prebuiltInfo{
info := android.PrebuiltInfo{
Name: a.Name(),
Is_prebuilt: false,
}
android.SetProvider(ctx, prebuiltInfoProvider, info)
android.SetProvider(ctx, android.PrebuiltInfoProvider, info)
}
// Set a provider containing information about the jars and .prof provided by the apex

View File

@@ -149,10 +149,10 @@ type apexPrebuiltInfo struct {
}
func (a *apexPrebuiltInfo) GenerateBuildActions(ctx android.SingletonContext) {
prebuiltInfos := []prebuiltInfo{}
prebuiltInfos := []android.PrebuiltInfo{}
ctx.VisitAllModules(func(m android.Module) {
prebuiltInfo, exists := android.SingletonModuleProvider(ctx, m, prebuiltInfoProvider)
prebuiltInfo, exists := android.SingletonModuleProvider(ctx, m, android.PrebuiltInfoProvider)
// Use prebuiltInfoProvider to filter out non apex soong modules.
// Use HideFromMake to filter out the unselected variants of a specific apex.
if exists && !m.IsHideFromMake() {

View File

@@ -827,15 +827,15 @@ func (p *prebuiltCommon) provideApexExportsInfo(ctx android.ModuleContext) {
// Set prebuiltInfoProvider. This will be used by `apex_prebuiltinfo_singleton` to print out a metadata file
// with information about whether source or prebuilt of an apex was used during the build.
func (p *prebuiltCommon) providePrebuiltInfo(ctx android.ModuleContext) {
info := prebuiltInfo{
Name: p.BaseModuleName(), // BaseModuleName ensures that this will not contain the prebuilt_ prefix.
info := android.PrebuiltInfo{
Name: p.BaseModuleName(),
Is_prebuilt: true,
}
// If Prebuilt_info information is available in the soong module definition, add it to prebuilt_info.json.
if p.prebuiltCommonProperties.Prebuilt_info != nil {
info.Prebuilt_info_file_path = android.PathForModuleSrc(ctx, *p.prebuiltCommonProperties.Prebuilt_info).String()
}
android.SetProvider(ctx, prebuiltInfoProvider, info)
android.SetProvider(ctx, android.PrebuiltInfoProvider, info)
}
func (p *Prebuilt) GenerateAndroidBuildActions(ctx android.ModuleContext) {