【发布时间】:2021-01-11 18:36:07
【问题描述】:
假设我有一个生成 Java 和 Python 代码的脚本。它生成的文件取决于输入配置,它可能因配置而异。现在,在Java的情况下,我可以编写一个简单的genrule,指向调用脚本,然后调用jar命令来生成生成的Python文件的单个源包。
例如:
genrule(
name = "generated_java_srcjar",
srcs = glob([
":input-files"
]),
outs = [
"xsd.srcjar"
],
cmd = """
mkdir -p $(GENDIR)/generated-code
$(location path/to/custom/script) --output-directory $(GENDIR)/generated-code --input $(locations :input-files)
$(JAVABASE)/bin/jar cMf $@ -C $(GENDIR)/generated-code .
""",
)
java_library(
name = "generated_java_jar",
srcs = [
":generated_java_srcjar"
],
)
在 Java 示例中,为了声明 genrule 的输出,我能够生成单个输出(生成文件的源包),然后使用与 java_library 规则中的源相同的规则。
现在,我想在 Python 中实现类似的东西。如何在调用自定义脚本后打包生成的 Python 文件,以便将其作为源传递给 py_library 规则?
【问题讨论】:
标签: python bazel bazel-rules