假设我有一个这样的cc_binary()规则:
cc_binary(
name = "App",
srcs = [
"app.cpp",
],
)这将在bazel-bin的某个地方生成App.exe。我需要编写一个可以读取App.exe并生成它的另一个版本的通用规则。我怎么才能做到这一点呢?
编辑:这是我当前尝试的通用规则,但是它强制使用不同的配置重新编译:hello_main,并且我最终得到类似"error C2955:'std::pair':use of class template requires template argument list“这样的错误。
genrule(
name = "tbds",
srcs = [
":data",
],
outs = ["tbds.exe"],
exec_tools = ["@libpackfiles//FilePacker"],
tools = [":hello_main"],
cmd = "cp $(location :hello_main) $(OUTS) && $(location @libpackfiles//FilePacker) $(OUTS) -files $(SRCS) -append",
executable = true,
)发布于 2021-05-10 17:44:07
cc_binary(
name = "hello_main",
srcs = ["hello_main.cc"],
deps = [
":hello",
],
)
genrule(
name = "foo",
outs = ["out.txt"],
cmd = "du -sh $(location :hello_main)` > $@",
tools = [":hello_main"],
visibility = ["//visibility:public"],
)将使用du -sh命令的输出创建一个out.txt文件。您可以向tools属性添加另一个工具,以便在二进制文件上运行一些转换脚本
https://stackoverflow.com/questions/67461291
复制相似问题