比如一个源代码布局,如下所示:

TopDir/CMakeLists.txtA.cppA.hpp...File/F1.cppF1.hpp...Section/S1.cppS1.hpp...Test/CMakeLists.txtTestF1S1.cppTestF2S2.cpp...
  • 想捕获所有.cpp 文件作为源文件 (ENDF6_SRC), 所以在我的 TopDir / CMakeLists.txt 文件中,添加一行如下所示:
file(GLOB_RECURSE ENDF6_SRC ${PROJECT_SOURCE_DIR} *.cpp)
  • 如何创建我的 ENDF6_SRC 变量,而不从 Test 目录添加.cpp 文件?我不想在 File / 或 Section / 中有一个 CMakeLists.txt 文件.

如果 “TopDir / File” 或 “TopDir / Section” 中没有子目录,则可以执行以下操作:

file(GLOB ENDF6_SRC${PROJECT_SOURCE_DIR}/*.cpp${PROJECT_SOURCE_DIR}/File/*.cpp${PROJECT_SOURCE_DIR}/Section/*.cpp)

如果有子目录,则需要多个呼叫:

file(GLOB ENDF6_SRC_TOP${PROJECT_SOURCE_DIR}/*.cpp)
file(GLOB_RECURSE ENDF6_SRC_NESTED${PROJECT_SOURCE_DIR}/File/*.cpp${PROJECT_SOURCE_DIR}/Section/*.cpp)
set(ENDF6_SRC ${ENDF6_SRC_TOP} ${ENDF6_SRC_NESTED})

顺便说一下,在顶级目录中执行文件 (GLOB_RECURSE …) 可能会在构建文件夹中从源文件构建中 (也就是构建根位于 “TopDir” 内部) 中拾取不需要的 cpp 文件).

CMake GLOB_RECURSE使用介绍相关推荐

  1. Cmake参数详细介绍

    前言 CMake 是一个高效的C/C++ 代码(包括 JNI 开发)编译工具,而CMake 的使用,作为开发者最关心的就是如何编写 CMakeLists.txt .今天就以Android studio ...

  2. 关于CMake的使用介绍

    我第一次听说CMake,是听师弟说的(很聪明和厉害的师弟),说Pixhawk的代码都是CMake编译的.当时没听说过,觉得这个软件应该很厉害吧,但很疑惑软件不是用IDE就可以编译吗?为啥需要CMake ...

  3. makefile / CMake

    - makefile syntax 'ifneq' https://www.gnu.org/software/make/manual/html_node/Conditional-Example.htm ...

  4. Android 高级开发 JNI NDK 介绍与使用

    Android 高级开发 JNI & NDK 介绍与使用 前言 对于没接触过的领域,即是挑战也是机遇,不仅能够提升自己的能力.还能够学习到新的技术知识 而学习新的技术的时候,最好是从头开始按照 ...

  5. 编译工具make、gmake、cmake、nmake和Dmake的区别

    1.  gamke, make, nmake, dmake, cmake 异同 现有编译工具 ----------------- gmake是GNU Make的缩写.       Linux系统环境下 ...

  6. 学习C++:C++进阶(三)CMake基础篇---用一个小型项目了解CMake及环境构建

    V1.1 于2022年7月15日第二次修改:添加了比较多的解释图,解读了各类库的CMakelist.txt文件 目录 第一部分 基础篇(Basics) 1.0 本部分主要学什么(Intro) 1.1 ...

  7. cmake中链接系统标准库

    貌似网上下的的linux工程都是用CMake来组织的,都有CMakeList.txt,感觉有必要学习一下. 先解决现在问题吧,有一个工程的src用Clion导入,会自动的生成CMakeList,但里面 ...

  8. 超详细教程——Ubuntu20.04 安装英伟达NVIDIA显卡驱动、CUDA、Cmake以及不同版本的CUDA切换

    在windows和linux双系统下,为ubuntu安装nvidia.cuda.cmake等程序是一个可能会难到各个计算机小白的问题,本文将一步步地带您学会安装以上内容. 一.安装英伟达NVIDIA显 ...

  9. CMake的理论与实践

    目录 1.什么是CMake 2 CMake有什么优缺点? 3.CMake 到底多好用? CMake 配置方法 4.CMake使用注意事项 5.CMake常用指令介绍 CMake如何查询指令? 6. 静 ...

最新文章

  1. linux mipi驱动分析_寒武纪社招内推数字IC设计、DSI驱动、软件架构、产品经理、芯片架构、工具链开发、深度学习、FAE工程师...
  2. Android测试之Monkey初体验
  3. [转帖] 世间什么才是最珍贵的?
  4. KubeOperator总体介绍(K8S集群部署管理工具)
  5. android 直播 app下载地址,蓝泡泡直播
  6. 清除ubuntu下缓存、软件安装包和多余内核
  7. android入门--环境搭建
  8. struts+hibernate+oracle+easyui实现lazyout组件的简单案例——OpSessionview实现
  9. java汽车管理系统_坑爹!花费2亿耗时2年,网站没建完Java都写不好,顶级咨询公司埃森哲被告上法庭...
  10. laravel-admin form中的数据,在提交后,保存前,获取并进行编辑
  11. Linux操作系统下的多线程编程详细解析----条件变量pthread_cond_t那些事儿
  12. messagebox 全部使用_你一定要知道的Windows 10系统的使用技巧
  13. 捕获 PHP 致命错误 Fatal Errors
  14. OPPO推送:怎样开通?
  15. 最新消息,我的Zcash钱包收到鱼池的ZEC打款了
  16. 计算机命令关闭445端口,怎么关闭445端口-关闭windows端口的批处理命令
  17. ajax jsonp跨域访问,jquery ajax怎么使用jsonp跨域访问
  18. 百度热力图颜色说明_揭秘!看完徐州城市人口热力图,你就知道该在哪儿买房了...
  19. Android怎么在Service中执行耗时操作
  20. 原生js春节倒计时@酷酷航

热门文章

  1. 芯片的开发板和评估板的区别
  2. java -version查询到的信息是什么意思?
  3. JSP mysql酒店预订系统
  4. asp毕业设计——基于asp+sqlserver的个人网站建设设计与实现(毕业论文+程序源码)——个人网站建设
  5. WinAircrackPack 破解你邻居家的无线WIFI密码
  6. 奶爸日记6 - 室内电子游戏
  7. Excel数据分析实例—牛油果销售分析
  8. 【制作电子杂志软件】云展网教程 | 管理、修改电子杂志设置
  9. xampp搭建运行php虚拟主机的详细步骤
  10. 解决: ValueError: source code string cannot contain null bytes 问题