Add pre-built attribute to host module definition for fake snapshot. am: 9e5cc8a674 am: d7e3a12438

Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2044967

Change-Id: Iaa4355b0d76329c47b6370f855a8cbd0650a1d47
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Rob Seymour 2022-03-30 01:25:33 +00:00 committed by Automerger Merge Worker
commit 226b5f4589

View file

@ -68,6 +68,12 @@ func init() {
registerHostSnapshotComponents(android.InitRegistrationContext)
}
// Add prebuilt information to snapshot data
type hostSnapshotFakeJsonFlags struct {
SnapshotJsonFlags
Prebuilt bool `json:",omitempty"`
}
func registerHostSnapshotComponents(ctx android.RegistrationContext) {
ctx.RegisterSingletonType("host-fake-snapshot", HostToolsFakeAndroidSingleton)
}
@ -94,7 +100,9 @@ func (c *hostFakeSingleton) GenerateBuildActions(ctx android.SingletonContext) {
// Find all host binary modules add 'fake' versions to snapshot
var outputs android.Paths
seen := make(map[string]bool)
var jsonData []SnapshotJsonFlags
var jsonData []hostSnapshotFakeJsonFlags
prebuilts := make(map[string]bool)
ctx.VisitAllModules(func(module android.Module) {
if module.Target().Os != ctx.Config().BuildOSTarget.Os {
return
@ -104,9 +112,10 @@ func (c *hostFakeSingleton) GenerateBuildActions(ctx android.SingletonContext) {
}
if android.IsModulePrebuilt(module) {
// Add non-prebuilt module name to map of prebuilts
prebuilts[android.RemoveOptionalPrebuiltPrefix(module.Name())] = true
return
}
if !module.Enabled() || module.IsHideFromMake() {
return
}
@ -120,11 +129,17 @@ func (c *hostFakeSingleton) GenerateBuildActions(ctx android.SingletonContext) {
if !seen[outFile] {
seen[outFile] = true
outputs = append(outputs, WriteStringToFileRule(ctx, "", outFile))
jsonData = append(jsonData, *hostJsonDesc(module))
jsonData = append(jsonData, hostSnapshotFakeJsonFlags{*hostJsonDesc(module), false})
}
}
})
// Update any module prebuilt information
for idx, _ := range jsonData {
if _, ok := prebuilts[jsonData[idx].ModuleName]; ok {
// Prebuilt exists for this module
jsonData[idx].Prebuilt = true
}
}
marsh, err := json.Marshal(jsonData)
if err != nil {
ctx.Errorf("host fake snapshot json marshal failure: %#v", err)