从包含的CMakeList.txt中删除消息

从包含的CMakeList.txt中删除消息,cmake,Cmake,我正在使用一个简单的add\u子目录将一个项目包含到我的项目中 然而,该项目非常冗长,并且用许多消息填充我的构建。 不修改外部项目。。。是否可以删除所有(或部分)这些恼人的导入邮件?通过包含子目录,您无法抑制输出 如果它是一个查找脚本,您可以使用QUIET调用它。如果可以使用cmake-P scriptToExecute调用脚本,而不是包含子目录,则可以重定向输出。通过包含子目录,无法抑制输出 如果它是一个查找脚本,您可以使用QUIET调用它。如果您可以使用cmake-P scriptToExe

我正在使用一个简单的
add\u子目录
将一个项目包含到我的项目中

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

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


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

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


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

如果外部项目本身不支持它(例如),您仍然可以选择覆盖

message()
函数并声明自己的算法/检查何时打印消息

下面是一个简单检查名为
MESSAGE\u 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")
message("Hello from external project")
ExternalProject\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")
message("Hello from external project")

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

下面是一个简单检查名为
MESSAGE\u 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")
message("Hello from external project")
ExternalProject\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")
message("Hello from external project")

什么是
(信息
)?@Dadam抱歉,忘了解释那部分。当您想以覆盖版本调用原始函数时,只需添加下划线作为前缀。
\u消息
是什么?@Dadam抱歉,忘了解释该部分。如果要在覆盖版本中调用原始函数,只需添加下划线
\uuu
作为前缀。