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

Ral*_*qui 1 cmake

我正在使用一个简单的将一个项目包含到我的项目中add_subdirectory

但是,该项目非常冗长,并且在我的构建中充满了很多信息。无需修改外部项目...是否可以删除所有(或部分)那些烦人的导入消息?

Flo*_*ian 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")
Run Code Online (Sandbox Code Playgroud)

ExternalProject \ CMakeLists.txt

message("Hello from external project")
Run Code Online (Sandbox Code Playgroud)

  • @Dadam对不起,忘了解释那部分。当您想以覆盖版本调用原始函数时,只需添加下划线“ _”作为前缀。 (3认同)