blob: b67381ea58d356d1233cbcef4d77785bd0385041 [file] [log] [blame]
Colin Crosse05e6df2017-11-15 21:35:27 -08001# App prebuilt coming from Soong.
2# Extra inputs:
Colin Cross6db5b0e2018-11-16 21:26:33 -08003# LOCAL_SOONG_BUILT_INSTALLED
4# LOCAL_SOONG_BUNDLE
5# LOCAL_SOONG_CLASSES_JAR
6# LOCAL_SOONG_DEX_JAR
7# LOCAL_SOONG_HEADER_JAR
8# LOCAL_SOONG_JACOCO_REPORT_CLASSES_JAR
9# LOCAL_SOONG_PROGUARD_DICT
Colin Crosse05e6df2017-11-15 21:35:27 -080010# LOCAL_SOONG_RESOURCE_EXPORT_PACKAGE
Colin Cross6db5b0e2018-11-16 21:26:33 -080011# LOCAL_SOONG_RRO_DIRS
12# LOCAL_SOONG_JNI_LIBS_$(TARGET_ARCH)
13# LOCAL_SOONG_JNI_LIBS_$(TARGET_2ND_ARCH)
Colin Crosse05e6df2017-11-15 21:35:27 -080014
15ifneq ($(LOCAL_MODULE_MAKEFILE),$(SOONG_ANDROID_MK))
16 $(call pretty-error,soong_app_prebuilt.mk may only be used from Soong)
17endif
18
19LOCAL_MODULE_SUFFIX := .apk
20LOCAL_BUILT_MODULE_STEM := package.apk
21
22#######################################
23include $(BUILD_SYSTEM)/base_rules.mk
24#######################################
25
Colin Cross75a698b2017-12-14 13:19:46 -080026full_classes_jar := $(intermediates.COMMON)/classes.jar
27full_classes_pre_proguard_jar := $(intermediates.COMMON)/classes-pre-proguard.jar
28full_classes_header_jar := $(intermediates.COMMON)/classes-header.jar
29
Colin Cross83b7bdf2019-01-14 14:10:20 -080030ifdef LOCAL_SOONG_CLASSES_JAR
31 $(eval $(call copy-one-file,$(LOCAL_SOONG_CLASSES_JAR),$(full_classes_jar)))
32 $(eval $(call copy-one-file,$(LOCAL_SOONG_CLASSES_JAR),$(full_classes_pre_proguard_jar)))
33 $(eval $(call add-dependency,$(LOCAL_BUILT_MODULE),$(full_classes_jar)))
Colin Cross75a698b2017-12-14 13:19:46 -080034
Colin Cross83b7bdf2019-01-14 14:10:20 -080035 ifneq ($(TURBINE_ENABLED),false)
36 ifdef LOCAL_SOONG_HEADER_JAR
37 $(eval $(call copy-one-file,$(LOCAL_SOONG_HEADER_JAR),$(full_classes_header_jar)))
38 else
39 $(eval $(call copy-one-file,$(full_classes_jar),$(full_classes_header_jar)))
40 endif
41 endif # TURBINE_ENABLED != false
Colin Cross53c8f972018-09-28 16:19:42 -070042endif
43
Jeongik Chaf712ce72019-01-08 12:41:48 +090044# Run veridex on product, product_services and vendor modules.
45# We skip it for unbundled app builds where we cannot build veridex.
46module_run_appcompat :=
Jeongik Cha83c50322019-01-18 15:09:09 +090047ifeq (true,$(non_system_module))
Jeongik Chaf712ce72019-01-08 12:41:48 +090048ifeq (,$(TARGET_BUILD_APPS)$(filter true,$(TARGET_BUILD_PDK))) # ! unbundled app build
Adrian Roos21028b72019-01-15 18:30:51 +010049ifneq ($(UNSAFE_DISABLE_HIDDENAPI_FLAGS),true)
Jeongik Chaf712ce72019-01-08 12:41:48 +090050 module_run_appcompat := true
51endif
52endif
Adrian Roos21028b72019-01-15 18:30:51 +010053endif
Jeongik Chaf712ce72019-01-08 12:41:48 +090054
55ifeq ($(module_run_appcompat),true)
56 $(LOCAL_BUILT_MODULE): $(appcompat-files)
57 $(LOCAL_BUILT_MODULE): PRIVATE_INSTALLED_MODULE := $(LOCAL_INSTALLED_MODULE)
58 $(LOCAL_BUILT_MODULE): $(LOCAL_PREBUILT_MODULE_FILE)
59 @echo "Copy: $@"
60 $(copy-file-to-target)
61 $(call appcompat-header, aapt2)
62 $(run-appcompat)
63else
64 $(eval $(call copy-one-file,$(LOCAL_PREBUILT_MODULE_FILE),$(LOCAL_BUILT_MODULE)))
65endif
Colin Cross5d196362019-01-16 01:38:41 +000066
Colin Cross83b7bdf2019-01-14 14:10:20 -080067ifdef LOCAL_SOONG_JACOCO_REPORT_CLASSES_JAR
68 $(eval $(call copy-one-file,$(LOCAL_SOONG_JACOCO_REPORT_CLASSES_JAR),\
69 $(intermediates.COMMON)/jacoco-report-classes.jar))
70 $(call add-dependency,$(LOCAL_BUILT_MODULE),\
71 $(intermediates.COMMON)/jacoco-report-classes.jar)
72endif
73
74ifdef LOCAL_SOONG_PROGUARD_DICT
75 $(eval $(call copy-one-file,$(LOCAL_SOONG_PROGUARD_DICT),\
76 $(intermediates.COMMON)/proguard_dictionary))
77 $(call add-dependency,$(LOCAL_BUILT_MODULE),\
78 $(intermediates.COMMON)/proguard_dictionary)
79endif
80
81ifdef LOCAL_SOONG_RESOURCE_EXPORT_PACKAGE
82resource_export_package := $(intermediates.COMMON)/package-export.apk
83resource_export_stamp := $(intermediates.COMMON)/src/R.stamp
84
85$(resource_export_package): PRIVATE_STAMP := $(resource_export_stamp)
86$(resource_export_package): .KATI_IMPLICIT_OUTPUTS := $(resource_export_stamp)
87$(resource_export_package): $(LOCAL_SOONG_RESOURCE_EXPORT_PACKAGE)
88 @echo "Copy: $$@"
89 $(copy-file-to-target)
90 touch $(PRIVATE_STAMP)
91$(call add-dependency,$(LOCAL_BUILT_MODULE),$(resource_export_package))
92
93endif # LOCAL_SOONG_RESOURCE_EXPORT_PACKAGE
94
95java-dex: $(LOCAL_SOONG_DEX_JAR)
96
97
98ifneq ($(BUILD_PLATFORM_ZIP),)
99 $(eval $(call copy-one-file,$(LOCAL_SOONG_DEX_JAR),$(dir $(LOCAL_BUILT_MODULE))package.dex.apk))
100endif
101
Colin Cross6db5b0e2018-11-16 21:26:33 -0800102my_built_installed := $(foreach f,$(LOCAL_SOONG_BUILT_INSTALLED),\
103 $(call word-colon,1,$(f)):$(PRODUCT_OUT)$(call word-colon,2,$(f)))
104my_installed := $(call copy-many-files, $(my_built_installed))
105ALL_MODULES.$(my_register_name).INSTALLED += $(my_installed)
106ALL_MODULES.$(my_register_name).BUILT_INSTALLED += $(my_built_installed)
107$(my_register_name): $(my_installed)
Colin Crosse05e6df2017-11-15 21:35:27 -0800108
Colin Cross0fa751b2018-10-03 14:09:18 -0700109# embedded JNI will already have been handled by soong
110my_embed_jni :=
111my_prebuilt_jni_libs :=
112ifdef LOCAL_SOONG_JNI_LIBS_$(TARGET_ARCH)
113 my_2nd_arch_prefix :=
114 LOCAL_JNI_SHARED_LIBRARIES := $(LOCAL_SOONG_JNI_LIBS_$(TARGET_ARCH))
115 include $(BUILD_SYSTEM)/install_jni_libs_internal.mk
116endif
117ifdef TARGET_2ND_ARCH
118 ifdef LOCAL_SOONG_JNI_LIBS_$(TARGET_2ND_ARCH)
119 my_2nd_arch_prefix := $(TARGET_2ND_ARCH_VAR_PREFIX)
120 LOCAL_JNI_SHARED_LIBRARIES := $(LOCAL_SOONG_JNI_LIBS_$(TARGET_2ND_ARCH))
121 include $(BUILD_SYSTEM)/install_jni_libs_internal.mk
122 endif
123endif
124LOCAL_SHARED_JNI_LIBRARIES :=
125my_embed_jni :=
126my_prebuilt_jni_libs :=
127my_2nd_arch_prefix :=
Colin Cross1fe104c2018-09-18 10:16:37 -0700128
Colin Crossaec36402017-12-14 11:20:27 -0800129PACKAGES := $(PACKAGES) $(LOCAL_MODULE)
130ifdef LOCAL_CERTIFICATE
Colin Cross4e34ce02017-12-15 13:20:27 -0800131 PACKAGES.$(LOCAL_MODULE).CERTIFICATE := $(LOCAL_CERTIFICATE)
132 PACKAGES.$(LOCAL_MODULE).PRIVATE_KEY := $(patsubst %.x509.pem,%.pk8,$(LOCAL_CERTIFICATE))
Colin Crossaec36402017-12-14 11:20:27 -0800133endif
Jeongik Chab2c4bb72018-12-17 14:45:15 +0900134include $(BUILD_SYSTEM)/app_certificate_validate.mk
Jason Monk87eb7912018-08-10 13:28:00 -0400135PACKAGES.$(LOCAL_MODULE).OVERRIDES := $(strip $(LOCAL_OVERRIDES_PACKAGES))
136
Colin Cross0fb8c972018-10-29 23:16:42 -0700137ifdef LOCAL_SOONG_BUNDLE
138 ALL_MODULES.$(LOCAL_MODULE).BUNDLE := $(LOCAL_SOONG_BUNDLE)
139endif
140
Colin Crosse05e6df2017-11-15 21:35:27 -0800141ifndef LOCAL_IS_HOST_MODULE
142ifeq ($(LOCAL_SDK_VERSION),system_current)
143my_link_type := java:system
Colin Crosse05e6df2017-11-15 21:35:27 -0800144else ifneq ($(LOCAL_SDK_VERSION),)
145my_link_type := java:sdk
Colin Crosse05e6df2017-11-15 21:35:27 -0800146else
147my_link_type := java:platform
Colin Crosse05e6df2017-11-15 21:35:27 -0800148endif
Jiyong Park98a4f522018-03-08 15:16:12 +0900149# warn/allowed types are both empty because Soong modules can't depend on
150# make-defined modules.
151my_warn_types :=
152my_allowed_types :=
Colin Crosse05e6df2017-11-15 21:35:27 -0800153
154my_link_deps :=
155my_2nd_arch_prefix := $(LOCAL_2ND_ARCH_VAR_PREFIX)
156my_common := COMMON
157include $(BUILD_SYSTEM)/link_type.mk
158endif # !LOCAL_IS_HOST_MODULE
159
Colin Cross8c5ef242017-11-30 20:11:22 -0800160ifdef LOCAL_SOONG_RRO_DIRS
161 $(call append_enforce_rro_sources, \
162 $(my_register_name), \
163 false, \
164 $(LOCAL_FULL_MANIFEST_FILE), \
165 $(LOCAL_EXPORT_PACKAGE_RESOURCES), \
166 $(LOCAL_SOONG_RRO_DIRS))
167endif
Colin Cross7a504332018-08-16 22:55:43 -0700168
169SOONG_ALREADY_CONV := $(SOONG_ALREADY_CONV) $(LOCAL_MODULE)