Зачем Tup нужен один Tupfile на каталог?

Я много читал о системе сборки Tup.

Говорят, что во многих местах tup "не поддерживает рекурсивные правила" и что вам нужно иметь один Tupfile на каталог. Пока что я не видел официального заявления или объяснения.

Правильно ли указано выше?

Если да, то почему и для какой задачи это проблематично? Пример был бы хорош.

3 ответа

Решение

Стоит отметить, что в настоящее время 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.

В некоторых ответах уже упоминалось, что ограничение действительно составляет один Tupfile на каталог, в который вы хотите выводить файлы, вместо одного Tupfile на каталог. В недавнем коммите это ограничение было ослаблено, и tup позволяет размещать выходные файлы также в подкаталогах Tupfile.

Кроме того, с вариантами можно генерировать выходные файлы в любом месте дерева сборки.

Официальное заявление можно найти в руководстве по tup: http://gittup.org/tup/manual.html

Вы должны создать файл с именем "Tupfile" в любом месте иерархии Tup, в котором вы хотите создать выходной файл на основе входных файлов. Входные файлы могут находиться где угодно в иерархии Tup, но выходные файлы должны быть записаны в том же каталоге, что и Tupfile.

(Цитата - 1-й абзац из раздела TUPFILES в руководстве)

AFAIK, это ограничение, которое связано с тем, как Tup хранит зависимости в .tup subdir, но я не знаю деталей.

Другие вопросы по тегам