aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/java_tools/buildjar/java/com/google/devtools/build
diff options
context:
space:
mode:
authorGravatar Liam Miller-Cushon <cushon@google.com>2015-05-08 18:18:43 +0000
committerGravatar Han-Wen Nienhuys <hanwen@google.com>2015-05-11 12:48:57 +0000
commitf7c992263610c9246a2c81b4e015b9c7f216fd50 (patch)
tree3bb58b57fbaf614ffc15b62fb35e1136cf06f78f /src/java_tools/buildjar/java/com/google/devtools/build
parentde189ba8cbcde2623ff0daf022cf5784ebcd35a5 (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')
-rw-r--r--src/java_tools/buildjar/java/com/google/devtools/build/buildjar/CommonJavaLibraryProcessor.java5
-rw-r--r--src/java_tools/buildjar/java/com/google/devtools/build/buildjar/JavaLibraryBuildRequest.java7
-rw-r--r--src/java_tools/buildjar/java/com/google/devtools/build/buildjar/OptionsParser.java9
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;
}