Как я могу заставить CMAKE генерировать ошибку при определенном условии. То есть я хочу что-то вроде этого:
if( SOME_COND )
error( "You can't do that" )
endif()
Как я могу заставить CMAKE генерировать ошибку при определенном условии. То есть я хочу что-то вроде этого:
if( SOME_COND )
error( "You can't do that" )
endif()
Ответы:
message()
Метод имеет дополнительный аргумент для режима, позволяя STATUS
, WARNING
, AUTHOR_WARNING
, SEND_ERROR
, и FATAL_ERROR
. STATUS
сообщения отправляются на стандартный вывод. Любой другой способ сообщения, включая ни одного, отправляется в stderr.
Вы хотите, SEND_ERROR
если хотите вывести ошибку, но продолжите обработку. Вы хотите, FATAL_ERROR
если вы хотите выйти из обработки CMake.
Что-то вроде:
if( SOME_COND )
message( SEND_ERROR "You can't do that" )
elseif( SOME_CRITICAL_COND )
message( FATAL_ERROR "You can not do this at all, CMake will exit." )
endif()
AUTHOR_WARNING = CMake Warning (dev), continue processing
, предполагающее, что оно должно использоваться для отладки сценариев CMake. Просто дикая догадка.
AUTHOR_WARNING
обозначает предупреждение, которое не полезно для конечного пользователя, но для разработчиков. Он может либо напомнить им исправить некоторые взломы / задачи, либо указать предупреждения, которые должны быть исправлены, но не влияют на запуск CMake для пользователя. Вот почему пользователь может подавить эти предупреждения с помощью --Wno-dev
.
message()
, в том числе VERBOSE
, DEBUG
и TRACE
.
AUTHOR_WARNING
?