如何重新定义目标“干净”?

时间:2012-03-26 10:03:07

标签: cmake

我的CMmake构建脚本包含“外部本机makefile”。 Target-all与“外部制作”有依赖关系。这种依赖是由CMake做出的。

CMakeLists.txt
       |____( add_custom_target )_____ GNU make file

但Target-clean没有依赖“外部make clean”。我不能让依赖清洁 - 外部清洁。我可以创建一个新的自定义目标(例如,newClean),它具有“clean”和“external make clean”的依赖关系。但是“干净”和“新清洁”存在。这可能是混乱。

如何解决此问题?

1 个答案:

答案 0 :(得分:8)

我能想到三种可能的解决方案:

  1. 确保自定义命令中的所有输出文件都列在OUTPUT行中。然后它们将作为清理的一部分被删除(CLEAN_NO_CUSTOM属性提到了这种行为)。

  2. 将额外文件添加到ADDITIONAL_MAKE_CLEAN_FILES目录属性。

  3. 创建一个新的自定义命令,该命令调用普通的清理目标和另一个make文件。例如:

    add_custom_target(really-clean
      COMMAND "$(CMAKE)" --build "${CMAKE_BINARY_DIR}" clean
      COMMAND cd "${CMAKE_BINARY_DIR}/otherproject" && make clean
    )