Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何自定义cmake输出_Cmake_Build System - Fatal编程技术网

如何自定义cmake输出

如何自定义cmake输出,cmake,build-system,Cmake,Build System,例如,在编译.c文件时,我希望cmake只打印 CC xxx.c 对于标准输出,如linux kbuild。在当前版本的CMake中,如果不亲自编辑源代码,这是不可能的。当然,sed和awk将对您有所帮助。CMake输出可以通过抑制CMake生成的标准消息并在启动程序脚本中输出自定义消息来定制。将以下代码添加到最外层的CMakeLists.txt: set_property(GLOBAL PROPERTY RULE_MESSAGES OFF) set_property(GLOBAL PR

例如,在编译.c文件时,我希望cmake只打印

CC    xxx.c

对于标准输出,如linux kbuild。

在当前版本的
CMake
中,如果不亲自编辑源代码,这是不可能的。当然,
sed
awk
将对您有所帮助。

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

set_property(GLOBAL PROPERTY RULE_MESSAGES OFF)
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CMAKE_SOURCE_DIR}/custom_output.sh")
将全局属性设置为
OFF
将抑制标准消息。 全局属性设置为名为
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 "$@"
需要设置脚本的可执行位

链接器输出也可以通过设置脚本以同样的方式进行自定义