No.7
cmakeでfbx importer的なソースをビルドする環境が出来上がりました!
肝心のインポータはまだ実装中です。
(というかmacでの変換対象ファイルへのパス通しに苦戦してます…)
CMakeLists.txtのとりあえずビルドとおる版
https://gist.github.com/bundai223/5238322
悩んだとことしては、
まずプラットフォームの区別(IF(APPLE)などの部分)
UNIX、WIN32とすぐ想像つくけどmac os xがAPPLEとなっているところ
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 StudioとMakefileは簡単に設定できましたが
Xcodeが一日多くかかってしまいました。
今回いろいろわかったので今後CMakeでプロジェクト管理していきたいです。
現状での問題点は、
・CMakeLists.txtを一つで済ませるとXcode上でソースツリーのフォルダ分けをしてくれない。
恐らくCMakeLists.txtを階層分けすれば解決しそうだけど管理面倒くさい
なんか楽な方法ないか?
というところです。
これを使ってFBXインポータ・コンバータを作成していきます。
(gistの記事への埋め込みはどうしたらいいんでしょうか?そのうち調べる。)