OpenRTM-aist C++ 1.1.1-RELEASE用msi作成手順¶
手順の流れ¶
- ソースビルド ・・・Jenkinsジョブで実行(32bit, 64bit)
- ファイルコピー ・・・インストーラ(.msi)作成に必要なファイルを集める
- wxsctrlファイルセット ・・・インストーラ作成に必要なショートカットファイルをセットする
- マージモジュール作成 ・・・インストーラに含めるコンポーネントのマージモジュール(.msm)を作成する
- インストーラ作成 ・・・必要なマージモジュールを組込んでインストーラ(.msi)を作成する
1.ソースビルド¶
Jenkinsのジョブで32bit、64bitの各バイナリのビルドを行う
32bit用ビルド¶
- 対象ノード:windows7-VC2008, windows7-VC2010, windows7-VC2012, windows7-VC2013
- Jenkinsジョブ C++(実行順)
- 20_openrtm-cxx-dist-tags (ビルドパラメータ:RELEASE_1_1_1)
- openrtm-cxx-build-tag-win32
64bit用ビルド¶
- 対象ノード:windows7-VC2010-x64, windows7-VC2012-x64, windows7-VC2013-x64
- Jenkinsジョブ C++(実行順)
- 20_openrtm-cxx-dist-tags (ビルドパラメータ:RELEASE_1_1_1)
- openrtm-cxx-build-tag-win64
2.ファイルコピー¶
インストーラ作成に使うファイルを、ソースビルドした環境からコピーして集める
使用スクリプト¶
現時点(2015/04/06)でリポジトリに登録しておらず、また、ソースにも含まれていない。以下に最新版を置いているので、コピーして使用する。
\\nas-openrtp\Public\OpenRTM-aist-1.1.1-installer\0work\copy-openrtm-aist_C++.bat
参考(2015/04/06現在のスクリプト):
copy-openrtm-aist_C++.bat.pdf
スクリプトの使い方¶
- スクリプトを、各ノードのJenkinsジョブ実行ディレクトリへコピーする
例)windows7-VC2010の場合> cd C:\Jenkins\workspace\openrtm-cxx-build-tag-win32\label\windows7-vc2010 > ls OpenRTM-aist OpenRTM-aist-1.1.1-win32.zip copy-openrtm-aist_C++.bat
- 引数に、vcのバージョン番号とアーキテクチャを指定する。引数を間違えると以下のメッセージが表示される
Usage: copy-openrtm-aist_C++.bat [vc-version] [arch] vc-version : vc8 / vc10 / vc11 / vc12 arch : x86 / x64
- 実行すると、4つのディレクトリが生成される
例)Visual Studio 2010 32bit での実行> copy-openrtm-aist_C++.bat vc10 x86 ⇒実行結果として下記ディレクトリ4つが生成される ・OpenRTM-aist_vc10_x86 ・・・ OpenRTM-aistと同じ構成で、msi生成に必要なファイルのみ含まれている ・openrtm_develop ・・・ develop に分類したファイル ・openrtm_runtime ・・・ runtime に分類するファイル ・openrtm_examples ・・・ examples に分類するファイル
- これら4つのディレクトリを、msiファイルを作成する環境の 0work ディレクトリ下へコピーする
- ソースビルドしているVM環境(Jenkinsノード)からは自分のPCは見えないので、msi作成スクリプトのバックアップ先である
nas(\\nas-openrtp\Public\OpenRTM-aist-1.1.1-installer\0work)経由でコピーしている。
- 0work下には以下のディレクトリがあるので、該当する場所へコピーする
vc9_x86 vc10_x86 vc10_x86_64 vc11_x86 vc11_x86_64 vc12_x86 vc12_x86_64
例)ファイルをコピー後の状態> ls vc10_x86 ImageProcessing-win32-vc10 opencv_runtime openrtm_runtime opencv_common OpenCV2.4.9 OpenRTM-aist_vc10_x86 opencv_develop openrtm_develop opencv_rtcs openrtm_examples
3.wxsctrlファイルセット¶
ショートカット用の wxsctrl ファイルは openrtm_runtime, openrtm_examples 用に作られていて、0work ディレクトリ下にまとめて置いてある。
0work ├─ openrtm_runtime_wxsctrl ・・・openrtm_runtime用のwxsctrlファイル ├─ openrtm_examples_wxsctrl ・・・openrtm_examples用のwxsctrlファイル ├─ vc9_x86 ├─ vc10_x86 ├─ vc10_x86_64 ├─ vc11_x86 ├─ vc11_x86_64 ├─ vc12_x86 ├─ vc12_x86_64 ├─ copy-wxsctrl_openrtm-aist_C++.bat
openrtm_runtime_wxsctrl └── 1.1 ├── bin │ ├── OpenRTM_bin_dir.wxsctrl │ ├── rtc.conf.wxsctrl │ ├── rtcd.exe.wxsctrl │ └── rtm-naming.bat.wxsctrl └── RTM_ROOT_dir.wxsctrl
openrtm_examples_wxsctrl/ └── 1.1 └── examples └── C++ ├── Composite.exe.wxsctrl ├── ConfigSampleComp.exe.wxsctrl ├── ConsoleInComp.exe.wxsctrl ├── ConsoleOutComp.exe.wxsctrl ├── MyServiceConsumerComp.exe.wxsctrl ├── MyServiceProviderComp.exe.wxsctrl ├── rtc.conf.wxsctrl ├── SeqInComp.exe.wxsctrl └── SeqOutComp.exe.wxsctrl
これらのwxsctrlファイルは VCバージョン/アーキテクチャで共通で、copy-wxsctrl_openrtm-aist_C++.batスクリプトで一括コピーされるようになっている。
そのため、0workディレクトリ下の vc9_x86, vc10_x86, vc10_x86_64 ... vc12_x86_64 へのファイルコピーの終了後、引数無しで実行する。
> cd 0work > copy-wxsctrl_openrtm-aist_C++.bat
参考(2015/04/06現在のスクリプト):
copy-wxsctrl_openrtm-aist_C++.bat.pdf
4.マージモジュール作成¶
インストーラに含める下記5つのマージモジュール(.msm)を作成する- omniORB
- OpenCV
- OpenCV Example (ImageProcessing)
- OpenRTP
- OpenRTM-aist C++
マージモジュールを作成するスクリプトも、現時点で以下に置いてあるので、自分の環境へコピーして利用している。
\\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
omniORB¶
マージモジュールを作成するディレクトリは、omniORB_msm である。
- 32bit用ソースビルド:Jenkinsのジョブ(実行順)
- 50_omniORB_build_win32
- 51_omniORB_win32_publish
- 64bit用ソースビルド:Jenkinsのジョブ(実行順)
- 50_omniORB_build_win64
- 51_omniORB_win64_publish
- ビルド結果が以下に置かれているので、omniORB_msm ディレクトリ下にダウンロードする
http://openrtm.org/pub/omniORB/win32/omniORB-4.1.7/> cd omniORB_msm > ls : omniORB-4.1.7-win32-vc9-py27.zip omniORB-4.1.7-win32-vc10-py27.zip omniORB-4.1.7-win32-vc11-py27.zip omniORB-4.1.7-win32-vc12-py27.zip omniORB-4.1.7-win64-vc10-py27.zip omniORB-4.1.7-win64-vc11-py27.zip omniORB-4.1.7-win64-vc12-py27.zip
- マージモジュールを一括生成する build_msm.bat スクリプトを実行する
> type build_msm.bat call build_msm_vc.bat 9 call build_msm_vc.bat 10 call build_msm_vc.bat 11 call build_msm_vc.bat 12 > build_msm.bat
- 正常終了すると、MergeModules 下にmsmファイルが生成される
> cd MergeModules > ls omniORB_devel_win32_vc10.msm omniORB_devel_win64_vc11.msm omniORB_rt_win32_vc9.msm omniORB_devel_win32_vc11.msm omniORB_devel_win64_vc12.msm omniORB_rt_win64_vc10.msm omniORB_devel_win32_vc12.msm omniORB_rt_win32_vc10.msm omniORB_rt_win64_vc11.msm omniORB_devel_win32_vc9.msm omniORB_rt_win32_vc11.msm omniORB_rt_win64_vc12.msm omniORB_devel_win64_vc10.msm omniORB_rt_win32_vc12.msm
OpenCV¶
TBBを有効にしてビルドしたバイナリでマージモジュールを作成する。詳細は下記ドキュメント参照。
[[openrtm_cxx_installer:OpenCV2.4.9]]
OpenCV Example (ImageProcessing)¶
OpenCVのサンプルコンポーネント(ImageProcessingソース)のマージモジュールを作成する。詳細は下記ドキュメント参照。
OpenCV Example マージモジュール
OpenRTP¶
OpenRTP, RTSystemEditorRCP, JRE のマージモジュールを作成する。詳細は下記ドキュメント参照。
OpenRTP マージモジュール
OpenRTM-aist C++¶
マージモジュールを作成するディレクトリは、openrtm_msm である。
「1.ソースビルド」「2.ファイルコピー」「3.wxsctrlファイルセット」まで済んでいて、必要なファイルが 0work ディレクトリに置かれていれば msmファイルを作成できる。
- マージモジュールを一括生成する build_msm_all.bat スクリプトを実行する
> type build_msm_all.bat call build_msm_x86_vc9.bat call build_msm_x86_vc10.bat call build_msm_x86_vc11.bat call build_msm_x86_vc12.bat call build_msm_x86_64_vc10.bat call build_msm_x86_64_vc11.bat call build_msm_x86_64_vc12.bat > build_msm_all.bat
- 正常終了すると、MergeModules 下にmsmファイルが生成される
> cd MergeModules > ls openrtm111_develop_x86_64_vc10.msm openrtm111_examples_x86_vc10.msm openrtm111_develop_x86_64_vc11.msm openrtm111_examples_x86_vc11.msm openrtm111_develop_x86_64_vc12.msm openrtm111_examples_x86_vc12.msm openrtm111_develop_x86_vc10.msm openrtm111_examples_x86_vc9.msm openrtm111_develop_x86_vc11.msm openrtm111_runtime_x86_64_vc10.msm openrtm111_develop_x86_vc12.msm openrtm111_runtime_x86_64_vc11.msm openrtm111_develop_x86_vc9.msm openrtm111_runtime_x86_64_vc12.msm openrtm111_documents.msm openrtm111_runtime_x86_vc10.msm openrtm111_examples_x86_64_vc10.msm openrtm111_runtime_x86_vc11.msm openrtm111_examples_x86_64_vc11.msm openrtm111_runtime_x86_vc12.msm openrtm111_examples_x86_64_vc12.msm openrtm111_runtime_x86_vc9.msm
5.インストーラ作成¶
omniORB, OpenCV2.4.9, OpenCV Example, OpenRTP, OpenRTM-aist C++ の各マージモジュールを組合せてインストーラを作成する。
必要な msm ファイルが MergeModules ディレクトリに置かれていれば msiファイルを作成できる。
インストーラを作成するディレクトリは、OpenRTM-aist_msi である。
- インストーラを一括生成する build_msi_all.bat スクリプトを実行する
> type build_msi_all.bat call build_msi_x86_vc9.bat call build_msi_x86_vc10.bat call build_msi_x86_vc11.bat call build_msi_x86_vc12.bat call build_msi_x86_64_vc10.bat call build_msi_x86_64_vc11.bat call build_msi_x86_64_vc12.bat > build_msi_all.bat
- 正常終了すると、Msi 下にmsiファイルが生成される
> cd Msi > ls OpenRTM-aist-C++_1.1.1-RELEASE_x86_64_vc10.msi OpenRTM-aist-C++_1.1.1-RELEASE_x86_64_vc11.msi OpenRTM-aist-C++_1.1.1-RELEASE_x86_64_vc12.msi OpenRTM-aist-C++_1.1.1-RELEASE_x86_vc10.msi OpenRTM-aist-C++_1.1.1-RELEASE_x86_vc11.msi OpenRTM-aist-C++_1.1.1-RELEASE_x86_vc12.msi OpenRTM-aist-C++_1.1.1-RELEASE_x86_vc9.msi