OBSをビルドしようとしたらコケた

# はじめに

誰でも一度くらいOBSのビルドをしてみたいと思ったことがあるはず　ない？　いやあるはずだ


本記事は `2021/10/18` 時点のものである　OBSは更新が盛んなので今回書いた内容では今後不足する場合がある　留意していただきたい
その際はこれを読みつつ参考程度にこの記事を見てほしい
https://github.com/obsproject/obs-studio/wiki/Install-Instructions



## で
OBSでプラグイン開発をしてみたくて環境を整えようとしたが、OBSの[ビルド手順](https://github.com/obsproject/obs-studio/wiki/Install-Instructions)に従ってやってみたら色々躓いたのでメモ


# 実行環境
Windows 10 Home 10.0.19042 N/A ビルド 19042

# 必要なもの
今回は`obs-studio 27.1.3 64bit`をビルドする
https://github.com/obsproject/obs-studio/releases/tag/27.1.3

ここに書いてあるやつ
https://github.com/obsproject/obs-studio/wiki/Install-Instructions#windows-build-directions
`開発パッケージ(dependencies2019.zip)`
`Qt5(Qt5.15.2 MSVC)`
`CEF Wrapper 3770 (x64, x86)`
`Cmake (3.16 or Higher)` 
`git`
`Visual Studio 2019 + Windows 10 SDK (minimum 10.0.20348.0). Latest SDK
`

## 開発パッケージ
依存関係のパッケージ
コレ https://obsproject.com/downloads/dependencies2019.zip

64bit版を適当な場所に展開しておく

## Qt5
コレ https://cdn-fastly.obsproject.com/downloads/Qt_5.15.2.7z の`msvc2019_64`を使う
64bit版を適当な場所に展開しておく

若しくは http://www.qt.io インストーラで5.15.2 MSVCをいれる
インストールした場合は`インストール先/qt/5.15.2/msvc2019_64`を使う

## CEF Wrapper
コレ https://cdn-fastly.obsproject.com/downloads/cef_binary_75.1.16+g16a67c4+chromium-75.0.3770.100_windows64_minimal.zip
適当な場所に展開しておく

CmakeとgitとVisual Studioは省略するが、今回Cmakeはcmake-guiを使うのでwindows用のインストール必須　
Visual StudioはWindows 10 SDK minimum 10.0.20348.0以上が最低でもインストール必須　OBSはCで書かれているのでもちろんC++もインストール必須


# やってみる
・取り敢えず最新のバージョンをclone


```
git clone --recursive https://github.com/obsproject/obs-studio.git --depth 1
```

ここで大事なのは`--recursive`にしていること GithubのCodeからのcloneだとsubmodulesが足りなくて後ですごい怒られる

OBSのリポジトリを更新する時は

```
git pull --recurse-submodules
```

・Cmake-guiを開く
`Where is the source code`にCloneしたobs-studioを指定
`Where to build the binaries`にビルド先を指定　今回は`obs-studio/build`にした
そうしたら`Configure`を押す
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2170587/77aca037-9d42-aa6c-def0-c3702a874229.png)
設定はこうする

`Finish`を押すとエラーが出る
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2170587/edff8d4f-2da8-32ca-832d-2d96b9bcfe10.png)

エラーログを見ると`Qt`, `dependencies(開発パッケージ)`, `OBSバージョン`を指定しろとのことなので指定してあげる



`DepsPath`に`開発パッケージ(dependencies2019.zip)`の`win64`を指定する
`QTDIR`に`Qt5(Qt5.15.2 MSVC)`の`msvc2019_64`を指定する
`Add Entry`でバージョン指定のエントリを追加する `27.1.3`をビルドしたいのでこうする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2170587/2eb7894c-0e1e-da73-3f91-a0f93d57b984.png)

こうしたら`Configure`を押す
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2170587/309bd582-f846-1b64-eae2-21ab8dee70ea.png)

また怒られる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2170587/c9472c39-c69a-ff49-b2b0-600b5f7a5e91.png)

今度は`CEF Wrapper`を指定してあげる
指定したらもう一度`Configure`

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2170587/f60979ba-fb6e-5ab0-70ac-568d45754405.png)

できた

```
...
Configuring done
```

後は`Generate`して`Open Project` -> `Visual Studioでソリューションのビルド`

これでビルド出来る　VisualStudio側でWarningとか色々出るけど無視
`obs-studio\build\rundir\Debug\bin\64bit`にバイナリができてるはず

# おしまい
今回公式に書いてあるとおりにやったらちょっと躓いたので書いてみた　
バージョンを変えれば別のバージョンでもビルド出来ると思う　ただ依存関係とかを更新しなければならないと思うので注意

プラグイン開発編に続く・・・？

# 2022/09/01 ビルドがすごく楽になっていたので追記
※Chocolateyのインストール必須
システムロケールの変更が必要
`Win + R`してから`intl.cpl`と入力
`管理` -> `システムロケールの変更` -> `ベータ:ワールドワイド~~~`と書かれてるチェックボックスにチェックを入れる
再起動して以下の手順

ビルドが終わったら、他のアプリとかで文字化けしたりするので戻した方がいい

今まで通り
```
git clone --recursive https://github.com/obsproject/obs-studio.git
```
でcloneしたら、PowerShellで
```PowerShell
CI/build-windows.ps1
```
これだけでビルド終わり

他にもオプションあるけれど詳細は省く