2010年12月4日土曜日

blender - Blender2.5をvs2005でビルド(win)

自分含めて何となくみんな気づいていると思いますが、
最近やたらCMakeを採用しているオープンソースソフトウェアが多いです。
Blenderも例外ではなく、CMakeがサポートされていています。
Blenderは、scons、CMake、その他ビルド方法がありますが、VSならCMake一押しです。

CMakeを使うと、VSのプロジェクト/ソリューションファイルが生成され、それを普通にIDEで開いて、デバッグビルドできます。(ステップ実行とかも普通に出来ます)
さらに、多数のライブラリを使用しているBlenderですが、ライブラリのON/OFFを、かなり簡単に切り替えられます。

そんなわけで、CMakeを使って、VSのプロジェクトファイルを生成し、ビルドしてみました。



以下、超手抜き説明

1. CMakeで、プロジェクト/ソリューションファイルを生成するとこまで
http://blog.mikepan.com/build-blender-2-5-a-visual-guide/
ここのページの通りにやります。

2. VSでソリューションファイルを開き、ビルドします

3. includeできません、の場合は、ディレクトリ階層ミスって無いか確かめてください
間違っても、プロジェクトファイルに絶対パスで追記するなどやってはいけません

4. GHOST_SystemWin32.cppや、wm_operators.cなどでエラー

ファイルの頭に、ビルドしているPCのwindowsのバージョンをdefineして見てください。

// vistaの場合
#define WINVER 0x0600
#define _WIN32_WINNT 0x0600

// 7の場合
#define WINVER 0x0601
#define _WIN32_WINNT 0x0601

5. openexrでエラー
6. ~.libが破損しています

公式から落としてきてライブラリをビルドしなおせば多分直りますが、
openexrとtiff.libは、とりあえず開発中に使わないし、
libsamplerate.libとかいうのはオーディオ関係で使わないので、
無効にしました。特に後者はwin用にビルドするのはキツそうでした。


無効にする方法

無効にするときですが、

1. まず、ALL_BUILDプロジェクトに入っている、CMakeLists.txtを開きます

2. 上のほうにONとかOFFとか書いてあるので、エラー出てたライブラリを探し、OFFにします


OPTION(WITH_IMAGE_OPENEXR "Enable OpenEXR Support (http://www.openexr.com)" OFF)
OPTION(WITH_IMAGE_TIFF "Enable LibTIFF Support" OFF)
OPTION(WITH_SAMPLERATE "Enable samplerate conversion" OFF)


3. ビルドすると、外部でファイルが変更されたので再読み込みするか聞いてくるので、再読み込み

これで影響があったプロジェクトファイルが再生成され、再読み込みされます。たぶん。

4. ビルドすると、エラーが出るので、エラーが出たプロジェクトのプロパティの、プリプロセッサの、プリプロセッサの定義から、OFFにしたライブラリのスイッチ(WITH_TIFFだとか)を削除

5. ビルド

成功





所要時間としては、自分の場合、途中libsamplerateをビルドしようとしてたりしてハマってたので、
5時間くらいかかりましたorz

無事デバッグ/リリースビルド/実行できたので、あとはsvn updateのときにCMakeLists.txtに気をつけるくらいで何とかなると嬉しい

0 件のコメント: