我有以下目录结构:
my_dir
|
--> src
| |
| --> foo.cc
| --> BUILD
|
--> WORKSPACE
|
--> bazel-out/ (symlink)
|
| ...
Run Code Online (Sandbox Code Playgroud)
src/BUILD 包含以下代码:
cc_binary(
name = "foo",
srcs = ["foo.cc"]
)
Run Code Online (Sandbox Code Playgroud)
该文件使用实用程序使用常规方式foo.cc创建一个命名文件。bar.txt<fstream>
但是,当我调用Bazel时,bazel run //src:foo将bar.txt创建并放置文件,bazel-out/darwin-fastbuild/bin/src/foo.runfiles/foo/bar.txt而不是将其放置在my_dir/src/bar.txt原始源所在的位置。
我尝试将一个outs字段添加到foo规则中,但是Bazel抱怨这outs不是的公认属性cc_binary。
我还考虑过创建filegroup规则,但是没有deps字段可以声明foo为这些文件的依赖项。
如何确定cc_binary放置规则所生成的文件my_dir/src/bar.txt而不是bazel-out/...?