我要定义解压缩给定zip文件的规则。但是,我不知道zip的内容,因此我不能在genrule中指定outs
。这似乎是一个常见的问题,谷歌搜索引导我遇到类似情况的人,但我还没有看到如何解决这个问题的具体例子。
我想要类似的东西:
genrule(
name="unzip",
src="file.zip",
outs=glob(["**"]), # except you're not allowed to use glob here
cmd = "unzip $(location file)",
)
答案 0 :(得分:1)
您可以使用Workspace Rule为压缩文件创建一个BUILD
文件。
WORKSPACE
文件中包含以下内容:
new_http_archive(
name = "my_zip",
url = "http://example.com/my_zip.zip",
build_file_content = """
filegroup(
name = "srcs",
srcs = glob(["*"]),
visibility = ["//visibility:public"]
)
"""
)
然后,您可以使用BUILD
@my_zip//:srcs
文件中将其引用为输入