Подстановочный знак для подкаталогов в 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 Майком Шалом здесь: