背景/目的
- Sourcetrailが2019/11/18にoss化された、ということで早速使ってみます。
- C++のプロジェクトで使いたいので、Visual Studio 2019と連携させてみます。
- 単に使ってみるだけなく、開発フローにどのように組み込むべきかも記述しておきます(考察レベル)
環境
- Windows 10 Home
- Visual Studio 2019 Community Edition
解析対象言語
- C++
準備
-
まずはVisual Studio 2019 Community Edition(以下、VS2019)をインストール
- ここらへんの説明は省略します
- C++のビルド環境を忘れずに入れること
- 参照例
- ここらへんの説明は省略します
-
Sourcetrailで解析するC++のプロジェクトを予め作っておきます。
- ここも説明省略します
-
VS2019にSourceTrailプラグインをインストール
-
VS2019を起動して、C++のプロジェクトを開いた状態にしておきます。
- ここでは「SourcetrailSample」というプロジェクトを作って、開いています。
導入方法
-
githubからrelease版をダウンロードする
- github
- 現時点での最新版(portable)をダウンロードします。
-
解凍してアプリ起動
- 実行ファイル: Sourcetrail.exe
使い方
-
「Sourcetrail Project Name」と「Source Project Location」を適当に入力して下部の「Add Source Group」ボタンを押下する
-
Create Compilation Databaseボタンを押下します
-
予め作っておいた「SourceTrailSample」を選択して「Create」ボタンを押下してcompile_commands.jsonファイルを生成します。作成後にポッポアップが出るで「import」を選択します
-
「New Source Group」ダイアログに戻って、「Header Files & Directories to Index」にソースコードがある場所を追加して、「Next」ボタンを押下します。
-
「New Project」ダイアログに戻って「Create」ボタン押下すると、下記のダイアログが表示されるので、そのまま「Start」ボタンを押下します。
情報更新方法
- VS2019側でコードを編集した場合、Sourcetrail側でも更新操作(F5)すれば、編集内容を反映してくれます。
- ファイルを追加した場合でも問題なく反映してくれます(compile_commands.jsonは更新されていませんが、Sourcetrail側は正常に更新されます)
開発環境、CIへの統合(考察レベル)
- VS2019と一緒に、Sourcetrailも立ち上げておいて、コーディング中に他の人が書いたコードを理解したいときなど、Sourcetrailのほうでチェックする、という流れで効率良く開発できそうです。
- 開発メンバー全員でSourcetrailを使う場合、何か効率のいい方法がありそうでしょうか。
- Sourcetrailが出力する各ファイルをプロジェクトと同じレポジトリに含めてバージョン管理ツールで共有しておけば、各自が設定する必要はなくなりそうです。
- Sourcetrailの出力ファイルは、srctrlbm、srctrldb, srctrlprjファイルの3つで、srctrlprjファイルだけがあれば設定を共有できます、ただしVS2019が出力したcompile_commands.jsonも必要になってきて、絶対パスも含まれているので、開発環境をメンバー間でパスも含めて共通化させていないと厳しそうです。
- Sourcetrailが出力する各ファイルをプロジェクトと同じレポジトリに含めてバージョン管理ツールで共有しておけば、各自が設定する必要はなくなりそうです。
- CIについて、あくまでコードの見るときの補助的なツールだとしたら、CIに組み込み必要はないのかもしれません。
- 強いてやるとすれば、
- リリース時にSourcetrailの出力ファイルも一緒に含めておき、後でソースコードまで見たくない他の人でも簡単に見れるようにしておく、ぐらいでしょうか。
- srctrlbm、srctrldb, srctrlprjのみあって、あとはSourcetrailをインストールすれば、Sourcetrailの結果を見ることができます。
- リリース時にSourcetrailの出力ファイルも一緒に含めておき、後でソースコードまで見たくない他の人でも簡単に見れるようにしておく、ぐらいでしょうか。
- 試していませんが、commandlineが用意されているようです。
- 強いてやるとすれば、