Add native call to Starlark proto_common.declare_generated_files to ProtoCommon.
PiperOrigin-RevId: 441097695
diff --git a/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoCommon.java b/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoCommon.java
index f920330..f1cffdb 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoCommon.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoCommon.java
@@ -153,6 +153,29 @@
}
}
+ public static ImmutableList<Artifact> declareGeneratedFiles(
+ RuleContext ruleContext, ConfiguredTarget protoTarget, String extension)
+ throws RuleErrorException, InterruptedException {
+ StarlarkFunction declareGeneratedFiles =
+ (StarlarkFunction)
+ ruleContext.getStarlarkDefinedBuiltin("proto_common_declare_generated_files");
+ ruleContext.initStarlarkRuleContext();
+ Sequence<?> outputs =
+ (Sequence<?>)
+ ruleContext.callStarlarkOrThrowRuleError(
+ declareGeneratedFiles,
+ ImmutableList.of(
+ /* actions */ ruleContext.getStarlarkRuleContext().actions(),
+ /* proto_library_target */ protoTarget,
+ /* extension */ extension),
+ ImmutableMap.of());
+ try {
+ return Sequence.cast(outputs, Artifact.class, "declare_generated_files").getImmutableList();
+ } catch (EvalException e) {
+ throw new RuleErrorException(e.getMessageWithStack());
+ }
+ }
+
public static void compile(
RuleContext ruleContext,
ConfiguredTarget protoTarget,
diff --git a/src/main/starlark/builtins_bzl/common/exports.bzl b/src/main/starlark/builtins_bzl/common/exports.bzl
index 11d0a0a..1b1a52e 100755
--- a/src/main/starlark/builtins_bzl/common/exports.bzl
+++ b/src/main/starlark/builtins_bzl/common/exports.bzl
@@ -60,6 +60,7 @@
exported_to_java = {
"register_compile_and_archive_actions_for_j2objc": compilation_support.register_compile_and_archive_actions_for_j2objc,
"proto_common_compile": proto_common_do_not_use.compile,
+ "proto_common_declare_generated_files": proto_common_do_not_use.declare_generated_files,
"proto_common_experimental_should_generate_code": proto_common_do_not_use.experimental_should_generate_code,
"proto_common_experimental_filter_sources": proto_common_do_not_use.experimental_filter_sources,
"link_multi_arch_static_library": linking_support.link_multi_arch_static_library,