我有一个项目,我正在使用Bazel构建多个库和可执行文件。我需要构建一个共享库,然后在构建可执行文件之前将其复制到另一个文件夹。
我可以构建库,但我无法弄清楚如何在构建后复制它。到目前为止,最好的猜测是genrule
和cp
,但我不确定如何实现它并确保它在库构建后运行。
有办法做到这一点吗?
至于我需要这样做的原因: 我正在构建一个Unity项目,该项目需要构建本机代码插件并将其放置在Unity项目文件夹中的特定位置。
答案 0 :(得分:0)
您可以将规则包装在宏中,如下所示:
def myshared_library(name, **kwargs):
unity_rule(
name = "%s.lib" % name,
**kwargs
)
native.genrule(
name = name,
srcs = ["%s.lib" % name],
outs = ["dummy.output"],
cmd = "cp $(location {}.lib) $(location deployloc)".format(name),
)
然后将unity_rule
替换为myshared_library
。如果你选择更好的名字,可以获得奖励。
不是最优雅的方式,但应该有效