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

时间:2017-05-10 21:42:38

标签: 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

我想这样做

[ 13%] Building CXX object A.cpp.o
[ 14%] Building CXX object B.cpp.o
[ 15%] Building CXX object C.cpp.o

我无法找到任何相关信息。

1 个答案:

答案 0 :(得分:2)

作为@Hugues Moreau commented,这些文本直接编码为CMake,无法修改。

您可以 - 不使用其他脚本解析您的命令行或输出 -  仅将全局RULE_MESSAGES属性设置为OFF并添加您自己的echo来禁止输出。

注:

  1. 它也省略了百分比和颜色信息
  2. 仅适用于Makefiles generators
  3. <强>的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)
    

    <强>参考