Move aapt2.mk before java.mk

aapt2.mk will export a srcjar that will be compiled by java.mk, so
it needs to be evaluated first.  Also move java_renderscript.mk
before aapt2.mk so that the generated resoures are available.

Bug: 73885582
Test: m checkbuild
Test: rm -rf out/target/common/obj/APPS/RsHelloCompute_intermediates &&
      m out/target/common/obj/APPS/RsHelloCompute_intermediates/src/R.stamp
Change-Id: Ide3050ec993a945f7077b75e952c3b3532306ede
Merged-In: Ide3050ec993a945f7077b75e952c3b3532306ede
(cherry picked from commit 8528eabbba)
This commit is contained in:
Colin Cross
2018-03-06 16:21:36 -08:00
parent 65c5bcf79e
commit 8a33456e7d
4 changed files with 141 additions and 115 deletions

View File

@@ -13,8 +13,3 @@ ifdef LOCAL_AAPT_FLAGS
aapt_flags := aapt_flags :=
endif endif
endif endif
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_AAPT_FLAGS := $(LOCAL_AAPT_FLAGS)
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_TARGET_AAPT_CHARACTERISTICS := $(TARGET_AAPT_CHARACTERISTICS)
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_MANIFEST_PACKAGE_NAME := $(LOCAL_MANIFEST_PACKAGE_NAME)
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_MANIFEST_INSTRUMENTATION_FOR := $(LOCAL_MANIFEST_INSTRUMENTATION_FOR)

View File

@@ -102,11 +102,6 @@ LOCAL_INTERMEDIATE_TARGETS += \
LOCAL_INTERMEDIATE_SOURCE_DIR := $(intermediates.COMMON)/src LOCAL_INTERMEDIATE_SOURCE_DIR := $(intermediates.COMMON)/src
###############################################################
## .rs files: RenderScript sources to .java files and .bc files
###############################################################
include $(BUILD_SYSTEM)/java_renderscript.mk
########################################################### ###########################################################
## AIDL: Compile .aidl files to .java ## AIDL: Compile .aidl files to .java
########################################################### ###########################################################

View File

@@ -325,50 +325,10 @@ endif
include $(BUILD_SYSTEM)/android_manifest.mk include $(BUILD_SYSTEM)/android_manifest.mk
called_from_package_internal := true
#################################
include $(BUILD_SYSTEM)/java.mk
#################################
called_from_package_internal :=
LOCAL_SDK_RES_VERSION:=$(strip $(LOCAL_SDK_RES_VERSION))
ifeq ($(LOCAL_SDK_RES_VERSION),)
LOCAL_SDK_RES_VERSION:=$(LOCAL_SDK_VERSION)
endif
$(LOCAL_INTERMEDIATE_TARGETS): \
PRIVATE_ANDROID_MANIFEST := $(full_android_manifest)
ifeq ($(LOCAL_DATA_BINDING),true)
data_binding_stamp := $(data_binding_intermediates)/data-binding.stamp
$(data_binding_stamp): PRIVATE_INTERMEDIATES := $(data_binding_intermediates)
$(data_binding_stamp): PRIVATE_MANIFEST := $(full_android_manifest)
# Generate code into $(LOCAL_INTERMEDIATE_SOURCE_DIR) so that the generated .java files
# will be automatically picked up by function compile-java.
$(data_binding_stamp): PRIVATE_SRC_OUT := $(LOCAL_INTERMEDIATE_SOURCE_DIR)/data-binding
$(data_binding_stamp): PRIVATE_XML_OUT := $(data_binding_intermediates)/xml
$(data_binding_stamp): PRIVATE_RES_OUT := $(data_binding_res_out)
$(data_binding_stamp): PRIVATE_RES_IN := $(data_binding_res_in)
$(data_binding_stamp): PRIVATE_ANNO_SRC_DIR := $(data_binding_intermediates)/anno-src
$(data_binding_stamp) : $(all_res_assets) $(full_android_manifest) \
$(DATA_BINDING_COMPILER)
@echo "Data-binding process: $@"
@rm -rf $(PRIVATE_INTERMEDIATES) $(PRIVATE_SRC_OUT) && \
mkdir -p $(PRIVATE_INTERMEDIATES) $(PRIVATE_SRC_OUT) \
$(PRIVATE_XML_OUT) $(PRIVATE_RES_OUT) $(PRIVATE_ANNO_SRC_DIR)
$(hide) $(JAVA) -classpath $(DATA_BINDING_COMPILER) android.databinding.tool.MakeCopy \
$(PRIVATE_MANIFEST) $(PRIVATE_SRC_OUT) $(PRIVATE_XML_OUT) $(PRIVATE_RES_OUT) $(PRIVATE_RES_IN)
$(hide) touch $@
# Make sure the data-binding process happens before javac and generation of R.java.
$(R_file_stamp): $(data_binding_stamp)
$(java_source_list_file): $(data_binding_stamp)
$(full_classes_compiled_jar): $(data_binding_stamp)
endif # LOCAL_DATA_BINDING
resource_export_package := resource_export_package :=
include $(BUILD_SYSTEM)/java_renderscript.mk
include $(BUILD_SYSTEM)/aapt_flags.mk include $(BUILD_SYSTEM)/aapt_flags.mk
ifeq ($(need_compile_res),true) ifeq ($(need_compile_res),true)
@@ -387,9 +347,16 @@ endif # LOCAL_COMPRESSED_MODULE
my_apk_split_configs := $(LOCAL_PACKAGE_SPLITS) my_apk_split_configs := $(LOCAL_PACKAGE_SPLITS)
my_split_suffixes := $(subst $(comma),_,$(my_apk_split_configs)) my_split_suffixes := $(subst $(comma),_,$(my_apk_split_configs))
built_apk_splits := $(foreach s,$(my_split_suffixes),$(intermediates)/package_$(s).apk) built_apk_splits := $(foreach s,$(my_split_suffixes),$(intermediates)/package_$(s).apk)
installed_apk_splits := $(foreach s,$(my_split_suffixes),$(my_module_path)/$(LOCAL_MODULE)_$(s).apk)
endif endif
$(R_file_stamp) $(my_res_package): PRIVATE_AAPT_FLAGS := $(LOCAL_AAPT_FLAGS)
$(R_file_stamp) $(my_res_package): PRIVATE_TARGET_AAPT_CHARACTERISTICS := $(TARGET_AAPT_CHARACTERISTICS)
$(R_file_stamp) $(my_res_package): PRIVATE_MANIFEST_PACKAGE_NAME := $(LOCAL_MANIFEST_PACKAGE_NAME)
$(R_file_stamp) $(my_res_package): PRIVATE_MANIFEST_INSTRUMENTATION_FOR := $(LOCAL_MANIFEST_INSTRUMENTATION_FOR)
###############################
## AAPT/AAPT2
ifdef LOCAL_USE_AAPT2 ifdef LOCAL_USE_AAPT2
my_compiled_res_base_dir := $(intermediates.COMMON)/flat-res my_compiled_res_base_dir := $(intermediates.COMMON)/flat-res
ifneq (,$(renderscript_target_api)) ifneq (,$(renderscript_target_api))
@@ -450,6 +417,16 @@ endif
endif # LOCAL_USE_AAPT2 endif # LOCAL_USE_AAPT2
endif # need_compile_res
called_from_package_internal := true
#################################
include $(BUILD_SYSTEM)/java.mk
#################################
called_from_package_internal :=
ifeq ($(need_compile_res),true)
# Other modules should depend on the BUILT module if # Other modules should depend on the BUILT module if
# they want to use this module's R.java file. # they want to use this module's R.java file.
$(LOCAL_BUILT_MODULE): $(R_file_stamp) $(LOCAL_BUILT_MODULE): $(R_file_stamp)
@@ -460,6 +437,42 @@ $(java_source_list_file): $(R_file_stamp)
endif # need_compile_res endif # need_compile_res
LOCAL_SDK_RES_VERSION:=$(strip $(LOCAL_SDK_RES_VERSION))
ifeq ($(LOCAL_SDK_RES_VERSION),)
LOCAL_SDK_RES_VERSION:=$(LOCAL_SDK_VERSION)
endif
$(LOCAL_INTERMEDIATE_TARGETS): \
PRIVATE_ANDROID_MANIFEST := $(full_android_manifest)
ifeq ($(LOCAL_DATA_BINDING),true)
data_binding_stamp := $(data_binding_intermediates)/data-binding.stamp
$(data_binding_stamp): PRIVATE_INTERMEDIATES := $(data_binding_intermediates)
$(data_binding_stamp): PRIVATE_MANIFEST := $(full_android_manifest)
# Generate code into $(LOCAL_INTERMEDIATE_SOURCE_DIR) so that the generated .java files
# will be automatically picked up by function compile-java.
$(data_binding_stamp): PRIVATE_SRC_OUT := $(LOCAL_INTERMEDIATE_SOURCE_DIR)/data-binding
$(data_binding_stamp): PRIVATE_XML_OUT := $(data_binding_intermediates)/xml
$(data_binding_stamp): PRIVATE_RES_OUT := $(data_binding_res_out)
$(data_binding_stamp): PRIVATE_RES_IN := $(data_binding_res_in)
$(data_binding_stamp): PRIVATE_ANNO_SRC_DIR := $(data_binding_intermediates)/anno-src
$(data_binding_stamp) : $(all_res_assets) $(full_android_manifest) \
$(DATA_BINDING_COMPILER)
@echo "Data-binding process: $@"
@rm -rf $(PRIVATE_INTERMEDIATES) $(PRIVATE_SRC_OUT) && \
mkdir -p $(PRIVATE_INTERMEDIATES) $(PRIVATE_SRC_OUT) \
$(PRIVATE_XML_OUT) $(PRIVATE_RES_OUT) $(PRIVATE_ANNO_SRC_DIR)
$(hide) $(JAVA) -classpath $(DATA_BINDING_COMPILER) android.databinding.tool.MakeCopy \
$(PRIVATE_MANIFEST) $(PRIVATE_SRC_OUT) $(PRIVATE_XML_OUT) $(PRIVATE_RES_OUT) $(PRIVATE_RES_IN)
$(hide) touch $@
# Make sure the data-binding process happens before javac and generation of R.java.
$(R_file_stamp): $(data_binding_stamp)
$(java_source_list_file): $(data_binding_stamp)
$(full_classes_compiled_jar): $(data_binding_stamp)
endif # LOCAL_DATA_BINDING
framework_res_package_export := framework_res_package_export :=
ifneq ($(LOCAL_NO_STANDARD_LIBRARIES),true) ifneq ($(LOCAL_NO_STANDARD_LIBRARIES),true)
@@ -495,6 +508,14 @@ ifdef LOCAL_USE_AAPT2
$(my_res_package) : $(all_library_res_package_export_deps) $(my_res_package) : $(all_library_res_package_export_deps)
endif endif
# These four are set above for $(R_stamp_file) and $(my_res_package), but
# $(LOCAL_BUILT_MODULE) is not set before java.mk, so they have to be set again
# here.
$(LOCAL_BUILT_MODULE): PRIVATE_AAPT_FLAGS := $(LOCAL_AAPT_FLAGS)
$(LOCAL_BUILT_MODULE): PRIVATE_TARGET_AAPT_CHARACTERISTICS := $(TARGET_AAPT_CHARACTERISTICS)
$(LOCAL_BUILT_MODULE): PRIVATE_MANIFEST_PACKAGE_NAME := $(LOCAL_MANIFEST_PACKAGE_NAME)
$(LOCAL_BUILT_MODULE): PRIVATE_MANIFEST_INSTRUMENTATION_FOR := $(LOCAL_MANIFEST_INSTRUMENTATION_FOR)
ifneq ($(full_classes_jar),) ifneq ($(full_classes_jar),)
$(LOCAL_BUILT_MODULE): PRIVATE_DEX_FILE := $(built_dex) $(LOCAL_BUILT_MODULE): PRIVATE_DEX_FILE := $(built_dex)
# Use the jarjar processed arhive as the initial package file. # Use the jarjar processed arhive as the initial package file.
@@ -661,6 +682,7 @@ $(built_apk_splits) : $(intermediates)/%.apk : $(LOCAL_BUILT_MODULE)
$(sign-package) $(sign-package)
# Rules to install the splits # Rules to install the splits
installed_apk_splits := $(foreach s,$(my_split_suffixes),$(my_module_path)/$(LOCAL_MODULE)_$(s).apk)
$(installed_apk_splits) : $(my_module_path)/$(LOCAL_MODULE)_%.apk : $(intermediates)/package_%.apk $(installed_apk_splits) : $(my_module_path)/$(LOCAL_MODULE)_%.apk : $(intermediates)/package_%.apk
@echo "Install: $@" @echo "Install: $@"
$(copy-file-to-new-target) $(copy-file-to-new-target)

View File

@@ -95,7 +95,7 @@ endif # need_compile_res
all_res_assets := $(all_resources) all_res_assets := $(all_resources)
include $(BUILD_SYSTEM)/java_library.mk include $(BUILD_SYSTEM)/java_renderscript.mk
ifeq (true,$(need_compile_res)) ifeq (true,$(need_compile_res))
include $(BUILD_SYSTEM)/android_manifest.mk include $(BUILD_SYSTEM)/android_manifest.mk
@@ -133,6 +133,14 @@ endif
include $(BUILD_SYSTEM)/aapt_flags.mk include $(BUILD_SYSTEM)/aapt_flags.mk
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_AAPT_FLAGS := $(LOCAL_AAPT_FLAGS)
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_TARGET_AAPT_CHARACTERISTICS := $(TARGET_AAPT_CHARACTERISTICS)
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_MANIFEST_PACKAGE_NAME := $(LOCAL_MANIFEST_PACKAGE_NAME)
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_MANIFEST_INSTRUMENTATION_FOR := $(LOCAL_MANIFEST_INSTRUMENTATION_FOR)
# LOCAL_INTERMEDIATE_SOURCE_DIR is set later by java.mk, but we need it for AAPT
LOCAL_INTERMEDIATE_SOURCE_DIR := $(intermediates.COMMON)/src
# 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
@@ -176,6 +184,12 @@ $(R_file_stamp) : $(all_resources) $(full_android_manifest) $(AAPT) $(framework_
$(hide) find $(PRIVATE_SOURCE_INTERMEDIATES_DIR) -name R.java | xargs cat > $@ $(hide) find $(PRIVATE_SOURCE_INTERMEDIATES_DIR) -name R.java | xargs cat > $@
endif # LOCAL_USE_AAPT2 endif # LOCAL_USE_AAPT2
endif # need_compile_res
include $(BUILD_SYSTEM)/java_library.mk
ifeq (true,$(need_compile_res))
$(LOCAL_BUILT_MODULE): $(R_file_stamp) $(LOCAL_BUILT_MODULE): $(R_file_stamp)
$(java_source_list_file): $(R_file_stamp) $(java_source_list_file): $(R_file_stamp)
$(full_classes_compiled_jar): $(R_file_stamp) $(full_classes_compiled_jar): $(R_file_stamp)