diff options
author | 2017-07-11 09:51:55 +0200 | |
---|---|---|
committer | 2017-07-11 10:56:28 +0200 | |
commit | 76a251b8405cc49750d73561ce19902bda7f269e (patch) | |
tree | 93f9562c05e321bcca6e0f6b53d60682b2b53646 /src/main/java/com/google/devtools/build | |
parent | 5ed49b0da44a61cf178f6ea42db647ec7804b774 (diff) |
Add Make variables to java_runtime and java_runtime_suite .
This is necessary so that Make variables are not accessed from BuildConfiguration, which is in turn necessary so that we can forego package loading during configuration creation (currently we need to parse the java_runtime_suite / java_runtime rules to create the Jvm fragment)
RELNOTES: None.
PiperOrigin-RevId: 161496779
Diffstat (limited to 'src/main/java/com/google/devtools/build')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntime.java | 9 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeSuite.java | 5 |
2 files changed, 14 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntime.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntime.java index 37fbab51da..73f9f09c51 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntime.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntime.java @@ -14,6 +14,7 @@ package com.google.devtools.build.lib.rules.java; +import com.google.common.collect.ImmutableMap; import com.google.devtools.build.lib.actions.Actions; import com.google.devtools.build.lib.actions.Artifact; import com.google.devtools.build.lib.analysis.CompilationHelper; @@ -27,6 +28,7 @@ import com.google.devtools.build.lib.analysis.Runfiles; import com.google.devtools.build.lib.analysis.RunfilesProvider; import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.collect.nestedset.NestedSet; +import com.google.devtools.build.lib.rules.MakeVariableProvider; import com.google.devtools.build.lib.rules.RuleConfiguredTargetFactory; import com.google.devtools.build.lib.syntax.Type; import com.google.devtools.build.lib.util.OsUtils; @@ -70,12 +72,19 @@ public class JavaRuntime implements RuleConfiguredTargetFactory { new Runfiles.Builder(ruleContext.getWorkspaceName()) .addTransitiveArtifacts(filesToBuild) .build(); + + MakeVariableProvider makeVariableProvider = new MakeVariableProvider(ImmutableMap.of( + "JAVA", javaBinaryExecPath.getPathString(), + "JAVABASE", javaHome.getPathString())); + return new RuleConfiguredTargetBuilder(ruleContext) .addProvider(RunfilesProvider.class, RunfilesProvider.simple(runfiles)) .setFilesToBuild(filesToBuild) .addProvider(JavaRuntimeProvider.class, JavaRuntimeProvider.create( filesToBuild, javaHome, javaBinaryExecPath, javaBinaryRunfilesPath)) .addProvider(MiddlemanProvider.class, new MiddlemanProvider(middleman)) + .addProvider(makeVariableProvider) + .addNativeDeclaredProvider(makeVariableProvider) .build(); } diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeSuite.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeSuite.java index e214eac612..dfde6fd937 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeSuite.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeSuite.java @@ -22,6 +22,7 @@ import com.google.devtools.build.lib.analysis.RuleConfiguredTargetBuilder; import com.google.devtools.build.lib.analysis.RuleContext; import com.google.devtools.build.lib.analysis.RunfilesProvider; import com.google.devtools.build.lib.analysis.TransitiveInfoCollection; +import com.google.devtools.build.lib.rules.MakeVariableProvider; import com.google.devtools.build.lib.rules.RuleConfiguredTargetFactory; /** Implementation for the {@code java_runtime_suite} rule. */ @@ -38,10 +39,14 @@ public class JavaRuntimeSuite implements RuleConfiguredTargetFactory { ruleContext.throwWithRuleError( "could not resolve runtime for cpu " + ruleContext.getConfiguration().getCpu()); } + + MakeVariableProvider makeVariableProvider = runtime.getProvider(MakeVariableProvider.class); return new RuleConfiguredTargetBuilder(ruleContext) .addProvider(JavaRuntimeProvider.class, runtime.getProvider(JavaRuntimeProvider.class)) .addProvider(RunfilesProvider.class, runtime.getProvider(RunfilesProvider.class)) .addProvider(MiddlemanProvider.class, runtime.getProvider(MiddlemanProvider.class)) + .addProvider(makeVariableProvider) + .addNativeDeclaredProvider(makeVariableProvider) .setFilesToBuild(runtime.getProvider(FileProvider.class).getFilesToBuild()) .build(); } |