🦇

M1 Mac で OBS Studio の開発環境を整える (VSCode, LLDB)

2022/02/28に公開

今回は 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 にしています.

QTDIRDepsPath は絶対パスにしておくのがおすすめです.相対パスはどのディレクトリからの相対パスを渡せばよいのかややこしいので…

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