GNU makeベースのビルドシステム用のClangのJSONコンピレーションデータベースファイルを生成するためのツール。
主に非クメーキ(cmakeは既にコンピレーションデータベースを生成している)を対象としています。 YCM-GeneratorやBearのようなプロジェクトに触発されましたが、ほとんどの場合、コンピレーションデータベースファイルを生成するためにクリーンなビルド(前述のツールがそうであるように)を必要としないため、これを実現するためには、 -n / --dry-runおよび-k / --keep-going ovingが抽出するためにCompilate Optionsを使用します。また、YCMジェネレーターの偽ツールチャニンアプローチよりも、クロスコンパイルに優しいです。
# pip install compiledb
.bashrcファイルにsh-completion/compiledb.bashファイルのコンテンツを追加します。compiledb 、 make Buildコマンドを実行するだけでなく、そのビルドに対応するJSONコンピレーションデータベースファイルを更新して、BEARと同様のコマンドラインインターフェイスになります。
CompileDBの「Make Wrapper」スクリプトを使用してcompile_commands.jsonファイルを生成するには、MakeFile allを実行します。
$ compiledb make compiledb -C gnu makeにsubcommand makeた後に渡されたすべてのオプション/引数を転送するため、たとえば、 core/main.mkメインbuildファイル( -fフラグ)として使用してcompile_commands.jsonを生成できます。
$ compiledb make -f core/main.mk -C buildデフォルトでは、 compiledb makeコンピレーションデータベースを生成し、要求された実際のビルドコマンド(Make Wrapperとして機能する)を実行すると、 -nまたは--no-buildオプションを使用してビルドステップをスキップできます。
$ compiledb -n make compiledb Baseコマンドは、任意のテキストファイル(またはSTDIN)からコマンドmake -Bnwkコンパイルするために使用できるように設計されています。
たとえば、 build-log.txtファイルからコンパイルデータベースを生成するには、次のコマンドを使用します。
$ compiledb --parse build-log.txtまたは同等のもの:
$ compiledb < build-log.txtまたは、MAKEの出力をパイプして、コンピレーションデータベースを標準の出力に印刷することでさえ:
$ make -Bnwk | compiledb -o-デフォルトでは、 compiledb 「引数」リスト形式でJSONコンピレーションデータベースを生成します。 「コマンド」文字列形式は--command-styleフラグを使用することでサポートされます。
$ compiledb --command-style makeこのツールを実装しました。なぜなら、YCM-generatorやBearなどの時点で利用可能な現在のツールに満足した結果が得られなかった後)に、AOSPのモジュールをいくつかインデックス化する必要があるためです。そこで、YCM-Generatorを作り直しました。その結果、CompiledB/Parser.pyの初期バージョンが生成され、Dockerコンテナで実行されている〜1分のAOSPモジュールのcompile_commands.jsonを生成し、次のような優れたツールで使用できます。
知らせ:
パッチはいつでも大歓迎です:)
GNU GPLV3