aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google
diff options
context:
space:
mode:
authorGravatar Liam Miller-Cushon <cushon@google.com>2017-01-12 18:17:11 +0000
committerGravatar Marcel Hlopko <hlopko@google.com>2017-01-13 10:56:31 +0000
commitf23bc28d653441737047c01a50087668f8bb3155 (patch)
treeeeb06fe105e607fc67caf4135a7fd4f8c29a1ca4 /src/main/java/com/google
parent013da20765830f0c5a1ccb90a521c90087da680e (diff)
Improve error when java_toolchain.header_compiler is unset
-- PiperOrigin-RevId: 144339611 MOS_MIGRATED_REVID=144339611
Diffstat (limited to 'src/main/java/com/google')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationHelper.java9
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchain.java26
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainProvider.java6
3 files changed, 26 insertions, 15 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationHelper.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationHelper.java
index 342b9bac68..76b277c42a 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationHelper.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationHelper.java
@@ -301,9 +301,12 @@ public final class JavaCompilationHelper {
return false;
}
if (javaToolchain.getHeaderCompiler() == null) {
- getRuleContext().ruleError(
- "header compilation was requested but it is not support by the current Java toolchain;"
- + " see the java_toolchain.header_compiler attribute");
+ getRuleContext()
+ .ruleError(
+ String.format(
+ "header compilation was requested but it is not supported by the current Java"
+ + " toolchain '%s'; see the java_toolchain.header_compiler attribute",
+ javaToolchain.getToolchainLabel()));
return false;
}
return true;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchain.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchain.java
index ebc87e4bd7..4fc57a648c 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchain.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchain.java
@@ -72,18 +72,20 @@ public final class JavaToolchain implements RuleConfiguredTargetFactory {
jvmOpts,
javacSupportsWorkers ? SupportsWorkers.YES : SupportsWorkers.NO);
final JavaConfiguration configuration = ruleContext.getFragment(JavaConfiguration.class);
- JavaToolchainProvider provider = JavaToolchainProvider.create(
- toolchainData,
- bootclasspath,
- extclasspath,
- configuration.getDefaultJavacFlags(),
- javac,
- javabuilder,
- headerCompiler,
- singleJar,
- genClass,
- ijar,
- compatibleJavacOptions);
+ JavaToolchainProvider provider =
+ JavaToolchainProvider.create(
+ ruleContext.getLabel(),
+ toolchainData,
+ bootclasspath,
+ extclasspath,
+ configuration.getDefaultJavacFlags(),
+ javac,
+ javabuilder,
+ headerCompiler,
+ singleJar,
+ genClass,
+ ijar,
+ compatibleJavacOptions);
RuleConfiguredTargetBuilder builder = new RuleConfiguredTargetBuilder(ruleContext)
.addSkylarkTransitiveInfo(JavaToolchainSkylarkApiProvider.NAME,
new JavaToolchainSkylarkApiProvider())
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainProvider.java
index 600a8edd61..eae78ed877 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainProvider.java
@@ -21,6 +21,7 @@ import com.google.devtools.build.lib.analysis.FilesToRunProvider;
import com.google.devtools.build.lib.analysis.RuleConfiguredTarget.Mode;
import com.google.devtools.build.lib.analysis.RuleContext;
import com.google.devtools.build.lib.analysis.TransitiveInfoProvider;
+import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import java.util.List;
@@ -39,6 +40,7 @@ public abstract class JavaToolchainProvider implements TransitiveInfoProvider {
}
public static JavaToolchainProvider create(
+ Label label,
JavaToolchainData data,
NestedSet<Artifact> bootclasspath,
NestedSet<Artifact> extclasspath,
@@ -51,6 +53,7 @@ public abstract class JavaToolchainProvider implements TransitiveInfoProvider {
FilesToRunProvider ijar,
ImmutableListMultimap<String, String> compatibleJavacOptions) {
return new AutoValue_JavaToolchainProvider(
+ label,
data.getSourceVersion(),
data.getTargetVersion(),
bootclasspath,
@@ -73,6 +76,9 @@ public abstract class JavaToolchainProvider implements TransitiveInfoProvider {
data.getJavacSupportsWorkers());
}
+ /** Returns the label for this {@code java_toolchain}. */
+ public abstract Label getToolchainLabel();
+
/** @return the input Java language level */
public abstract String getSourceVersion();