Build zip of all soong-built images
For use in a diff test against make-built images.
Bug: 376539388
Test: m soong_only_diff_test
Change-Id: Idac01d3dfd075b650a44058c57a88520b314cec4
diff --git a/filesystem/android_device.go b/filesystem/android_device.go
index 6c04828..b783d0f 100644
--- a/filesystem/android_device.go
+++ b/filesystem/android_device.go
@@ -79,6 +79,8 @@
partitionProps PartitionNameProperties
deviceProps DeviceProperties
+
+ allImagesZip android.Path
}
func AndroidDeviceFactory() android.Module {
@@ -202,6 +204,17 @@
deps = append(deps, imageOutput.DefaultOutputFiles[0])
})
+ allImagesZip := android.PathForModuleOut(ctx, "all_images.zip")
+ allImagesZipBuilder := android.NewRuleBuilder(pctx, ctx)
+ cmd := allImagesZipBuilder.Command().BuiltTool("soong_zip").Flag("--sort_entries")
+ for _, dep := range deps {
+ cmd.FlagWithArg("-e ", dep.Base())
+ cmd.FlagWithInput("-f ", dep)
+ }
+ cmd.FlagWithOutput("-o ", allImagesZip)
+ allImagesZipBuilder.Build("soong_all_images_zip", "all_images.zip")
+ a.allImagesZip = allImagesZip
+
allImagesStamp := android.PathForModuleOut(ctx, "all_images_stamp")
var validations android.Paths
if !ctx.Config().KatiEnabled() && proptools.Bool(a.deviceProps.Main_device) {
@@ -226,6 +239,12 @@
a.setVbmetaPhonyTargets(ctx)
}
+func (a *androidDevice) MakeVars(ctx android.MakeVarsModuleContext) {
+ if proptools.Bool(a.deviceProps.Main_device) {
+ ctx.StrictRaw("SOONG_ONLY_ALL_IMAGES_ZIP", a.allImagesZip.String())
+ }
+}
+
// Helper structs for target_files.zip creation
type targetFilesZipCopy struct {
srcModule *string