Refactor generate_enforce_rro
A few tweaks to make it easier to extend to generating RROs in multiple partitions: - deduce the module name inside generate_enforce_rro - dedup rule definition - tweak framework-res check to use source module name instead Bug: 127758779 Test: verify noop on presubmit targets Change-Id: I2f0d6270b21f5427c372c04a5c6e7fb712e72a9a
This commit is contained in:
@@ -3299,9 +3299,8 @@ $(foreach source,$(ENFORCE_RRO_SOURCES), \
|
|||||||
$(eval enforce_rro_source_manifest_package_info := $(word 3,$(_o))) \
|
$(eval enforce_rro_source_manifest_package_info := $(word 3,$(_o))) \
|
||||||
$(eval enforce_rro_use_res_lib := $(word 4,$(_o))) \
|
$(eval enforce_rro_use_res_lib := $(word 4,$(_o))) \
|
||||||
$(eval enforce_rro_source_overlays := $(subst :, ,$(word 5,$(_o)))) \
|
$(eval enforce_rro_source_overlays := $(subst :, ,$(word 5,$(_o)))) \
|
||||||
$(eval enforce_rro_module := $(enforce_rro_source_module)__auto_generated_rro) \
|
|
||||||
$(eval include $(BUILD_SYSTEM)/generate_enforce_rro.mk) \
|
$(eval include $(BUILD_SYSTEM)/generate_enforce_rro.mk) \
|
||||||
$(eval ALL_MODULES.$(enforce_rro_source_module).REQUIRED += $(enforce_rro_module)) \
|
$(eval ALL_MODULES.$$(enforce_rro_source_module).REQUIRED += $$(LOCAL_PACKAGE_NAME)) \
|
||||||
)
|
)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
@@ -1,24 +1,29 @@
|
|||||||
include $(CLEAR_VARS)
|
include $(CLEAR_VARS)
|
||||||
|
|
||||||
|
enforce_rro_module := $(enforce_rro_source_module)__auto_generated_rro
|
||||||
LOCAL_PACKAGE_NAME := $(enforce_rro_module)
|
LOCAL_PACKAGE_NAME := $(enforce_rro_module)
|
||||||
|
|
||||||
intermediates := $(call intermediates-dir-for,APPS,$(LOCAL_PACKAGE_NAME),,COMMON)
|
intermediates := $(call intermediates-dir-for,APPS,$(LOCAL_PACKAGE_NAME),,COMMON)
|
||||||
rro_android_manifest_file := $(intermediates)/AndroidManifest.xml
|
rro_android_manifest_file := $(intermediates)/AndroidManifest.xml
|
||||||
|
|
||||||
ifeq (true,$(enforce_rro_source_is_manifest_package_name))
|
ifeq (true,$(enforce_rro_source_is_manifest_package_name))
|
||||||
$(rro_android_manifest_file): PRIVATE_PACKAGE_NAME := $(enforce_rro_source_manifest_package_info)
|
use_package_name_arg := --use-package-name
|
||||||
$(rro_android_manifest_file): build/make/tools/generate-enforce-rro-android-manifest.py
|
|
||||||
$(hide) build/make/tools/generate-enforce-rro-android-manifest.py -u -p $(PRIVATE_PACKAGE_NAME) -o $@
|
|
||||||
else
|
else
|
||||||
$(rro_android_manifest_file): PRIVATE_SOURCE_MANIFEST_FILE := $(enforce_rro_source_manifest_package_info)
|
use_package_name_arg :=
|
||||||
$(rro_android_manifest_file): $(enforce_rro_source_manifest_package_info) build/make/tools/generate-enforce-rro-android-manifest.py
|
$(rro_android_manifest_file): $(enforce_rro_source_manifest_package_info)
|
||||||
$(hide) build/make/tools/generate-enforce-rro-android-manifest.py -p $(PRIVATE_SOURCE_MANIFEST_FILE) -o $@
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
$(rro_android_manifest_file): PRIVATE_PACKAGE_INFO := $(enforce_rro_source_manifest_package_info)
|
||||||
|
$(rro_android_manifest_file): build/make/tools/generate-enforce-rro-android-manifest.py
|
||||||
|
$(hide) build/make/tools/generate-enforce-rro-android-manifest.py \
|
||||||
|
--package-info $(PRIVATE_PACKAGE_INFO) \
|
||||||
|
$(use_package_name_arg) \
|
||||||
|
-o $@
|
||||||
|
|
||||||
LOCAL_PATH:= $(intermediates)
|
LOCAL_PATH:= $(intermediates)
|
||||||
|
|
||||||
ifeq ($(enforce_rro_use_res_lib),true)
|
ifeq ($(enforce_rro_use_res_lib),true)
|
||||||
LOCAL_RES_LIBRARIES := $(enforce_rro_source_module)
|
LOCAL_RES_LIBRARIES := $(enforce_rro_source_module)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
LOCAL_FULL_MANIFEST_FILE := $(rro_android_manifest_file)
|
LOCAL_FULL_MANIFEST_FILE := $(rro_android_manifest_file)
|
||||||
@@ -32,7 +37,7 @@ ifneq (,$(LOCAL_RES_LIBRARIES))
|
|||||||
# Technically we are linking against the app (if only to grab its resources),
|
# Technically we are linking against the app (if only to grab its resources),
|
||||||
# and because it's potentially not building against the SDK, we can't either.
|
# and because it's potentially not building against the SDK, we can't either.
|
||||||
LOCAL_PRIVATE_PLATFORM_APIS := true
|
LOCAL_PRIVATE_PLATFORM_APIS := true
|
||||||
else ifeq (framework-res__auto_generated_rro,$(enforce_rro_module))
|
else ifeq (framework-res,$(enforce_rro_source_module))
|
||||||
LOCAL_PRIVATE_PLATFORM_APIS := true
|
LOCAL_PRIVATE_PLATFORM_APIS := true
|
||||||
else
|
else
|
||||||
LOCAL_SDK_VERSION := current
|
LOCAL_SDK_VERSION := current
|
||||||
|
@@ -48,8 +48,9 @@ def get_args():
|
|||||||
def main(argv):
|
def main(argv):
|
||||||
args = get_args()
|
args = get_args()
|
||||||
|
|
||||||
package_name = args.package_info
|
if args.use_package_name:
|
||||||
if not args.use_package_name:
|
package_name = args.package_info
|
||||||
|
else:
|
||||||
with open(args.package_info) as f:
|
with open(args.package_info) as f:
|
||||||
data = f.read()
|
data = f.read()
|
||||||
f.close()
|
f.close()
|
||||||
|
Reference in New Issue
Block a user