Merge changes I84a59a8c,Id7a92fb2

* changes:
  Remove obsolete proguard options
  Export proguard flags from static android libraries and aar prebuilts
This commit is contained in:
Colin Cross 2017-12-28 17:22:51 +00:00 committed by Gerrit Code Review
commit 9c2b798143
6 changed files with 23 additions and 38 deletions

View File

@ -78,6 +78,7 @@ LOCAL_EXPORT_C_INCLUDE_DEPS:=
LOCAL_EXPORT_C_INCLUDE_DIRS:= LOCAL_EXPORT_C_INCLUDE_DIRS:=
LOCAL_EXPORT_HEADER_LIBRARY_HEADERS:= LOCAL_EXPORT_HEADER_LIBRARY_HEADERS:=
LOCAL_EXPORT_PACKAGE_RESOURCES:= LOCAL_EXPORT_PACKAGE_RESOURCES:=
LOCAL_EXPORT_PROGUARD_FLAG_FILES:=
LOCAL_EXPORT_SHARED_LIBRARY_HEADERS:= LOCAL_EXPORT_SHARED_LIBRARY_HEADERS:=
LOCAL_EXPORT_STATIC_LIBRARY_HEADERS:= LOCAL_EXPORT_STATIC_LIBRARY_HEADERS:=
LOCAL_EXTRACT_APK:= LOCAL_EXTRACT_APK:=

View File

@ -593,7 +593,7 @@ $(eval $(call copy-one-file,$(full_classes_pre_proguard_jar),$(intermediates.COM
# Run proguard if necessary # Run proguard if necessary
ifdef LOCAL_PROGUARD_ENABLED ifdef LOCAL_PROGUARD_ENABLED
ifneq ($(filter-out full custom nosystem obfuscation optimization shrinktests,$(LOCAL_PROGUARD_ENABLED)),) ifneq ($(filter-out full custom nosystem obfuscation optimization,$(LOCAL_PROGUARD_ENABLED)),)
$(warning while processing: $(LOCAL_MODULE)) $(warning while processing: $(LOCAL_MODULE))
$(error invalid value for LOCAL_PROGUARD_ENABLED: $(LOCAL_PROGUARD_ENABLED)) $(error invalid value for LOCAL_PROGUARD_ENABLED: $(LOCAL_PROGUARD_ENABLED))
endif endif
@ -634,16 +634,15 @@ common_proguard_flags := -forceprocessing
common_proguard_flag_files := common_proguard_flag_files :=
ifeq ($(filter nosystem,$(LOCAL_PROGUARD_ENABLED)),) ifeq ($(filter nosystem,$(LOCAL_PROGUARD_ENABLED)),)
common_proguard_flag_files += $(BUILD_SYSTEM)/proguard.flags common_proguard_flag_files += $(BUILD_SYSTEM)/proguard.flags
ifeq ($(LOCAL_EMMA_INSTRUMENT),true)
common_proguard_flags += -include $(BUILD_SYSTEM)/proguard.emma.flags
endif
# If this is a test package, add proguard keep flags for tests.
ifneq ($(LOCAL_INSTRUMENTATION_FOR)$(filter tests,$(LOCAL_MODULE_TAGS)),) ifneq ($(LOCAL_INSTRUMENTATION_FOR)$(filter tests,$(LOCAL_MODULE_TAGS)),)
common_proguard_flag_files += $(BUILD_SYSTEM)/proguard_tests.flags
ifeq ($(filter shrinktests,$(LOCAL_PROGUARD_ENABLED)),)
common_proguard_flags += -dontshrink # don't shrink tests by default common_proguard_flags += -dontshrink # don't shrink tests by default
endif # shrinktests
endif # test package endif # test package
ifneq ($(LOCAL_PROGUARD_ENABLED),custom)
ifdef LOCAL_USE_AAPT2
common_proguard_flag_files += $(foreach l,$(LOCAL_STATIC_ANDROID_LIBRARIES),\
$(call intermediates-dir-for,JAVA_LIBRARIES,$(l),,COMMON)/export_proguard_flags)
endif
endif
ifneq ($(common_proguard_flag_files),) ifneq ($(common_proguard_flag_files),)
common_proguard_flags += $(addprefix -include , $(common_proguard_flag_files)) common_proguard_flags += $(addprefix -include , $(common_proguard_flag_files))
# This is included from $(BUILD_SYSTEM)/proguard.flags # This is included from $(BUILD_SYSTEM)/proguard.flags

View File

@ -566,12 +566,16 @@ my_src_aar := $(filter %.aar, $(my_prebuilt_src_file))
ifneq ($(my_src_aar),) ifneq ($(my_src_aar),)
# This is .aar file, archive of classes.jar and Android resources. # This is .aar file, archive of classes.jar and Android resources.
my_src_jar := $(intermediates.COMMON)/aar/classes.jar my_src_jar := $(intermediates.COMMON)/aar/classes.jar
my_src_proguard_options := $(intermediates.COMMON)/aar/proguard.txt
$(my_src_jar) : .KATI_IMPLICIT_OUTPUTS := $(my_src_proguard_options)
$(my_src_jar) : $(my_src_aar) $(my_src_jar) : $(my_src_aar)
$(hide) rm -rf $(dir $@) && mkdir -p $(dir $@) $(dir $@)/res $(hide) rm -rf $(dir $@) && mkdir -p $(dir $@) $(dir $@)/res
$(hide) unzip -qo -d $(dir $@) $< $(hide) unzip -qo -d $(dir $@) $<
# Make sure the extracted classes.jar has a new timestamp. # Make sure the extracted classes.jar has a new timestamp.
$(hide) touch $@ $(hide) touch $@
# Make sure the proguard file exists and has a new timestamp.
$(hide) touch $(dir $@)/proguard.txt
endif endif
@ -595,6 +599,10 @@ endif
ifdef LOCAL_USE_AAPT2 ifdef LOCAL_USE_AAPT2
ifneq ($(my_src_aar),) ifneq ($(my_src_aar),)
$(intermediates.COMMON)/export_proguard_flags : $(my_src_proguard_options)
$(transform-prebuilt-to-target)
LOCAL_SDK_RES_VERSION:=$(strip $(LOCAL_SDK_RES_VERSION)) LOCAL_SDK_RES_VERSION:=$(strip $(LOCAL_SDK_RES_VERSION))
ifeq ($(LOCAL_SDK_RES_VERSION),) ifeq ($(LOCAL_SDK_RES_VERSION),)
LOCAL_SDK_RES_VERSION:=$(LOCAL_SDK_VERSION) LOCAL_SDK_RES_VERSION:=$(LOCAL_SDK_VERSION)

View File

@ -1,4 +0,0 @@
# Keep everything for the emma classes
-keep class com.vladium.** {
*;
}

View File

@ -1,26 +0,0 @@
# Keep everything for tests
# This flag has been moved to the makefiles and is set for tests by default.
#-dontshrink
# But we may want to obfuscate if the main app gets obfuscated.
# This flag has been moved to the makefiles.
#-dontobfuscate
#-keep class * extends junit.framework.TestCase {
# public void test*();
#}
#-keepclasseswithmembers class * {
# public static void run();
# public static junit.framework.Test suite();
#}
# some AllTests don't include run().
#-keepclasseswithmembers class * {
# public static junit.framework.Test suite();
#}
#-keep class * extends junit.framework.TestSuite
#-keep class * extends android.app.Instrumentation
#-keep class * extends android.test.TestSuiteProvider

View File

@ -118,6 +118,13 @@ framework_res_package_export_deps := \
endif endif
endif endif
ifdef LOCAL_USE_AAPT2
$(intermediates.COMMON)/export_proguard_flags: $(addprefix $(LOCAL_PATH)/,$(LOCAL_EXPORT_PROGUARD_FLAG_FILES))
@echo "Export proguard flags: $@"
rm -f $@
cat $+ >$@
endif
# add --non-constant-id to prevent inlining constants. # add --non-constant-id to prevent inlining constants.
# AAR needs text symbol file R.txt. # AAR needs text symbol file R.txt.
ifdef LOCAL_USE_AAPT2 ifdef LOCAL_USE_AAPT2