在cmake中是否有一个变量可以让它看起来像传递了-q选项一样?这将是很好的,因为我有一个非常模块化的构建,使CMAKES输出变得混乱。我在C++项目中使用它。

最佳答案

没有我知道的变量。但是,您可以在顶级cmakelists.txt的开头添加以下hack(在调用之前)以稍微控制输出:

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的内置project命令,并抑制所有message和非类型化消息,使更重要的类型能够正确输出。
例如,消息的输出将从
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)

请注意,生成警告消息的实际行列在调用堆栈中,而不是输出消息的第一行。
最后,这对指示配置尝试成功或失败的摘要输出没有影响。

关于告诉我安静点,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10509380/

10-11 01:09