2017-05-10 8 views
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 

私はこのことについて何かを見つけることができません。この

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

ようにそれを作りたいです。

+1

[ここ]である(https://gitlab.kitware.com/cmake/cmake/blob/v3.8.1/Source/cmNinjaTargetGenerator.cxx#L666)、行は 'description <<"です。<< "lang <<"オブジェクトを構築する$ out ";' '$ out'はオブジェクトの相対パスで、gccに渡されます。 。だから私はそれのための設定オプションを見つけることを期待していない。 cmakeの出力に(あなたの端末で)適用するフィルタの一種を探していますか? –

+1

参照http://stackoverflow.com/questions/9765547/how-to-customize-cmake-output – sakra

答えて

2

@Hugues Moreau commentedこれらのテキストはCMakeに直接コード化されており、変更することはできません。

あなたは可能性 - あなたのコマンドラインまたは出力を解析する別のスクリプトを利用せず - だけOFFにグローバルRULE_MESSAGESプロパティを設定し、独自のecho呼び出しを追加して出力を抑制します。

注:

  1. それは
  2. も割合と色情報を省略し、それが唯一Makefiles generators

のために働く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) 

参照本を印刷するコードの一部私の知る限り

関連する問題