如何使CMake允许“清洁”一个目标?

ein*_*ica 4 makefile build cmake resource-cleanup

我有一个带有多个目标的CMakeLists.txt,其中有些不属于ALL

我希望能够清理(使用make)用于构建目标之一的文件,而不是用于构建第二个目标的文件。

我该怎么办?

Flo*_*ian 5

我看到两个附加选项:

  1. 内部使用每个生成的目标脚本-不幸的是,无法make从root用户直接访问这些cmake_clean.cmake脚本。因此,例如,对于名为目标的目标foo,它将是:

    cmake -P CMakeFiles/foo.dir/cmake_clean.cmake
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用ninja而不是make可以调用的生成器

    ninja -t clean foo
    
    Run Code Online (Sandbox Code Playgroud)

  • 不幸的是,这也会清除 foo 所依赖的任何目标。有没有办法只清理 foo ? (3认同)