というわけで付属のExtra/Serializeを頑張ってコンパイル(.blendや.bulletを読み書きできるような気がした)したが、使い方がさっぱりわからない上、修正しないとコンパイルが通らない、ドキュメントもな〜い!という糞仕様なので「もしかして自分で1から作ったほうが早いんじゃね?」と思いCollada Domの導入に挑戦。
そしたら余計ひどかった。。。
まず、Macでやると勝手にframeworkをつくるんだけど、そのframeworkをいつもどおり「-framework」で指定してもヘッダファイルがnot found、しかも、colladaのヘッダからcolladaのヘッダを見つけることができない! テストぐらいしろよ、、、
そこで自分でCMakeファイルを書いてコンパイルしようとしたら、、、
まぁ紆余曲折は続きで書くとして、とりあえず頑張ってMacでCollada DOM 2.2のコンパイルができるようになったので、途中経過だがGoogle codeにおいとく。
CMakeLists.txtだけでもよかったんだけど、自分で分からなくなっちゃうので全部のせとく。
注1:Collada DOM用のCMakeLists.txtの例であって、Collada DOMのことがわかってるわけではありません。APIやドキュメント、バグなどについてはColladaの公式を御覧ください。
注2:ライセンスなどはCollada DOMのとminizipのライセンスに準じます。
[使い方]
とりあえず、依存しているライブラリを入れます。
Mac Portsを使っていれる例
%port install boost +universal %port install xml2 +universal %port install pcre +universal %port install zlib +universalつぎに、collada-dom-2.2/minizipをコンパイルします。(minizipはportでは入らないので、collada-dom/dom/external-libs/minizipを若干修正したものを使います...)
%cd minizip %cmake -DCMAKE_OSX_ARCHITECTURES='i386' . %makeインストール先の設定とかしてないのでmake installはやらない。
そのあとでcollada-dom-2.2をコンパイルします。
%cd .. %cmake -DCMAKE_OSX_ARCHITECTURES='i386' . %makeこれで「libcollada14dom.dylib」ができます。
「libcollada15dom.dylib」が欲しい人はcollada-dom-2.2/CMakeLists.txtの修正が必要です。
あと依存するライブラリをMac ports以外で入れた人もcollada-dom-2.2/CMakeLists.txtとcollada-dom-2.2/minizip/CMakeLists.txtの修正が必要です。
[メモ]
minizipはzlibの一部らしい。ただし、Macでコンパイルするのは若干面倒。「#ifdef unix」とかされてるので、、、
Collada DOMをコンパイルするときはdaeと1.4/dom(もしくは1.5/dom)のソースコードも一緒にコンパイルしないといけない。互いに依存しているので。。。
Collada DOMをコンパイルするときは利用するXMLパーサによって違うフラグを付けないといけない。xml2を使うときは「-DDOM_INCLUDE_LIBXML」、TinyXMLを使うときは「-DDOM_INCLUDE_TINYXML」をコンパイルすること。
「libcollada14dom.dylib」を使ったプログラムをコンパイルするときは「-lboost_filesystem -lboost_system」してBoostのライブラリもリンクしないといけない。
0 comments:
コメントを投稿