2012-12-04 33 views
1

我想用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的准备“做干净”为不显示的消息,但是,我怎么能到CMake的说,我不希望在一个自定义的目标的消息?

回答

0

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

-make clean 
0

为了应对临时文件乱抛垃圾的源代码树:

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

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

作为您的示例代码的额外评论,我会避免在源代码树中构建,并使用out-of-source builds代替。