summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Colin Cross <ccross@android.com> 2019-09-05 17:19:35 -0700
committer Colin Cross <ccross@android.com> 2019-09-05 21:08:38 -0700
commit114e8dfa3e6f1e563a7c3eeb05776f4304bb725b (patch)
tree2738141f582ab03037855086e95f7b94d9d7a397
parentfdef43d69ca2fb75ab9d171474f3102f8280564d (diff)
Dist proguard dictionaries for platform builds
Proguard dictionaries are useful for platform builds as well as unbundled builds, produce them for both. Bug: 140585949 Test: m out/target/product/$(get_build_var TARGET_DEVICE)/${TARGET_PRODUCT}-proguard-dict-eng.ccross.zip Change-Id: I63b826be35cfbfc9661b5be7de5bea285bd3d3fc
-rw-r--r--core/Makefile35
-rw-r--r--core/main.mk1
2 files changed, 20 insertions, 16 deletions
diff --git a/core/Makefile b/core/Makefile
index 8e48fbcd62..c9b8cd11fb 100644
--- a/core/Makefile
+++ b/core/Makefile
@@ -4494,25 +4494,28 @@ endif # EMMA_INSTRUMENT=true
#------------------------------------------------------------------
# A zip of Proguard obfuscation dictionary files.
-# Only for apps_only build.
#
-ifdef TARGET_BUILD_APPS
PROGUARD_DICT_ZIP := $(PRODUCT_OUT)/$(TARGET_PRODUCT)-proguard-dict-$(FILE_NAME_TAG).zip
-# the dependency will be set up later in build/make/core/main.mk.
-$(PROGUARD_DICT_ZIP) :
+# For apps_only build we'll establish the dependency later in build/make/core/main.mk.
+ifndef TARGET_BUILD_APPS
+$(PROGUARD_DICT_ZIP): \
+ $(INSTALLED_SYSTEMIMAGE_TARGET) \
+ $(INSTALLED_RAMDISK_TARGET) \
+ $(INSTALLED_BOOTIMAGE_TARGET) \
+ $(INSTALLED_USERDATAIMAGE_TARGET) \
+ $(INSTALLED_VENDORIMAGE_TARGET) \
+ $(INSTALLED_PRODUCTIMAGE_TARGET) \
+ $(INSTALLED_SYSTEM_EXTIMAGE_TARGET) \
+ $(INSTALLED_ODMIMAGE_TARGET) \
+ $(updater_dep)
+endif
+$(PROGUARD_DICT_ZIP): PRIVATE_LIST_FILE := $(call intermediates-dir-for,PACKAGING,proguard)/filelist
+$(PROGUARD_DICT_ZIP): $(SOONG_ZIP)
@echo "Packaging Proguard obfuscation dictionary files."
- $(hide) dict_files=`find $(TARGET_OUT_COMMON_INTERMEDIATES)/APPS -name proguard_dictionary`; \
- if [ -n "$$dict_files" ]; then \
- unobfuscated_jars=$${dict_files//proguard_dictionary/classes.jar}; \
- zip -qX $@ $$dict_files $$unobfuscated_jars; \
- else \
- touch $(dir $@)/zipdummy; \
- (cd $(dir $@) && zip -q $(notdir $@) zipdummy); \
- zip -qd $@ zipdummy; \
- rm $(dir $@)/zipdummy; \
- fi
-
-endif # TARGET_BUILD_APPS
+ mkdir -p $(dir $@) $(TARGET_OUT_COMMON_INTERMEDIATES)/APPS $(dir $(PRIVATE_LIST_FILE))
+ find $(TARGET_OUT_COMMON_INTERMEDIATES)/APPS -name proguard_dictionary | \
+ sed -e 's/\(.*\)\/proguard_dictionary/\0\n\1\/classes.jar/' > $(PRIVATE_LIST_FILE)
+ $(SOONG_ZIP) --ignore_missing_files -d -o $@ -C $(OUT_DIR)/.. -l $(PRIVATE_LIST_FILE)
ifeq (true,$(PRODUCT_USE_DYNAMIC_PARTITIONS))
diff --git a/core/main.mk b/core/main.mk
index f99f16d3ca..9eea513d6f 100644
--- a/core/main.mk
+++ b/core/main.mk
@@ -1663,6 +1663,7 @@ else # TARGET_BUILD_APPS
$(INTERNAL_OTA_RETROFIT_DYNAMIC_PARTITIONS_PACKAGE_TARGET) \
$(BUILT_OTATOOLS_PACKAGE) \
$(SYMBOLS_ZIP) \
+ $(PROGUARD_DICT_ZIP) \
$(COVERAGE_ZIP) \
$(APPCOMPAT_ZIP) \
$(INSTALLED_FILES_FILE) \