ソースコードからのビルドとインストール (MacOS X編)

コレオノイドはMacOS Xでも利用することが可能です。 ただし現在のところは、Lionのみが当方でビルドと動作を確認できているMacOS Xのバージョンになります。

MacOS Xでのビルドとインストールは、Ubuntu Linuxの場合と共通する部分も多いため、本ドキュメントではMacOS Xで異なる部分を中心に、ビルド・インストール手順の例を解説します。 ソースコードからのビルドとインストール (Ubuntu Linux編) についても併せて参照するようにしてください。

Xcode のインストール

MacOS Xでビルドを行う場合、コンパイラなどの開発ツール一式をインストールするため、Appleが提供している "Xcode" というアプリケーションをインストールします。これは MacOS Xのユーザーであれば、アップルストアから無料でダウンロードしてインストールすることが可能です。詳しくは Xcode の解説をあたってください。

MacPorts のインストール

MacOS Xは標準では Ubuntu のようなパッケージシステムは備えていないようですが、ユーザによって開発されているパッケージシステムとパッケージ群がいくつかあります。

本ドキュメントでは、その中から "MacPorts" と呼ばれるパッケージシステムの利用について紹介します。当方で試したところ、このシステムで依存ツール・ライブラリの多くをインストールすることが出来ました。

The MacPorts Project より、MacPorts をダウンロードしてインストールしてください。

MacPortsによるパッケージのインストール

MacPortsを用いて、

  • CMake
  • Boost
  • Eigen 3
  • libyaml

をインストールします。

$ sudo port install cmake boost eigen3 libyaml

とします。

また、ODEプラグインやOpenHRPプラグインを利用したい場合は、それぞれ

  • Open Dynamics Engine
  • omniORB

もインストールしておく必要があります。それぞれ、

$ sudo port install ode
$ sudo port install omniORB

でインストールできます。

Qtのインストール

Qtをインストールします。Qt は MacPorts でもインストール出来るようなのですが、当方で試したのは、`Qt公式サイト `<http://qt.nokia.com/>`_ より配布されている "Qt libraries for Mac" のインストーラで、これを用いてQtのインストールを行いました。

OpenSceneGraphのインストール

OpenSceneGraphについても、MacPortsにパッケージがあるのですが、Lion上でこれを試したところ途中でエラーが出てしまい、インストール出来ませんでした。そこで OpenSceneGraphのページ からバージョン 3.0.1 のソースを取得してコンパイルを試みたのですが、これも途中でエラーが出てしまい、コンパイル出来ませんでした。どうも、Macの新しい環境への対応が十分でないようです。

仕方ないので開発版のソースを Subversion で取得し、これを用いたところ無事コンパイルが通りました。開発版ソースの取得に関しては このページ に説明があります。

MacPortsでSubversionをインストールし、

$ sudo port subversion

適当なディレクトリで

$ svn checkout http://www.openscenegraph.org/svn/osg/OpenSceneGraph/trunk OpenSceneGraph

を実行して、ソースを取得します。

後は OpenSceneGraph のマニュアルに従って、ビルドとインストールを行なってください。インストール先の lib にパスが通っていない場合、環境変数 DYLD_LIBRARY_PATH に lib へのパスを追加しておきます。

ビルド

CMake によるビルド設定については、上記の手順に従う場合、OpenSceneGraph は自動で検出されませんので、 OSG_DIR にインストール先を設定します。

後は問題なくビルドできるかと思います。

インストールと実行

Ubuntuと同様に、ビルドしたコレオノイドの実行ファイル一式はそのまま実行することが可能です。

一方で、make install でインストールした先のプログラムを実行する際には、現在のところ共有ライブラリパスの手動設定が必要になります。インストール先の "lib" と "lib/choreonoid-1.2" について、環境変数 DYLD_LIBRARY_PATH に追加しておきます。この設定を行なっておかないと、プラグインを読み込むことが出来ず、うまく動作しません。

この設定は面倒ですので、改善法が分かり次第対応したく思っています。要は共有ライブラリのリンク先を相対パスで指定できればよく、MacOS Xの場合でもリンク時に "@loader_path" という記述を用いることで実現できるようなのですが、CMake上でこれをうまく実現する方法が分かっていません。これについて何かご存知のことがありましたら、メーリングリストで教えていただけるとうれしいです。

Qt のスタイルについては、デフォルトで MacOS X の標準GUIと同様のものとなっています。これも良いのですが、ツールバーのアイコンが大きくなってしまったりして、無駄が多い気もします。これについて、例えば、

$ bin/choreonoid -style Cleanlooks

といったように、-style オプションを使うことで他のスタイルに切り替えることができます。この例のように Cleanlooks にすると、Ubuntuの場合と同様のスタイルになります。

Balancerプラグインのコピー

MacOS X については、ソースアーカイブの "proprietary/BalancePlugin/libCnoidBalancerPlugin.dylib" が BalancerPlugin のバイナリになります。これをビルド(インストール)先の "lib/choreonoid-1.2/ 以下にコピーしてください。このバイナリもLionでコンパイルしたもので、同等の環境であれば動作すると思われます。