OpenRTP マージモジュール¶
ここではツールである OpenRTP と RTSystemEditor、及び、JRE のマージモジュールを作成する手順を示す。
- ソースビルド
- ファイルコピー
- 起動用のvbsスクリプトの用意
- マージモジュール作成
1.ソースビルド¶
Jenkinsのジョブでビルドを行う。
- 対象ノード:openrtp-builder
- Jenkinsジョブ 04_OpenRTP (ジョブ実行順)
- 02_openrtp-build-tags
- 12_openrtp-dist-tags
- 31_openrtp_publish_stable
- 22_openrtp_pack_tags_linux
- 22_openrtp_pack_tags_macosx
- 22_openrtp_pack_tags_win32
- 42_openrtp_publish_release_packages
2.ファイルコピー¶
マージモジュールを作成している環境へ、ファイルをコピーする。
下記に置いてある全部入りパッケージのビルド時、eclipseのバージョン等、基本的な部分には変更がなかった。
http://openrtm.org/pub/openrtp/packages/1.1.0.rc5v20150317/
今回の修正をWindows用インストーラに含めているOpneRTPに反映させるため、下記アーカイブに含まれている jar ファイルを eclipse の plugins ディレクトリにコピーした。
これは、OpneRTP 1.1.0-RC5 の修正を反映させるため。
http://openrtm.org/pub/openrtp/openrtp/1.1.0.rc5v20150317/openrtp-1.1.0.rc5v20150317.zip
※マージモジュールを修正している環境で使用しているOpenRTPのバイナリは、OpenRTM-aist C++ 1.1.1 Beta版リリース時の環境を引き継いで使っている
3.起動用のvbsスクリプトの用意¶
OpenRTM-aist C++版インストーラで同梱するJREのインストール先変更に関連する作業。変更することになった経緯(関連チケットは下記)
http://redmine.openrtm.org/issues/3098)
- OpenRTM-aistの各インストーラでインストールされるツールは、起動するために32bit版JREが必要(OpenRTP, RTSystemEditorRCP)(理由は上記チケット参照)
- OpenRTM-aistの64bit版をインストールしているユーザは、Javaも64bit版をインストールしていると思われる。
- OpenRTM-aist-Java 64bit版のインストールは、JDK 64bitが必須で、JDK 32bit環境へはインストールできない。インストーラがチェックしている。
- 64bit版Javaがインストールされている環境でもRTSystemEditorRCPを起動できるようにするため、JREはOpenRTM-aistの基本ベースで必要という
位置付けにし、OpenRTM-aist\1.1\bin下にインストールするように変更した
- JREのパス(%RTM_ROOT%bin\jre\bin)は、batファイル内でPATHに追加
- このbatファイルの実行をWSH(VBScript)で記述し、コンソール画面を表示しないように設定
$ cat OpenRTP.bat set PATH=%RTM_ROOT%bin\jre\bin;%PATH% cd %RTM_ROOT%utils\OpenRTP eclipse.exe $ cat start-OpenRTP.vbs Set ws = CreateObject("Wscript.Shell") ws.run "cmd /c OpenRTP.bat", vbhide
$ cat RTSystemEditorRCP.bat set PATH=%RTM_ROOT%bin\jre\bin;%PATH% cd %RTM_ROOT%utils\RTSystemEditor RTSystemEditorRCP.exe $ cat start-RTSystemEditorRCP.vbs Set ws = CreateObject("Wscript.Shell") ws.run "cmd /c RTSystemEditorRCP.bat", vbhide
しかし、この設定だと、スタートメニューから OpenRTP と TSystemEditorRCP を起動する際、アイコンがvbsになってしまう。
今まで通りeclipseのアイコンにしたいので、icoファイルを用意し、以下のように設定した。
RTSystemEditorRCPのマージモジュール用の修正¶
- RTSystemEditorRCPのソースにアイコンにできる画像が含まれていないので、Redmineにあった「RCP版RTSystemEditorの作成手順」にあった
ベースの「Eclipse IDE for Java EE Developers」に含まれている「eclipse16.png」(16x16)を「eclipse.ico」に変換して利用 - アイコンの定義は、Shortcutエレメントに追加した
----- start-RTSystemEditorRCP.vbs.wxsctrl <Shortcut Id="RTSE_RCP_exe" Directory="ToolsMenuFolder" Name="RTSystemEditorRCP" Show="normal" WorkingDirectory="%Directory.Id%" Icon="eclipse.ico" IconIndex="0" > ★ <Icon Id="eclipse.ico" SourceFile="RTSE\utils\RTSystemEditor\eclipse.ico"/> ★ </Shortcut>
OpenRTPのマージモジュール用の修正¶
- RTSystemEditorRCPと同様に、起動するためのbat/vbsファイルを設置し、スタートメニュー用のアイコン画像を用意
- OpenRTPはplugins下に画像があったので、それをicoに変換して利用 (OpenRTP\plugins\org.eclipse.sdk_3.8.1...\eclipse16.png)
- icoファイル名はRTSystemEditorRCPと同じだが、中身の画像は異なる。
同じファイル名だと紛らわしいとは思ったが、別々のマージモジュールなので、wxsctrlの統一性を考え同じファイル名とした----- start-OpenRTP.vbs.wxsctrl <Shortcut Id="RTP_110_exe" Directory="ToolsMenuFolder" Name="OpenRTP 1.1.0" Show="normal" WorkingDirectory="%Directory.Id%" Icon="eclipse.ico" IconIndex="0" > ★ <Icon Id="eclipse.ico" SourceFile="openrtp_runtime\utils\OpenRTP\eclipse.ico"/> ★ </Shortcut>
4.マージモジュール作成¶
マージモジュールを作成するスクリプトも、現時点で以下に置いてあるので、自分の環境へコピーして利用している。
\\nas-openrtp\Public\OpenRTM-aist-1.1.1-installer ├── 0work ├── MergeModules ├── Msi ├── omniORB_msm ├── opencv_example_msm ├── opencv_msm ├── openrtm_msm ├── OpenRTM-aist_msi ├── openrtp_msm_eclipse3.8 ├── scripts ├── EPLv1.rtf ├── GPLv2.rtf ├── LGPLv2.1.rtf ├── LicenseAll.rtf ├── OpenCV.rtf └── OpenRTM.rtf
マージモジュールを作成するディレクトリは、openrtp_msm_eclipse3.8 である。必要なバイナリは以下に置いてある。(0workディレクトリは利用していない)
$ tree openrtp_msm_eclipse3.8 -L 1 -d openrtp_msm_eclipse3.8 ├── openjdk_jre ├── openrtp_runtime └── RTSE
マージモジュールを一括生成する mk_msm_all.bat スクリプトを実行する。
> type mk_msm_all.bat call mk_msm_JRE_x86.bat call mk_msm_OpenRTP_x86.bat call mk_msm_RTSE_x86.bat call mk_msm_JRE_x86_64.bat call mk_msm_OpenRTP_x86_64.bat call mk_msm_RTSE_x86_64.bat > mk_msm_all.bat
正常終了すると、MergeModules 下にmsmファイルが生成される
> cd MergeModules > ls JRE_OpenJDK7_x86.msm JRE_OpenJDK7_x86_64.msm OpenRTP_110_x86.msm OpenRTP_110_x86_64.msm RTSystemEditorRCP_x86.msm RTSystemEditorRCP_x86_64.msm