OpenRTM / OpenRTP-aist

OpenRTP-aist: RT-Middleware and OMG RTC based component and system development tools implemented by AIST
Other
1 stars 6 forks source link

Builderでの独自IDL利用時に多重インクルードされる件について #157

Closed kenichi-ohara closed 4 years ago

kenichi-ohara commented 5 years ago

Describe the bug 独自IDL(IDL1)をインクルードする独自作成のIDL(IDL2)を用いる場合において,IDL2の中のデータ型だけでなく,IDL1にあるデータ型を用いるときに,RTC Builderで出力するidl/CMakeLists.txtの1行目で,以下の様に出力され,正常にcmakeが実行できない. 【例】 set(idls ${CMAKE_CURRENT_SOURCE_DIR}/IDL1.idl ${CMAKE_CURRENT_SOURCE_DIR}/IDL2.idl ${CMAKE_CURRENT_SOURCE_DIR}/IDL1.idl)

【再現方法】 下記のリポジトリにあるRTC.xmlおよびIDLファイルからソースコードの生成をすると,再現可能です.

https://github.com/rsdlab/SingleArUco

n-kawauchi commented 5 years ago

RELENG_1_2ブランチの最新ソース(1a9e78c)から生成したOpenRTPで動作を確認しました。(Windows環境) 示して頂いたサンプルの SingleArUco はデータポートで独自IDLを使っていますので、OpenRTPの「ウィンドウ」→「設定」→「RtcBuilder」でIDLファイルが置かれているディレクトリ(git cloneでソース取得)を指定後、OpenRTPを再起動して確認しました。 この結果、idl/CMakeLists.txtの1行目は以下と出力され、cmakeは通ります。

set(idls ${CMAKE_CURRENT_SOURCE_DIR}/ArUco.idl ${CMAKE_CURRENT_SOURCE_DIR}/Img.idl )

このOpenRTPは、OpenRTM-aist 1.2.1 RELEASE版にてリリース予定です。

ただし、作成した mySingleArUco プロジェクトを OpenRTM-aist 1.2.1 β版msi をインストールしている環境でビルドすると、エラーになりました。独自IDLであるImg.idlと、OpenRTMが提供しているCameraCommonInterface.idlで定義がかぶっているからです。

1.2.1版のLinux用debパッケージでも、CameraCommonInterfaceとMnipulatorCommon* のidlのインストール先はWindows環境と同様にBasicDataType.idlと同じディレクトリに変更となります。 関係ない情報でしたら、申し訳ございません。 よろしくお願いいたします。