Expose javac jar in java_toolchain's skylark provider
PiperOrigin-RevId: 156589908
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainSkylarkApiProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainSkylarkApiProvider.java
index 9d4435b..36c6055 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainSkylarkApiProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainSkylarkApiProvider.java
@@ -14,6 +14,7 @@
package com.google.devtools.build.lib.rules.java;
+import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.rules.SkylarkApiProvider;
import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
@@ -54,4 +55,16 @@
return javaToolchainProvider.getTargetVersion();
}
+ /** @return The {@link Artifact} of the javac jar */
+ @SkylarkCallable(
+ name = "javac_jar",
+ doc = "The javac jar.",
+ structField = true
+ )
+ public Artifact getJavacJar() {
+ JavaToolchainProvider javaToolchainProvider =
+ getInfo().getProvider(JavaToolchainProvider.class);
+ return javaToolchainProvider.getJavac();
+ }
+
}
diff --git a/src/main/protobuf/intellij_ide_info.proto b/src/main/protobuf/intellij_ide_info.proto
index 13890c9..d5a51bd 100644
--- a/src/main/protobuf/intellij_ide_info.proto
+++ b/src/main/protobuf/intellij_ide_info.proto
@@ -120,6 +120,7 @@
message JavaToolchainIdeInfo {
string source_version = 1;
string target_version = 2;
+ ArtifactLocation javac_jar = 3;
}
message TargetKey {
diff --git a/tools/ide/intellij_info_impl.bzl b/tools/ide/intellij_info_impl.bzl
index 36a4065..024120a 100644
--- a/tools/ide/intellij_info_impl.bzl
+++ b/tools/ide/intellij_info_impl.bzl
@@ -544,9 +544,11 @@
if not hasattr(target, "java_toolchain"):
return None
toolchain_info = target.java_toolchain
+ javac_jar_file = toolchain_info.javac_jar if hasattr(toolchain_info, "javac_jar") else None
return struct_omit_none(
source_version = toolchain_info.source_version,
target_version = toolchain_info.target_version,
+ javac_jar = artifact_location(javac_jar_file),
)
##### Main aspect function