Вот что я пытаюсь сделать:
set(BE_QUIET $<$<NOT:$<BOOL:CMAKE_VERBOSE_MAKEFILE>>:&>/dev/null>)
с целью использования в add_cusom_command
, например:
add_custom_command(
...
COMMAND ... ${BE_QUIET}
)
Идея в том, чтобы подавить вывод пользовательских команд, если пользователь не установит CMAKE_VERBOSE_MAKEFILE (или не запустит make VERBOSE=1
).
Проблема в том, что cmake рассматривает этот символ закрывающей угловой скобки как конец выражения. Есть ли способ избежать этого?
Редактировать: увы, хотя я знаю о $<ANGLE-R>
сейчас, эта идея не работает - вам нужно новое выражение (что-то вроде $<CONFIG_FLAGS:VERBOSE>
)
Редактировать 2: нашел решение (ввести немного make
магии):
set(BE_QUIET "$(if" "$(VERBOSE),,&>/dev/null)")