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

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

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

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

: foreach src /реж/*.cpp |>! cxx_c_debug |> build / d / o /реж/%B.o

: foreach src /dir2 / подкаталог/*.cpp |>! cxx_c_debug |> build / d / o /dir2 / подкаталог/%B.o

Как вы можете себе представить, есть много режс и подкаталогs. Я хотел бы использовать какой-то подстановочный знак для смелыйструктура каталогов вместо того, чтобы перечислять их по одному. Есть ли способ сделать это без создания нового 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#issuecomment-19423194

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]