Home » FireStorm Viewer

FireStorm Viewer


FireStorm Viewer のビルド環境の構築

http://wiki.phoenixviewer.com/doku.php?id=fs_compiling_firestorm_windows

・ソースコード
http://hg.phoenixviewer.com/phoenix-firestorm-lgpl/

FireStorm v4.1.1 のリビジョン(の先頭)は 0cae57abcb41 なので,以下のコマンドでソースコードをダウンロードする.
FireStorm v4.2.2 は 983962c3d00d
FireStorm v4.3.1 は d1723a46b247
FireStorm v4.4.0 は 74ea293f21f6 (rev.33720)  rev.33720は問題アリ 13c2058a91bb (rev.33812)
FireStorm v4.4.2 は ad5581d9b114
FireStorm v4.6.5 は 856dd3e83016
FireStorm v4.6.9 は fdf1fd7884cf

例)ダウンロード箇所が D:\ の場合
 C:\Users\admin> D:
 D:\> hg clone http://hg.phoenixviewer.com/phoenix-firestorm-lgpl/ phoenix-firestorm -u 0cae57abcb41

 

・FMOD
1. FireStorm の autobuild.xml では fmod(オーディオ関係のライブラリ) が自動的にダウンロードされないので,手動でダウンロードし,パッケージを構築する.

例)ダウンロード箇所が D:\ の場合
 C:\Users\admin> D:
 D:\> hg clone https://bitbucket.org/lindenlab/3p-fmod/  (4.4.2まで)
 D:\> cd 3p-fmod
 D:\3p-fmod> autobuild build --all
 D:\3p-fmod> autobuild package > fmod_info.txt
 D:\> hg clone https://bitbucket.org/NickyD/3p-fmodex
 D:\> cd 3p-fmodex
 D:\3p-fmodex> autobuild build --all
 D:\3p-fmodex> autobuild package > fmod_info.txt

 

2. 上記のコマンドが成功すれば,fmod_info.txt に fmodパッケージの情報が保存されるのでエディタで確認する.

例)
 packing fmod
 wrote  D:\3p-fmod\fmod-3.75-windows-20120719.tar.bz2
 md5    595a6e14043f4c86891625f17d748446

 

・環境の構築
1. phoenix-firestorm フォルダにあるソースコード付属の設定ファイル autobuild.xmlmy_autobuild.xml にコピーする.
2. my_autobuild.xml をエディタで開き,fmod ライブラリの設定箇所のWindows部分を前述の fmod_info.txt の情報で置き換える.
ファイルのパスの \ は / に直しても良いし,そのままでも良い.

例)my_autobuild.xml
  <key>windows</key>
  <map>
    <key>archive</key>
    <map>
      <key>hash</key>
      <string>595a6e14043f4c86891625f17d748446</string>   <-- ここを書き換える
      <key>url</key>                                          
      <string>file:///D:\3p-fmod\fmod-3.75-windows-20120719.tar.bz2</string>
      </map>
    <key>name</key>
    <string>windows</string>
  </map>

3. 次に,以下のコマンドで,VC++ 2010用のビルド環境を生成する.

4.1.1
 C:\Users\admin> D:
 D:\> cd phoenix-firestorm
 D:\phoenix-firestorm> set AUTOBUILD_CONFIG_FILE=my_autobuild.xml
 D:\phoenix-firestorm> autobuild configure -c ReleaseFS_open -- -DFMOD=TRUE
4.2.2/4.3.2
 D:\phoenix-firestorm> set AUTOBUILD_CONFIG_FILE=my_autobuild.xml
 D:\phoenix-firestorm> autobuild configure -c ReleaseFS_open -- -DFMOD=TRUE -DHAS_OPENSIM_SUPPORT=TRUE
4.4.0
 D:\phoenix-firestorm> set AUTOBUILD_CONFIG_FILE=my_autobuild.xml
 D:\phoenix-firestorm> autobuild configure -c ReleaseFS_open -- -DLL_TESTS:BOOL=FALSE -DFMOD:BOOL=TRUE -DOPENSIM:BOOL=ON
4.6.5
 D:\phoenix-firestorm> set AUTOBUILD_CONFIG_FILE=my_autobuild.xml
 D:\phoenix-firestorm> autobuild configure -c ReleaseFS_open -- -DLL_TESTS:BOOL=FALSE -DFMODEX:BOOL=ON -DOPENSIM:BOOL=ON

 



VC++ 2010 によるビルド(コンパイル)

・手順
1. atoubuild が正常に終了すると,トップのフォルダに build-vc100 というフォルダが生成される.
2. build-vc100 フォルダに移動し,ALL_BUILD.vcxproj をダブルクリックして VC++ 2010を起動する.
3. ソリューション構成を Release にする.
4. ソリューションエクスプローラーから firestorm-bin を選択し,ビルドメニューから 「firestorm-bin のビルド」 を選択してビルドを開始する.
5. ビルドエラーが発生した場合は,下記の注意事項を参照.なお殆どのエラーはワーニングレベルを下げる事によっても回避できる.
6. ビルドが成功すれば,build-vc100\newview\Release に ビューアが構築されるので確認する.
7. ビルドされたビューアはそのままでは起動しない.既にインストール済みの同じビューアのフォルダにコピーして起動するか,Releaseフォルダに以下の ファイルをコピーしてから起動する.

indra\newview\app_settings (上書き)
indra\newview\character
indra\newview\fonts
indra\newview\skins


 

・注意事項
1. もし 文字コードに対するワーニングとエラー:warning C4819, error C2220 が出た場合は,該当ファイルをエディタで開いて UTF-8(BOM付き)で保存し直す.
2. 特に collada の1.4-domのヘッダファイルはどのビューアでもエラーが発生するので,問題のあるファイルをUTF-8(BOM付き)で保存し直したものを以下に載せる .ダウンロード・解凍後,解凍フォルダの packagesbuild-vc100\packages に上書きしてからビルドを行う. ダウンロードマネージャが旨く動かない場合はこちら → http://www.metaverse.jp.net/wp/wp-content/uploads/2013/08/packages-collada-1.4-dom.zip

3. dom のファイルの他に,v4.1.1 で文字コードのエラーを起こすファイルは以下の通りである.

indra\newview\chatbar_as_cmdline.cpp
indra\newview\chatbar_as_cmdline.h
indra\newview\fsareasearch.cpp
indra\newview\fsareasearch.h
indra\newview\fsdata.h
indra\newview\fslslpreproc.cpp
indra\newview\fslslpreproc.h
indra\newview\llpanelpermissions.cpp


4. QuickTime SDK\CIncludes\GNUCompatibility\stdint.h と build-vc100\packages\include\boost\cstdi​nt.hpp がコンフリクトを起こした場合は,どちらかのファイルを書き換える.以下に QuickTime SDK の stdint.h の書き換え例を示す(赤字の部分を追加).

#ifndef BOOST_CSTDINT_HPP
typedef short int_fast16_t;
typedef unsigned short uint_fast16_t;
#endif
.................
.................
#ifndef INT8_C
#define INT8_C(val) (INT_LEAST8_MAX-INT_LEAST8_MAX+(val))
#define INT16_C(val) (INT_LEAST16_MAX-INT_LEAST16_MAX+(val))
#define INT32_C(val) (INT_LEAST32_MAX-INT_LEAST32_MAX+(val))
#define INT64_C(val) (INT_LEAST64_MAX-INT_LEAST64_MAX+(val))

#define UINT8_C(val) (UINT_LEAST8_MAX-UINT_LEAST8_MAX+(val))
#define UINT16_C(val) (UINT_LEAST16_MAX-UINT_LEAST16_MAX+(val))
#define UINT32_C(val) (UINT_LEAST32_MAX-UINT_LEAST32_MAX+(val))
#define UINT64_C(val) (UINT_LEAST64_MAX-UINT_LEAST64_MAX+(val))
#endif

/* 7.18.4.2  Macros for greatest-width integer constants */ 
#ifndef INTMAX_C
#define INTMAX_C(val) (INTMAX_MAX-INTMAX_MAX+(val))
#define UINTMAX_C(val) (UINTMAX_MAX-UINTMAX_MAX+(val))
#endif

 

コメントを残す

登録 ログイン