Viewer 2 Microsoft Windows Builds/ja

== プログラミング環境の整備 ==
LL のオープンソースのソースコードがベースとなっているビューアを初めてコンパイルする際に、１度だけ必要となる手順です。
=== 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) で取得してください。
=== 必須の開発ツールのインストール ===
* 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 の設定ステップ で、実行可能ファイル ディレクトリ セクションに次の１行を追加する必要があります。
*:* 64 ビットシステムの場合、%ProgramFiles(x86)%\NSIS\Unicode
*:* 32 ビットシステムの場合、%ProgramFiles%\NSIS\Unicode
* Notepad++
** コーディング基準 に沿ったプログラムを作成するために、これを使う必要があります。特に、本当に限られた状況でなければ、DOS の改行コードの入ったファイルをチェックインしてはいけません。 How to avoid DOS line endings in Windows tools を参照してください。
* Mercurial_Tools (特に推奨)
** ここの手順に沿って作業すると、Mercurial のインストールのときに作成した %USERPROFILE%\Mercurial.ini を更新していくことになります。
=== Autobuild のインストール ===
* Getting Autobuild に従って、Autobuild をインストールします。
* 以下の環境変数を追加します。
:
名前 	値 	説明
AUTOBUILD_VSVER 	100 	Autobuild が古いバージョンのコンパイラを使用(しようと)しないようにします。
AUTOBUILD_INSTALLABLE_CACHE	存在するディレクトリ(例 E:\SSfiles\Libraries) 	(任意) コンフィギュレーションプロセスの間にダウンロードされたライブラリファイルを Windows の %TEMP% ディレクトリに入れたくない場合
* 一般的に、コントロールパネルから システム を選択し、システムの詳細設定 を選択して、環境変数 をクリックすると、環境変数の編集ができます。
* Windows XP の場合の詳細な手順説明は Microsoft サポート情報 を参照してください。
=== VC2010 の設定 ===
コンパイルを全て Autobuild で行うことにした場合でも、VC2010 にある程度の設定は必要です。
*IDE を起動します。
*ツール > オプション > プロジェクトおよびソリューション > ビルド/実行 と進み、並行にビルドするプロジェクトの最大数 を 1 に設定します。
パスを大量に設定する必要があります。
* 何らかの既存プロジェクトを開くか、新しいプロジェクトを作成します。
* 表示 ( > その他のウィンドウ ) > プロパティ マネージャー を選択します。 プロパティマネージャが左側にパネル状に表示されます。
:* (VC Express のみ) メニューにプロパティマネージャーが表示されていない場合は、ツール > 設定 > 上級者用の設定 を有効にしてからやり直します。
* プロパティマネージャーで、Release | Win32 ノードをクリックします。ノードが開き、ユーザープロパティシートが表示されます。
100px
サンプル画像(英語版)
* 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://bitbucket.org/lindenlab/viewer-release
先のステップを実施してから幾らか時が経ち、こんどは特定の Jira に関する変更／作業をしたくなったとしましょう。クリーンなローカルリポジトリを、最後の同期以降に viewer-release にコミットされた全ての変更で更新します。
* CD で viewer-release に移動します。
* 以下のコマンドを実行します。
 hg pull -u
* viewer-release の１個上に上がります。
* 以下のコマンドを実行します。
 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
=== 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#希望するコンフィギュレーションをビル を参照してください。
=== ビルドスイッチの調整 ===
コンフィギュレーションプロセスの動作を変更するスイッチが数多くあります。各スイッチの名前の後に型名を指定し、その後に設定する値を書きます。
* FMOD (bool) には Fmod パッケージをビューアに含めるかを指定します。これを動作させるためには、#Fmod 方法 1 (Autobuild を使用) に書かれているステップを事前に実施しなければなりません。
* LL_TESTS (bool) にはテストをコンパイル・実行するかを指定します。たくさんありますので、何かのテストを実行する必要があるのでない限り、除外することをお奨めします。
* PACKAGE (bool) にはパッケージ化ステップを実行するかを指定します。これを動作させるためには、#必須でない開発ツールのインストール にある NSIS がインストールされていなければなりません。
例: 
 autobuild configure --config-file my_autobuild.xml -c ReleaseOS -- -DLL_TESTS:BOOL=FALSE -DPACKAGE:BOOL=FALSE -DFMOD:BOOL=TRUE
== ビューアのコンパイル ==
=== Autobuild を利用したビューアのコンパイル ===
Autobuild (推奨／サポートされている方法) か VS IDE でビューアのコンパイルができます。
Autobuild を使ってコンパイルする場合は、設定済みの コマンドプロンプトを使うと、確実にできます。コンピュータの設定によりますが、このコマンドプロンプトを立ち上げる方法には２種類ありますので、ご自分の環境で動くほうを見つけてください。
*方法 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
=== IDE でのコンパイル ===
Autobuild のコンフィギュレーションステップで、ソースツリーのルートディレクトリに \build-vc100 ディレクトリが作成されます。その中に SecondLife.sln ソリューションファイルがあります。
IDE を起動して、このソリューションを開きます。
ツールバーにあるドロップダウンリストでビルド方式を Debug から変更して Release か RelWithDebInfo にするとよいでしょう。
ビルド方式を変更するサンプル画像(英語版)
プラットフォームツールセットの設定を変更する必要があります。
* ソリューションエクスプローラーで全てのプロジェクトを選択します。
** 最初のプロジェクトを選択し、リストの最後までスクロールして、-を押しながら最後のプロジェクトをクリックします。
* 選択したリストを右クリックします。
* プロパティ > 構成プロパティ > 全般 > プラットフォーム ツールセット
* この値を Windows7.1SDK に変更します。
* (Express でない場合 ) を押してコンパイラを起動します。
== ビルドしたてのビューアの起動 ==
=== デスクトップショートカットから実行 ===
* ドライブ名:\パス\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 ===
記述が変動しやすい性質の章であるため、訳出しません。原文を参照してください。
Category:Compiling viewer