Merge "Partition the targets for notice files." am: 684350d24f
am: 2150099d65
Change-Id: I13c83c65f6659feb9618124ab0878f3433a85479
This commit is contained in:
commit
d7f63ec865
|
@ -1316,6 +1316,7 @@ endif # BUILDING_VENDOR_BOOT_IMAGE
|
|||
# $(5) - Directory to use. Notice files are all $(5)/src. Other
|
||||
# directories in there will be used for scratch
|
||||
# $(6) - Dependencies for the output files
|
||||
# $(7) - Directories to exclude
|
||||
#
|
||||
# The algorithm here is that we go collect a hash for each of the notice
|
||||
# files and write the names of the files that match that hash. Then
|
||||
|
@ -1333,7 +1334,7 @@ $(2) $(3): PRIVATE_MESSAGE := $(4)
|
|||
$(2) $(3): PRIVATE_DIR := $(5)
|
||||
$(2) : $(3)
|
||||
$(3) : $(6) $(BUILD_SYSTEM)/Makefile build/make/tools/generate-notice-files.py
|
||||
build/make/tools/generate-notice-files.py --text-output $(2) \
|
||||
build/make/tools/generate-notice-files.py --text-output $(2) $(foreach xdir, $(7), -e $(xdir) )\
|
||||
$(if $(filter $(1),xml_excluded_vendor_product_odm),-e vendor -e product -e system_ext -e odm --xml-output, \
|
||||
$(if $(filter $(1),xml_excluded_system_product_odm),-e system -e product -e system_ext -e odm --xml-output, \
|
||||
$(if $(filter $(1),xml_product),-i product --xml-output, \
|
||||
|
@ -1358,6 +1359,11 @@ kernel_notice_file := $(TARGET_OUT_NOTICE_FILES)/src/kernel.txt
|
|||
winpthreads_notice_file := $(TARGET_OUT_NOTICE_FILES)/src/winpthreads.txt
|
||||
pdk_fusion_notice_files := $(filter $(TARGET_OUT_NOTICE_FILES)/%, $(ALL_PDK_FUSION_FILES))
|
||||
|
||||
# Some targets get included under $(PRODUCT_OUT) for debug symbols or other
|
||||
# reasons--not to be flashed onto any device. Targets under these directories
|
||||
# need no associated notice file on the device UI.
|
||||
exclude_target_dirs := apex
|
||||
|
||||
# TODO(b/69865032): Make PRODUCT_NOTICE_SPLIT the default behavior.
|
||||
ifneq ($(PRODUCT_NOTICE_SPLIT),true)
|
||||
target_notice_file_html := $(TARGET_OUT_INTERMEDIATES)/NOTICE.html
|
||||
|
@ -1368,7 +1374,8 @@ $(eval $(call combine-notice-files, html, \
|
|||
$(target_notice_file_html), \
|
||||
"Notices for files contained in the filesystem images in this directory:", \
|
||||
$(TARGET_OUT_NOTICE_FILES), \
|
||||
$(ALL_DEFAULT_INSTALLED_MODULES) $(kernel_notice_file) $(pdk_fusion_notice_files)))
|
||||
$(ALL_DEFAULT_INSTALLED_MODULES) $(kernel_notice_file) $(pdk_fusion_notice_files), \
|
||||
$(exclude_target_dirs)))
|
||||
$(target_notice_file_html_gz): $(target_notice_file_html) | $(MINIGZIP)
|
||||
$(hide) $(MINIGZIP) -9 < $< > $@
|
||||
$(installed_notice_html_or_xml_gz): $(target_notice_file_html_gz)
|
||||
|
@ -1402,10 +1409,13 @@ installed_odm_notice_xml_gz := $(TARGET_OUT_ODM)/etc/NOTICE.xml.gz
|
|||
# being built. A notice xml file must depend on all modules that could potentially
|
||||
# install a license file relevant to it.
|
||||
license_modules := $(ALL_DEFAULT_INSTALLED_MODULES) $(kernel_notice_file) $(pdk_fusion_notice_files)
|
||||
# Only files copied to a system image need system image notices.
|
||||
license_modules := $(filter $(PRODUCT_OUT)/%,$(license_modules))
|
||||
# Phonys/fakes don't have notice files (though their deps might)
|
||||
license_modules := $(filter-out $(TARGET_OUT_FAKE)/%,$(license_modules))
|
||||
# testcases are not relevant to the system image.
|
||||
license_modules := $(filter-out $(TARGET_OUT_TESTCASES)/%,$(license_modules))
|
||||
# filesystem images: system, vendor, product, system_ext, and odm
|
||||
license_modules_system := $(filter $(TARGET_OUT)/%,$(license_modules))
|
||||
license_modules_vendor := $(filter $(TARGET_OUT_VENDOR)/%,$(license_modules))
|
||||
license_modules_product := $(filter $(TARGET_OUT_PRODUCT)/%,$(license_modules))
|
||||
|
@ -1416,16 +1426,44 @@ license_modules_agg := $(license_modules_system) \
|
|||
$(license_modules_product) \
|
||||
$(license_modules_system_ext) \
|
||||
$(license_modules_odm)
|
||||
# targets used for debug symbols only and do not get copied to the device
|
||||
license_modules_symbols_only := $(filter $(PRODUCT_OUT)/apex/%,$(license_modules))
|
||||
|
||||
license_modules_rest := $(filter-out $(license_modules_agg),$(license_modules))
|
||||
license_modules_rest := $(filter-out $(license_modules_symbols_only),$(license_modules_rest))
|
||||
|
||||
# Identify the other targets we expect to have notices for:
|
||||
# targets copied to the device but are not readable by the UI (e.g. must boot
|
||||
# into a different partition to read or don't have an associated /etc
|
||||
# directory) must have their notices built somewhere readable.
|
||||
license_modules_rehomed := $(filter-out $(PRODUCT_OUT)/%/%,$(license_modules_rest)) # files in root have no /etc
|
||||
license_modules_rehomed += $(filter $(PRODUCT_OUT)/recovery/%,$(license_modules_rest))
|
||||
license_modules_rehomed += $(filter $(PRODUCT_OUT)/root/%,$(license_modules_rest))
|
||||
license_modules_rehomed += $(filter $(PRODUCT_OUT)/data/%,$(license_modules_rest))
|
||||
license_modules_rehomed += $(filter $(PRODUCT_OUT)/ramdisk/%,$(license_modules_rest))
|
||||
license_modules_rehomed += $(filter $(PRODUCT_OUT)/debug_ramdisk/%,$(license_modules_rest))
|
||||
license_modules_rehomed += $(filter $(PRODUCT_OUT)/vendor-ramdisk/%,$(license_modules_rest))
|
||||
license_modules_rehomed += $(filter $(PRODUCT_OUT)/persist/%,$(license_modules_rest))
|
||||
license_modules_rehomed += $(filter $(PRODUCT_OUT)/persist.img,$(license_modules_rest))
|
||||
license_modules_rehomed += $(filter $(PRODUCT_OUT)/system_other/%,$(license_modules_rest))
|
||||
license_modules_rehomed += $(filter $(PRODUCT_OUT)/kernel%,$(license_modules_rest))
|
||||
license_modules_rehomed += $(filter $(PRODUCT_OUT)/%.img,$(license_modules_rest))
|
||||
license_modules_rehomed += $(filter $(PRODUCT_OUT)/%.bin,$(license_modules_rest))
|
||||
|
||||
# after removing targets in system images, targets reported in system images, and
|
||||
# targets used for debug symbols that do not need notices, nothing must remain.
|
||||
license_modules_rest := $(filter-out $(license_modules_rehomed),$(license_modules_rest))
|
||||
$(call maybe-print-list-and-error, $(license_modules_rest), \
|
||||
"Targets added under $(PRODUCT_OUT)/ unaccounted for notice handling.")
|
||||
|
||||
# If we are building in a configuration that includes a prebuilt vendor.img, we can't
|
||||
# update its notice file, so include those notices in the system partition instead
|
||||
ifdef BOARD_PREBUILT_VENDORIMAGE
|
||||
license_modules_system += $(license_modules_rest)
|
||||
license_modules_system += $(license_modules_rehomed)
|
||||
system_xml_directories := xml_excluded_vendor_product_odm
|
||||
system_notice_file_message := "Notices for files contained in all filesystem images except vendor/system_ext/product/odm in this directory:"
|
||||
else
|
||||
license_modules_vendor += $(license_modules_rest)
|
||||
license_modules_vendor += $(license_modules_rehomed)
|
||||
system_xml_directories := xml_system
|
||||
system_notice_file_message := "Notices for files contained in the system filesystem image in this directory:"
|
||||
endif
|
||||
|
@ -1435,31 +1473,36 @@ $(eval $(call combine-notice-files, $(system_xml_directories), \
|
|||
$(target_notice_file_xml), \
|
||||
$(system_notice_file_message), \
|
||||
$(TARGET_OUT_NOTICE_FILES), \
|
||||
$(license_modules_system)))
|
||||
$(license_modules_system), \
|
||||
$(exclude_target_dirs)))
|
||||
$(eval $(call combine-notice-files, xml_excluded_system_product_odm, \
|
||||
$(target_vendor_notice_file_txt), \
|
||||
$(target_vendor_notice_file_xml), \
|
||||
"Notices for files contained in all filesystem images except system/system_ext/product/odm in this directory:", \
|
||||
$(TARGET_OUT_NOTICE_FILES), \
|
||||
$(license_modules_vendor)))
|
||||
$(license_modules_vendor), \
|
||||
$(exclude_target_dirs)))
|
||||
$(eval $(call combine-notice-files, xml_product, \
|
||||
$(target_product_notice_file_txt), \
|
||||
$(target_product_notice_file_xml), \
|
||||
"Notices for files contained in the product filesystem image in this directory:", \
|
||||
$(TARGET_OUT_NOTICE_FILES), \
|
||||
$(license_modules_product)))
|
||||
$(license_modules_product), \
|
||||
$(exclude_target_dirs)))
|
||||
$(eval $(call combine-notice-files, xml_system_ext, \
|
||||
$(target_system_ext_notice_file_txt), \
|
||||
$(target_system_ext_notice_file_xml), \
|
||||
"Notices for files contained in the system_ext filesystem image in this directory:", \
|
||||
$(TARGET_OUT_NOTICE_FILES), \
|
||||
$(license_modules_system_ext)))
|
||||
$(license_modules_system_ext), \
|
||||
$(exclude_target_dirs)))
|
||||
$(eval $(call combine-notice-files, xml_odm, \
|
||||
$(target_odm_notice_file_txt), \
|
||||
$(target_odm_notice_file_xml), \
|
||||
"Notices for files contained in the odm filesystem image in this directory:", \
|
||||
$(TARGET_OUT_NOTICE_FILES), \
|
||||
$(license_modules_odm)))
|
||||
$(license_modules_odm), \
|
||||
$(exclude_target_dirs)))
|
||||
|
||||
$(target_notice_file_xml_gz): $(target_notice_file_xml) | $(MINIGZIP)
|
||||
$(hide) $(MINIGZIP) -9 < $< > $@
|
||||
|
@ -1497,7 +1540,8 @@ $(eval $(call combine-notice-files, html, \
|
|||
"Notices for files contained in the tools directory:", \
|
||||
$(HOST_OUT_NOTICE_FILES), \
|
||||
$(ALL_DEFAULT_INSTALLED_MODULES) \
|
||||
$(winpthreads_notice_file)))
|
||||
$(winpthreads_notice_file), \
|
||||
$(exclude_target_dirs)))
|
||||
|
||||
endif # TARGET_BUILD_APPS
|
||||
|
||||
|
|
Loading…
Reference in New Issue