aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/packages/WorkspaceFactory.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/packages/WorkspaceFactory.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/packages/WorkspaceFactory.java14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/packages/WorkspaceFactory.java b/src/main/java/com/google/devtools/build/lib/packages/WorkspaceFactory.java
index 73358746d9..5d55d31012 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/WorkspaceFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/WorkspaceFactory.java
@@ -71,12 +71,14 @@ public class WorkspaceFactory {
"__embedded_dir__", // serializable so optional
"__workspace_dir__", // serializable so optional
"DEFAULT_SERVER_JAVABASE", // serializable so optional
+ "DEFAULT_SYSTEM_JAVABASE", // serializable so optional
PackageFactory.PKG_CONTEXT);
private final Package.Builder builder;
private final Path installDir;
private final Path workspaceDir;
+ private final Path defaultSystemJavabaseDir;
private final Mutability mutability;
private final boolean allowOverride;
@@ -107,7 +109,7 @@ public class WorkspaceFactory {
RuleClassProvider ruleClassProvider,
ImmutableList<EnvironmentExtension> environmentExtensions,
Mutability mutability) {
- this(builder, ruleClassProvider, environmentExtensions, mutability, true, null, null);
+ this(builder, ruleClassProvider, environmentExtensions, mutability, true, null, null, null);
}
// TODO(bazel-team): document installDir
@@ -118,6 +120,7 @@ public class WorkspaceFactory {
* @param mutability the Mutability for the current evaluation context
* @param installDir the install directory
* @param workspaceDir the workspace directory
+ * @param defaultSystemJavabaseDir the local JDK directory
*/
public WorkspaceFactory(
Package.Builder builder,
@@ -126,11 +129,13 @@ public class WorkspaceFactory {
Mutability mutability,
boolean allowOverride,
@Nullable Path installDir,
- @Nullable Path workspaceDir) {
+ @Nullable Path workspaceDir,
+ @Nullable Path defaultSystemJavabaseDir) {
this.builder = builder;
this.mutability = mutability;
this.installDir = installDir;
this.workspaceDir = workspaceDir;
+ this.defaultSystemJavabaseDir = defaultSystemJavabaseDir;
this.allowOverride = allowOverride;
this.environmentExtensions = environmentExtensions;
this.ruleFactory = new RuleFactory(ruleClassProvider, AttributeContainer::new);
@@ -534,6 +539,11 @@ public class WorkspaceFactory {
javaHome = javaHome.getParentFile();
}
workspaceEnv.update("DEFAULT_SERVER_JAVABASE", javaHome.toString());
+ workspaceEnv.update(
+ "DEFAULT_SYSTEM_JAVABASE",
+ defaultSystemJavabaseDir != null
+ ? defaultSystemJavabaseDir.toString()
+ : javaHome.toString());
for (EnvironmentExtension extension : environmentExtensions) {
extension.updateWorkspace(workspaceEnv);