【问题标题】:How to customize cmake output如何自定义 cmake 输出
【发布时间】:2012-04-03 15:58:18
【问题描述】:

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

CC    xxx.c

到标准输出,比如 linux kbuild。

【问题讨论】:

    标签: cmake build-system


    【解决方案1】:

    可以通过抑制 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 "$@"
    

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2011-05-03
        • 2011-04-14
        • 2015-10-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-12
        • 1970-01-01
        相关资源
        最近更新 更多