Add PRODUCT_BUILD_*_IMAGE, BUILDING_*_IMAGE to control building of images
These centralize the decisions on whether to build certain images or
not, and allow the product definition to override that choice.
There are a few use cases here:
* For GSI-like cases, we only want to build the system image. This
didn't really change, but it's somewhat simpler to configure, and
easier to understand the build logic.
* On the opposite side, when you're planning on using a GSI, the device
specific build can only build the vendor images (or some other set).
* Some cases (Fuchsia, etc) don't want to build any images, as they'll
be distributing the build artifacts in their own packaging.
I suspect in the future, TARGET_BUILD_APPS may be able to be refactored
into the third use case.
Test: treehugger
Test: Create a product definition that includes nothing, try to build it.
Test: compare build-aosp_crosshatch.ninja and build-crosshatch.ninja before/after
Change-Id: I685ab841be3718d3dd7052c28ccd764bb6f1991a
diff --git a/core/product.mk b/core/product.mk
index 2d7ace2..f52426a 100644
--- a/core/product.mk
+++ b/core/product.mk
@@ -216,6 +216,15 @@
PRODUCT_OTA_ENFORCE_VINTF_KERNEL_REQUIREMENTS \
PRODUCT_XOM_EXCLUDE_PATHS \
PRODUCT_MANIFEST_PACKAGE_NAME_OVERRIDES \
+ PRODUCT_BUILD_SYSTEM_IMAGE \
+ PRODUCT_BUILD_SYSTEM_OTHER_IMAGE \
+ PRODUCT_BUILD_VENDOR_IMAGE \
+ PRODUCT_BUILD_PRODUCT_IMAGE \
+ PRODUCT_BUILD_PRODUCT_SERVICES_IMAGE \
+ PRODUCT_BUILD_ODM_IMAGE \
+ PRODUCT_BUILD_CACHE_IMAGE \
+ PRODUCT_BUILD_RAMDISK_IMAGE \
+ PRODUCT_BUILD_USERDATA_IMAGE \
define dump-product
$(info ==== $(1) ====)\