diff options
author | 2015-12-06 21:53:16 +0000 | |
---|---|---|
committer | 2015-12-07 21:16:04 +0000 | |
commit | 197fd6a39b6d8b60a22d891998b7ed2b080591d5 (patch) | |
tree | abdc9414c1bde4dcef15e773a714e329cfcb7c4d /src/main/java/com/google/devtools/build/lib/rules | |
parent | 03083858837c804f7992e6f5d27f39acdb66d61a (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.java | 13 |
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; } /** |