禁止cmake自定义目标中的自动消息

时间:2012-12-04 23:16:20

标签: cmake

我想用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说我不希望消息出现在自定义目标中?

2 个答案:

答案 0 :(得分:0)

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

-make clean

答案 1 :(得分:0)

处理乱丢源树的临时文件:

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

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

作为对示例代码的补充说明,我将避免在源代码树中构建并使用out-of-source builds代替。