JenkinsでEclipse CDT (C++) プロジェクトをビルドする
本エントリーは、Jenkins第7回Jenkins勉強会で紹介した内容の補足資料です。
JenkinsでEclipse CDT (C++) をビルドする
EclipseでC++を書いている人はおそらくCDT環境を使っていると思います。 この環境でJenkins様にお願いして自動ビルドする方法をメモしときます。
ネタ元: jenkins - integrating an eclipse/cdt-based build into continuus integration - Stack Overflow
対象
- JenkinsでC++のプロジェクトのビルドを自動化したいと思っている
- Eclipse CDT環境でC or C++をビルドしている
- Eclipseのプロジェクトをまるごとリポジトリへコミットしている
解決策
Eclipse CDTに付属しているヘッドレス・ビルド(Headless Build)を利用します。
プロジェクトが以下のようになっているとします:
hello
はlibhello
をインクルードしているため、libhello
→hello
の順でビルドします。実施例:
$ECLIPSE_INSTALL_PATH/eclipse --launcher.suppressErrors -nosplash -application org.eclipse.cdt.managedbuilder.core.headlessbuild -data $WORKSPACE -import $WORKSPACE/libhello -build all
$ECLIPSE_INSTALL_PATH/eclipse --launcher.suppressErrors -nosplash -application org.eclipse.cdt.managedbuilder.core.headlessbuild -data $WORKSPACE -import $WORKSPACE/hello -build all
各パラメータの説明:
- $ECLIPSE_INSTALL_PATH : Eclipseをインストールしたパス
- eclipse : Eclipse本体(Windows版の人は
eclipsec.exe
を指定してください) - --launcher.suppressErrors : ポップアップ画面を抑制し、メッセージをコンソールへ出力する
- -nosplash : スプラッシュ画面を抑制する
- -application org.eclipse.cdt.managedbuilder.core.headlessbuild : headless buildの指定
- -data : workspaceとなるディレクトリを指定
- -import : ビルド対象のプロジェクトを指定(複数指定可)
- -build : ビルド対象(
all
なら全て)
上記の2つのプロジェクトはこちらにアップしておきました:
https://www.assembla.com/code/eclipse-cdt-jenkins-ci-sample/subversion/nodes/trunk/workspace
上記の例では、all
を指定しているので、全てビルドされます。もしRelease
だけで良いという場合は、-build
にhello/Release
を指定します:
$ECLIPSE_INSTALL_PATH/eclipse --launcher.suppressErrors -nosplash -application org.eclipse.cdt.managedbuilder.core.headlessbuild -data $WORKSPACE -import $WORKSPACE/hello -build hello/Release
このようにして、ビルド対象を限定できます。
ここまでくれば、Jenkinsに慣れている人はもうセットアップに入れると思います。下にJobのサンプルもありますので、そちらも参考にして頂ければと思います。
Jenkinsで自動ビルド
Jenkinsのインストールや、基本設定は、Jenkins実践入門(WEB+DB PRESS plus)などを参考にしてください!
一応、JenkinsのJobのサンプルを以下に置いておきました:
これをチェックアウトし、Jenkinsのjobs
ディレクトリの下にjobs/jenkins-sample-job
配置し、Jenkinsを起動(再起動)か設定をリロードすればJenkinsのトップページに表示されます:
次に、このJobの設定で、ビルド設定を変更します:
export ECLIPSE_INSTALL_PATH=path/to/eclipse-cdt
となっているところを、環境のEclipse CDTへのパスへ変更すれば本サンプルを動かすことができます。
あとは、gccのwarningを処理できるように、 Jenkins Warnings Pluginを使うとカンペキですね!