Fix duplicate and dangling rules

I6730e2d3ec38004874265b2a690442dec57b33f4 introduced duplicate rules
to build classes.jar for static java library prebuilts, and left rules
to copy $(built_dex_intermediates) to $(built_dex) for modules that
don't build dex files.

Move prebuilts LOCAL_BUILT_MODULE back to javalib.jar to match
non-prebuilt modules, and remove the manual building of javalib.jar.

Add a check around $(built_dex_intermediates) for static java libraries.

Bug: 36901093
Bug: 36902714
Test: m -j ANDROID_COMPILE_WITH_JACK=false
Change-Id: I291510b56162f0d35553e3c7ccd59b1382224d62
(cherry picked from commit 96476c1d50)
This commit is contained in:
Colin Cross 2017-04-06 09:56:19 -07:00
parent 69d85288cb
commit 487a313bb6
3 changed files with 6 additions and 7 deletions

View file

@ -639,6 +639,7 @@ $(eval $(call copy-one-file,$(full_classes_proguard_jar),$(full_classes_jar)))
$(call define-jar-to-toc-rule, $(full_classes_jar))
ifneq ($(LOCAL_IS_STATIC_JAVA_LIBRARY),true)
ifndef LOCAL_JACK_ENABLED
$(built_dex_intermediate): PRIVATE_DX_FLAGS := $(LOCAL_DX_FLAGS)
# If you instrument class files that have local variable debug information in
@ -660,6 +661,8 @@ $(built_dex): $(built_dex_intermediate)
$(hide) rm -f $(dir $@)/classes*.dex
$(hide) cp -fp $(dir $<)/classes*.dex $(dir $@)
endif # !LOCAL_IS_STATIC_JAVA_LIBRARY
findbugs_xml := $(intermediates.COMMON)/findbugs.xml
$(findbugs_xml): PRIVATE_AUXCLASSPATH := $(addprefix -auxclasspath ,$(strip \
$(call normalize-path-list,$(filter %.jar,$(full_java_libs)))))

View file

@ -116,7 +116,7 @@ $(call auto-prebuilt-boilerplate, \
$(prebuilt_module_tags), \
, \
, \
$(if $(prebuilt_is_host),classes.jar,javalib.jar))
javalib.jar)
$(call auto-prebuilt-boilerplate, \
$(prebuilt_static_java_libraries), \
@ -125,7 +125,7 @@ $(call auto-prebuilt-boilerplate, \
$(prebuilt_module_tags), \
, \
true, \
classes.jar)
javalib.jar)
prebuilt_static_libs :=
prebuilt_shared_libs :=

View file

@ -436,16 +436,12 @@ ifdef LOCAL_IS_HOST_MODULE
# for host java libraries deps should be in the common dir, so we make a copy in
# the common dir.
common_classes_jar := $(intermediates.COMMON)/classes.jar
common_javalib_jar := $(intermediates.COMMON)/javalib.jar
$(common_classes_jar) $(common_javalib_jar): PRIVATE_MODULE := $(LOCAL_MODULE)
$(common_classes_jar): PRIVATE_MODULE := $(LOCAL_MODULE)
$(common_classes_jar) : $(my_src_jar)
$(transform-prebuilt-to-target)
$(common_javalib_jar) : $(common_classes_jar)
$(transform-prebuilt-to-target)
else # !LOCAL_IS_HOST_MODULE
# for target java libraries, the LOCAL_BUILT_MODULE is in a product-specific dir,
# while the deps should be in the common dir, so we make a copy in the common dir.