如何让CMake只允许“make clean”一个目标?

11

我有一个项目,使用CMake生成Makefile,并使用(GNU)make进行构建。

在我的项目中,CMakeLists.txt定义了两个目标,但在生成Makefile后只有一个目标会被构建(例如使用EXCLUDE_FROM_DEFAULT_BUILD属性)。

我想要能够使用make清理用于构建其中一个目标的文件,而不是用于构建第二个目标的文件。

我该如何做到这一点?

1个回答

12

我看到另外两个选项:

  1. Using the internal cmake_clean.cmake scripts generated for for each target - which, unfortunately, are not directly accessible through make from the root path. For example, if you have a target named foo, you would write:

     cmake -P CMakeFiles/foo.dir/cmake_clean.cmake
    
  2. Using ninja instead of make generators where you could call

     ninja -t clean foo
    

关于“为每个目标生成的内部”,您是指“为每个目标生成的内部”吗?“内部”和“生成”的指代是什么(缺少一个或多个名词)?- 是什么内部和生成的? - Peter Mortensen
3
不幸的是,这也将清除任何foo所依赖的目标。 有没有一种方法只清除foo? - Sergio Martins

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接