|
|
|
@ -123,6 +123,7 @@ def _compile( |
|
|
|
|
additional_args = None, |
|
|
|
|
additional_tools = [], |
|
|
|
|
additional_inputs = depset(), |
|
|
|
|
additional_proto_lang_toolchain_info = None, |
|
|
|
|
resource_set = None, |
|
|
|
|
experimental_exec_group = None, |
|
|
|
|
experimental_progress_message = None, |
|
|
|
@ -146,6 +147,9 @@ def _compile( |
|
|
|
|
of the command line. |
|
|
|
|
additional_tools: (list[File]) Additional tools to add to the action. |
|
|
|
|
additional_inputs: (Depset[File]) Additional input files to add to the action. |
|
|
|
|
additional_proto_lang_toolchain_info: (list[ProtoLangToolchainInfo]) Additional proto lang |
|
|
|
|
toolchain info for invoking multiple plugins in a single protoc invocation. For example, |
|
|
|
|
this is needed for plugin insertion points. |
|
|
|
|
resource_set: (func) A callback function that is passed to the created action. |
|
|
|
|
See `ctx.actions.run`, `resource_set` parameter for full definition of |
|
|
|
|
the callback. |
|
|
|
@ -187,6 +191,10 @@ def _compile( |
|
|
|
|
tools.append(proto_lang_toolchain_info.plugin) |
|
|
|
|
args.add(proto_lang_toolchain_info.plugin.executable, format = proto_lang_toolchain_info.plugin_format_flag) |
|
|
|
|
|
|
|
|
|
if additional_proto_lang_toolchain_info != None: |
|
|
|
|
tools.append(additional_proto_lang_toolchain_info.plugin) |
|
|
|
|
args.add(additional_proto_lang_toolchain_info.plugin.executable, format = additional_proto_lang_toolchain_info.plugin_format_flag) |
|
|
|
|
|
|
|
|
|
# Protoc searches for .protos -I paths in order they are given and then |
|
|
|
|
# uses the path within the directory as the package. |
|
|
|
|
# This requires ordering the paths from most specific (longest) to least |
|
|
|
@ -212,7 +220,7 @@ def _compile( |
|
|
|
|
mnemonic = proto_lang_toolchain_info.mnemonic, |
|
|
|
|
progress_message = experimental_progress_message if experimental_progress_message else proto_lang_toolchain_info.progress_message, |
|
|
|
|
executable = proto_lang_toolchain_info.proto_compiler, |
|
|
|
|
arguments = [additional_args, args] if additional_args else [args], |
|
|
|
|
arguments = [args, additional_args] if additional_args else [args], |
|
|
|
|
inputs = depset(transitive = [proto_info.transitive_sources, additional_inputs]), |
|
|
|
|
outputs = generated_files, |
|
|
|
|
tools = tools, |
|
|
|
|