我正在尝试找出一种方法来配置我的模块构建,使其包含一个“干净的”目标,该目标将删除构建目录中的所有文件,除了名为“CMake”的子目录中的文件。
你可能会问,为什么?好的,我们的代码库目前是基于makefile的,我正在将其切换为cmake。我当前的设置是在顶层添加一个cmake/目录,该目录在modules/子文件夹中包含所需的宏。然后人们可以运行"cmake ..“从cmake/目录。
通常,当我在CMakeLists.txt中进行更改时,我希望绝对确保之前的cmake运行都不会受到影响,所以最好在cmake/目录中从头开始。我不能只使用rm模块./,因为有所需的-rf /目录。如果可能的话,我想要一个简单的"cmake clean“方法来恢复它。
感谢您的任何意见。
发布于 2013-04-30 15:25:40
我已经在我的一些代码中做到了这一点。在我的CMakeLists.txt的底部,我添加了下面这行
# Add a distclean target to the Makefile
ADD_CUSTOM_TARGET(distclean COMMAND ${CMAKE_COMMAND} -P ${CMAKE_SOURCE_DIR}/distclean.cmake)然后,我在顶级目录中添加了一个名为distclean.cmake的文件。此文件包含一个遍历要删除的文件的循环:
# 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。
https://stackoverflow.com/questions/16249663
复制相似问题