kusano f6307e
# ビルド手順(Windows)
kusano f6307e
kusano f6307e
Visual Studio 2013とQt 5.5でビルドできることを確認しています。
kusano f6307e
kusano f6307e
## 必要なソフトウェアの導入
kusano f6307e
kusano f6307e
### Visual Studio Express 2013 for Windows Desktop
kusano f6307e
- https://www.microsoft.com/ja-jp/download/details.aspx?id=44914
kusano f6307e
- Qt 5.5がVisual Studio 2015に対応していないため、2013を使う必要があります
kusano f6307e
- Express版はターゲットプラットフォームごとにバージョンが分かれています。「for Windows」ではなく「for Windows Desktop」を使用します
kusano f6307e
- Community版やProfessional版などでも構いません
kusano f6307e
kusano f6307e
### CMake
kusano f6307e
- https://cmake.org/download/
kusano f6307e
- Visual Studio用のプロジェクトファイルの生成に使用します
kusano f6307e
kusano f6307e
## ソースコードの取得
kusano f6307e
- 本リポジトリをcloneします
kusano f6307e
- 以下の説明中の`$opentoonz`は、本リポジトリのrootを表します
kusano f6307e
- Visual Studio 2013はBOMの無いUTF-8のソースコードを正しく認識できず、改行コードがLFで、1行コメントの末尾が日本語の場合に、改行が無視されて次の行もコメントとして扱われる問題があるため、Gitに下記の設定をして改行コードをCRLFに変換すると良いでしょう
kusano f6307e
  - `git config core.safecrlf true`
kusano f6307e
kusano f6307e
## 必要なライブラリのインストール
kusano f6307e
サイズの大きいライブラリはこのリポジトリには含めていないので、別途インストールする必要があります。
kusano f6307e
kusano f6307e
### Qt
kusano f6307e
- http://download.qt.io/official_releases/qt/5.5/5.5.1/
kusano f6307e
- クロスプラットフォームのGUIフレームワークです
kusano f6307e
- 現在はQt 5.6には対応していません
kusano f6307e
- 上記のURLから以下のファイルをダウンロードして適当なフォルダにインストールします
kusano f6307e
  - qt-opensource-windows-x86-msvc2013_64-5.5.1.exe
kusano f6307e
kusano f6307e
### boost
kusano f6307e
- http://www.boost.org/users/history/version_1_55_0.html
kusano f6307e
- 上記のURLからboost_1_55_0.zipをダウンロードして解凍し、boost_1_55_0を`$opentoonz/thirdparty/boost`にコピーします
kusano f6307e
- Visual Studio 2013用の下記のパッチを当てます
kusano f6307e
  - https://svn.boost.org/trac/boost/attachment/ticket/9369/vc12_fix_has_member_function_callable_with.patch
kusano f6307e
kusano f6307e
## ビルド
kusano f6307e
kusano f6307e
### CMakeでVisual Studioのプロジェクトを生成する
kusano f6307e
1. CMakeを立ち上げる
kusano f6307e
2. Where is the source codeに`$opentoonz/toonz/sources`を指定する
kusano f6307e
3. Where to build the binariesに`$opentoonz/toonz/build`を指定する
kusano f6307e
  - 他の場所でも構いません
kusano f6307e
  - チェックアウトしたフォルダ内に作成する場合は、buildから開始するフォルダ名にするとgitから無視されます
kusano f6307e
  - ビルド先を変更した場合は、以下の説明を適宜読み替えてください
kusano f6307e
4. Configureをクリックして、Visual Studio 12 2013 Win64を選択します
kusano f6307e
5. Qtのインストール先がデフォルトではない場合、`Specify QT_PATH properly`というエラーが表示されるので、`QT_DIR`にQt5をインストールしたフォルダ内の`msvc2013_64`のパスを指定します
kusano f6307e
6. Generateをクリック
kusano f6307e
  - CMakeLists.txtに変更があった場合は、ビルド時に自動的に処理が走るので、以降はCMakeを直接使用する必要はありません
kusano f6307e
kusano f6307e
## ライブラリの設定
kusano f6307e
下記のファイルをコピーします
kusano f6307e
  - `$opentoonz/thirdparty/LibJPEG/jpeg-9/jconfig.vc` → `$opentoonz/thirdparty/LibJPEG/jpeg-9/jconfig.h`
kusano f6307e
  - `$opentoonz/thirdparty/tiff-4.0.3/libtiff/tif_config.vc.h` → `$opentoonz/thirdparty/tiff-4.0.3/libtiff/tif_config.h`
kusano f6307e
  - `$opentoonz/thirdparty/tiff-4.0.3/libtiff/tiffconf.vc.h` → `$opentoonz/thirdparty/tiff-4.0.3/libtiff/tiffconf.h`
kusano f6307e
  - `$opentoonz/thirdparty/libpng-1.6.21/scripts/pnglibconf.h.prebuilt` → `$opentoonz/thirdparty/libpng-1.6.21/pnglibconf.h`
kusano f6307e
kusano f6307e
## ビルド
kusano f6307e
1. `$opentoonz/toonz/build/OpenToonz.sln`を開いてRelease構成を選択してビルドします
kusano f6307e
2. `$opentoonz/toonz/build/Release`にファイルが生成されます
kusano f6307e
kusano f6307e
## 実行
kusano f6307e
### 実行可能ファイルなどの配置
kusano f6307e
1. `$oepntoonz/toonz/build/Release`の中身を適当なフォルダにコピーします
kusano f6307e
2. `OpenToonz_1.0.exe`のパスを引数にしてQtに付属の`windeployqt.exe`を実行します
kusano f6307e
  - 必要なQtのライブラリなどが`OpenToonz_1.0.exe`と同じフォルダに集められます
kusano f6307e
3. 下記のファイルを`OpenToonz_1.0.exe`と同じフォルダにコピーします
kusano f6307e
  - `$opentoonz/thirdparty/glut/3.7.6/lib/glut64.dll`
kusano f6307e
  - `$opentoonz/thirdparty/glew/glew-1.9.0/bin/64bit/glew32.dll`
kusano f6307e
4. バイナリ版のOpenToonzのインストール先にある`srv`フォルダを`OpenToonz_1.0.exe`と同じフォルダにコピーします
kusano f6307e
  - `srv`が無くてもOpenToonzは動作しますが、mov形式などに対応できません
kusano f6307e
  - `srv`内のファイルの生成方法は後述します
kusano f6307e
kusano f6307e
### Stuffフォルダの作成
kusano f6307e
既にバイナリ版のOpenToonzをインストールしている場合、この手順とレジストリキーの作成と同様の処理が行われているため、これらの手順は不要です。
kusano f6307e
kusano f6307e
1. `$opentoonz/stuff`を適当なフォルダにコピーします
kusano f6307e
kusano f6307e
### レジストリキーの作成
kusano f6307e
1. レジストリエディタで下記のキーを作成し、Stuffフォルダの作成でコピーしたstuffフォルダのパスを記載します
kusano f6307e
  - HKEY_LOCAL_MACHINE\SOFTWARE\OpenToonz\OpenToonz\1.0\TOONZROOT
kusano f6307e
kusano f6307e
### 実行
kusano f6307e
OpenToonz_1.0.exeを実行して動作すれば成功です。おめでとうございます。
kusano f6307e
kusano f6307e
## srvフォルダ内のファイルの生成
kusano f6307e
OpenToonzはQuickTime SDKを用いてmov形式などへ対応しています。QuickTime SDKは32ビット版しかないため、`t32bitsrv.exe`という32ビット版の実行可能ファイルにQuickTime SDKを組み込み、64ビット版のOpenToonzは`t32bitsrv.exe`を経由してQuickTime SDKの機能を使用しています。以下の手順では`t32bitsrv.exe`などと合わせて、32ビット版のOpenToonzも生成されます。
kusano f6307e
kusano f6307e
### Qt
kusano f6307e
- http://download.qt.io/official_releases/qt/5.5/5.5.1/
kusano f6307e
- 上記のURLから以下のファイルをダウンロードして適当なフォルダにインストールします
kusano f6307e
  - qt-opensource-windows-x86-msvc2013-5.5.1.exe
kusano f6307e
kusano f6307e
### QuickTime SDK
kusano f6307e
1. Appleの開発者登録をして下記のURLから`QuickTime 7.3 SDK for Windows.zip`をダウンロードします
kusano f6307e
  - https://developer.apple.com/downloads/?q=quicktime
kusano f6307e
2. QuickTime SDKをインストールして、`C:\Program Files (x86)\QuickTime SDK`の中身を`thirdparty/quicktime/QT73SDK`の中にコピーします
kusano f6307e
kusano f6307e
### CMakeでVisual Studioの32ビット版のプロジェクトを生成する
kusano f6307e
- 64ビット版と同様の手順で、次のようにフォルダ名とターゲットを読み替えます
kusano f6307e
  - `$opentoonz/toonz/build` → `$opentoonz/toonz/build32`
kusano f6307e
  - Visual Studio 12 2013 Win64 → Visual Studio 12 2013
kusano f6307e
- `QT_DIR`には32ビット版のQtのパスを指定します
kusano f6307e
kusano f6307e
### 32ビット版のビルド
kusano f6307e
1. `$opentoonz/toonz/build32/OpenToonz.sln`を開いてビルドします
kusano f6307e
kusano f6307e
### srvフォルダの配置
kusano f6307e
- 64ビット版のsrvフォルダの中に下記のファイルをコピーします
kusano f6307e
  - `$opentoonz/toonz/build32/Release`から
kusano f6307e
    - t32bitsrv.exe
kusano f6307e
    - image.dll
kusano f6307e
    - tnzcore.dll
kusano f6307e
  - Qtの32ビット版のインストール先から
kusano f6307e
    - Qt5Core.dll
kusano f6307e
    - Qt5Network.dll
kusano f6307e
  - `$opentoonz/thirdparty/glut/3.7.6/lib/glut32.dll`
kusano f6307e
kusano f6307e
## 翻訳ファイルの生成
kusano f6307e
Qtの翻訳ファイルは、ソースコードから.tsファイルを生成して、.tsファイルに対して翻訳作業を行い、.tsファイルから.qmファイルを生成します。Visual Studioソリューション中の`translation_`から始まるプロジェクトに対して「`translation_???`のみをビルド」を実行すると、.tsファイルと.qmファイルの生成が行われます。これらのプロジェクトはソリューションのビルドではビルドされないようになっています。