Generate phony targets for partitions
This change allows `m <partition name>image` to be built in soong-only
builds.
Test: aninja -t query systemimage
Bug: 392957226
Change-Id: Idf1cceae2b88d9f4da073535deef798adab48bd0
diff --git a/filesystem/android_device.go b/filesystem/android_device.go
index eb2e036..4201de5 100644
--- a/filesystem/android_device.go
+++ b/filesystem/android_device.go
@@ -15,6 +15,7 @@
package filesystem
import (
+ "fmt"
"strings"
"sync/atomic"
@@ -221,6 +222,8 @@
// Checkbuilding it causes soong to make a phony, so you can say `m <module name>`
ctx.CheckbuildFile(allImagesStamp)
+
+ a.setVbmetaPhonyTargets(ctx)
}
// Helper structs for target_files.zip creation
@@ -406,3 +409,20 @@
}
return fsInfo
}
+
+func (a *androidDevice) setVbmetaPhonyTargets(ctx android.ModuleContext) {
+ if !proptools.Bool(a.deviceProps.Main_device) {
+ return
+ }
+
+ if !ctx.Config().KatiEnabled() {
+ for _, vbmetaPartitionName := range a.partitionProps.Vbmeta_partitions {
+ img := ctx.GetDirectDepProxyWithTag(vbmetaPartitionName, filesystemDepTag)
+ if provider, ok := android.OtherModuleProvider(ctx, img, vbmetaPartitionProvider); ok {
+ // make generates `vbmetasystemimage` phony target instead of `vbmeta_systemimage` phony target.
+ partitionName := strings.ReplaceAll(provider.Name, "_", "")
+ ctx.Phony(fmt.Sprintf("%simage", partitionName), provider.Output)
+ }
+ }
+ }
+}