Merge "Add overlay files to layoutlib res.zip" into main am: d93f559871
Original change: https://android-review.googlesource.com/c/platform/build/+/3228769 Change-Id: Ie112b2e3818b497a2feae30f83f3c15a704e21ab Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -7888,7 +7888,7 @@ haiku-presubmit: $(SOONG_PRESUBMIT_FUZZ_PACKAGING_ARCH_MODULES) $(ALL_PRESUBMIT_
|
||||
$(call dist-for-goals,haiku-presubmit,$(SOONG_PRESUBMIT_FUZZ_PACKAGING_ARCH_MODULES))
|
||||
|
||||
# -----------------------------------------------------------------
|
||||
# Extract platform fonts used in Layoutlib
|
||||
# Extract additional data files used in Layoutlib
|
||||
include $(BUILD_SYSTEM)/layoutlib_data.mk
|
||||
|
||||
# -----------------------------------------------------------------
|
||||
|
@@ -66,11 +66,19 @@ $(call dist-for-goals,layoutlib,$(LAYOUTLIB_BUILD_PROP)/layoutlib-build.prop:lay
|
||||
# Resource files from frameworks/base/core/res/res
|
||||
LAYOUTLIB_RES := $(call intermediates-dir-for,PACKAGING,layoutlib-res,HOST,COMMON)
|
||||
LAYOUTLIB_RES_FILES := $(shell find frameworks/base/core/res/res -type f -not -path 'frameworks/base/core/res/res/values-m[nc]c*' | sort)
|
||||
$(LAYOUTLIB_RES)/layoutlib-res.zip: $(SOONG_ZIP) $(HOST_OUT_EXECUTABLES)/aapt2 $(LAYOUTLIB_RES_FILES)
|
||||
EMULATED_OVERLAYS_FILES := $(shell find frameworks/base/packages/overlays/*/res/ | sort)
|
||||
DEVICE_OVERLAYS_FILES := $(shell find device/generic/goldfish/phone/overlay/frameworks/base/packages/overlays/*/AndroidOverlay/res/ | sort)
|
||||
$(LAYOUTLIB_RES)/layoutlib-res.zip: $(SOONG_ZIP) $(HOST_OUT_EXECUTABLES)/aapt2 $(LAYOUTLIB_RES_FILES) $(EMULATED_OVERLAYS_FILES) $(DEVICE_OVERLAYS_FILES)
|
||||
rm -rf $@
|
||||
echo $(LAYOUTLIB_RES_FILES) > $(LAYOUTLIB_RES)/filelist.txt
|
||||
$(SOONG_ZIP) -C frameworks/base/core/res -l $(LAYOUTLIB_RES)/filelist.txt -o $(LAYOUTLIB_RES)/temp.zip
|
||||
rm -rf $(LAYOUTLIB_RES)/data && unzip -q -d $(LAYOUTLIB_RES)/data $(LAYOUTLIB_RES)/temp.zip
|
||||
echo $(LAYOUTLIB_RES_FILES) > $(LAYOUTLIB_RES)/filelist_res.txt
|
||||
$(SOONG_ZIP) -C frameworks/base/core/res -l $(LAYOUTLIB_RES)/filelist_res.txt -o $(LAYOUTLIB_RES)/temp_res.zip
|
||||
echo $(EMULATED_OVERLAYS_FILES) > $(LAYOUTLIB_RES)/filelist_emulated_overlays.txt
|
||||
$(SOONG_ZIP) -C frameworks/base/packages -l $(LAYOUTLIB_RES)/filelist_emulated_overlays.txt -o $(LAYOUTLIB_RES)/temp_emulated_overlays.zip
|
||||
echo $(DEVICE_OVERLAYS_FILES) > $(LAYOUTLIB_RES)/filelist_device_overlays.txt
|
||||
$(SOONG_ZIP) -C device/generic/goldfish/phone/overlay/frameworks/base/packages -l $(LAYOUTLIB_RES)/filelist_device_overlays.txt -o $(LAYOUTLIB_RES)/temp_device_overlays.zip
|
||||
rm -rf $(LAYOUTLIB_RES)/data && unzip -q -d $(LAYOUTLIB_RES)/data $(LAYOUTLIB_RES)/temp_res.zip
|
||||
unzip -q -d $(LAYOUTLIB_RES)/data $(LAYOUTLIB_RES)/temp_emulated_overlays.zip
|
||||
unzip -q -d $(LAYOUTLIB_RES)/data $(LAYOUTLIB_RES)/temp_device_overlays.zip
|
||||
rm -rf $(LAYOUTLIB_RES)/compiled && mkdir $(LAYOUTLIB_RES)/compiled && $(HOST_OUT_EXECUTABLES)/aapt2 compile $(LAYOUTLIB_RES)/data/res/**/*.9.png -o $(LAYOUTLIB_RES)/compiled
|
||||
printf '<?xml version="1.0" encoding="utf-8"?>\n<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.google.android.layoutlib" />' > $(LAYOUTLIB_RES)/AndroidManifest.xml
|
||||
$(HOST_OUT_EXECUTABLES)/aapt2 link -R $(LAYOUTLIB_RES)/compiled/* -o $(LAYOUTLIB_RES)/compiled.apk --manifest $(LAYOUTLIB_RES)/AndroidManifest.xml
|
||||
@@ -78,7 +86,7 @@ $(LAYOUTLIB_RES)/layoutlib-res.zip: $(SOONG_ZIP) $(HOST_OUT_EXECUTABLES)/aapt2 $
|
||||
for f in $(LAYOUTLIB_RES)/compiled_apk/res/*; do mv "$$f" "$${f/-v4/}";done
|
||||
for f in $(LAYOUTLIB_RES)/compiled_apk/res/**/*.9.png; do mv "$$f" "$${f/.9.png/.compiled.9.png}";done
|
||||
cp -r $(LAYOUTLIB_RES)/compiled_apk/res $(LAYOUTLIB_RES)/data
|
||||
$(SOONG_ZIP) -C $(LAYOUTLIB_RES)/data -D $(LAYOUTLIB_RES)/data/res -o $@
|
||||
$(SOONG_ZIP) -C $(LAYOUTLIB_RES)/data -D $(LAYOUTLIB_RES)/data/ -o $@
|
||||
|
||||
$(call dist-for-goals,layoutlib,$(LAYOUTLIB_RES)/layoutlib-res.zip:layoutlib_native/res.zip)
|
||||
|
||||
@@ -132,16 +140,26 @@ $(LAYOUTLIB_SBOM)/sbom-metadata.csv:
|
||||
echo $(_path),,,,,,Y,$f,,, >> $@; \
|
||||
)
|
||||
|
||||
$(foreach f,$(EMULATED_OVERLAYS_FILES), \
|
||||
$(eval _path := $(subst frameworks/base/packages,data,$f)) \
|
||||
echo $(_path),,,,,,Y,$f,,, >> $@; \
|
||||
)
|
||||
|
||||
$(foreach f,$(DEVICE_OVERLAYS_FILES), \
|
||||
$(eval _path := $(subst device/generic/goldfish/phone/overlay/frameworks/base/packages,data,$f)) \
|
||||
echo $(_path),,,,,,Y,$f,,, >> $@; \
|
||||
)
|
||||
|
||||
.PHONY: layoutlib-sbom
|
||||
layoutlib-sbom: $(LAYOUTLIB_SBOM)/layoutlib.spdx.json
|
||||
$(LAYOUTLIB_SBOM)/layoutlib.spdx.json: $(PRODUCT_OUT)/always_dirty_file.txt $(GEN_SBOM) $(LAYOUTLIB_SBOM)/sbom-metadata.csv $(_layoutlib_font_config_files) $(_layoutlib_fonts_files) $(LAYOUTLIB_BUILD_PROP)/layoutlib-build.prop $(_layoutlib_keyboard_files) $(LAYOUTLIB_RES_FILES)
|
||||
$(LAYOUTLIB_SBOM)/layoutlib.spdx.json: $(PRODUCT_OUT)/always_dirty_file.txt $(GEN_SBOM) $(LAYOUTLIB_SBOM)/sbom-metadata.csv $(_layoutlib_font_config_files) $(_layoutlib_fonts_files) $(LAYOUTLIB_BUILD_PROP)/layoutlib-build.prop $(_layoutlib_keyboard_files) $(LAYOUTLIB_RES_FILES) $(EMULATED_OVERLAYS_FILES) $(DEVICE_OVERLAYS_FILES)
|
||||
rm -rf $@
|
||||
$(GEN_SBOM) --output_file $@ --metadata $(LAYOUTLIB_SBOM)/sbom-metadata.csv --build_version $(BUILD_FINGERPRINT_FROM_FILE) --product_mfr "$(PRODUCT_MANUFACTURER)" --module_name "layoutlib" --json
|
||||
|
||||
$(call dist-for-goals,layoutlib,$(LAYOUTLIB_SBOM)/layoutlib.spdx.json:layoutlib_native/sbom/layoutlib.spdx.json)
|
||||
|
||||
# Generate SBOM of framework_res.jar that is created in release_layoutlib.sh.
|
||||
# The generated SBOM contains placeholders for release_layotlib.sh to substitute, and the placeholders include:
|
||||
# The generated SBOM contains placeholders for release_layoutlib.sh to substitute, and the placeholders include:
|
||||
# document name, document namespace, document creation info, organization and SHA1 value of framework_res.jar.
|
||||
GEN_SBOM_FRAMEWORK_RES := $(HOST_OUT_EXECUTABLES)/generate-sbom-framework_res
|
||||
.PHONY: layoutlib-framework_res-sbom
|
||||
|
@@ -80,7 +80,8 @@ def main():
|
||||
|
||||
resource_file_spdxids = []
|
||||
for file in layoutlib_sbom[sbom_writers.PropNames.FILES]:
|
||||
if file[sbom_writers.PropNames.FILE_NAME].startswith('data/res/'):
|
||||
file_path = file[sbom_writers.PropNames.FILE_NAME]
|
||||
if file_path.startswith('data/res/') or file_path.startswith('data/overlays/'):
|
||||
resource_file_spdxids.append(file[sbom_writers.PropNames.SPDXID])
|
||||
|
||||
doc.relationships = [
|
||||
|
Reference in New Issue
Block a user