【发布时间】:2013-04-21 09:48:09
【问题描述】:
我正在尝试找出一种方法来配置我的 CMake 构建以包含一个“干净”目标,该目标将删除构建目录中的所有文件,但名为“modules”的子目录中的文件除外。
为什么,你可能会问?好吧,我们的代码库目前是基于 makefile 的,我正在将其切换到 cmake。我当前的设置是在顶层添加一个 cmake/ 目录,其中包括 modules/ 子文件夹中所需的宏。然后人们可以从 cmake/ 目录运行“cmake ..”。
通常,当我在 CMakeLists.txt 中进行更改时,我想绝对确定我以前的 cmake 运行都不会产生影响,因此最好从 cmake/ 目录中从头开始。我不能只 rm -rf ./ 因为有所需的 modules/ 目录。如果可能的话,我想要一种简单的“cmake clean”方式来恢复它。
感谢您的任何意见。
【问题讨论】:
-
我会将您的 /cmake/modules 文件视为源代码树的一部分,并将创建一个单独的空“构建”目录 - 在项目的根目录中或留给用户创建根外。这样一来,您的源代码就不会与构建文件混淆。
-
是的,你完全正确。也许这只是个人喜好,或者来自源代码内 makefile 的遗留思想过程,但我喜欢在 cmake/ 目录中完成所有操作的想法,即使它包含源代码控制的 modules/ 目录。
标签: build cmake organization