Makefile で作成されたプログラムに対して Sourcetrail で解析する
Sourcetrail を使って Makefile でビルドするプロジェクトの解析方法を説明します。
入手方法
最新版は
https://github.com/CoatiSoftware/Sourcetrail/releases/latest
からダウンロードできます。
プロジェクト作成方法
プロジェクト作成方法 にはいくつかありますが、よく使うのは compile_commands.json を使う方法、Windows なら Visual Studio のプロジェクトから作る方法があります。このページでは Makefile
から compile_commands.json
を生成して、Sourcetrail のプロジェクトを生成する方法を説明します。
compile_commands.json を生成する方法
cmake を使うプロジェクトの場合
cmake で作成されたプロジェクトの場合 https://www.sourcetrail.com/documentation/#CreatingaNewProject にも記載されているように
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=1 <ソースコードのパス>
というように実行するとカレントディレクトリに compile_commands.json
を生成してくれるのでそれを利用できます。
※ https://www.sourcetrail.com/documentation/#CreatingaNewProject によるとVisual Studio 用の Generator を使用した場合は CMAKE_EXPORT_COMPILE_COMMANDS
は使えないらしいです。(未確認)
Makefile
を使うプロジェクトの場合
Makefile
のプロジェクトの場合はこの方法は使えないので compiledb を使います。
compiledb のインストール方法
pip3 install compiledb
pip でインストールします。ここでは python 3 を対象にしているので pip3 を使います。
compiledb での compile_commands.json の生成方法
compiledb を指定して make を実行するとカレントディレクトリに compile_commands.json
が生成されます。
compiledb make
大きなプロジェクトでは、ビルドが終わって最後に compile_commands.json
に書き出すときに時間がかかります。
compiledb -n make
とすることで、実際のビルドはせずに compile_commands.json
を生成することだけということができるらしいですが、make の生成物に依存する処理がある場合、エラーになるので、実際にビルドしてから compile_commands.json
を生成したほうが、確実かもしれません。