【发布时间】:2017-02-15 13:44:56
【问题描述】:
$ python gencpp.py
此命令在工作目录中生成一个 cpp 文件foo.cpp。
我想在构建之前在bazel 中运行此命令,以便能够在cc_binary 的srcs 属性中包含foo.cpp。
我尝试过的:
genrule(
name = 'foo',
outs = ['foo.cpp'],
cmd = 'python gencpp.py',
)
cc_library(
srcs = ['foo.cpp'], # tried also with :foo
...
)
声明的输出 'external/somelib/foo.cpp' 不是由 genrule 创建的。这可能是因为 genrule 实际上并没有创建这个输出,或者因为输出是一个目录并且 genrule 是远程运行的(请注意,只有声明的文件输出的内容是从远程运行的 genrules 复制的)。
我知道有一个解决方案需要对gencpp.py 稍作修改,但这不是我想要的。
【问题讨论】:
-
我遇到了类似的问题stackoverflow/bazel-automatically-generated-cpp-hpp-files。给出的答案可能会完成此处给出的答案。
标签: bazel