Allow to tag owner to PRODUCT_COPY_FILES
PRODUCT_COPY_FILES now is a list of words like <source path>:<destination path>[:<owner>]. The optional :<owner> is used to indicate the owner of a vendor file. Bug: 7048854 Change-Id: I435d1e18b7a091fb62513062cfc2e420e51557ec
This commit is contained in:
parent
7884dfc645
commit
4b0486b4a6
4 changed files with 24 additions and 20 deletions
|
@ -13,7 +13,7 @@ is_tests_build := $(filter tests,$(MAKECMDGOALS))
|
|||
|
||||
# -----------------------------------------------------------------
|
||||
# Define rules to copy PRODUCT_COPY_FILES defined by the product.
|
||||
# PRODUCT_COPY_FILES contains words like <source file>:<dest file>.
|
||||
# PRODUCT_COPY_FILES contains words like <source file>:<dest file>[:<owner>].
|
||||
# <dest file> is relative to $(PRODUCT_OUT), so it should look like,
|
||||
# e.g., "system/etc/file.xml".
|
||||
# The filter part means "only eval the copy-one-file rule if this
|
||||
|
|
|
@ -165,7 +165,7 @@ $(if ,, \
|
|||
$(eval pb := $(strip $(PRODUCTS.$(p).PRODUCT_BRAND))) \
|
||||
$(if $(pb),,$(error $(p): PRODUCT_BRAND must be defined.)) \
|
||||
$(foreach cf,$(strip $(PRODUCTS.$(p).PRODUCT_COPY_FILES)), \
|
||||
$(if $(filter 2,$(words $(subst :,$(space),$(cf)))),, \
|
||||
$(if $(filter 2 3,$(words $(subst :,$(space),$(cf)))),, \
|
||||
$(error $(p): malformed COPY_FILE "$(cf)") \
|
||||
) \
|
||||
) \
|
||||
|
|
|
@ -284,11 +284,12 @@ ifneq (1,$(words $(PRODUCT_DEFAULT_DEV_CERTIFICATE)))
|
|||
endif
|
||||
endif
|
||||
|
||||
# A list of words like <source path>:<destination path>. The file at
|
||||
# the source path should be copied to the destination path when building
|
||||
# this product. <destination path> is relative to $(PRODUCT_OUT), so
|
||||
# it should look like, e.g., "system/etc/file.xml". The rules
|
||||
# for these copy steps are defined in config/Makefile.
|
||||
# A list of words like <source path>:<destination path>[:<owner>].
|
||||
# The file at the source path should be copied to the destination path
|
||||
# when building this product. <destination path> is relative to
|
||||
# $(PRODUCT_OUT), so it should look like, e.g., "system/etc/file.xml".
|
||||
# The rules for these copy steps are defined in build/core/Makefile.
|
||||
# The optional :<owner> is used to indicate the owner of a vendor file.
|
||||
PRODUCT_COPY_FILES := \
|
||||
$(strip $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_COPY_FILES))
|
||||
|
||||
|
|
|
@ -17,22 +17,22 @@
|
|||
# Restrict the vendor module owners here.
|
||||
_vendor_owner_whitelist := \
|
||||
asus \
|
||||
audience \
|
||||
broadcom \
|
||||
csr \
|
||||
audience \
|
||||
broadcom \
|
||||
csr \
|
||||
elan \
|
||||
google \
|
||||
imgtec \
|
||||
invensense \
|
||||
imgtec \
|
||||
invensense \
|
||||
lge \
|
||||
nvidia \
|
||||
nxp \
|
||||
nxp \
|
||||
qcom \
|
||||
samsung \
|
||||
samsung_arm \
|
||||
ti \
|
||||
samsung \
|
||||
samsung_arm \
|
||||
ti \
|
||||
trusted_logic \
|
||||
widevine
|
||||
widevine
|
||||
|
||||
|
||||
ifneq (,$(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_RESTRICT_VENDOR_FILES))
|
||||
|
@ -47,10 +47,13 @@ ifneq (,$(filter vendor/%, $(PRODUCT_PACKAGE_OVERLAYS) $(DEVICE_PACKAGE_OVERLAYS
|
|||
$(error Error: Product "$(TARGET_PRODUCT)" can not have overlay in vendor tree: \
|
||||
$(filter vendor/%, $(PRODUCT_PACKAGE_OVERLAYS) $(DEVICE_PACKAGE_OVERLAYS)))
|
||||
endif
|
||||
ifneq (,$(filter vendor/%, $(PRODUCT_COPY_FILES)))
|
||||
$(error Error: Product "$(TARGET_PRODUCT)" can not have PRODUCT_COPY_FILES from vendor tree: \
|
||||
$(filter vendor/%, $(PRODUCT_COPY_FILES)))
|
||||
_vendor_check_copy_files := $(filter vendor/%, $(PRODUCT_COPY_FILES))
|
||||
ifneq (,$(_vendor_check_copy_files))
|
||||
$(foreach c, $(_vendor_check_copy_files), \
|
||||
$(if $(filter $(_vendor_owner_whitelist), $(call word-colon, 3, $(c))),,\
|
||||
$(error Error: vendor PRODUCT_COPY_FILES file "$(c)" has unknown owner)))
|
||||
endif
|
||||
_vendor_check_copy_files :=
|
||||
|
||||
$(foreach m, $(_vendor_check_modules), \
|
||||
$(if $(filter vendor/%, $(ALL_MODULES.$(m).PATH)),\
|
||||
|
|
Loading…
Reference in a new issue