艦メモのビルド方法(Windows編)

艦これ専用ブラウザの艦メモのビルド方法です。
説明は、Qt 5.2.1のVS2012 32bit向けで行います。


■用意するもの
Qt 5.2.1(VS2012)
Visual Studio 2012(ExpressでOK)
Git for Windows
Active Perl
Twitterのコンシュマーキーとシークレット
インストールするとgitとperlのパスはシステム設定されるはずです。
Twitterのコンシュマーキーとシークレットは各自で用意してください。


■Visual Studio使う時の準備
以下のショートカットがスタートメニューに追加されているので、これでコマンドプロンプトを開きます。
「Qt 5.2.1 32-bit for Desktop (MSVC 2012)」
パスなどを通すために以下のバッチファイルを実行
> "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat" x86
64bitの時は、x86_amd64


■Twitter4QMLのビルド
艦メモはTwitter4QMLというTwitterアクセス用のライブラリを使用しています。
これを使用するとQtアプリからTwitterへ非常に簡単にアクセスできます。
> git clone http://cr.qtquick.me/twitter4qml.git
> cd twitter4qml
> perl C:\Qt\Qt5.2.1\5.2.1\msvc2012\bin\syncqt.pl -version 0.1.0
> qmake
> nmake
> nmake install
nmake installするとQtのインストールフォルダにdllやヘッダファイルがコピーされるので他の標準のライブラリのように使用できます。


■艦メモのソースの入手
Twitterのコンシュマーキーとシークレットは間違えてコミットしたりしないように別ディレクトリにしてます。
twitterinfo.hに各自で入手した情報を記入してください。
> git clone https://github.com/ioriayane/KanmusuMemory.git
> mkdir KanmusuMemoryTwitter
> copy KanmusuMemory\twitterinfo_sample.h KanmusuMemoryTwitter\twitterinfo.h


■艦メモのビルド
これ以降は、Qt CreatorでもコマンドプロンプトからでもOKです。
Qt Creatorの場合は、KanmusuMemory.proを開いてください。
プロジェクトの構成を行います。デフォルトで表示される内容でOKです。
 kanmusumemory-20130826-buildsetting.PNG

あとは、ビルドして実行です。

■日本語化(とりあえず表示)
ビルドして実行するとメニューなどが英語です。(シャドウビルドをOffにしている人は日本語で表示されているはずです。)
ベースは英語で作って日本語リソースを追加するがAndroidアプリ作った時の教訓なので継続してます。
(英語はひたすら怪しいですけどね)
シャドウビルドでデバッグ中も日本語にしたいときは、
 KanmusuMemory\i18n\qt_ja_JP.qm
を以下の場所に配置します。(長ったらしいフォルダ名は適宜読み替えてください)
 build-KanmusuMemory-Desktop_Qt_5_2_1_MSVC2012_32bit-Debug\debug\KanmusuMemory.exe
 build-KanmusuMemory-Desktop_Qt_5_2_1_MSVC2012_32bit-Debug\i18n\qt_ja_JP.qm
Qt Creatorからの実行時のカレントディレクトリは実行ファイルのあるdebugとかreleaseフォルダではないので注意です。

■日本語化(中身を作る)
コードをいじって文言を追加したときに日本語の情報を作成する方法です。
もしリポジトリへPull requestをするつもりの方はリテラルの文字列に日本語を使わないでください。
Windows環境で化けます。謎でもいいので必ず英語で書いてください。(コメントは日本語でOK)
多言語対応するときソース上では文字列を以下の関数でマーキングします。
C++ : tr()
QML : qsTr()
さて、ソースに文言を追加したときはコマンドラインから以下のバッチファイルを実行します。
これ使ってね「Qt 5.2.1 32-bit for Desktop (MSVC 2012)」
> scripts\translate.bat
Scanning directory '.'...
Updating 'i18n/qt_ja_JP.ts'...
Found 157 source text(s) (1 new and 156 already existing)
以上のような感じで結果が出力されます。
その後、スタートメニューから「Linguist」を起動して「i18n\qt_ja_JP.ts」を開きます。
ツールの細かい使い方は省きます。(「QML(Qt)でマルチランゲージに対応する」この記事の下の方に簡単な使い方紹介してます。)
Linguistで「リリース」を実行するとqt_ja_JP.pmが更新されるのでコピーします。


■デプロイ
配布用パッケージの作り方です。
OpenSSLをビルドします。ビルド方法は「OpenSSLをWindowsでビルド(32bit/64bit)
ビルド後のファイルを「KanmusuMemory」フォルダを基準に以下の構成にします。
..\ssl_dll\x86\libeay32.dll
..\ssl_dll\x86\ssleay32.dll
..\ssl_dll\x64\libeay32.dll
..\ssl_dll\x64\ssleay32.dll
以下のスクリプトでビルドします。
>scripts\deploywin.bat x86
64bitの時は、x64

配布に必要なdllなど、その他のコンパイラの事情などは書籍の「Qt QuickではじめるクロスプラットフォームUIプログラミング」でも解説しています。


■作業につかれたら(広告)
艦これグッツで癒やされて下さい