假设我有一个生成 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
规则?