Merge "Automatically add Java resources carried by static Java libraries." into jb-mr1-dev
diff --git a/core/definitions.mk b/core/definitions.mk
index 0f9dc30..bc4886c 100644
--- a/core/definitions.mk
+++ b/core/definitions.mk
@@ -1489,7 +1489,6 @@
define transform-java-to-classes.jar
@echo "target Java: $(PRIVATE_MODULE) ($(PRIVATE_CLASS_INTERMEDIATES_DIR))"
$(call compile-java,$(TARGET_JAVAC),$(PRIVATE_BOOTCLASSPATH))
-$(hide) rm -rf $(PRIVATE_CLASS_INTERMEDIATES_DIR)
endef
# Override the above definitions if we want to do incremetal javac
@@ -1622,12 +1621,27 @@
$(AAPT) add -k $@ $$_adtp_classes_dex && rm -f $$_adtp_classes_dex)
endef
+# Add java resources added by the current module.
+#
define add-java-resources-to-package
$(call dump-words-to-file, $(PRIVATE_EXTRA_JAR_ARGS), $(dir $@)jar-arg-list)
$(hide) jar uf $@ @$(dir $@)jar-arg-list
@rm -f $(dir $@)jar-arg-list
endef
+# Add java resources carried by static Java libraries.
+#
+define add-carried-java-resources
+$(hide) if [ -d $(PRIVATE_CLASS_INTERMEDIATES_DIR) ] ; then \
+ java_res_jar_flags=$$(find $(PRIVATE_CLASS_INTERMEDIATES_DIR) -type f -a -not -name "*.class" \
+ | sed -e "s?^$(PRIVATE_CLASS_INTERMEDIATES_DIR)/? -C $(PRIVATE_CLASS_INTERMEDIATES_DIR) ?"); \
+ if [ -n "$$java_res_jar_flags" ] ; then \
+ echo $$java_res_jar_flags >$(dir $@)java_res_jar_flags; \
+ jar uf $@ $$java_res_jar_flags; \
+ fi; \
+fi
+endef
+
# Sign a package using the specified key/cert.
#
define sign-package
diff --git a/core/host_java_library.mk b/core/host_java_library.mk
index 6cc0b1f..5930da6 100644
--- a/core/host_java_library.mk
+++ b/core/host_java_library.mk
@@ -82,6 +82,7 @@
@echo "Host Jar: $(PRIVATE_MODULE) ($@)"
$(create-empty-package)
$(add-dex-to-package)
+ $(add-carried-java-resources)
ifneq ($(extra_jar_args),)
$(add-java-resources-to-package)
endif
diff --git a/core/java_library.mk b/core/java_library.mk
index 03e069d..6392108 100644
--- a/core/java_library.mk
+++ b/core/java_library.mk
@@ -77,6 +77,7 @@
@echo "target Jar: $(PRIVATE_MODULE) ($@)"
$(create-empty-package)
$(add-dex-to-package)
+ $(add-carried-java-resources)
ifneq ($(extra_jar_args),)
$(add-java-resources-to-package)
endif
diff --git a/core/package.mk b/core/package.mk
index c181ae4..145c0b2 100644
--- a/core/package.mk
+++ b/core/package.mk
@@ -413,6 +413,10 @@
ifneq ($(full_classes_jar),)
$(add-dex-to-package)
endif
+ $(add-carried-java-resources)
+ifneq ($(extra_jar_args),)
+ $(add-java-resources-to-package)
+endif
$(sign-package)
@# Alignment must happen after all other zip operations.
$(align-package)