如果您想使用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
时,必须声明一个依赖项来生成目录中的文件。没有这个依赖项,你声明的目录将是空的。