1 # App prebuilt coming from Soong. 2 # Extra inputs: 3 # LOCAL_SOONG_RESOURCE_EXPORT_PACKAGE 4 5 ifneq ($(LOCAL_MODULE_MAKEFILE),$(SOONG_ANDROID_MK)) 6 $(call pretty-error,soong_app_prebuilt.mk may only be used from Soong) 7 endif 8 9 LOCAL_MODULE_SUFFIX := .apk 10 LOCAL_BUILT_MODULE_STEM := package.apk 11 12 ####################################### 13 include $(BUILD_SYSTEM)/base_rules.mk 14 ####################################### 15 16 full_classes_jar := $(intermediates.COMMON)/classes.jar 17 full_classes_pre_proguard_jar := $(intermediates.COMMON)/classes-pre-proguard.jar 18 full_classes_header_jar := $(intermediates.COMMON)/classes-header.jar 19 20 $(eval $(call copy-one-file,$(LOCAL_SOONG_CLASSES_JAR),$(full_classes_jar))) 21 $(eval $(call copy-one-file,$(LOCAL_SOONG_CLASSES_JAR),$(full_classes_pre_proguard_jar))) 22 23 ifdef LOCAL_SOONG_JACOCO_REPORT_CLASSES_JAR 24 $(eval $(call copy-one-file,$(LOCAL_SOONG_JACOCO_REPORT_CLASSES_JAR),\ 25 $(intermediates.COMMON)/jacoco-report-classes.jar)) 26 $(call add-dependency,$(LOCAL_BUILT_MODULE),\ 27 $(intermediates.COMMON)/jacoco-report-classes.jar) 28 endif 29 30 ifdef LOCAL_SOONG_PROGUARD_DICT 31 $(eval $(call copy-one-file,$(LOCAL_SOONG_PROGUARD_DICT),\ 32 $(intermediates.COMMON)/proguard_dictionary)) 33 $(call add-dependency,$(LOCAL_BUILT_MODULE),\ 34 $(intermediates.COMMON)/proguard_dictionary) 35 endif 36 37 ifneq ($(TURBINE_ENABLED),false) 38 ifdef LOCAL_SOONG_HEADER_JAR 39 $(eval $(call copy-one-file,$(LOCAL_SOONG_HEADER_JAR),$(full_classes_header_jar))) 40 else 41 $(eval $(call copy-one-file,$(full_classes_jar),$(full_classes_header_jar))) 42 endif 43 endif # TURBINE_ENABLED != false 44 45 46 $(eval $(call copy-one-file,$(LOCAL_PREBUILT_MODULE_FILE),$(LOCAL_BUILT_MODULE))) 47 48 ifdef LOCAL_SOONG_RESOURCE_EXPORT_PACKAGE 49 resource_export_package := $(intermediates.COMMON)/package-export.apk 50 resource_export_stamp := $(intermediates.COMMON)/src/R.stamp 51 52 $(resource_export_package): PRIVATE_STAMP := $(resource_export_stamp) 53 $(resource_export_package): .KATI_IMPLICIT_OUTPUTS := $(resource_export_stamp) 54 $(resource_export_package): $(LOCAL_SOONG_RESOURCE_EXPORT_PACKAGE) 55 @echo "Copy: $$@" 56 $(copy-file-to-target) 57 touch $(PRIVATE_STAMP) 58 $(call add-dependency,$(LOCAL_BUILT_MODULE),$(resource_export_package)) 59 60 endif # LOCAL_SOONG_RESOURCE_EXPORT_PACKAGE 61 62 java-dex: $(LOCAL_SOONG_DEX_JAR) 63 64 ifdef LOCAL_DEX_PREOPT 65 # defines built_odex along with rule to install odex 66 include $(BUILD_SYSTEM)/dex_preopt_odex_install.mk 67 68 $(built_odex): $(LOCAL_SOONG_DEX_JAR) 69 $(call dexpreopt-one-file,$<,$@) 70 endif 71 72 PACKAGES := $(PACKAGES) $(LOCAL_MODULE) 73 ifdef LOCAL_CERTIFICATE 74 PACKAGES.$(LOCAL_MODULE).CERTIFICATE := $(LOCAL_CERTIFICATE) 75 PACKAGES.$(LOCAL_MODULE).PRIVATE_KEY := $(patsubst %.x509.pem,%.pk8,$(LOCAL_CERTIFICATE)) 76 endif 77 78 ifndef LOCAL_IS_HOST_MODULE 79 ifeq ($(LOCAL_SDK_VERSION),system_current) 80 my_link_type := java:system 81 else ifneq ($(LOCAL_SDK_VERSION),) 82 my_link_type := java:sdk 83 else 84 my_link_type := java:platform 85 endif 86 # warn/allowed types are both empty because Soong modules can't depend on 87 # make-defined modules. 88 my_warn_types := 89 my_allowed_types := 90 91 my_link_deps := 92 my_2nd_arch_prefix := $(LOCAL_2ND_ARCH_VAR_PREFIX) 93 my_common := COMMON 94 include $(BUILD_SYSTEM)/link_type.mk 95 endif # !LOCAL_IS_HOST_MODULE 96 97 ifdef LOCAL_SOONG_RRO_DIRS 98 $(call append_enforce_rro_sources, \ 99 $(my_register_name), \ 100 false, \ 101 $(LOCAL_FULL_MANIFEST_FILE), \ 102 $(LOCAL_EXPORT_PACKAGE_RESOURCES), \ 103 $(LOCAL_SOONG_RRO_DIRS)) 104 endif 105