我的CMmake构建脚本包括一个“外部 native Makefile”。 Target-all具有“外部构成”的依赖关系。这种依赖性是由CMake建立的。

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

但是Target-clean没有“外部make clean”的依赖关系。我无法清除依赖项-外部清除。我可以创建一个新的自定义目标(例如newClean),并且它具有“clean”和“external make clean”的依赖关系。但是“clean”和“newClean”存在。可能是困惑。

我该如何解决这个问题?

最佳答案

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

  • 确保在OUTPUT行中列出了自定义命令的所有输出文件。然后将它们作为clean的一部分除去(此行为在 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
    )
    
  • 关于cmake - 如何重新定义目标 "clean"?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9870143/

    10-13 03:26