From d26e4eeec865c003c6b8003f4052c78e82b779da Mon Sep 17 00:00:00 2001 From: Anton Hansson Date: Mon, 28 Jan 2019 17:49:00 +0000 Subject: [PATCH] Allow merging product_services into /product Allow devices to specify TARGET_COPY_OUT_PRODUCT_SERVICES := product, which in effect treats all product_services modules the same as product modules. Do not generate license and build props for product_services when this settings is enabled. Bug: 113098451 Test: boot downstream product Change-Id: Id51230b969900bebcf19d0138dfd6187dfce25b1 --- core/Makefile | 14 ++++++++++++-- core/envsetup.mk | 7 ++++++- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/core/Makefile b/core/Makefile index 0bbaf12177..72733f81ab 100644 --- a/core/Makefile +++ b/core/Makefile @@ -580,7 +580,12 @@ $(INSTALLED_ODM_BUILD_PROP_TARGET): $(BUILDINFO_COMMON_SH) $(hide) build/make/tools/post_process_props.py $@ # ----------------------------------------------------------------- -# product_services build.prop +# product_services build.prop (unless it's merged into /product) +ifdef MERGE_PRODUCT_SERVICES_INTO_PRODUCT + ifneq (,$(PRODUCT_PRODUCT_SERVICES_PROPERTIES)) + $(error PRODUCT_PRODUCT_SERVICES_PROPERTIES is not supported in this build.) + endif +else INSTALLED_PRODUCT_SERVICES_BUILD_PROP_TARGET := $(TARGET_OUT_PRODUCT_SERVICES)/build.prop ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_PRODUCT_SERVICES_BUILD_PROP_TARGET) @@ -588,7 +593,6 @@ FINAL_PRODUCT_SERVICES_PROPERTIES += \ $(call collapse-pairs, $(PRODUCT_PRODUCT_SERVICES_PROPERTIES)) FINAL_PRODUCT_SERVICES_PROPERTIES := $(call uniq-pairs-by-first-component, \ $(FINAL_PRODUCT_SERVICES_PROPERTIES),=) - $(INSTALLED_PRODUCT_SERVICES_BUILD_PROP_TARGET): $(BUILDINFO_COMMON_SH) @echo Target product_services buildinfo: $@ @mkdir -p $(dir $@) @@ -602,6 +606,7 @@ endif # BOARD_USES_PRODUCT_SERVICESIMAGE $(hide) $(foreach line,$(FINAL_PRODUCT_SERVICES_PROPERTIES), \ echo "$(line)" >> $@;) $(hide) build/make/tools/post_process_props.py $@ +endif # MERGE_PRODUCT_SERVICES_INTO_PRODUCT # ---------------------------------------------------------------- @@ -1156,8 +1161,13 @@ $(installed_vendor_notice_xml_gz): $(target_vendor_notice_file_xml_gz) $(copy-file-to-target) $(installed_product_notice_xml_gz): $(target_product_notice_file_xml_gz) $(copy-file-to-target) + +# No notice file for product_services if its contents are merged into /product. +# The notices will be part of the /product notice file. +ifndef MERGE_PRODUCT_SERVICES_INTO_PRODUCT $(installed_product_services_notice_xml_gz): $(target_product_services_notice_file_xml_gz) $(copy-file-to-target) +endif # if we've been run my mm, mmm, etc, don't reinstall this every time ifeq ($(ONE_SHOT_MAKEFILE),) diff --git a/core/envsetup.mk b/core/envsetup.mk index bd632bf137..17448f11a8 100644 --- a/core/envsetup.mk +++ b/core/envsetup.mk @@ -444,11 +444,16 @@ endif ########################################### # Now we can substitute with the real value of TARGET_COPY_OUT_PRODUCT_SERVICES +MERGE_PRODUCT_SERVICES_INTO_PRODUCT := ifeq ($(TARGET_COPY_OUT_PRODUCT_SERVICES),$(_product_services_path_placeholder)) TARGET_COPY_OUT_PRODUCT_SERVICES := system/product_services +else ifeq ($(TARGET_COPY_OUT_PRODUCT),$(TARGET_COPY_OUT_PRODUCT_SERVICES)) + MERGE_PRODUCT_SERVICES_INTO_PRODUCT := true else ifeq ($(filter product_services system/product_services,$(TARGET_COPY_OUT_PRODUCT_SERVICES)),) - $(error TARGET_COPY_OUT_PRODUCT_SERVICES must be either 'product_services' or 'system/product_services', seeing '$(TARGET_COPY_OUT_PRODUCT_SERVICES)'.) + $(error TARGET_COPY_OUT_PRODUCT_SERVICES must be either 'product_services',\ + '$(TARGET_COPY_OUT_PRODUCT)' or 'system/product_services', seeing '$(TARGET_COPY_OUT_PRODUCT_SERVICES)'.) endif +.KATI_READONLY := MERGE_PRODUCT_SERVICES_INTO_PRODUCT PRODUCT_COPY_FILES := $(subst $(_product_services_path_placeholder),$(TARGET_COPY_OUT_PRODUCT_SERVICES),$(PRODUCT_COPY_FILES)) BOARD_USES_PRODUCT_SERVICESIMAGE :=