如果您想使用declare_directory而非filegroup声明一个目录,请按照以下步骤进行操作:
1.在BUILD文件中声明一个名为 generated_files 的空文件组,如下所示:
genrule(
name = "generate_files",
outs = ["generated_files"],
cmd = "echo 'hello' > $@",
)
2.使用 declare_directory 声明生成的文件所在的目录。
declare_directory(
name = "generated_files_directory",
directory = "",
deps = [":generate_files"],
)
directory参数将生成的文件放置在指定的目录中。deps参数是规则 generate_files 的依赖项,确保在声明目录之前先生成文件。
3.在其他规则中使用它:
cc_binary(
name = "my_binary",
srcs = ["main.cc"],
deps = [":generated_files_directory"],
)
这个例子通过使用 declare_directory 声明一个生成的文件目录,并将生成的文件作为依赖项添加到其他规则中,展示了如何将 filegroup 转换为 declare_directory。
注意:在使用 declare_directory 时,必须声明一个依赖项来生成目录中的文件。没有这个依赖项,你声明的目录将是空的。