|
@@ -91,8 +91,10 @@ def _proto_gen_impl(ctx):
|
|
|
),
|
|
|
)
|
|
|
|
|
|
- for src, out in zip(srcs, ctx.outputs.outs):
|
|
|
+ for src in srcs:
|
|
|
args = []
|
|
|
+ src_name = src.basename[:-len(".proto")]
|
|
|
+ outs = [out for out in ctx.outputs.outs if src_name in out.basename]
|
|
|
|
|
|
in_gen_dir = src.root.path == gen_dir.rstrip('/')
|
|
|
if in_gen_dir:
|
|
@@ -126,27 +128,28 @@ def _proto_gen_impl(ctx):
|
|
|
args += ["--%s_out=%s" % (lang, outdir)]
|
|
|
inputs += [plugin]
|
|
|
|
|
|
- if in_gen_dir:
|
|
|
- orig_command = " ".join(
|
|
|
- ["$(realpath %s)" % ctx.executable.protoc.path] + args +
|
|
|
- import_flags_real + ["-I.", src.basename])
|
|
|
- command = ";".join([
|
|
|
- 'CMD="%s"' % orig_command,
|
|
|
- "cd %s" % src.dirname,
|
|
|
- "${CMD}",
|
|
|
- "cd -",
|
|
|
- "mv %s/%s %s" % (gen_dir, out.basename, out.path)
|
|
|
- ])
|
|
|
- else:
|
|
|
- command = " ".join(
|
|
|
- [ctx.executable.protoc.path] + args + import_flags + [src.path])
|
|
|
- ctx.action(
|
|
|
- inputs=inputs + [ctx.executable.protoc],
|
|
|
- outputs=[out],
|
|
|
- command=command,
|
|
|
- mnemonic="ProtoCompile",
|
|
|
- use_default_shell_env=True,
|
|
|
- )
|
|
|
+ for out in outs:
|
|
|
+ if in_gen_dir:
|
|
|
+ orig_command = " ".join(
|
|
|
+ ["$(realpath %s)" % ctx.executable.protoc.path] + args +
|
|
|
+ import_flags_real + ["-I.", src.basename])
|
|
|
+ command = ";".join([
|
|
|
+ 'CMD="%s"' % orig_command,
|
|
|
+ "cd %s" % src.dirname,
|
|
|
+ "${CMD}",
|
|
|
+ "cd -",
|
|
|
+ "mv %s/%s %s" % (gen_dir, out.basename, out.path)
|
|
|
+ ])
|
|
|
+ else:
|
|
|
+ command = " ".join(
|
|
|
+ [ctx.executable.protoc.path] + args + import_flags + [src.path])
|
|
|
+ ctx.action(
|
|
|
+ inputs=inputs + [ctx.executable.protoc],
|
|
|
+ outputs=[out],
|
|
|
+ command=command,
|
|
|
+ mnemonic="ProtoCompile",
|
|
|
+ use_default_shell_env=True,
|
|
|
+ )
|
|
|
|
|
|
return struct(
|
|
|
proto=struct(
|