CMAKEにエラーを生成させる


136

特定の条件でCMAKEにエラーを生成させるにはどうすればよいですか。つまり、次のようなものが必要です。

if( SOME_COND )
  error( "You can't do that" )
endif()

回答:


185

message()この方法は、モードのためのオプションの引数を持っている可能STATUSWARNINGAUTHOR_WARNINGSEND_ERROR、およびFATAL_ERRORSTATUSメッセージはstdoutに送られます。メッセージを含まない他のすべてのモードは、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()

1
一体何AUTHOR_WARNINGですか?
Alexis Wilke、2014

1
@AlexisWilke:CMakeドキュメントの状態。CMake AUTHOR_WARNING = CMake Warning (dev), continue processingスクリプトのデバッグに使用することを示唆しています。単なるワイルドな推測です。
pauluss86 2014

5
@AlexisWilkeこれAUTHOR_WARNINGは、エンドユーザーではなく開発者にとって有用ではない警告を示します。いくつかのハック/タスクを修正するように通知するか、修正する必要があるがユーザーのCMakeの実行に影響しない警告を示すことができます。そのため、ユーザーはこれらの警告をで抑制できます--Wno-dev
usr1234567 2014年

2
CMakeのは、今持っている多くの同行よりメッセージモードをmessage()含む、VERBOSEDEBUG、とTRACE
squareskittles
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.