Add device_aconfig_declarations target
Building device_aconfig_declarations creates simplifies listing all
aconfig flags used on the device by creating a build artifact at:
$(OUT_DIR)/target/product/$(TARGET_PRODUCT)/device_aconfig_declarations.pb
Bug: b/308625757
Test: manual
Change-Id: Ic5eef9c6a26f7893b3f4bdfed2cd4ac82a54a8f9
diff --git a/core/packaging/flags.mk b/core/packaging/flags.mk
index 6fc1e4c..62ef3df 100644
--- a/core/packaging/flags.mk
+++ b/core/packaging/flags.mk
@@ -97,6 +97,20 @@
)) \
)
+# Collect the on-device flags into a single file, similar to all_aconfig_declarations.
+required_aconfig_flags_files := \
+ $(sort $(foreach partition, $(filter $(IMAGES_TO_BUILD), $(_FLAG_PARTITIONS)), \
+ $(aconfig_flag_summaries_protobuf.$(partition)) \
+ ))
+
+.PHONY: device_aconfig_declarations
+device_aconfig_declarations: $(PRODUCT_OUT)/device_aconfig_declarations.pb
+$(eval $(call generate-partition-aconfig-flag-file, \
+ $(TARGET_OUT_FLAGS)/device_aconfig_declarations.pb, \
+ $(PRODUCT_OUT)/device_aconfig_declarations.pb, \
+ $(sort $(required_aconfig_flags_files)) \
+)) \
+
# Create a set of storage file for each partition
# $(1): built aconfig flags storage package map file (out)
# $(2): built aconfig flags storage flag map file (out)
@@ -178,6 +192,7 @@
# Clean up
required_flags_files:=
+required_aconfig_flags_files:=
$(foreach partition, $(_FLAG_PARTITIONS), \
$(eval build_flag_summaries.$(partition):=) \
$(eval aconfig_flag_summaries_protobuf.$(partition):=) \