Подстановочный знак для подкаталогов в Tupfile

Я хотел бы знать, есть ли какой-нибудь подстановочный знак для структуры каталогов в Tupfile, что-то вроде %Bo, который принимает входное имя файла без расширения.

Мои правила Tupfile в настоящее время выглядят так:

: foreach src / *. cpp |>! cxx_c_debug |> build / d / o /%Bo

: foreach src /dir/*.cpp |>! cxx_c_debug |> build / d / o /dir/%Bo

: foreach src /dir2 / subdir/*.cpp |>! cxx_c_debug |> build / d / o /dir2 / subdir/%Bo

...

Как вы можете себе представить, существует много папок и папок. Я хотел бы использовать какой-то подстановочный знак для структуры каталогов, выделенных жирным шрифтом, вместо перечисления их по одному. Есть ли способ сделать это без создания нового Tupfile в каждом из этих каталогов?

Спасибо

1 ответ

Самый простой способ будет использовать Tupdefault файл.

Эта функция доступна в версии 0.7.4, но еще не документирована. Если вы поместите файл с именем Tupdefault в любом месте вашего исходного дерева, он будет действовать на Tupfile во всех подкаталогах, в том числе в том, где вы его разместили.

Чтобы ваш конкретный пример работал, Tupdefault файл может выглядеть так:

include_rules
: foreach *.cpp |> !cxx_c_debug |> %B.o

Вам, вероятно, также понадобится использовать функцию групп tup, чтобы собрать все объектные файлы в одну группу, помещенную в корень вашего проекта, и использовать эту группу, чтобы связать их вместе. Это еще одна особенность, которая в настоящее время документируется, но она объяснена автором Tup Майком Шалом здесь:

https://github.com/gittup/tup/issues/85

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