cmake语言中获取除去某文件的其他所有文件
场景
对整个项目进行了编译选项设置,把所有警告当做了错误。但是使用一些短小的开源库时,开发者写的并不是很严谨。所以希望这些库在编译的过程中不将警告当做错误提示,以免影响自己项目的编译。
实现方法
网上有很多针对 target
的方式,对我来说场景都不是很合适。我使用的思路是将所有源文件都读到一个 list
变量中,然后从这个变量中删除我不希望影响编译的库文件。
file(GLOB all_files "${CMAKE_CURRENT_SOURCE_DIR}/**")
list(REMOVE_ITEM all_files "${CMAKE_CURRENT_SOURCE_DIR}/Format.h")
# 获取除了 Format.h 的当前目录下的所有源文件
set(FLAGS "-fopenmp -Wall -Wextra -Werror")
set_source_files_properties("${all_files}" PROPERTIES COMPILE_FLAGS ${FLAGS})
# 设置严格的编译选项
Reference
Cmake命令之list介绍 - 简书 (jianshu.com)
c++编译时打开warning-as-error,并在特定情况下关闭某些warning检查-CSDN博客
时间仓促,如有错误欢迎指出,欢迎在评论区讨论,如对您有帮助还请点个推荐、关注支持一下
作者: pomolnc
出处: https://www.cnblogs.com/pomolnc/p/17760482.html
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文链接,否则保留追究法律责任的权利。
若内容有侵犯您权益的地方,请公告栏处联系本人,本人定积极配合处理解决。