Cinderやばい(複数の意味で)

boost.ネタ帳を見ていたらCinderというのがあって気になってググったら結構面白そうなアーティスティック制作系のライブラリのようです。インタラクティブ性も含んでいたりします。入門は以下。なんですがこれMacの話です。
クリエイティブなC++ライブラリ "Cinder" の紹介 | Preferred Research
Windowsの話がないので身振り手振りでやってみたら大変なことになりました。話は上記サイトにあるようにTinderBoxというツールを用いて作成します。Cinder Versionとか聞かれるのはCinderのルートディレクトリ設定すればいいでしょう。これで後は指定したディレクトリに指定名でプロジェクトを生成してくれます。しかもソリューションファイル&ソース付きのひな形で、です。なんと素晴らしい。
問題はこれから、以下のような問題が発生しました。

  1. ソリューションファイルの定義が同じドライブ内のどこかにあることを想定している(追加の*ディレクトリパスがそういう仕様になってる)
  2. NOMINMAXがグローバルに定義されていることを前提としている(もしくはWin32APIの悪しきMIN,MAXマクロを考慮してない)
  3. デバッグ版ライブラリのデバッグ情報(pdbファイルはどこへ行った?)
  4. Boostもバイナリ付きで添付されているがバージョンが1.44.0(追加のインクルードからboostを除外すれば大丈夫です(たぶん)

とまあ、いろいろ危ないです。下の2つはまあ無視できるとして、上2つはコンパイルすらできません、大問題です。手動で書き換えるとなるとプロジェクトを生成するたびに必要です。*1
という訳でTinderBoxが生成するデフォルトのソリューションファイル(正確にはvcxproj)ファイルを書き換えましょう。CinderのルートをCinderとして、Cinder/tools/Templates/BasicApp/OpenGL/vc10ディレクトリに_TBOX_PREFIX_.vcxprojファイルがあります。この名前すらもう置き換えられる前提の名前ですね。このファイルをテキストエディタで開いて編集します。結構単純な作業で、_TBOX_WIN_CINDER_PATH_という名前のプレフィックスとなってしまっている ../ を消すだけです。これで同じドライブでなくとも問題なくパスが有効になります。追加ディレクトリにboostとか書かれてる場合はそれはCinderに含まれているBoost.1.44.0への追加パスなので消しても大丈夫なようです。なのでBoost.1.45.0以上の人はそうしましょう。ああそうでした。プロパティにNOMINMAXも追加しておきましょう。どうせないとビルドできない状況に追い込まれます。

これでビルドが通れば終わりです。お疲れ様でした。warningは放っておくか、Cinder/vc10でCinderのライブラリ自体がビルドできるようなのでやってください。(どうもQuickTimeSDK的なのも必要としているようです面倒なので放置しました。)

*1:もちろん、同じドライブ内のどこかに生成すれば良いんですが