【问题标题】:Why does tup need one Tupfile per directory?为什么 tup 每个目录需要一个 Tupfile?
【发布时间】:2012-12-27 09:57:57
【问题描述】:

我已经阅读了很多关于 tup build system 的信息。

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

上述说法正确吗?

如果是,为什么,这对哪种任务有问题?举个例子就好了。

【问题讨论】:

  • PS:如果有人可以创建tup 标签,这将很有用。

标签: build-system tup


【解决方案1】:

值得注意的是,目前 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 的信息

【讨论】:

  • 我不确定我是否理解正确:这是当前支持的功能,还是当前 git HEAD 中的实验性功能?
  • 这两个功能都在稳定和标记版本中,我现在不确定它是 0.6.5 还是 0.7 - 您可以在邮件列表中找到有关发布的主题并检查添加了哪些功能什么时候。
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

    官方声明见tup手册:http://gittup.org/tup/manual.html

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

    (引用是手册中 TUPFILES 部分的第一段)

    AFAIK,这是一个限制,它与 tup 如何在 .tup 子目录中存储依赖项的方式有关,但我不知道详细信息。

    【讨论】:

    • "但输出文件必须与 Tupfile 写入同一目录" - 这是否意味着输出文件也可以写入目录 在具有 Tupfile 的目录下?例如。 /project/Tupfile 并输出到 /project/build/[...so]/project/build/bin/... 没有每个都有自己的 Tupfile?
    • 您需要在要写入输出文件的每个项目子目录中都有一个 tupfile。实际上,如果规则的输出文件包含路径分隔符 (/),tup 会失败。
    猜你喜欢
    • 2017-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 2012-11-08
    • 2015-07-05
    相关资源
    最近更新 更多