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
This commit is contained in:
Anton Hansson
2019-01-28 17:49:00 +00:00
parent ad9ee4b504
commit d26e4eeec8
2 changed files with 18 additions and 3 deletions

View File

@@ -580,7 +580,12 @@ $(INSTALLED_ODM_BUILD_PROP_TARGET): $(BUILDINFO_COMMON_SH)
$(hide) build/make/tools/post_process_props.py $@ $(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 INSTALLED_PRODUCT_SERVICES_BUILD_PROP_TARGET := $(TARGET_OUT_PRODUCT_SERVICES)/build.prop
ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_PRODUCT_SERVICES_BUILD_PROP_TARGET) 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)) $(call collapse-pairs, $(PRODUCT_PRODUCT_SERVICES_PROPERTIES))
FINAL_PRODUCT_SERVICES_PROPERTIES := $(call uniq-pairs-by-first-component, \ FINAL_PRODUCT_SERVICES_PROPERTIES := $(call uniq-pairs-by-first-component, \
$(FINAL_PRODUCT_SERVICES_PROPERTIES),=) $(FINAL_PRODUCT_SERVICES_PROPERTIES),=)
$(INSTALLED_PRODUCT_SERVICES_BUILD_PROP_TARGET): $(BUILDINFO_COMMON_SH) $(INSTALLED_PRODUCT_SERVICES_BUILD_PROP_TARGET): $(BUILDINFO_COMMON_SH)
@echo Target product_services buildinfo: $@ @echo Target product_services buildinfo: $@
@mkdir -p $(dir $@) @mkdir -p $(dir $@)
@@ -602,6 +606,7 @@ endif # BOARD_USES_PRODUCT_SERVICESIMAGE
$(hide) $(foreach line,$(FINAL_PRODUCT_SERVICES_PROPERTIES), \ $(hide) $(foreach line,$(FINAL_PRODUCT_SERVICES_PROPERTIES), \
echo "$(line)" >> $@;) echo "$(line)" >> $@;)
$(hide) build/make/tools/post_process_props.py $@ $(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) $(copy-file-to-target)
$(installed_product_notice_xml_gz): $(target_product_notice_file_xml_gz) $(installed_product_notice_xml_gz): $(target_product_notice_file_xml_gz)
$(copy-file-to-target) $(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) $(installed_product_services_notice_xml_gz): $(target_product_services_notice_file_xml_gz)
$(copy-file-to-target) $(copy-file-to-target)
endif
# if we've been run my mm, mmm, etc, don't reinstall this every time # if we've been run my mm, mmm, etc, don't reinstall this every time
ifeq ($(ONE_SHOT_MAKEFILE),) ifeq ($(ONE_SHOT_MAKEFILE),)

View File

@@ -444,11 +444,16 @@ endif
########################################### ###########################################
# Now we can substitute with the real value of TARGET_COPY_OUT_PRODUCT_SERVICES # 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)) ifeq ($(TARGET_COPY_OUT_PRODUCT_SERVICES),$(_product_services_path_placeholder))
TARGET_COPY_OUT_PRODUCT_SERVICES := system/product_services 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)),) 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 endif
.KATI_READONLY := MERGE_PRODUCT_SERVICES_INTO_PRODUCT
PRODUCT_COPY_FILES := $(subst $(_product_services_path_placeholder),$(TARGET_COPY_OUT_PRODUCT_SERVICES),$(PRODUCT_COPY_FILES)) PRODUCT_COPY_FILES := $(subst $(_product_services_path_placeholder),$(TARGET_COPY_OUT_PRODUCT_SERVICES),$(PRODUCT_COPY_FILES))
BOARD_USES_PRODUCT_SERVICESIMAGE := BOARD_USES_PRODUCT_SERVICESIMAGE :=