Мне нужно отредактировать файл .jam, используемый boost-build для определенного типа проектов. В официальном руководстве по языку BJAM говорится:
- Одним из наборов инструментов, который заботится о файлах DEF, является msvc. К нему следует добавить следующую строку. флаги msvc.link DEF_FILE ;
- Поскольку переменная DEF_FILE не используется действием msvc.link, нам нужно изменить ее следующим образом: связать часть DEF_FILE. Он говорит bjam преобразовать внутреннее имя цели в DEF_FILE в соответствующее имя файла в ссылке.
Так что, очевидно, просто напечатать DEF_FILE с ECHO не получится. Как его можно расширить до строковой переменной или чего-то, что действительно можно проверить?
Что мне нужно сделать, так это напечатать сообщение об ошибке и прервать сборку, если флаг не установлен. Я пытался:
if ! $(DEF_FILE)
{
errors.user-error "file not found" ;
EXIT ;
}
но это "если" всегда верно
Я также пытался поместить «if ! $_DEF_FILE {...}» внутри содержащихся «действий», но, по-видимому, это игнорируется.