1

我想用 cmake 添加自定义目标,但是其中一些必须是“静默的”,因为它不是必需的。例如,对于干净的自定义命令:

// In CMakeLists.txt
add_custom_target(clean-temporaries
   ${CMAKE_COMMAND} -P clean-temporaries.cmake
   COMMENT "Deleting temporary files"
)

// clean-temporaries.cmake
file(GLOB_RECURSE temporary_files "*[~#]")
file(REMOVE ${temporary_files})

$ cmake .
$ make clean-temporals
[100%] Deleting temporary files
[100%] Built target clean-temporaries
$ make clean
$

我们可以看到 CMake 准备“make clean”以不显示消息,但是,我怎么能对 CMake 说我不希望自定义目标中的消息?

4

2 回答 2

0

要处理乱扔源代码树的临时文件:

  • 鼓励贡献者配置他们的编辑器,以便临时文件最终位于他们的公共目录中$HOME(例如:vimemacs)。
  • 鼓励贡献者配置他们的全局版本控制忽略文件以始终忽略他们自己工作环境的临时文件(例如,对于 git:vimemacs)。
  • 此外,在每个项目的版本控制的忽略文件中排除众所周知的临时文件模式,以对尚未实施前两个步骤的贡献者友好。

如果您这样做,您可能不必在构建系统中添加额外的“可选”(即高度特定于环境的)步骤,您最终会得到一个更普遍适用的问题解决方案。

作为对您的示例代码的附加评论,我会避免在源代码树中构建,而是使用源外构建

于 2013-02-09T13:14:26.397 回答
0

尝试在要从控制台隐藏的命令的开头添加减号。

-make clean
于 2012-12-05T19:52:20.347 回答