たとえば、.c ファイルをコンパイルするときに、cmake で印刷するだけにしたい
CC xxx.c
Linux kbuild のように stdout に。
たとえば、.c ファイルをコンパイルするときに、cmake で印刷するだけにしたい
CC xxx.c
Linux kbuild のように stdout に。
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_COMPILEcustom_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スクリプトも設定することにより、同じ方法でカスタマイズできます。
CMake
ソースを自分で編集しない限り、これは の現在のバージョンでは不可能です。もちろんsed
、awk
あなたを助けます。