セカンドライフビューワ改造への道 - 開発環境構築編
この記事はセカンドライフ技術系アドベントカレンダー2018向けの記事です。
セカンドライフ技術系 Advent Calendar 2018 - Adventar
最近C++ができるようになってきたので今回はセカンドライフビューワの改造に挑戦。まずはVisualStudioで開発環境を整えるところまでやっていきます。ちなみに今は64bit版のビューワもありますが、とりあえず32bit版を改造します。
もろもろインストール
少し情報が古いですが、Visual Studio 2013 Viewer Builds - Second Life Wikiを参考にすると、色々インストールする必要があるみたいです。
- Microsoft Visual Studio
- DirectX SDK
- CMake
- Cygwin
- Python
- Mercurial
- Autobuild(リンデン製のビルドツール)
- NSIS(インストーラを作るなら必要、今回は入れない)
あまり、環境を汚したくなかったので仮想マシン上で開発していくことにします。以下のリンクから有効期限付きの評価版Windows10のVMがダウンロードできます。
Windows 10 仮想マシンをダウンロードする - Windows アプリ開発
このVMには最初からVisualStudio2017、Windows Subsystem for Linuxがインストールされています。VMを立ち上げたら、まずは色々インストールしていきましょう。
Visual Studio 2013
VMにはVisualStudio2017が入っているのですが、なぜかビルドが通らず・・。ここで2,3日費やした後、2017はアンインストールしWikiの説明にあるVisualStudio2013をインストールしたらあっさりビルドできました。2013は、無料のVisual Studio Dev Essentialsプログラムに参加した後、以下のリンクからダウンロードできました。
以前の Visual Studio ソフトウェアのダウンロード | Visual Studio - Visual Studio
DirectX SDK
以下のリンクからインストーラをダウンロードし、管理者権限で実行。HeaderとLib以外は不要なのでチェックをはずします。
Download DirectX Software Development Kit from Official Microsoft Download Center
CMake
以下のリンクからインストーラをダウンロード。32bit版でないといけないので注意です。インストールオプションで"Add CMake to the system PATH for all users"を選択します。
Cygwin
Windows Subsystem for Linuxが入っているので不要かと思ったのですが、ビルド時にパスをCygwin向けに変換しているところがあって、やっぱり駄目でした。Cygwinは以下のリンクからダウンロード。こちらは64bit版を選択します。インストーラを管理者権限で実行し、パッケージ選択画面では、「Devel/patch」を追加します。
Python
実はVMには最初からPython3が入っているのですが、ビルドに使用するのは2系のようなのでPython3はアンインストールし、Python2の最新を入れました。こちらは32bit版でないといけないので注意です。インストールオプションでは"Add python.exe to Path"を"Will be installed on local hard drive"に設定します。
Mercurial
ビューワのソースコードはBitbacketで管理されているのでMercurialで取得します。コマンドラインでhgが使えればいいので、TortoiseHgは不要です。
Autobuild
AutobuildはPythonで書かれています。Pythonのパッケージ管理ツールpipを使ってインストールします。Windowsのコマンドプロンプトで以下を入力すればOKです。
pip install hg+http://bitbucket.org/lindenlab/autobuild-1.1#egg=autobuild
ビルド変数の設定
ここからは、Cygwinコンソール上での作業になります。さて、ビューワのソースコードとは別にビルド変数を設定するツールが用意されています。
lindenlab / viewer-build-variables — Bitbucket
上記リンクからツールをダウンロードして解凍し、その中にある「variables」ファイルのパスを環境変数に設定します。Cygwin形式ではなくWindows形式のパスで指定する必要があることに注意。ここで結構ハマりました・・・。
export AUTOBUILD_VARIABLES_FILE="C:\Users\user\dev\lindenlab-viewer-build-variables\variables"
ビューワのビルド
作業ディレクトリに移動して、以下のコマンドでビューワのソースコードを取得します。
hg clone https://bitbucket.org/lindenlab/viewer-release
Cloneが終わったらトップフォルダに移動し、autobuildで環境変数の設定をします。
cd viewer-release eval "$(autobuild source_environment)"
次はautobuildでコンフィグレーションを実行します。これが完了すると、ソリューションファイルが作成されます。「RelWithDebInfoOS」はビルド構成です。Debugビルドはうまく動かないみたいなのでこれにしました。「32」は32bitの指定です。
autobuild configure -c RelWithDebInfoOS -A 32
これでビルドの準備が整いました。作成されたソリューションファイルでプロジェクトを開いてビルドするか、もしくは以下のコマンドでビルドできます。
autobuild build --no-configure -c RelWithDebInfo -A 32
これで開発環境の構築は完了です。ハマりまくってまだ環境構築しかできてないので実際の改造はこれからやります( ̄□  ̄ ||