是否有一个变量,我可以在cmake中使用,使其行为就像它通过了-q选项?这将是很好,因为我有一个非常模块化的构建,与cmakes输出混乱。我在一个C++项目中使用它。告诉cmake安静
11
A
回答
8
没有我知道的变量。但是,您可以在下面的技巧添加到您的顶级的CMakeLists.txt(在project
调用之前)开始有所控制输出:
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的内置message
命令,并抑制所有STATUS
和无类型的消息,让更重要的类型正确输出。
例如,一个WARNING
消息将改变从
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)
注意,在那里生成的警告消息在调用栈中列出,而不是在实际的行输出消息的第一行。
最后,这对于指示配置尝试成功或失败的汇总输出没有影响。
3
从cmake 3.1开始,设置CMAKE_INSTALL_MESSAGE
也非常有用。例如,set(CMAKE_INSTALL_MESSAGE LAZY)
将跳过-- Up-to-date:
消息。
相关问题
- 1. cmake的投诉安装
- 2. 如何告诉CMake链接源目录中的静态库?
- 3. 如何告诉CMake安装目录取决于伪目标?
- 4. 有没有办法告诉CMake生成几个安装规则?
- 5. 我如何告诉cmake我希望我的项目静态链接库?
- 6. 直接告诉gcc静态链接库
- 7. 告诉Rails缓存静态文件组
- 8. 如何告诉cmake在通过apt-get安装后找到提升?
- 9. 如何告诉CMake的使用相对路径
- 10. 如何告诉cmake在哪里输出其构建数据?
- 11. 如何告诉cmake执行这两个步骤来使用winpcap?
- 12. Cmake:告诉find_package寻找32位库(而不是64位lib)
- 13. cmake:如何告诉库哪里可以找到依赖关系
- 14. 如何告诉cmake/cpack(NSIS)部署所需的库?
- 15. 如何告诉CMake使用Windows路径,而不是Cygwin的?
- 16. 如何告诉CMake在哪里可以在Windows上找到pthread.h
- 17. 如何告诉cmake不要创建控制台窗口?
- 18. 告诉IKImageBrowserView不要安排预加载
- 19. 告诉文件
- 20. 告诉gerrit dependendies
- 21. addChild告诉root.gotoAndStop();
- 22. 请告诉我
- 23. 告诉库
- 24. 在Centos中安装QT - CMake警告如何安装OpenBR
- 25. CMake安装
- 26. 告诉scipy.optimize.minimize失败
- 27. django告诉朋友
- 28. C#告诉静态GIF除了动画之外
- 29. 告诉autoconf(仅)一个库必须静态链接
- 30. 告诉TypeScript该类有静态和实例方法
酷!所以你可以做任何你想要的消息类型然后呢? – alexmherrmann
有没有办法停止调用堆栈的东西?感谢你的回答! – alexmherrmann
@alexhairyman并非如此,但您需要它来追踪错误/警告的实际来源。如果你不想看到甚至是错误/警告,你总是可以去掉'function'内的所有东西,这样'message'就成为一个空操作。或者将错误类型留在'if'中,并忽略警告。 – Fraser