Blender

第1回 Blenderソースコードリーディング 準備:Blenderをビルドする

酔っ払った夜中のツイートの流れでウッカリ全世界が熱望してきた“第1回 Blenderソースコードリーディング”というのをやることになったので、まずは準備として Blender のビルド環境を用意したメモを残します。

参加者の皆さんは当日コードのチェックアウトをしているとそれだけで一日おわってしまうので、この記事を参考にひとまずビルドして Blender が実行できるようになるまでは環境を整えておくと当日ダッシュで濃~い話ができるんじゃないかなと思います。

今回はまず入り口からということで比較的内部のドキュメントがまとまっている 2.6 のコードを参考にするために環境を構築してみました。Windows7/VS2008 で用意しています。

コードの取得

clone

https://developer.blender.org/diffusion/B/

存在するドキュメントは 2.6 の時のものなので、この頃のコードを用いて環境を構築する。リポジトリを見ると 2.6 の次に Bug fix 版として 2.6a があったので、そちらを使用することにする。

git clone git://git.blender.org/blender.git
cd blender
git submodule update --init --recursive
git submodule foreach git checkout master
git submodule foreach git pull --rebase origin master

リリース時につけられる tag もここで確認できるので、必要なバージョンのコードを抽出する際は参考にする。

コードのチェックアウトはものすごく時間がかかるので注意。

git.exe clone      --progress -v  "git://git.blender.org/blender.git" "D:\chiyama\Documents\Projects\OpenSource\blender\blender"

Cloning into 'D:\chiyama\Documents\Projects\OpenSource\blender\blender'...
remote: Counting objects: 797630, done.
Receiving objects: 100% (797630/797630), 249.43 MiB | 78.00 KiB/s, done.
Resolving deltas: 100% (698733/698733), done.
remote: Compressing objects: 100% (98387/98387), done.
remote: Total 797630 (delta 698733), reused 794130 (delta 695726)
Checking connectivity... done.
Checking out files: 100% (7749/7749), done.

Success (10762719 ms @ 2014/10/13 16:25:46)

約三時間(!!)

Blender 2.6a のコードを取得

clone 後、v2.6a タグのついた部分をチェックアウト。

https://developer.blender.org/diffusion/B/browse/master/;v2.60a

※今回は clone してから checkout してしまったので二度手間になってしまった。 git clone -b (branch name) というのがあるようなのでそちらを使った方が楽かも。

外部ライブラリを取得する

http://wiki.blender.org/index.php/Dev:Doc/Building_Blender/Windows/msvc/CMake

VS2008 を使ってビルドするので以下を実行

svn checkout https://svn.blender.org/svnroot/bf-blender/trunk/lib/win64 ../lib/win64

チェックアウト先は (リポジトリ)/../lib/win64 と、リポジトリと並列な場所にする必要がある

最新のものでは Python のバージョンが異なるので、これも当時のものを使用する必要がある。リポジトリを見ると Rev.60366 が該当するリビジョンらしい(ので、チェックアウト時にリビジョンを指定する方がよい)。

ビルド

ソースコードから Blender をビルドする

http://wiki.blender.org/index.php/Dev:JA/Doc/Building_Blender

ビルドシステムは SCons と CMake が選べる。私は CMake を選択。
あと、Building Blender on Windowsを見ると SCons から CMake に 移行してるっぽい?

プロジェクト生成

CMake GUI で VS2008 用プロジェクトを生成。バイナリ出力先は (リポジトリ)/../build に設定。インストール先も指定できるが、2.6a のタグ付きのところから持ってきたせいか、これは使用されないっぽい。

WITH_INTERNATIONAL がオンになっているとLibIntl for Windowsが必要っぽい。本質とは関係ないしメンドイので今回はオフ。

最後のリンクでも OpenEXR 関係のライブラリが無いと言われてコケるので、プロジェクトの設定を修正。CMakeLists.txt のここ?

if(WITH_IMAGE_OPENEXR)
        if(MSVC90)
                set(MSVC_LIB _vs2008)
                set(MSVC_INC)
        elseif(MSVC10)
                set(MSVC_LIB _vs2010)
                set(MSVC_INC _vs2010)
        else()
                set(MSVC_LIB msvc)
                set(MSVC_INC)
        endif()
        set(OPENEXR ${LIBDIR}/openexr)

ここのバージョン判別部分をゴッソリ削って

if(WITH_IMAGE_OPENEXR)
        set(OPENEXR ${LIBDIR}/openexr)

こうする。

コード修正

OpenEXR のパス周りで幾つかエラーが出るので修正する。

3>..\..\..\..\..\..\blender\source\blender\imbuf\intern\openexr\openexr_api.cpp(66) : fatal error C1083: include ファイルを開けません。'half.h': No such file or directory
>..\..\..\..\..\..\blender\source\blender\imbuf\intern\openexr\openexr_api.cpp(67) : fatal error C1083: include ファイルを開けません。'IlmImf/ImfVersion.h': No such file or directory

何故か IlmImf ディレクトリが指定されているので、 OpenEXR にかきかえる

インストール

INSTALL プロジェクトがあるので、これをビルドするとインストールされる。
インストール後、 blender.exe を実行して Blender が起動すれば成功。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です