Windows XP+VC++2005環境下でSecondlife Viewer 1.7.2.0 をコンパイルするためのメモ
個人的には何の面白さも見出せず「早く潰れな
なんでもないよ。
で、Secondlife Viewerがオプソなわけだけど、わけあってそいつを解析して改造することになったわけ。とりあえずコンパイルからなってことで、そのメモ。
2007.08.09追記:バージョンアップするごとにちょっとずつ手順が変わったりするので、Compiling the viewer (MSVS2005) - Second Life Wiki見てやったほうがいいよ。注意すべきはllimage2coj_vc8.projがないのでllimage2coj.projをかわりに使い、構成マネージャで構成を設定しとくこと。それ以外は全部書いてある
情報源
- http://wiki.spc.gr.jp/march/
- コンパイル方法解説(日本語)
- Compiling the viewer (MSVS2005) - Second Life Wiki
- オフィシャルの解説。今回はこれをなぞって作業している。
MS関係の依存ライブラリを落としてくる
- Platform SDK
- DirectX SDK
- とりあえず最新版(2007 june)を入れてみた。インストーラが大変重いよ!
platform sdkのほうはVC++にパスが設定されなかったので手動で設定。ツール→オプション→プロジェクトおよびソリューション→VC++ディレクトリ のライブラリおよびincludeのとこを設定。
Cygwinを入れる
http://www.cygwin.com/
flexとかbisonを使うのに必要。リンデンスクリプトの処理系をコンパイルするために使う。
なんかC:\cygwinきめうちになってるので、別の場所にインストールするときはあとでプロジェク設定を変更する必要がある。
インストール時にflex,bison,patchutilsを選択しておく。
ソースを落としてくる
https://wiki.secondlife.com/wiki/Source_archive
とりあえず最新版をおとしてくればいいんじゃないかな。Sourceのwindowsとartwork、Libsのwindowsを落として展開。
ソースの置き場のパスは、長すぎたら駄目だとかスペースや非ASCII文字が駄目だとかおきまりの制限がある。
libpng
どこにも言及がないんだけど、libpngのヘッダファイルが同梱されてない(ライブラリはついてる)。
libpngおとしてきて、png.hをpng12フォルダ以下に配置(これちょっとやばいかもしれない。pngconf.hの設定内容とコンパイル済みpng12.libが不整合起こしそうで)
VC++2005でプロジェクトを開く
展開先/indra/indra_complete/indra_complete_vc8.slnを開く。変換ウィザードが出たので変換。llimagej2coj_vc8.vcprojがないって文句言われる。llimagej2coj.vcprojはあるのであとでソリューションに追加する。そのままだとソリューションの構成でReleaseForDownloadのときの構成がReleaseNoOptになってるのでReleaseに変更。
コンパイル前にひとしごと
リンデンじゃVC++2003で開発してるらしくて、2005でコンパイルするためにはちょっとした作業が必要なんだってさ。
まず、testプロジェクトはうまく動かないらしいのでunload。
あと
If you do not plan to create a full download build, you can exclude the win_crash_logger and win_updater from newview's project dependencies and unload them also. But be careful with unloading these projects without removing them from the dependencies, because I have seen VS2005 act highly erratic while linking then project when I tried this.
らしいんだけどfull download buildってなんだ。とりあえず保留。
qucktimeライブラリを使いたくないのでllcommon/llpreprocessor.hのLL_QUICKTIME_ENABLEDを0に。構成“ReleaseForDownload”および“ReleaseNoOpt”において、newviewのプロジェクトプロパティ→リンカ→追加の依存ファイルからqtmlclient.libを除去。
cygwinのインストール場所がc:\cygwinじゃないときはプロジェクトlscript_compile_fbの設定を変更する必要がある。GUIでやる方法が分からなかったので、いったんソリューションを閉じてlscript_compile_fb_vc8.vcproj内のc:\cygwinという文字列を探して置換。
ぱいそん
07.07.20追記:1.8.0以降をコンパイルする場合にはPythonを入れる必要がある。
http://www.activestate.com/Products/ActivePython/?mp=1
“警告をエラーとして扱う”オプションが有効だとコンパイル失敗するプロジェクトがある。newviewとlscript_compileあたり解除しとく。
コンパイルする
newviewをスタートアッププロジェクトに設定しとく
構成“ReleaseNoOpt”がデバグ用、“ReleaesForDownload”がリリース用、らしい
で、とりあえずビルド開始。凄く時間が掛かる!
こんぱいるできたよ
ankhsvnでmyリポジトリにつっこんでとりあえず完了。