如何自定义cmake的输出

问题描述:

例如,编译.c文件的时候,我想CMake的只是打印如何自定义cmake的输出

CC xxx.c 

到stdout,如Linux的kbuild。

这在CMake的当前版本中是不可能的,无需自己编辑源代码。当然sedawk会帮助你。

CMake输出可以通过抑制由CMake生成的标准消息并在启动脚本中输出自定义消息来定制。下面的代码添加到您最CMakeLists.txt

set_property(GLOBAL PROPERTY RULE_MESSAGES OFF) 
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CMAKE_SOURCE_DIR}/custom_output.sh") 

设置全局RULE_MESSAGES属性OFF将打压标准的消息。 全球RULE_LAUNCH_COMPILE属性设置为一个名为custom_output.sh一个自定义的启动脚本,需要被添加到CMake的源代码树的根:

#!/bin/sh 

# shell script invoked with the following arguments 
# $(CXX) $(CXX_DEFINES) $(CXX_FLAGS) -o OBJECT_FILE -c SOURCE_FILE 

# extract parameters 
SOURCE_FILE="${@: -1:1}" 
OBJECT_FILE="${@: -3:1}" 

echo "CC `basename \"$SOURCE_FILE\"`" 

# invoke compiler 
exec "[email protected]" 

脚本的执行位,需要设置。

链接器输出可以通过设置RULE_LAUNCH_LINK脚本以相同的方式定制。