From 71c5b95aa66530f77c0149d0cb405cfdfcf719da Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Wed, 23 May 2018 13:35:53 -0700 Subject: [PATCH] Support LOCAL_STATIC_JAVA_AAR_LIBRARIES with aapt2 LOCAL_STATIC_JAVA_AAR_LIBRARIES are slightly different from LOCAL_STATIC_ANDROID_LIBRARIES, due to b/78447299 the AndroidManifest.xml from ANDROID libraries are ignored. Temporarily add support for LOCAL_STATIC_JAVA_AAR_LIBRARIES when using LOCAL_USE_AAPT2 := true, treating them the same as LOCAL_STATIC_ANDROID_LIBRARIES except that they are merged by android_manifest.xml Bug: 78447299 Bug: 79481102 Test: m FORCE_AAPT2=true checkbuild Change-Id: Ia6210810c1ea6e776be97ae1c9a586b5de844125 --- core/aapt2.mk | 6 ++++-- core/force_aapt2.mk | 3 --- core/package_internal.mk | 2 +- core/static_java_library.mk | 4 ++-- 4 files changed, 7 insertions(+), 8 deletions(-) diff --git a/core/aapt2.mk b/core/aapt2.mk index b3a7c935f..fbbf3dd58 100644 --- a/core/aapt2.mk +++ b/core/aapt2.mk @@ -64,9 +64,11 @@ endif $(my_res_resources_flat) $(my_overlay_resources_flat) $(my_resources_flata): \ PRIVATE_AAPT2_CFLAGS := --pseudo-localize -my_static_library_resources := $(foreach l, $(call reverse-list,$(LOCAL_STATIC_ANDROID_LIBRARIES)),\ +# TODO(b/78447299): Forbid LOCAL_STATIC_JAVA_AAR_LIBRARIES in aapt2 and remove +# support for it. +my_static_library_resources := $(foreach l, $(call reverse-list,$(LOCAL_STATIC_ANDROID_LIBRARIES) $(LOCAL_STATIC_JAVA_AAR_LIBRARIES)),\ $(call intermediates-dir-for,JAVA_LIBRARIES,$(l),,COMMON)/package-res.apk) -my_static_library_extra_packages := $(foreach l, $(call reverse-list,$(LOCAL_STATIC_ANDROID_LIBRARIES)),\ +my_static_library_extra_packages := $(foreach l, $(call reverse-list,$(LOCAL_STATIC_ANDROID_LIBRARIES) $(LOCAL_STATIC_JAVA_AAR_LIBRARIES)),\ $(call intermediates-dir-for,JAVA_LIBRARIES,$(l),,COMMON)/extra_packages) my_shared_library_resources := $(foreach l, $(LOCAL_SHARED_ANDROID_LIBRARIES),\ $(call intermediates-dir-for,JAVA_LIBRARIES,$(l),,COMMON)/package-res.apk) diff --git a/core/force_aapt2.mk b/core/force_aapt2.mk index 690111600..3537cbab1 100644 --- a/core/force_aapt2.mk +++ b/core/force_aapt2.mk @@ -21,9 +21,6 @@ ifeq ($(FORCE_AAPT2),true) ifeq ($(LOCAL_USE_AAPT2),) # Force AAPT2 on LOCAL_USE_AAPT2 := true - # Move LOCAL_STATIC_JAVA_AAR_LIBRARIES to LOCAL_STATIC_ANDROID_LIBRARIES - LOCAL_STATIC_ANDROID_LIBRARIES := $(strip $(LOCAL_STATIC_ANDROID_LIBRARIES) $(LOCAL_STATIC_JAVA_AAR_LIBRARIES)) - LOCAL_STATIC_JAVA_AAR_LIBRARIES := # Filter out support library resources LOCAL_RESOURCE_DIR := $(filter-out \ prebuilts/sdk/current/% \ diff --git a/core/package_internal.mk b/core/package_internal.mk index 25b484faf..637a13564 100644 --- a/core/package_internal.mk +++ b/core/package_internal.mk @@ -164,7 +164,7 @@ my_resource_dirs := $(call reverse-list,$(LOCAL_RESOURCE_DIR)) my_res_dir := my_overlay_res_dirs := -ifneq ($(LOCAL_STATIC_ANDROID_LIBRARIES),) +ifneq ($(strip $(LOCAL_STATIC_ANDROID_LIBRARIES) $(LOCAL_STATIC_JAVA_AAR_LIBRARIES)),) # If we are using static android libraries, every source file becomes an overlay. # This is to emulate old AAPT behavior which simulated library support. my_res_dir := diff --git a/core/static_java_library.mk b/core/static_java_library.mk index 6eb94cd6e..2a8770503 100644 --- a/core/static_java_library.mk +++ b/core/static_java_library.mk @@ -47,7 +47,7 @@ need_compile_res := true LOCAL_RESOURCE_DIR := $(foreach d,$(LOCAL_RESOURCE_DIR),$(call clean-path,$(d))) endif ifeq ($(LOCAL_USE_AAPT2),true) -ifneq ($(LOCAL_STATIC_ANDROID_LIBRARIES),) +ifneq ($(strip $(LOCAL_STATIC_ANDROID_LIBRARIES) $(LOCAL_STATIC_JAVA_AAR_LIBRARIES)),) need_compile_res := true endif endif @@ -120,7 +120,7 @@ endif endif ifeq ($(LOCAL_USE_AAPT2),true) -import_proguard_flag_files := $(strip $(foreach l,$(LOCAL_STATIC_ANDROID_LIBRARIES),\ +import_proguard_flag_files := $(strip $(foreach l,$(LOCAL_STATIC_ANDROID_LIBRARIES) $(LOCAL_STATIC_JAVA_AAR_LIBRARIES),\ $(call intermediates-dir-for,JAVA_LIBRARIES,$(l),,COMMON)/export_proguard_flags)) $(intermediates.COMMON)/export_proguard_flags: $(import_proguard_flag_files) $(addprefix $(LOCAL_PATH)/,$(LOCAL_EXPORT_PROGUARD_FLAG_FILES)) @echo "Export proguard flags: $@"