CMake,编译过程时不要打印目录

Ram*_*amy 6 cmake

我最近将我的项目更新为CMake,有一件事很烦人.构建源文件时,它会打印保存目标文件的目录.

[ 13%] Building CXX object a/CMakeFiles/a.dir/src/A.cpp.o
[ 14%] Building CXX object b/CMakeFiles/b.dir/src/B.cpp.o
[ 15%] Building CXX object c/CMakeFiles/c.dir/src/C.cpp.o
Run Code Online (Sandbox Code Playgroud)

我想这样做

[ 13%] Building CXX object A.cpp.o
[ 14%] Building CXX object B.cpp.o
[ 15%] Building CXX object C.cpp.o
Run Code Online (Sandbox Code Playgroud)

我找不到任何关于此事的内容.

Flo*_*ian 2

正如@Hugues Moreau 评论的那样,这些文本直接编码到 CMake 中并且无法修改。

RULE_MESSAGES您可以 - 不使用另一个脚本解析您的命令行或输出 - 仅通过设置全局属性OFF并添加您自己的调用来抑制输出echo

笔记:

  1. 它还省略了百分比和颜色信息
  2. 它仅适用于Makefiles发电机

CMakeLists.txt

cmake_minimum_required(VERSION 2.8)

project(HelloWorld)

if(CMAKE_GENERATOR MATCHES "Makefiles")
    set_property(GLOBAL PROPERTY RULE_MESSAGES OFF)
    set(
        CMAKE_CXX_COMPILE_OBJECT 
        "$(CMAKE_COMMAND) -E echo Building <LANGUAGE> object $(@F)" 
        "${CMAKE_CXX_COMPILE_OBJECT}"
    )
endif()    

add_executable(HelloWorld main.cpp)
Run Code Online (Sandbox Code Playgroud)

参考