私はSConsを使用して作業中のプロジェクトをビルドしています。GCC からのテキスト出力を解析して、各ターゲットのすべてのコンパイラ警告の概要レポートを作成しようとしています。これは、ビルド スクリプトが非常に長いためです。コンソールへの大量のテキスト出力。
Google とこのサイトをかなり長い間検索してきましたが、これを達成するために SCons に組み込まれている方法が見つかりません。この例に従って、stdout および stderr ストリーム全体をファイルにリダイレクトしようとしましたが、SCons 自体からの出力のみがキャプチャされ、それが呼び出すツールの出力はキャプチャされません。
次に考えたのは、SCons が引数をコンパイルして GCC に送信する場所を見つけ、引数文字列の末尾にリダイレクトを追加することでした。ドキュメントを読んだ後、構築変数CCCOM
とCXXCOM
コンパイルに使用されるコマンドラインが含まれているようです。ただし、以下の行を SConstruct に追加しても、SCons が実行しているコマンド ラインは何も変更されていません。
baseEnv['CCCOM'] += " 2> gcc-c-output.txt"
baseEnv['CXXCOM'] += " 2> gcc-cxx-output.txt"
うまくいったことの 1 つは、SCons コマンド全体で stderr ストリームをリダイレクトすることでした。
scons 2> stderr.txt
ただし、これは避けたいと思います。可能であれば、SCons 内にすべてを含めます。また、必ずしもファイルに出力する必要はありません。ビルドの最後に解析してファイルに保存するためにアクセスできる限り、どこにでも保存できます。
私は長い間検索して何も思いつかなかったので、他に何を試すべきかわかりません。このようなことをしたいと思ったのは私が初めてではないと信じなければなりません。