b2 release link=static toolset=clang
работает, но он не показывает хорошие цвета, которые я нахожу полезными в выводе clang.
Отказ от ответственности: это не решение вашей проблемы, но это занимает слишком много места, чтобы поместить это в комментарий.
Вот краткий Холмсианский процесс устранения. Во-первых, согласно Clang документация, Цвет активируется только при обнаружении терминала с поддержкой цвета. А во-вторых, согласно Boost.Jam документация, все переменные окружения автоматически импортируются во встроенную .ENVIRON
модуль. Наконец, у вас действительно есть терминал с поддержкой цвета. Все же это не работает. Даже форсирование проблемы с явным аргументом командной строки Clang
./b2 install --toolset=clang --cxxflag=-fcolor-diagnostics
не отображается цветная диагностика. Мой единственный вывод, что как-то b2
не запускает сборку внутри терминала с цветовой кодировкой. После дальнейшего копания на основе ваших комментариев, я нашел связанная проблема в другой системе сборки:
Причина в том, что ниндзя устанавливает подпроцесс stdout / stderr в
pipe (Subprocess :: Start (), subprocess.cc) и clang проверяет,
StandardErrHasColors () (tools / clang / lib / Driver / Tools.cpp), который
false если! isatty (2) (lib / Support / Unix / Process.inc).Я немного осмотрелся, и способ сделать это, кажется, позвонить
fork_pty () для запуска дочернего элемента в псевдо-терминале. Я не знаю, если это
повлияет на время создания подпроцесса, а при открытии ~ 4000 псевдо
ttys (сборка chrome в -j10000) считается хорошей формой.(Можно заставить clang всегда испускать коды, экранированные цветом, используя
«-Xclang -fcolor-диагностика», но это довольно странно. сделать не
кажется, переопределить stderr в Unix, насколько я могу судить,
child_execute_job () в job.c)
Заключение: возможно, вам придется копаться в b2
внутренние, чтобы увидеть, есть ли какое-то перенаправление вывода, которое предотвращает цветовое кодирование. В качестве альтернативы, вы можете спросить на Список рассылки Boost.Build. Надеюсь, это поможет вам немного дальше.
Обновить: Eсть давний билет на сайте Boost SVN, который занимается этим.
Кажется, что основная проблема была каким-то образом решена, но есть еще несколько объяснений, которые необходимо сделать в отношении этого.
Если вы хотите цвета, вы можете использовать это в user-config.jam
:
using clang : : : <compileflags>-fcolor-diagnostics ;
Тем не менее, мое личное предпочтение состоит в том, чтобы справиться с этим в моем Jamroot, используя требования проекта, чтобы другим не приходилось с этим сталкиваться:
project my_project : requirements
<toolset>clang:<cflags>-fcolor-diagnostics
<toolset>clang:<cxxflags>-fcolor-diagnostics
;