如何使 genrule 的输出有选择地可见?
How can I make the outputs of a genrule selectively visible?
假设我有一个生成多个输出的 genrule:
genrule(
name = "gen",
outs = ["a", "b"],
...,
)
我怎样才能给 a
public 可见性而不是 b
?
我尝试过的一些方法不起作用:
visibility = ["//visibility:public"]
在 genrule
上使 a
和 b
public.
exports_files(["a"])
产生“生成的标签...与现有生成的文件冲突”的错误。
不直接; genrule
的可见性是其输出的可见性。但是,您可以将 genrule
目标设为私有并为 a
添加一个 public alias
或 filegroup
:
genrule(
name = "g",
outs = ["a", "b"],
)
alias(
name = "a-public",
actual = ":a",
visibility = ["//visibility:public"],
)
filegroup(
name = "multiple-public",
srcs = [":a", ":b"],
visibility = ["//visibility:public"],
)
假设我有一个生成多个输出的 genrule:
genrule(
name = "gen",
outs = ["a", "b"],
...,
)
我怎样才能给 a
public 可见性而不是 b
?
我尝试过的一些方法不起作用:
visibility = ["//visibility:public"]
在genrule
上使a
和b
public.exports_files(["a"])
产生“生成的标签...与现有生成的文件冲突”的错误。
不直接; genrule
的可见性是其输出的可见性。但是,您可以将 genrule
目标设为私有并为 a
添加一个 public alias
或 filegroup
:
genrule(
name = "g",
outs = ["a", "b"],
)
alias(
name = "a-public",
actual = ":a",
visibility = ["//visibility:public"],
)
filegroup(
name = "multiple-public",
srcs = [":a", ":b"],
visibility = ["//visibility:public"],
)