Как добавить команду к командам компилятора / компоновщика / архива - PullRequest
0 голосов
/ 11 сентября 2018

Я хочу передать стандартный вывод из команд моего компилятора в утилиту, которая окрашивает предупреждения, ошибки и т. Д. В командной консоли

SET(CMAKE_C_COMPILE_OBJECT "<CMAKE_C_COMPILER> -c -MD -MF=<OBJECT>.d <DEFINES> <INCLUDES> <FLAGS> <SOURCE> -o <OBJECT> | color.exe")

Однако ниндзя, похоже, не распознает нотацию (|). Возможно, я мог бы добавить cmd /c к команде вызова компилятора, используя RULE_LAUNCH_COMPILE, но я бы предпочел независимое от платформы решение.

Существует ли правило для вывода результатов команды? (например, RULE_LAUNCH_COMPILE, но что добавляет к командам компилятора, а не добавляет?)


Первоначально я думал о том, чтобы просто передать вывод сценария .bat, который запускает CMake, но путь утилиты цвета определен в файле цепочки инструментов CMake, так как он включен как часть пакета одного поставщика компилятора.

[обновление]:
Следующие команды CMake решают мою начальную проблему, позволяя мне передавать выходные данные команды компиляции в другую программу:

SET_PROPERTY(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "cmd /c") 
SET(CMAKE_C_COMPILE_OBJECT "${CMAKE_C_COMPILE_OBJECT} 2>&1 | ${GCOLOR} -f")
...