Support to build host dex.
Change-Id: I55df5e4051dbeb89a70d6d7b89fb6110f133d9d7
diff --git a/core/clear_vars.mk b/core/clear_vars.mk
index c7343e5..c046c69 100644
--- a/core/clear_vars.mk
+++ b/core/clear_vars.mk
@@ -96,6 +96,7 @@
LOCAL_PROGUARD_FLAGS:=
LOCAL_EMMA_COVERAGE_FILTER:=
LOCAL_MANIFEST_FILE:=
+LOCAL_BUILD_HOST_DEX:=
# Trim MAKEFILE_LIST so that $(call my-dir) doesn't need to
# iterate over thousands of entries every time.
diff --git a/core/host_java_library.mk b/core/host_java_library.mk
index 1977115..7a5ee37 100644
--- a/core/host_java_library.mk
+++ b/core/host_java_library.mk
@@ -25,6 +25,30 @@
include $(BUILD_SYSTEM)/base_rules.mk
+ifeq ($(LOCAL_BUILD_HOST_DEX),true)
+full_classes_jar := $(intermediates.COMMON)/classes.jar
+built_dex := $(intermediates.COMMON)/classes.dex
+
+$(full_classes_jar): PRIVATE_JAVACFLAGS := $(LOCAL_JAVACFLAGS)
+$(full_classes_jar): $(java_sources) $(java_resource_sources) $(full_java_lib_deps)
+ $(transform-host-java-to-package)
+
+$(built_dex): PRIVATE_INTERMEDIATES_DIR := $(intermediates.COMMON)
+$(built_dex): PRIVATE_DX_FLAGS := $(LOCAL_DX_FLAGS)
+$(built_dex): $(full_classes_jar) $(DX)
+ $(transform-classes.jar-to-dex)
+
+$(LOCAL_BUILT_MODULE): PRIVATE_DEX_FILE := $(built_dex)
+$(LOCAL_BUILT_MODULE): $(built_dex) $(java_resource_sources) | $(AAPT)
+ @echo "Host Jar: $(PRIVATE_MODULE) ($@)"
+ $(create-empty-package)
+ $(add-dex-to-package)
+ifneq ($(extra_jar_args),)
+ $(add-java-resources-to-package)
+endif
+
+else
$(LOCAL_BUILT_MODULE): PRIVATE_JAVACFLAGS := $(LOCAL_JAVACFLAGS)
$(LOCAL_BUILT_MODULE): $(java_sources) $(java_resource_sources) $(full_java_lib_deps)
$(transform-host-java-to-package)
+endif # LOCAL_BUILD_HOST_DEX