From 1965568eeea6aae09b8cb80f798b43fda0401b34 Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Thu, 7 Sep 2017 17:00:22 -0700 Subject: [PATCH] Use same module name for java binary wrapper and jar Trying to use dx.jar for the jar module name and dx for the wrapper module name leads to the make side installing dx.jar.jar. The separate names are only needed to make LOCAL_REQUIRED_MODULES work. Make the names the same again, and use a manual dependency from the installed location of the wrapper script to the installed location of the jar to make sure that both get installed and that the wrapper script timestamp is always as new as the jar. Test: m -j checkbuild Change-Id: Ibc8ce9d24ed770e9a270fb8eaa8fe1b427a382a7 --- java/androidmk.go | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/java/androidmk.go b/java/androidmk.go index 49f58df5b..680d8642d 100644 --- a/java/androidmk.go +++ b/java/androidmk.go @@ -29,7 +29,6 @@ func (library *Library) AndroidMk() android.AndroidMkData { Include: "$(BUILD_SYSTEM)/soong_java_prebuilt.mk", Extra: []android.AndroidMkExtraFunc{ func(w io.Writer, outputFile android.Path) { - fmt.Fprintln(w, "LOCAL_MODULE_SUFFIX := .jar") if library.properties.Installable != nil && *library.properties.Installable == false { fmt.Fprintln(w, "LOCAL_UNINSTALLABLE_MODULE := true") } @@ -45,7 +44,6 @@ func (prebuilt *Import) AndroidMk() android.AndroidMkData { Include: "$(BUILD_SYSTEM)/soong_java_prebuilt.mk", Extra: []android.AndroidMkExtraFunc{ func(w io.Writer, outputFile android.Path) { - fmt.Fprintln(w, "LOCAL_MODULE_SUFFIX := .jar") fmt.Fprintln(w, "LOCAL_UNINSTALLABLE_MODULE := true") }, }, @@ -57,10 +55,10 @@ func (binary *Binary) AndroidMk() android.AndroidMkData { Class: "JAVA_LIBRARIES", OutputFile: android.OptionalPathForPath(binary.outputFile), Include: "$(BUILD_SYSTEM)/soong_java_prebuilt.mk", - SubName: ".jar", Custom: func(w io.Writer, name, prefix, moduleDir string, data android.AndroidMkData) { android.WriteAndroidMkData(w, data) + fmt.Fprintln(w, "jar_installed_module := $(LOCAL_INSTALLED_MODULE)") fmt.Fprintln(w, "include $(CLEAR_VARS)") fmt.Fprintln(w, "LOCAL_MODULE := "+name) fmt.Fprintln(w, "LOCAL_MODULE_CLASS := EXECUTABLES") @@ -68,9 +66,12 @@ func (binary *Binary) AndroidMk() android.AndroidMkData { fmt.Fprintln(w, "LOCAL_IS_HOST_MODULE := true") } fmt.Fprintln(w, "LOCAL_STRIP_MODULE := false") - fmt.Fprintln(w, "LOCAL_REQUIRED_MODULES := "+name+".jar") - fmt.Fprintln(w, "LOCAL_PREBUILT_MODULE_FILE := "+binary.wrapperFile.String()) + fmt.Fprintln(w, "LOCAL_PREBUILT_MODULE_FILE :=", binary.wrapperFile.String()) fmt.Fprintln(w, "include $(BUILD_PREBUILT)") + + // Ensure that the wrapper script timestamp is always updated when the jar is updated + fmt.Fprintln(w, "$(LOCAL_INSTALLED_MODULE): $(jar_installed_module)") + fmt.Fprintln(w, "jar_installed_module :=") }, } }