forked from hswaw/hscloud
22 lines
737 B
Python
22 lines
737 B
Python
def _copy_go_binary_impl(ctx):
|
|
output = ctx.actions.declare_file(ctx.label.name)
|
|
for f in ctx.attr.src.files:
|
|
# go_binary rules have two outputs, a library and the binary itself.
|
|
# The following is a horrible hack to avoid copying the library.
|
|
if f.path.endswith(".a"):
|
|
continue
|
|
ctx.action(
|
|
inputs=[f],
|
|
outputs=[output],
|
|
mnemonic="CopyGoBinary",
|
|
command="mkdir -p %s && cp %s %s" % (output.dirname, f.path, output.path))
|
|
return [DefaultInfo(executable=output)]
|
|
|
|
copy_go_binary = rule(
|
|
implementation=_copy_go_binary_impl,
|
|
attrs={
|
|
"src": attr.label(mandatory=True, allow_files=True),
|
|
},
|
|
executable=True,
|
|
)
|