从包含的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
作为前缀。