[Windows/vs2019/CMake]Blenderをビルドしてみた。

何番煎じかよってぐらい、ググると記事は出てきたのですが、いざやってみると、なかなか書いている通りにできなくって。
なので、とりあえず、デバッグモードのビルドに成功した方法を残しておきます。

## ざっくり手順
ソースコードをGit取得 → ライブラリをsvn取得 → cmakeでプロジェクト生成 → vs2019でビルド → 実行

## 前提
 - visual studio 2019インストール済
 - cmakeインストール済
 - Gitインストール済(TortoiseGitもついでに)
 - SVNインストール済(TortoiseSvnもついでに)
 - 開発環境は下記フォルダに作成する。
   D:\Products\blender-git

## blenderソースコードの取得
コマンドプロンプトから、下記コマンドで、blenderソースコード一式を取得します。

```コマンドプロンプト.
mkdir D:\Products\blender-git
D:
cd D:\Products\blender-git
git clone git://git.blender.org/blender.git
```
※"D:\Products\blender-git"の部分は適宜読み替えてください。
※blenderソースコード取得は、すごい時間がかかるので、並行してblenderライブラリの取得もやっておきます。


## blenderライブラリの取得
別にコマンドプロンプトを立ち上げて、下記コマンドで、blenderライブラリ一式を取得。
※blenderビルドには、別途ビルド済blenderライブラリ一式も必要。svnで管理されているので取得する。

```コマンドプロンプト.
D:
cd D:\Products\blender-git
svn checkout https://svn.blender.org/svnroot/bf-blender/trunk/lib/win64_vc15 lib/win64_vc15
```
※blenderライブラリも取得にすごい時間がかかります。

## ビルド用フォルダを作成/移動する
```コマンドプロンプト.
mkdir build
cd build
```

## cmakeで、Visual Studio2019のプロジェクト生成する。
今回はデバッグ用のプロジェクトを作成したいので、Debugフラグをつけて作成。

```コマンドプロンプト.
cmake -G "Visual Studio 16 2019" -T host=x64 -DCMAKE_BUILD_TYPE=Debug ../blender
```
下記の表示がでたらOK。

```コマンドプロンプト.
-- Configuring done
-- Generating done
-- Build files have been written to: D:/Products/blender-git/blender/build
```



## Visual Studio起動
D:\Products\blender-git\blender\buildの配下に、Blender.slnができているはずなので、
Blender.slnをダブルクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723966/78976d64-236c-db15-b81f-de7d0b35ac8e.png)


## ビルド
##### INSTALLのプロジェクトをスタートアッププロジェクトに設定
ソリューションエクスプローラ → 直下のCMakePredenfinedtargetsを開く → INSTALLのプロジェクトを右クリック → スタートアッププロジェクトに設定。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723966/2c206be2-7b8a-8873-7066-ddd46c8a4513.png)


##### INSTALLのプロジェクトをリビルド
ソリューションエクスプローラ → 直下のCMakePredenfinedtargetsを開く → INSTALLのプロジェクトを右クリック → リビルド
※ALL_BUILDを選んでしまうとメンドイことになる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723966/3e9f9d45-60e0-21e2-ff93-4a15d654cad4.png)
※ALL_BUILDは、全ビルドしてくれるが、実行に必要なdllとかをexeのフォルダにコピーまではしてくれないので、起動時、"dllがないよ"って怒られて起動できない。
※その時は、D:\Products\blender-git\blender\buildフォルダを削除して、CMakeからやり直す。

##### ビルドエラーの対応
僕の場合は、ここで下記のビルドエラーとなりました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723966/bdfbbd3a-ccd1-9b66-cc64-5f99db530c70.png)
その場合の修正方法です。

```D:\Products\blender-git\blender\build\source\creator\cmake_install.cmake(48)
file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/3.0/datafiles/locale" TYPE FILE MESSAGE_LAZY FILES "D:/Products/blender-git/blender/release/datafiles/locale/languages")
上記の行の"D:/Products/blender-git/blender/release/datafiles/locale/languages"の部分の"/languages"を削除する。
変更前: "D:/Products/blender-git/blender/release/datafiles/locale/languages"
変更後: "D:/Products/blender-git/blender/release/datafiles/locale"
```
修正して、再度ビルド。(リビルドしちゃったらまた修正する必要があるから気を付けて！！)
※ここに解決策がありました。 : https://developer.blender.org/T37760

## 起動
デバッグの開始(F5)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723966/365f6fcd-88e2-acd9-779f-f28887543c86.png)


##### 起動失敗の対応
だけど、僕の場合は、
"プログラム"D:\..../blender/build/x64/Debug\INSTALL"を開始できません。"で実行できませんでした。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723966/00ae5979-b315-f67d-9739-39f1c5426a6f.png)

→そりゃそうだ。"D:\..../blender/build/x64/Debug\INSTALL"には、exeがない。

ソリューションエクスプローラ → 直下のCMakePredenfinedtargetsを開く → INSTALLのプロジェクトを右クリック → プロパティを選択

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723966/26f1b941-97e8-08ee-026d-b64fb839c5b3.png)

構成のプロパティのデバッグを選んで、コマンドに直接、下記を入力。
D:\Products\blender-git\build\bin\Debug\blender.exe
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723966/acba4400-9c83-28d6-da74-fe6aa365079e.png)

で、実行。
ついでに、ブレークポイントも設定しておく。
※多分このmain関数が一番最初に動く関数と思う。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723966/6a29b034-4e62-9b76-50c2-dbc105f7258e.png)


 →キタ。でけた。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723966/95c4ff94-72d9-3bae-343d-fddebc027626.png)
期待通り、ブレークポイントで止まった。

F5で続行。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723966/fa4c3d3e-3950-b2fe-7325-da1bfb0ff089.png)

起動することが確認できた。