Viewer 2 Microsoft Windows Builds/ja
メモ: この手順に沿って作業を行うと、まっさらな Windows XP/Vista/7 で実施する場合、おそらく待ち時間含めて6〜12時間、実際の作業に2〜6時間かかります。 |
プログラミング環境の整備
LL のオープンソースのソースコードがベースとなっているビューアを初めてコンパイルする際に、1度だけ必要となる手順です。
Visual Studio と SDK のインストール/更新
- Visual C++ 2010 Express (Web インストール) か Visual C++ 2010 Express (ISO) をインストールします。
- Windows SDK for Windows 7 and .NET Framework 4 (Web インストール) [注: インストールでエラーとならないように、Redistributable Package オプションはチェックを外してください] か Windows SDK for Windows 7 and .NET Framework 4 (ISO) をインストールします。
- Microsoft Visual C++ 2010 Redistributable Package がインストールされているか確認し、インストールされていればアンインストールします(x82/x64 両方)。
- DirectX SDK (June 2010) をインストールします。
- Direct X SDK をデフォルトの構成でインストールしてあれば、Microsoft Visual C++ 2010 Redistributable Package は一緒に入るはずです。
- Microsoft Update を実行し、更新するものがなくなるまで繰り返します。古いバージョンの Windows だと、6〜8回繰り返すことになる場合があります。
- Windows XP の場合、上のリンクを利用してください。その後、デフォルトの Windows Update ではなく Microsoft Update を使ってください。
- Windows Vista や Windows 7 の場合、上のリンクを使って Windows Update に Microsoft Update の機能をくっつけることができます。"Microsoft Update" はメニューに表示されませんので、デフォルトの Windows Update を使って Visual Studio を更新することになります。
- 更新の過程で、Microsoft Visual Studio 2010 Service Pack 1 がインストールされたか確認してください。インストールされていない場合、ここ (Web インストール) か ここ (ISO) で取得してください。
必須の開発ツールのインストール
メモ: 以下の手順の順番は関係ないはずです。 |
メモ: パッケージのインストーラで環境変数 PATH が更新されなかった場合は、手動で更新する必要があります。 |
- CMake (CMake のダウンロード)
- バージョンは 2.8.4 でなければなりません(または 2.8.x 以降)。
\bin
ディレクトリを PATH に追加します。
- Python (Standard Python または ActivePython)
- Version 2.7.1 だとビルドスクリプトと相性がいいです。
- Mercurial (TortoiseHg または Mercurial Hg)
%USERPROFILE%\Mercurial.ini
にファイルを作成し、Second Life での名前とメールアドレス(任意)を記入します。
[ui] username = John Doe <john@example.com>
- Cygwin (Cygwin のダウンロード)
- cygwin のセットアップユーティリティを実行する際、必ず unzip ("Archives" 配下)、bison、flex、patchutils (全て "devel" 配下)、curl ("Web" 配下) を選択してインストールしてください。これらはデフォルトではインストール対象になっていません。Cygwin Python と Mercurial はインストールしないでください。Cygwin シェルは全く使うことがありません。
- PATH の一番最後に
cygwin\bin
ディレクトリを加え、常にその位置を維持するようにしてください。
必須でない開発ツールのインストール
- Unicode NSIS (Nullsoft Scriptable Install System)
- これはパッケージインストーラで、
Second_Life_<version-code>_LindenDeveloper_Setup.exe
のビルドに使います。コンパイルしたビューアを配布したり、自分でインストールしたりしない限り必要ではありません。
- 下の VC2010 の設定ステップ で、実行可能ファイル ディレクトリ セクションに次の1行を追加する必要があります。
- 64 ビットシステムの場合、
%ProgramFiles(x86)%\NSIS\Unicode
- 32 ビットシステムの場合、
%ProgramFiles%\NSIS\Unicode
- 64 ビットシステムの場合、
- これはパッケージインストーラで、
- Notepad++
- コーディング基準 に沿ったプログラムを作成するために、これを使う必要があります。特に、本当に限られた状況でなければ、DOS の改行コードの入ったファイルをチェックインしてはいけません。 How to avoid DOS line endings in Windows tools を参照してください。
- Mercurial_Tools (特に推奨)
- ここの手順に沿って作業すると、Mercurial のインストールのときに作成した
%USERPROFILE%\Mercurial.ini
を更新していくことになります。
- ここの手順に沿って作業すると、Mercurial のインストールのときに作成した
Autobuild のインストール
- Getting Autobuild に従って、Autobuild をインストールします。
- 以下の環境変数を追加します。
名前 値 説明 AUTOBUILD_VSVER 100 Autobuild が古いバージョンのコンパイラを使用(しようと)しないようにします。 AUTOBUILD_INSTALLABLE_CACHE 存在するディレクトリ(例 E:\SSfiles\Libraries) (任意) コンフィギュレーションプロセスの間にダウンロードされたライブラリファイルを Windows の %TEMP% ディレクトリに入れたくない場合
- 一般的に、コントロールパネルから システム を選択し、システムの詳細設定 を選択して、環境変数 をクリックすると、環境変数の編集ができます。
- Windows XP の場合の詳細な手順説明は Microsoft サポート情報 を参照してください。
VC2010 の設定
コンパイルを全て Autobuild で行うことにした場合でも、VC2010 にある程度の設定は必要です。
メモ: 訳注:以下は全て日本語版での表記です。英語版での表記は原文を参照してください。 |
- IDE を起動します。
- ツール > オプション > プロジェクトおよびソリューション > ビルド/実行 と進み、並行にビルドするプロジェクトの最大数 を
1
に設定します。
メモ: 以下のステップは、Visual Studio のプロジェクトが開いた状態で進める必要があります。開いてあるプロジェクトは何でも構いません。というのも、プロジェクトを開いたときに共通で使用されるグローバル設定だけを変更するからです。開いてあるプロジェクトそのものは変更されません。 |
パスを大量に設定する必要があります。
- 何らかの既存プロジェクトを開くか、新しいプロジェクトを作成します。
- 表示 ( > その他のウィンドウ ) > プロパティ マネージャー を選択します。 プロパティマネージャが左側にパネル状に表示されます。
- (VC Express のみ) メニューにプロパティマネージャーが表示されていない場合は、ツール > 設定 > 上級者用の設定 を有効にしてからやり直します。
- プロパティマネージャーで、Release | Win32 ノードをクリックします。ノードが開き、ユーザープロパティシートが表示されます。
- Microsoft.Cpp.Win32.user をダブルクリックするか、右クリックしてプロパティを選択します。
- VC++ ディレクトリ を選択します。
ここで、ビルド環境が実際に動作する VC2010 ビルドシステムに引き込まれることになります。そしてここが、手をポキポキ鳴らしたり、髪の毛を引っこ抜いたり、拳で叩いたりするほどのフラストレーションが起きるところです。
- 実行可能ファイル ディレクトリ には次のように設定します。
$(ExecutablePath) $(DXSDK_DIR) C:¥cygwin¥bin $(SystemRoot)
32 ビットでの実行可能ファイルディレクトリのサンプル画像(英語版)
- インクルード ディレクトリ には次のように設定します。
$(WindowsSdkDir)include¥gl $(DXSDK_DIR)include
32 ビットでのインクルードディレクトリのサンプル画像(英語版)
- ライブラリ ディレクトリ には次のように設定します。
$(DXSDK_DIR)
32 ビットでのライブラリディレクトリのサンプル画像(英語版)
ソースコードツリーのセットアップ
ディレクトリ構成についてあらかじめ計画を立てておきましょう。変更したりパッチを当てたりする場合は、全ての変更/パッチについて、変更されないソースコードツリーのコピーをクローンしなければならなくなります。このため、自分で作ったものは全て専用のディレクトリに格納するようにしたほうがよいでしょう。
ソースコードツリーのコピーを取得するには、次のようにします。
- DOS のコマンドプロンプトを開きます。
- CD コマンドで、viewer-release をインストールしたいディレクトリに移動します。パスに空白が含まれないところにします。
- 以下のコマンドを実行します。
hg clone http://hg.secondlife.com/viewer-release
先のステップを実施してから幾らか時が経ち、こんどは特定の Jira に関する変更/作業をしたくなったとしましょう。クリーンなローカルリポジトリを、最後の同期以降に viewer-release にコミットされた全ての変更で更新します。
- CD で
viewer-release
に移動します。 - 以下のコマンドを実行します。
hg pull -u
viewer-release
の1個上に上がります。- 以下のコマンドを実行します。
hg clone viewer-release VWR-nnnnn
注: nnnnn
は jira の番号です。LL の jira に関する変更を行うのでなければ、任意の名前でクローンを作ることもできます。
サードパーティライブラリの準備
ビューアのビルドに必要なサードパーティライブラリのほとんどが、下のほうで説明するコンフィギュレーションステップの過程で、自動的にダウンロードされ、ソースツリーのビルドディレクトリにインストールされます。それでも、オープンソース開発者向けコンフィギュレーション (ReleaseOS、RelWithDebInfoOS、DebugOS) を使う際に、いくつかのライブラリを手動でセットアップする必要があります。
Fmod 方法 1 (Autobuild を使用)
3p-fmod リポジトリをインストールしたい場所に cd で移動し、以下のコマンドを実行します。
hg clone https://bitbucket.org/lindenlab/3p-fmod
作成した 3p-fmod
ディレクトリの中に cd で移動し、ビルドします。
autobuild build --all
結果をパッケージ化します。
autobuild package
Autobuild を表示されたファイル名とハッシュで書き換えます。viewer-release のクローンを作ったディレクトリに cd で移動し、以下のコマンドを実行します。
copy autobuild.xml my_autobuild.xml autobuild installables --config-file my_autobuild.xml edit fmod platform=windows hash=<hash> url=file:///<fmod-filespec>
例:
copy autobuild.xml my_autobuild.xml autobuild installables --config-file my_autobuild.xml edit fmod platform=windows hash=0f196f00e7dff49f22252efb68525658 url=file:///C:/3p-fmod/fmod-3.75-windows-20110531.tar.bz2
メモ: クローンしたリポジトリの中で、autobuild.xml をコピーして、コピーしたものを修正するという作業を自分が作った全てのリポジトリで行うのは大変ですが、これが 、autobuild.xml に対する変更を取り込み、変更した autobuild.xml を hg push で送信してしまうことを防ぐ、唯一の確実な方法です。 |
Fmod 方法 2 (ビルドスイッチを使用)
[要執筆]
ビューアのビルドコンフィギュレーション
ソースツリーのルートディレクトリ、おそらくクローンしたリポジトリ(例: C:\linden\VWR-12345\)で、以下のコマンドを実行します。
autobuild configure --config-file my_autobuild.xml -c [CONFIGURATION]
デフォルトの autobuild.xml を使いたい場合は、--config-file オプションをつけずに実行します(以降も同様)。
autobuild configure -c [CONFIGURATION]
[CONFIGURATION] には ReleaseOS, RelWithDebInfoOS or DebugOS のいずれかが入ります。Building the Viewer with Autobuild/ja#希望するコンフィギュレーションをビル を参照してください。
メモ: 純粋に自分のためにコンパイルするのでなければ、viewer-release で作業するのはあまりほめられたものではありません。 |
ビルドスイッチの調整
コンフィギュレーションプロセスの動作を変更するスイッチが数多くあります。各スイッチの名前の後に型名を指定し、その後に設定する値を書きます。
- FMOD (bool) には Fmod パッケージをビューアに含めるかを指定します。これを動作させるためには、#Fmod 方法 1 (Autobuild を使用) に書かれているステップを事前に実施しなければなりません。
- LL_TESTS (bool) にはテストをコンパイル・実行するかを指定します。たくさんありますので、何かのテストを実行する必要があるのでない限り、除外することをお奨めします。
- PACKAGE (bool) にはパッケージ化ステップを実行するかを指定します。これを動作させるためには、#必須でない開発ツールのインストール にある NSIS がインストールされていなければなりません。
メモ: OFF と NO は FALSE と同様です。他は全て TRUE と判定されます。 |
例:
autobuild configure --config-file my_autobuild.xml -c ReleaseOS -- -DLL_TESTS:BOOL=FALSE -DPACKAGE:BOOL=FALSE -DFMOD:BOOL=TRUE
ビューアのコンパイル
Autobuild を利用したビューアのコンパイル
Autobuild (推奨/サポートされている方法) か VS IDE でビューアのコンパイルができます。
Autobuild を使ってコンパイルする場合は、設定済みの コマンドプロンプトを使うと、確実にできます。コンピュータの設定によりますが、このコマンドプロンプトを立ち上げる方法には2種類ありますので、ご自分の環境で動くほうを見つけてください。
- 方法 1
- すべてのプログラム から Microsoft Windows SDK V7.1 プログラムメニューを選択します。
- Windows SDK 7.1 Command Prompt をクリックします。
- 方法 2
- すべてのプログラム から Microsoft Visual Studio 2010 プログラムメニューを選択します。
- Microsoft Visual Studio Command Prompt (2010) をクリックします。
- cd コマンドでソースツリーのルートディレクトリに入り、以下のコマンドを実行します。
autobuild build --config-file my_autobuild.xml -c [CONFIGURATION] --no-configure
便利なスイッチがいくつかありますので、コマンドはこのような感じになるかと思います。
autobuild configure --config-file my_autobuild.xml -c ReleaseOS -- -DLL_TESTS:BOOL=FALSE -DPACKAGE:BOOL=FALSE -DFMOD:BOOL=TRUE autobuild build --config-file my_autobuild.xml -c ReleaseOS --no-configure
メモ: Autobuild でコンフィギュレーションステップ(一度だけ必要)とビルドステップを一気に行ってしまうこともできます。私の経験上、別々に実行した方が分かりやすいですし、ちょっとした時間の節約にもなります。 |
メモ: warning LNK4099: PDB というメッセージが大量に出てきてもびっくりしないでください。 |
IDE でのコンパイル
Autobuild のコンフィギュレーションステップで、ソースツリーのルートディレクトリに \build-vc100
ディレクトリが作成されます。その中に SecondLife.sln
ソリューションファイルがあります。
IDE を起動して、このソリューションを開きます。
ツールバーにあるドロップダウンリストでビルド方式を Debug から変更して Release か RelWithDebInfo にするとよいでしょう。
プラットフォームツールセットの設定を変更する必要があります。
- ソリューションエクスプローラーで全てのプロジェクトを選択します。
- 最初のプロジェクトを選択し、リストの最後までスクロールして、Shift ⇧-を押しながら最後のプロジェクトをクリックします。
- 選択したリストを右クリックします。
- プロパティ > 構成プロパティ > 全般 > プラットフォーム ツールセット
- この値を
Windows7.1SDK
に変更します。
- F7 (Express でない場合 F6) を押してコンパイラを起動します。
ビルドしたてのビューアの起動
デスクトップショートカットから実行
ドライブ名:\パス\build-vc100\newview\Release\secondlife-bin.exe
のショートカットを作成します。
- ショートカットを右クリックします。
- プロパティ を選択します。
- 作業フォルダー に
ドライブ名:\パス\indra\newview
を設定します。
IDE での実行
- ソリューションエクスプローラーで secondlife-bin を右クリックします。
- スタートアップ プロジェクトに設定 します。
- プロパティ > 構成プロパティ > デバッグ に進みます。
- コマンド を
ドライブ名:\パス\build-vc100\newview\Release\secondlife-bin.exe
に設定します。 (Release
をビルドしようとしている構成、例えばRelWithDebInfo
に読み替えてください。) - 作業 ディレクトリ を
..\..\indra\newview
にします。
- コマンド を
問題の解決
解決策の調査
ここに記載された手順に沿って操作した結果、エラーに遭遇したり、問題が発生したときは、まず他の人が同じ問題を抱えたことがないか確認をお願いします。既知の解決策が存在することもあります。
こちらのリソースのどれかに解決策があるかもしれません。
- 原文の Talk ページ (役に立つ体験があれば投稿してください)
- 原文の下のほうにある問題一覧 (新しい問題がある場合は、こちらではなく上の Talk ページに追加してください)
- 以前の Talk ページ
- Common compilation problems (ちょっと古い)
- Issue tracker
助けの求め方
同じ問題に関する記述がまだなくても、誰かが知っている可能性がありますので、コミュニティーに 助けを求めてみましょう(英語)。
- OpenSource-Dev Mailing List (登録はこちら) に登録して、質問を投げてみましょう。
- 早く回答を得たいときは、#opensl on freenode にある、オープンソースビューアの一般的なディスカッションと開発作業のための IRC チャンネルに参加してみましょう。運がよければ、質問したときに、親切な人がオンラインになっていることがあります。
Common Issues/Bugs/Glitches And Solutions
記述が変動しやすい性質の章であるため、訳出しません。原文を参照してください。