从包含的CMakeList.txt中删除邮件

时间:2016-08-16 19:30:05

标签: cmake

我使用简单的add_subdirectory将项目包含在我的项目中。

然而,该项目非常冗长,并且用许多消息填充我的构建。 不修改外部项目......是否可以删除所有(或部分)恼人的导入消息?

2 个答案:

答案 0 :(得分:5)

如果外部项目本身不支持它(例如here),您仍然可以选择覆盖message()函数并声明自己的算法/检查何时打印消息。

这是一个简单检查名为MESSAGE_QUIET的变量的版本:

<强>的CMakeLists.txt

cmake_minimum_required(VERSION 2.8)
project(MessageQuiet)

function(message)
    if (NOT MESSAGE_QUIET)
        _message(${ARGN})
    endif()
endfunction()

set(MESSAGE_QUIET ON)
add_subdirectory(ExternalProject)
unset(MESSAGE_QUIET)

message(STATUS "Hello from my project")

<强> ExternalProject \的CMakeLists.txt

message("Hello from external project")

答案 1 :(得分:1)

通过包含子目录,您无法抑制输出。

如果是查找脚本,可以使用QUIET进行调用。如果您可以使用cmake -P scriptToExecute调用脚本而不是包含子目录,则可以重定向输出。