diff options
author | Xin Li <delphij@google.com> | 2018-06-08 11:07:18 -0700 |
---|---|---|
committer | Xin Li <delphij@google.com> | 2018-06-08 11:07:18 -0700 |
commit | 1bf821f9f323d805c49313bcd01027fef6ddf7c6 (patch) | |
tree | 0c73429fa1dfd38a75be6a825d0549f039661dd1 | |
parent | 806b50f604a816f9b7a972397005edcdff89b000 (diff) | |
parent | 218dbb89ab1e7884c1490324e57885432fa65f28 (diff) | |
download | robolectric-temp_p_merge.tar.gz |
Merge pi-dev-plus-aosp-without-vendor into stage-aosp-mastertemp_p_merge
Bug: 79597307
Change-Id: I2aeb4251641c2c5430afa0ee6c91f36f1b7ecdde
-rw-r--r-- | Android.mk | 31 | ||||
-rw-r--r-- | include_framework_res.mk | 50 |
2 files changed, 72 insertions, 9 deletions
diff --git a/Android.mk b/Android.mk index 352b94a60..e0852a8fd 100644 --- a/Android.mk +++ b/Android.mk @@ -15,8 +15,9 @@ LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) -LOCAL_MODULE := robolectric_android-all -LOCAL_JACK_ENABLED := disabled +# Intermediate target that produces classes-only jar + +LOCAL_MODULE := robolectric_android-all-stub LOCAL_STATIC_JAVA_LIBRARIES := \ conscrypt \ @@ -26,13 +27,16 @@ LOCAL_STATIC_JAVA_LIBRARIES := \ icu4j-icudata-jarjar \ icu4j-icutzdata-jarjar \ ims-common \ - legacy-test \ + android.test.base \ libphonenumber-platform \ okhttp \ services \ services.accessibility \ telephony-common +# include the uncompiled/raw resources in the jar +# Eventually these raw resources will be removed once the transition to +# binary/compiled resources is complete. LOCAL_JAVA_RESOURCE_FILES := \ frameworks/base/core/res/assets \ frameworks/base/core/res/res @@ -46,11 +50,20 @@ $(LOCAL_INTERMEDIATE_TARGETS): $(call copy-many-files,\ $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_EXTRA_JAR_ARGS += \ -C "$(intermediates.COMMON)" "usr/share/zoneinfo" +# Copy the build.prop +$(LOCAL_INTERMEDIATE_TARGETS): $(call copy-many-files,\ + $(TARGET_OUT)/build.prop:$(intermediates.COMMON)/build.prop) +$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_EXTRA_JAR_ARGS += \ + -C "$(intermediates.COMMON)" "build.prop" + +######################################## + +include $(CLEAR_VARS) + +# Adds binary framework resources to the produced jar +robo_stub_module_name := robolectric_android-all-stub +include $(LOCAL_PATH)/include_framework_res.mk + # Distribute the android-all artifact with SDK artifacts. -ifneq ($(filter eng.%,$(BUILD_NUMBER)),) -$(call dist-for-goals,sdk win_sdk,\ - $(LOCAL_BUILT_MODULE):android-all-$(PLATFORM_VERSION)-robolectric-eng.$(USER).jar) -else $(call dist-for-goals,sdk win_sdk,\ - $(LOCAL_BUILT_MODULE):android-all-$(PLATFORM_VERSION)-robolectric-$(BUILD_NUMBER).jar) -endif + $(robo_full_target):android-all-$(PLATFORM_VERSION)-robolectric-$(FILE_NAME_TAG).jar) diff --git a/include_framework_res.mk b/include_framework_res.mk new file mode 100644 index 000000000..07cf67cb3 --- /dev/null +++ b/include_framework_res.mk @@ -0,0 +1,50 @@ +# Add compiled framework resources to a robolectric jar file +# Input variable: +# robo_stub_module_name: the name of the make module that produces the Java library; the jar file should have been generated to +# $(TARGET_OUT_COMMON_INTERMEDIATES)/JAVA_LIBRARIES/$(robo_stub_module_name)_intermediates. +# Output variable: +# robo_full_target: the built classes-with-res.jar +# +# Depends on framework-res.apk, in order to pull the +# resource files out of there. +# +robo_intermediates := $(call intermediates-dir-for,JAVA_LIBRARIES,$(robo_stub_module_name),,COMMON) +robo_full_target := $(robo_intermediates)/classes-with-res.jar +robo_input_jar := $(robo_intermediates)/classes.jar +robo_classes_dir := $(robo_intermediates)/classes +framework_res_package := $(call intermediates-dir-for,APPS,framework-res,,COMMON)/package-export.apk + +$(robo_full_target): PRIVATE_INTERMEDIATES_DIR := $(robo_intermediates) +$(robo_full_target): PRIVATE_FRAMEWORK_RES_PACKAGE := $(framework_res_package) + +$(robo_full_target): PRIVATE_CLASS_INTERMEDIATES_DIR := $(robo_classes_dir) + +.KATI_RESTAT: $(robo_full_target) +$(robo_full_target): $(framework_res_package) $(robo_input_jar) $(ZIPTIME) + @echo Adding framework resources: $@ + $(hide) rm -rf $(PRIVATE_CLASS_INTERMEDIATES_DIR) + $(hide) mkdir -p $(PRIVATE_CLASS_INTERMEDIATES_DIR) + $(hide) if [ ! -f $(robo_input_jar) ]; then \ + echo Missing file $(robo_input_jar); \ + rm -rf $(PRIVATE_CLASS_INTERMEDIATES_DIR); \ + exit 1; \ + fi; + $(hide) unzip -qo $(robo_input_jar) -d $(PRIVATE_CLASS_INTERMEDIATES_DIR) + # Move the raw/uncompiled resources into raw-res/ + # This logic can be removed once the transition to binary resources is complete + $(hide) mkdir -p $(PRIVATE_CLASS_INTERMEDIATES_DIR)/raw-res + $(hide) mv $(PRIVATE_CLASS_INTERMEDIATES_DIR)/res $(PRIVATE_CLASS_INTERMEDIATES_DIR)/raw-res/ + $(hide) mv $(PRIVATE_CLASS_INTERMEDIATES_DIR)/assets $(PRIVATE_CLASS_INTERMEDIATES_DIR)/raw-res/ + $(hide) if [ ! -f $(PRIVATE_FRAMEWORK_RES_PACKAGE) ]; then \ + echo Missing file $(PRIVATE_FRAMEWORK_RES_PACKAGE); \ + rm -rf $(PRIVATE_CLASS_INTERMEDIATES_DIR); \ + exit 1; \ + fi; + $(hide) unzip -qo $(PRIVATE_FRAMEWORK_RES_PACKAGE) -d $(PRIVATE_CLASS_INTERMEDIATES_DIR) + $(hide) (cd $(PRIVATE_CLASS_INTERMEDIATES_DIR) && rm -rf classes.dex META-INF) + $(hide) mkdir -p $(dir $@) + $(hide) jar -cf $@.tmp -C $(PRIVATE_CLASS_INTERMEDIATES_DIR) . + $(hide) jar -u0f $@.tmp -C $(PRIVATE_CLASS_INTERMEDIATES_DIR) resources.arsc + $(hide) $(ZIPTIME) $@.tmp + $(hide) $(call commit-change-for-toc,$@) + |