memoメモ

最近はGo言語関連で。φ(..)メモメモ

JenkinsでEclipse CDT (C++) プロジェクトをビルドする

本エントリーは、Jenkins第7回Jenkins勉強会で紹介した内容の補足資料です。

JenkinsでEclipse CDT (C++) をビルドする

EclipseC++を書いている人はおそらく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)を利用します。

プロジェクトが以下のようになっているとします:

f:id:atotto:20121221222909p:plain

hellolibhelloをインクルードしているため、libhellohelloの順でビルドします。実施例:

$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だけで良いという場合は、-buildhello/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のサンプルを以下に置いておきました:

https://www.assembla.com/code/eclipse-cdt-jenkins-ci-sample/subversion/nodes/trunk/jenkins-sample-job

これをチェックアウトし、Jenkinsのjobsディレクトリの下にjobs/jenkins-sample-job配置し、Jenkinsを起動(再起動)か設定をリロードすればJenkinsのトップページに表示されます:

f:id:atotto:20121221223057p:plain

次に、このJobの設定で、ビルド設定を変更します:

f:id:atotto:20121221222953p:plain

export ECLIPSE_INSTALL_PATH=path/to/eclipse-cdt

となっているところを、環境のEclipse CDTへのパスへ変更すれば本サンプルを動かすことができます。

あとは、gccのwarningを処理できるように、 Jenkins Warnings Pluginを使うとカンペキですね!