我应该从源文件夹分离CMakeList.txt
Should I separate CMakeList.txt from source folder?
我是一个新的构建工具,当我遇到Autotool,我有一个选项,只写一个Makefile。我在顶部构建文件夹,并留下包含所有CPP文件干净的源文件夹。我可以使用VPATH来告诉automake在该文件夹中查找源代码,而不是写/src/每一个地方。(参考我以前的问题:自动生成变量来整理Makefile.am)
然而,在我看来,CMake没有VPATH设置和周围的一些狐狸说,这是不可能的。所以有两个选择:
- 在源文件夹 中创建CMakeList.txt
- 在顶部构建文件夹中创建CMakeList.txt,并单独留下源代码,我需要将"/src"扩展到每个源代码文件的成本。
哪一个更常用?我更喜欢第二种方法,因为它使我的源代码与任何与构建相关的源代码保持干净。在这种情况下,有没有办法摆脱"/src"?
在我们公司,我们使用第一种选择,在每个子目录中都有一个CMakeLists.txt,并通过使用add_subdirectory
命令从根目录-CMakeLists.txt构建树。
这是一种模块化的方法,其中每个子组件(考虑项目有不同的部分,如boost被分成系统,线程,日期时间等)都有自己的构建文件。如果用户需要,他可以只构建子组件或构建整个项目。
我们还使用它作为在项目中包含可选子组件的简单方法。然后,用户可以设置一个Bool值,如BUILD_SUBFOO
,如果该Bool值为TRUE
,则add_subdirectory
将被执行。
知名项目也在使用这种方法。下面是一个从KDevelop到根CMakeLists.txt的链接(查看第52-62行)。
我很确定你能做到:
FILE(GLOB Source_files src/*.cpp)
相关文章:
- 更正 CMakeList.txt 用于谷歌测试的文件?
- 在Cmake构建CmakeList.txt中读取/解析XML文件
- 如果我想链接静态库并删除未使用的符号.txt我应该如何处理 Cmakelist
- CMakeList 中应包含哪些模块.txt以进行近似最近邻搜索?
- 如何在不同的CMakeList.txt之间共享变量?
- 如何使用cmake从主要的CMakeList.txt复制目标文件?
- 将 OpenSSL 包含在 CMakeList.txt 文件中
- C++带有 CMakeList 的地址清理器.txt会导致 asan 错误
- 如何在 CMakeList 中包含 h/hpp 头文件.txt而不是 cpp 或其他 hpp 文件
- 适应cmakelist.txt与cuda一起运行
- 用cmakelist.txt在clion上以一种不错的便携式方式配置sdl2
- 如何使用 cmd 行参数不编译 CMakeList 的部分.txt
- 我想使用 CMakeList 将 ODBC 集成到我的 Linux 和 Windows 代码中.txt但它只能在 Win
- 为什么 CMake 没有链接这个 CMakeList 中的 pthread.txt
- 使用动态库 qpOASES 和 CMakeList.txt 时对 qpOASES 错误的未定义引用
- C++ 如何使用CMakeList.txt链接mongoc和mongocxx静态库
- 我的CMakeList.txt出了什么问题?
- 我如何使用find_package在CMakeList.txt中链接Boost(不在usr/include中)
- 将"CmakeList.txt"移动到 Clion 中的另一个文件夹
- 我应该从源文件夹分离CMakeList.txt