No.7

cmakeでfbx importer的なソースをビルドする環境が出来上がりました!
肝心のインポータはまだ実装中です。
(というかmacでの変換対象ファイルへのパス通しに苦戦してます…)


CMakeLists.txtのとりあえずビルドとおる版
https://gist.github.com/bundai223/5238322


悩んだとことしては、
まずプラットフォームの区別(IF(APPLE)などの部分)
 UNIXWIN32とすぐ想像つくけどmac os xAPPLEとなっているところ
 CでもAPPLEとか使っているのでなんとか連想できました。


次に変数の使用に関して
 環境変数は、参照する際には$ENV{VALUE_NAME}と記述する
 変数は、SET(VALUE_NAME value)で設定し、UNIX形式(${VALUE_NAME})で参照する。


IF()〜ENDIF()には同じ条件を記述すれば問題ない。(おそらく空でもいい?)
 IF( HOGE ) 〜 ELSEIF( PIYO ) 〜 ENDIF( PIYO )と書いたら
 エラーが出てしまいました。


LINK_DIRECTORIESで設定したパスに勝手に$(Configuration)みたいなのがつく。
 Debugビルド時は/path/to/lib/Debugみたいなターゲット名ディレクトリ的なもの。
 使用するライブラリ(今回はFBXSDK)にそんなディレクトリがないため
 Xcode上でエラーになりました。
 VisualStudioではおかしいですが問題なく参照できるパスも通り、エラーは出ませんでした。
 
 TARGET_LINK_LIBRARIESにライブラリ名とパスもすべて通すようにして対処できました。



OSXでビルドする際にCarbonをリンクする必要がある。
 Carbonが必要なのはsdkのサンプルを確認して分かっていたが、
 Frameworkに慣れていない & 自動で解決してほしかったがFIND_LIBRARYが思った通りに動かせなかった。
 mdfind Carbon | grep frameworkして拾ったパスをリンクしたら解決しました。


Visual StudioMakefileは簡単に設定できましたが
Xcodeが一日多くかかってしまいました。
今回いろいろわかったので今後CMakeでプロジェクト管理していきたいです。
現状での問題点は、
・CMakeLists.txtを一つで済ませるとXcode上でソースツリーのフォルダ分けをしてくれない。
  恐らくCMakeLists.txtを階層分けすれば解決しそうだけど管理面倒くさい
  なんか楽な方法ないか?

というところです。
これを使ってFBXインポータ・コンバータを作成していきます。

(gistの記事への埋め込みはどうしたらいいんでしょうか?そのうち調べる。)