Cppcheckの導入とJenkinsとの連携
準備準備
タイトルの通り,フリーのC++コード静的解析ツール「Cppcheck」の導入と,Jenkinsとの連携のやり方をざっくりとまとめておきます.
環境はWindows7,8で確認しています.
予めJenkinsにCppcheck Pluginも入れとくといいと思います.というか入れましょう.
準備
本当に導入と連携だけを目的としてるので,手を抜くためにまずJenkins側に名前だけのジョブを作ってworkspaceを作ってしまいます.まあ端折ってるのはリポジトリ作成だけですけども.
このworkspaceの下にサンプルプロジェクトを作成.
C:\Jenkins\jobs\cppcheck01\workspace\cppcheckExample\cppcheckExample.sln
以下のようなコードを書いておきます.
#include "stdafx.h"
int main()
{
char chars[5];
return 0;
}
Cppcheckのインストール
インストールします.
Cppcheck - A tool for static C/C++ code analysis からcppcheckのインストーラをダウンロードしてインストール.現時点でのバージョンは1.58です.
ちなみに僕の環境(Win8のx64)では C:\Program Files (x86)\
にインストールしようと思ったらうまくいかなかったから,C:\Cppcheck\
にインストールしちゃった.
コマンドプロンプトで C:\Cppcheck\
に移動して動作することを確認.
c:\Cppcheck> cppcheck --version
Cppcheck 1.58
ついでに以下のコマンドでそのまま実動作確認してもいいと思います.
c:\Jenkins\jobs\cppcheck01\workspace\cppcheckExample>c:\cppcheck\cppcheck --enable=all --xml cppcheckExample 2> check_result.xml
簡単に説明すると,
--enable
コマンド(オプション)はチェックの厳しさを指定しています.allはすべての種類をチェックします.一番厳しいやつ.
--xml
コマンド(オプション)は結果をXMLファイルに書き出す指定をしています. TargetDir 2> result-file.xml
で解析対象のファイルが有るディレクトリを指定して,実行しているディレクトリに result-file.xml
を出力します.
気がすんだら今度はJenkinsの設定に移りましょう
ビルドに「Windowsバッチコマンドの実行」を追加して以下を入力.
c:\cppcheck\cppcheck --enable=all --xml cppcheckExample\cppcheckExample 2> cppcheckExample\check_result.xml
Cppcheck Pluginをインストールしていれば,ビルド後の処理に「Publish cppcheck result」が増えているはずなのでそれを追加して
cppcheckExample\check_result.xml
を指定します.
では
実行.
上手くビルドが終わればプロジェクトのトップに「Cppcheck Result」というリンクが表示され,そこから結果が見られます.
おわりに,あるいは補足事項など
このへん参考にするともっと色々出来るようになるようです.
以下は公式のマニュアルです.各種オプションの詳細なんかはこちらを見てください.英語ですが.