相关疑难解决方法(0)

Bazel&自动生成cpp/hpp文件

我开始使用Bazel作为我的C++项目构建系统.

但是我遇到了以下问题:

我正处于自动生成file.hpp file.cpp(文字编程)的场景中.

要重现我的问题,可以简单地使用这个最小的生成器:

-- file.sh --
#!/bin/sh
echo "int foo();" >> file.hpp
echo "#include \"myLib/file.hpp\"\n\nint foo() { return 2017; }" >> file.cpp
Run Code Online (Sandbox Code Playgroud)

我的项目回购是:( WORKSPACE是一个空文件)

??? myLib
?   ??? BUILD
?   ??? file.sh
??? WORKSPACE
Run Code Online (Sandbox Code Playgroud)

BUILD文件是

genrule(
  name = "tangle_file",
  srcs = ["file.sh"],
  outs = ["file.cpp","file.hpp"],
  cmd =  "./$(location file.sh);cp file.cpp $(@D);cp file.hpp $(@D);"
)

cc_library(
    name = "file",
    srcs = ["file.cpp"],
    hdrs = ["file.hpp"],
#    deps = [":tangle_file"],
    visibility = ["//bin:__pkg__"],
)
Run Code Online (Sandbox Code Playgroud)

我有两个问题:

问题(A),处理genrule()部分:

我必须使用的事实

cmd =  "./$(location …
Run Code Online (Sandbox Code Playgroud)

c++ bazel

5
推荐指数
1
解决办法
1318
查看次数

标签 统计

bazel ×1

c++ ×1