首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >改进CMake构建目录的清理

改进CMake构建目录的清理
EN

Stack Overflow用户
提问于 2013-04-27 15:46:57
回答 1查看 3K关注 0票数 1

我正在尝试找出一种方法来配置我的模块构建,使其包含一个“干净的”目标,该目标将删除构建目录中的所有文件,除了名为“CMake”的子目录中的文件。

你可能会问,为什么?好的,我们的代码库目前是基于makefile的,我正在将其切换为cmake。我当前的设置是在顶层添加一个cmake/目录,该目录在modules/子文件夹中包含所需的宏。然后人们可以运行"cmake ..“从cmake/目录。

通常,当我在CMakeLists.txt中进行更改时,我希望绝对确保之前的cmake运行都不会受到影响,所以最好在cmake/目录中从头开始。我不能只使用rm模块./,因为有所需的-rf /目录。如果可能的话,我想要一个简单的"cmake clean“方法来恢复它。

感谢您的任何意见。

EN

回答 1

Stack Overflow用户

发布于 2013-04-30 15:25:40

我已经在我的一些代码中做到了这一点。在我的CMakeLists.txt的底部,我添加了下面这行

代码语言:javascript
复制
# Add a distclean target to the Makefile
ADD_CUSTOM_TARGET(distclean COMMAND ${CMAKE_COMMAND} -P ${CMAKE_SOURCE_DIR}/distclean.cmake)

然后,我在顶级目录中添加了一个名为distclean.cmake的文件。此文件包含一个遍历要删除的文件的循环:

代码语言:javascript
复制
# Loop over the directories/files and delete each one
FOREACH(D ${DEL}) # DEL is a list of the directories and files to delete
    IF(EXISTS ${D})
        FILE(REMOVE_RECURSE ${D})
    ENDIF()
ENDFOREACH()

您可以查看我的完整distclean.cmake文件here

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16249663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档