为什么tup每个目录需要一个Tupfile?

时间:2013-01-13 07:30:40

标签: build-system tup

我已经阅读了很多关于tup build system的内容。

在许多地方,据说tup“不支持递归规则”,并且你需要每个目录有一个Tupfile。但我还没有看到官方声明或解释。

上述声明是否正确?

如果是,为什么,以及哪种任务有问题?一个例子就是很好。

3 个答案:

答案 0 :(得分:5)

值得注意的是,目前Tupfile可以在不同的目录中创建文件。您总是可以从不同的目录中读取文件,因此目前您可以为整个项目提供一个Tupfile。

这里有更多信息:https://groups.google.com/d/msg/tup-users/h7B1YzdgCag/qsOpBs4DIQ8J(有点过时)+ https://groups.google.com/d/msg/tup-users/-w932WkPBkw/7ckmHJ9WUCEJ(使用该组作为输入的新语法)

如果您使用新的LUA解析器,您还可以使用“默认”Tupfile - 请参阅此处http://gittup.org/tup/lua_parser.html并查看有关Tupdefault.lua的信息

答案 1 :(得分:4)

有些答案已经提到,限制确实是每个目录中一个Tupfile,你需要输出文件,而不是每个目录一个Tupfile。在最近的提交中,此限制为relaxed,并且tup允许您将输出文件也放在Tupfile的子目录中。

此外,使用variants,可以在构建树中的任何位置生成输出文件。

答案 2 :(得分:1)

官方声明可以在tup手册中找到:http://gittup.org/tup/manual.html

  

您必须在tup层次结构中的任何位置创建名为“Tupfile”的文件   您要根据输入文件创建输出文件。该   输入文件可以是tup层次结构中的任何其他位置,但输出   文件必须与Tupfile写在同一目录中。

(报价是手册中TUPFILES部分的第1段)

AFAIK,这是一个限制,它与tup如何在.tup子目录中存储依赖关系有关,但我不知道细节。