我的CMmake构建脚本包含“外部本机makefile”。 Target-all与“外部制作”有依赖关系。这种依赖是由CMake做出的。
CMakeLists.txt
|____( add_custom_target )_____ GNU make file
但Target-clean没有依赖“外部make clean”。我不能让依赖清洁 - 外部清洁。我可以创建一个新的自定义目标(例如,newClean),它具有“clean”和“external make clean”的依赖关系。但是“干净”和“新清洁”存在。这可能是混乱。
如何解决此问题?
答案 0 :(得分:8)
我能想到三种可能的解决方案:
确保自定义命令中的所有输出文件都列在OUTPUT行中。然后它们将作为清理的一部分被删除(CLEAN_NO_CUSTOM
属性提到了这种行为)。
将额外文件添加到ADDITIONAL_MAKE_CLEAN_FILES
目录属性。
创建一个新的自定义命令,该命令调用普通的清理目标和另一个make文件。例如:
add_custom_target(really-clean
COMMAND "$(CMAKE)" --build "${CMAKE_BINARY_DIR}" clean
COMMAND cd "${CMAKE_BINARY_DIR}/otherproject" && make clean
)