aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules
diff options
context:
space:
mode:
authorGravatar Dmitry Lomov <dslomov@google.com>2015-12-06 21:53:16 +0000
committerGravatar David Chen <dzc@google.com>2015-12-07 21:16:04 +0000
commit197fd6a39b6d8b60a22d891998b7ed2b080591d5 (patch)
treeabdc9414c1bde4dcef15e773a714e329cfcb7c4d /src/main/java/com/google/devtools/build/lib/rules
parent03083858837c804f7992e6f5d27f39acdb66d61a (diff)
Upstream some basic changes from dslomov windows branch.
The code changes are mostly due to dslomov, not me, although I refactored the Jvm class a bit based on his changes. I set dslomov as the author. -- Reviewed-on: https://github.com/bazelbuild/bazel/pull/688 MOS_MIGRATED_REVID=109536553
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/Jvm.java13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/Jvm.java b/src/main/java/com/google/devtools/build/lib/rules/java/Jvm.java
index c5f554b051..85c26713b3 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/Jvm.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/Jvm.java
@@ -22,6 +22,7 @@ import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.syntax.SkylarkCallable;
import com.google.devtools.build.lib.syntax.SkylarkModule;
+import com.google.devtools.build.lib.util.OsUtils;
import com.google.devtools.build.lib.vfs.PathFragment;
/**
@@ -35,6 +36,9 @@ import com.google.devtools.build.lib.vfs.PathFragment;
public final class Jvm extends BuildConfiguration.Fragment {
private final PathFragment javaHome;
private final Label jvmLabel;
+ private final PathFragment javac;
+ private final PathFragment jar;
+ private final PathFragment java;
/**
* Creates a Jvm instance. Either the {@code javaHome} parameter is absolute,
@@ -45,6 +49,9 @@ public final class Jvm extends BuildConfiguration.Fragment {
Preconditions.checkArgument(javaHome.isAbsolute() ^ (jvmLabel != null));
this.javaHome = javaHome;
this.jvmLabel = jvmLabel;
+ this.javac = getJavaHome().getRelative("bin/javac" + OsUtils.executableExtension());
+ this.jar = getJavaHome().getRelative("bin/jar" + OsUtils.executableExtension());
+ this.java = getJavaHome().getRelative("bin/java" + OsUtils.executableExtension());
}
@Override
@@ -66,14 +73,14 @@ public final class Jvm extends BuildConfiguration.Fragment {
* Returns the path to the javac binary.
*/
public PathFragment getJavacExecutable() {
- return getJavaHome().getRelative("bin/javac");
+ return javac;
}
/**
* Returns the path to the jar binary.
*/
public PathFragment getJarExecutable() {
- return getJavaHome().getRelative("bin/jar");
+ return jar;
}
/**
@@ -82,7 +89,7 @@ public final class Jvm extends BuildConfiguration.Fragment {
@SkylarkCallable(name = "java_executable", structField = true,
doc = "The java executable, i.e. bin/java relative to the Java home.")
public PathFragment getJavaExecutable() {
- return getJavaHome().getRelative("bin/java");
+ return java;
}
/**