🦇
M1 Mac で OBS Studio の開発環境を整える (VSCode, LLDB)
今回は x86_64 版のビルドを行います (Arm と Universal Binary に対応するための Pull Request も出ていますが現状の master に合わせます)
おそらく色々手順が抜けていると思うので,足りない依存関係やツールのセットアップは各位で補完お願いします 🙏
OBS と依存ライブラリの取得
OBS のソースコードと現時点で最新のライブラリを取得してきます.
ライブラリのアーカイブファイル名は命名規則がありそうですが,CI のログからも確認できるので今回は単純にそちらを見にいきました
git clone --recursive https://github.com/obsproject/obs-studio.git
# 現時点で最新のもの
curl -L -O https://github.com/obsproject/obs-deps/releases/download/2022-02-13/macos-deps-2022-02-13-x86_64.tar.xz
curl -L -O https://github.com/obsproject/obs-deps/releases/download/2022-02-13/macos-deps-qt-2022-02-13-x86_64.tar.xz
mkdir obsdeps
tar -xf ./macos-deps-2022-02-13-x86_64.tar.xz -C obsdeps
tar -xf ./macos-deps-qt-2022-02-13-x86_64.tar.xz -C obsdeps
CMake でビルド用のファイル群を生成
今回はブラウザソースはなしでビルドするので,BUILD_BROWSER=OFF
としました.Generator は VSCode CMake Tools との相性を考えて Ninja にしています.
QTDIR
と DepsPath
は絶対パスにしておくのがおすすめです.相対パスはどのディレクトリからの相対パスを渡せばよいのかややこしいので…
CMAKE_APPLE_SILICON_PROCESSOR
を指定することで x86_64 のビルドが行えます
cd obs-studio
mkdir build
cmake \
-G Ninja \
-DCMAKE_APPLE_SILICON_PROCESSOR="x86_64" \
-DCMAKE_OSX_DEPLOYMENT_TARGET=10.13 \
-DQTDIR="obsdepsの絶対パス" \
-DDepsPath="obsdepsの絶対パス" \
-DBUILD_BROWSER=OFF \
..
OBS のビルド
make -j8
でもよいですし
cmake --build . -j8
でも OK です
VSCode CMake Tools のビルドボタンでも大丈夫
OBS の起動
rpath まわり が少々ややこしいです.今回は開発環境なのでシンボリックリンクを張って解決します
cd rundir/RelWithDebInfo/bin
ln -s ../../../../../obsdeps/lib/* .
これで OBS が起動できます
./obs
できました 🎉
OBS のデバッグ
VSCode の拡張機能 CodeLLDB を入れておき,.vscode/launch.json
に設定を追加します
// .vscode/launch.json
{
"version": "0.2.0",
"configurations": [
{
"type": "lldb",
"request": "launch",
"name": "Debug",
"program": "${workspaceFolder}/build/rundir/RelWithDebInfo/bin/obs",
"args": [],
"cwd": "${workspaceFolder}/build/rundir/RelWithDebInfo/bin"
}
]
}
そうすると,VSCode からデバッガが使えるようになります
これで M1 Mac でバリバリ OBS が開発できるようになりました!
Discussion