Generate info about the selected app variant in platform builds
This is a followup to aosp/2999198 and adds information about apps.
Each app will have an entry in this file with the following properties
- Name, mandatory
- Is_prebuilt, mandatory
- Prebuilt_info_file_path, optional
Implementation details
- Move prebuiltInfoProvider out of build/soong/apex to
build/soong/android. This allows build/soong/java to use it.
- Introduce a new `prebuilt_info` prop to `android_app_set` and
`android_app_import`
- All app module types will set a prebuiltInfoProvider in
GenerateAndroidBuildActions, including the source app module types
Test: m nothing --no-skip-soong-tests
Test: m out/soong/prebuilt_info.json
Test: ls -l out/soong/prebuilt_info.json --human-readable
-rw------- 1 spandandas primarygroup 317K Mar 11 23:46 out/soong/prebuilt_info.json
Test: #modified trunk_staging.locally to select prebuilts of some
mainline apps. Spot-checked that `is_prebuilt` and
`prebuilt_info_file_path` get populated appropriately
Bug: 327480225
Change-Id: I5078e0ec26c9568194550909962b90111a5223f7
diff --git a/apex/apex.go b/apex/apex.go
index c688438..c662f2c 100644
--- a/apex/apex.go
+++ b/apex/apex.go
@@ -2428,29 +2428,14 @@
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