思いつくままを綴る雑記帳

Blenderのビルドに関して

(・Ω・)ノ チワー!!
今回は、Blenderのビルドをした時にBlenderのバイナリに
格納されるビルド情報について・・少し書きます。

BlenderのHelpメニューのSystem Infoを選択するとBlenderの
ビルド情報が内部ファイルに書き出されますが、ここにビルド
された時の指定オプションや日時、使用されたソースのリビジョン
なども書かれています。

このBuidInfo情報は基本的にはSconsやMake等でビルドされた時に
スクリプトに書かれた方法で取得されてビルド時に格納されます。

その中でリビジョン番号は
blender/build_files/scons/tools/Blender.pyというファイルの
290行目辺りにある次の1行で行っています。

build_rev = os.popen('svnversion').read()[:-1] # remove \n

これはsubversionというソフトのコマンドを起動して
管理しているリポジトリから情報を取得しているんです。

使用しているソフトのバージョンによって多少戻される値に
違いはあると思います。
戻される値はstdoutに出力された文字列になっています。

もし使っているsubversionソフトがTortoiseSVNだったら
この行を変更して、TortoiseSVNのリポジトリ情報取得用の
コマンドを起動するように変更すればいいわけです。

猫さんはTortoiseSVNでソース管理をしているので
次のように変更してあります。

rev_buf = ''

・・
・・

rev_buf = '{0}'.format(string.split(os.popen('SubWCRev.exe ./').read()[1:-1])[6:7]) # remove \n
build_rev = rev_buf[2:len(rev_buf)-2]

TortoiseSVNのSubWCRev.exeというコマンドはリポジトリ情報を
こんな形式で返します。

SubWCRev: 'C:\TestBlender\blender\'
Last committed at revision 32832
Mixed revision range 32130:32832
Local modifications found

この文字列から最大のリビジョン番号のところを抽出しています。

以前はmsvc C++2008のみでビルドしていましたが、ビルドした
Blender.exeのサイズが1Mほど大きくなってしまうので最近は
sconsとmsvcC++2008のライブラリでビルドしています。

vcだとBuidInfoに必要な情報を吐き出せないので
この方がいいですね。


スポンサーサイト

コメント

コメントの投稿

URL
コメント

パスワード
秘密
管理者にだけ表示を許可する

トラックバック

トラックバックURL : http://perfectcat.blog101.fc2.com/tb.php/41-41645f0e
<< BlenderビルドSVN32935 | TOP | BlenderビルドSVN32832 >>