How to customize cmake output

巧了我就是萌 提交于 2019-12-01 19:39:07

CMake output can be customized by suppressing the standard messages produced by CMake and outputting a custom message in a launcher script instead. Add the following code to your outermost CMakeLists.txt:

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

Setting the global RULE_MESSAGES property to OFF will suppress the standard messages. The global RULE_LAUNCH_COMPILE property is set to a custom launch script named custom_output.sh which needs to be added to the root of the CMake source tree:

#!/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 "$@"

The script's executable bit needs to be set.

The linker output can be customized in the same fashion by also setting a RULE_LAUNCH_LINK script.

This is not possible in the current version of CMake, without editing the source yourself. Of course sed and awk will help you.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!