From 38e4fb2ce65fb3503b527f1457587c6c06c15335 Mon Sep 17 00:00:00 2001 From: Jaewoong Jung Date: Wed, 12 Dec 2018 09:01:34 -0800 Subject: Add buildDir to java patch-module paths. This solves a problem where javac fails to find patch-module targets when a build diretory is not under the project root. Bug: 117770838 Test: java_test.go + manual build Change-Id: If70d0d388a3f6c87b3f78a927df2063616d50c8a --- java/java.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'java/java.go') diff --git a/java/java.go b/java/java.go index 71967a867..c02ccd347 100644 --- a/java/java.go +++ b/java/java.go @@ -1011,8 +1011,15 @@ func (j *Module) collectBuilderFlags(ctx android.ModuleContext, deps deps) javaB } if j.properties.Patch_module != nil && flags.javaVersion == "1.9" { - patchClasspath := ".:" + flags.classpath.FormJavaClassPath("") - javacFlags = append(javacFlags, "--patch-module="+String(j.properties.Patch_module)+"="+patchClasspath) + // Manually specify build directory in case it is not under the repo root. + // (javac doesn't seem to expand into symbolc links when searching for patch-module targets, so + // just adding a symlink under the root doesn't help.) + patchPaths := ".:" + ctx.Config().BuildDir() + classPath := flags.classpath.FormJavaClassPath("") + if classPath != "" { + patchPaths += ":" + classPath + } + javacFlags = append(javacFlags, "--patch-module="+String(j.properties.Patch_module)+"="+patchPaths) } // systemModules -- cgit v1.2.3-59-g8ed1b