19

-q オプションが渡されたように動作させるために cmake で使用できる変数はありますか? 私はcmakesの出力が乱雑になる非常にモジュール化されたビルドを持っているので、それはいいでしょう。C++ プロジェクトで使用しています。

4

4 に答える 4

12

cmake 3.1 の時点で、設定CMAKE_INSTALL_MESSAGEも非常に便利です。たとえばset(CMAKE_INSTALL_MESSAGE LAZY)、メッセージをスキップし-- Up-to-date:ます。

于 2017-04-05T13:55:08.690 に答える
11

私が知っている変数はありません。ただし、トップレベルの CMakeLists.txt の先頭 (project呼び出しの前) に次のハックを追加して、出力を多少制御することができます。

function(message)
  list(GET ARGV 0 MessageType)
  if(MessageType STREQUAL FATAL_ERROR OR
     MessageType STREQUAL SEND_ERROR OR
     MessageType STREQUAL WARNING OR
     MessageType STREQUAL AUTHOR_WARNING)
    list(REMOVE_AT ARGV 0)
    _message(${MessageType} "${ARGV}")
  endif()
endfunction()

これにより、CMake の組み込みコマンドがオーバーライドされ、型指定されていないすべてのメッセージがmessage抑制され、より重要な型が正しく出力されます。STATUS

たとえば、WARNINGメッセージの出力は次のように変更されます。

CMake Warning at CMakeLists.txt:14 (message):
  This is a dummy warning message.

CMake Warning at CMakeLists.txt:8 (_message):
  This is a dummy warning message.
Call Stack (most recent call first):
  CMakeLists.txt:14 (message)

警告メッセージが生成された実際の行は、出力メッセージの最初の行ではなく、コール スタックにリストされていることに注意してください。

最後に、これは構成試行の成功または失敗を示す要約出力には影響しません。

于 2012-05-09T08:54:06.590 に答える