diff options
author | 2015-05-08 18:18:43 +0000 | |
---|---|---|
committer | 2015-05-11 12:48:57 +0000 | |
commit | f7c992263610c9246a2c81b4e015b9c7f216fd50 (patch) | |
tree | 3bb58b57fbaf614ffc15b62fb35e1136cf06f78f /src/java_tools/buildjar/java/com/google/devtools/build | |
parent | de189ba8cbcde2623ff0daf022cf5784ebcd35a5 (diff) |
Add a --javac_extdir flag to enable configuring the javac -extdirs flag
The -extdirs flag sets a search path to the directory containing the JDK's
extension classes, and should always be set explicitly when cross-compiling. If
it is unset, the ext directory of the host JDK will be used instead.
javac requires that -extdirs be a list of directories. The blaze --javac_extdir
flag takes the label of a filegroup with the 'path' attribute set, and passes
the directory path through to JavaBuilder.
RELNOTES: N/A
--
MOS_MIGRATED_REVID=93147656
Diffstat (limited to 'src/java_tools/buildjar/java/com/google/devtools/build')
3 files changed, 21 insertions, 0 deletions
diff --git a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/CommonJavaLibraryProcessor.java b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/CommonJavaLibraryProcessor.java index dae8d9715b..38d16dfd10 100644 --- a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/CommonJavaLibraryProcessor.java +++ b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/CommonJavaLibraryProcessor.java @@ -60,6 +60,11 @@ public abstract class CommonJavaLibraryProcessor { args.add("-sourcepath"); args.add(":"); + if (build.getExtdir() != null) { + args.add("-extdirs"); + args.add(build.getExtdir()); + } + return args; } } diff --git a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/JavaLibraryBuildRequest.java b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/JavaLibraryBuildRequest.java index c243948fc0..64ca443bab 100644 --- a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/JavaLibraryBuildRequest.java +++ b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/JavaLibraryBuildRequest.java @@ -48,6 +48,8 @@ public final class JavaLibraryBuildRequest { private final String classPath; + private final String extdir; + private final String processorPath; private final List<String> processorNames; @@ -145,6 +147,7 @@ public final class JavaLibraryBuildRequest { this.resourceJars = ImmutableList.copyOf(optionsParser.getResourceJars()); this.rootResourceFiles = ImmutableList.copyOf(optionsParser.getRootResourceFiles()); this.classPath = optionsParser.getClassPath(); + this.extdir = optionsParser.getExtdir(); this.processorPath = optionsParser.getProcessorPath(); this.processorNames = optionsParser.getProcessorNames(); // Since the default behavior of this tool with no arguments is "rm -fr <classDir>", let's not @@ -215,6 +218,10 @@ public final class JavaLibraryBuildRequest { return classPath; } + public String getExtdir() { + return extdir; + } + public String getProcessorPath() { return processorPath; } diff --git a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/OptionsParser.java b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/OptionsParser.java index d2917dbfa4..99962bcca3 100644 --- a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/OptionsParser.java +++ b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/OptionsParser.java @@ -61,6 +61,8 @@ public final class OptionsParser { private String classPath; + private String extdir; + private String processorPath = ""; private final List<String> processorNames = new ArrayList<>(); @@ -163,6 +165,9 @@ public final class OptionsParser { case "--processors": collectProcessorArguments(processorNames, argQueue, "-"); break; + case "--extdir": + extdir = getArgument(argQueue, arg); + break; case "--output": outputJar = getArgument(argQueue, arg); break; @@ -358,6 +363,10 @@ public final class OptionsParser { return classPath; } + public String getExtdir() { + return extdir; + } + public String getProcessorPath() { return processorPath; } |