我怎样才能让 CMake 只允许 "make clean"ing 一个目标?
How can I get CMake to allow for "make clean"ing just one target?
我有一个项目使用 CMake 生成 Makefile,然后使用 (GNU) make 构建。
在我的项目中,CMakeLists.txt
定义了两个目标 - 但在 Makefile
生成后 make
ing 时只有其中一个被构建(例如使用 EXCLUDE_FROM_DEFAULT_BUILD
属性).
我希望能够清理(使用 make
)构建其中一个目标时使用的文件,而不是用于构建第二个目标的文件。
我该怎么做?
我看到另外两个选项:
使用为每个目标生成的内部 cmake_clean.cmake
脚本 - 不幸的是,不能通过 make
从根路径直接访问这些脚本。例如,如果您有一个名为 foo
的目标,您可以这样写:
cmake -P CMakeFiles/foo.dir/cmake_clean.cmake
使用 ninja
而不是 make
可以调用的生成器
ninja -t clean foo
我有一个项目使用 CMake 生成 Makefile,然后使用 (GNU) make 构建。
在我的项目中,CMakeLists.txt
定义了两个目标 - 但在 Makefile
生成后 make
ing 时只有其中一个被构建(例如使用 EXCLUDE_FROM_DEFAULT_BUILD
属性).
我希望能够清理(使用 make
)构建其中一个目标时使用的文件,而不是用于构建第二个目标的文件。
我该怎么做?
我看到另外两个选项:
使用为每个目标生成的内部
cmake_clean.cmake
脚本 - 不幸的是,不能通过make
从根路径直接访问这些脚本。例如,如果您有一个名为foo
的目标,您可以这样写:cmake -P CMakeFiles/foo.dir/cmake_clean.cmake
使用
ninja
而不是make
可以调用的生成器ninja -t clean foo