何も考えずひたすらビルドすることだけに進んでみたが、結局は素直にgit cloneするのが良いようです。
何も考えず、デベロッパー用のドキュメントの手順で進めると、github上のリポジトリからクローンした場合は、バージョンチェックで引っかかるので、
set(OBS_VERSION_OVERRIDE "31.1.0-beta2 master")
どこかでOBS_VERSION_OVERRIDEを設定してあげるか、cmake-guiだと変数のところでaddしてあげれば切り抜けられるとは思う。
色々と試行錯誤した結果として、github上だとデフォルトのブランチからしかフォークさせられないようで…ほしいものは、「実際に動かしている状態で実行ファイルだけ挿げ替えたい」なので、これではだめだということに。
ソースファイルのダウンロードの方法は、 obsproject/obs-studio でブランチなりタグなりを一覧表示させればそのものがダウンロードはできた。
そして、いざcmake!
一番最初にやったことですが、zipなりでソース展開するとどうもgit cloneで取得できるもののようで、内包される別リポジトリのソースは含まれていないようで…当たり前っちゃ当たり前だけど、結構不便。というか、知らないで後日何かしようとしても手遅れになりそう。
実際にcmakeを実行させると最後の方で、
-- Configuring done (0.4s)
CMake Error at plugins/win-dshow/virtualcam-module/CMakeLists.txt:93 (target_link_libraries):
Cannot find source file:
C:/obs/obs-studio-31.0.2/deps/libdshowcapture/src/dshowcapture.hpp
-- Generating done (0.7s)
CMake Generate step failed. Build files cannot be regenerated correctly.
CMake Error at cmake/windows/architecture.cmake:17 (execute_process):
execute_process failed command indexes:
1: "Child return code: 1"
Call Stack (most recent call first):
CMakeLists.txt:8 (include)
-- Configuring incomplete, errors occurred!
などと怒られるので、個別にソースを何とかしてあげたりするとcmakeは通ってくれるようにはなるものの、当たり前ですが、バージョンが一致してなければコンパイルすら通らなくなるという…
試行錯誤の末、結局git cloneで直接ローカルに持ってくるしかない。という結論に。
> git clone --recursive https://github.com/obsproject/obs-studio.git -b 31.0.2 --depth 1
欲しいのはこのタグ付けされたバージョンが欲しいので、これなら一気に持ってきてくれるハズ。
とはいえ、コミットされていないものがあるので、ワーニングが出たりしましたが、一通りダウンロードされたので、cmake!
なんだかんだと勘違いなどもあるので、cmake-guiを使った方がvisualstudioの起動まで行ってもらえるので便利かな?
ソースの場所や、プリセットを設定し、Configure Generate OpenProjectボタンを順番に押しました。
visualstudio上でソリューションのオープンもできたようなので、試しに▷ボタンで実行してみるとコンパイルが始まりました。しばらくすると、2つのビルドで(キャスト関連の)警告文が発生し警告がエラーとして扱われるためにビルドエラーが発生してしまいました。内容的には問題なさげなので、個別のプロジェクトのコンパイルオプションを変更して警告は無視させました。
そして待望の31.0.2のOBSの画面がでました。
で、ソースを手直しして…と思ったら、31.0と31.1はソースの配置換えを行っているようで、ファイル名まで違っていた様子。
目的の \obs-studio\UI\window-basic-stats.cpp ファイルも見つかったので、中身はほぼ一緒なので修正もすぐ終わり、構成をリリースに切替て実行させてみました。
いい感じになったので、実際に動かしている環境に実行ファイルを入れて動作確認。
昨日試しにインチキビルドした実行ファイルを挿げ替えて実行させたところライブラリなどのエントリポイントの不一致でエラーが発生させてしまったのですが、その時からコントロール内のボタンが一つ表示されなくなりました。正直消したかったのでいいのですが、ビルドした実行ファイルが原因で、レジストリのエントリーが消されたのかな?とは思います。
一通り動作はした感じですが、気になるのが実行ファイルのファイルサイズが結構違うところ。
もともとインストールされていたobs64.exeが4.89MBだったのに比べ、出来上がったものは4.69MBと、0.2MBほどの誤差が…付随する.pdbファイルも微妙にサイズが違ったりしているので、バンドルされているプラグインがdisable状態に変更になっているだけかもしれません。
足掛け3,4日でなんとかやりたいところまでようやくたどり着きました…。
蛇足
いまさらながら、統計ウィンドウはドック状態のウィンドウでもウィンドウのタイトルバーに「×」ボタンがついているという事実…ソース内では closable で単独ウィンドウなのかドック可能状態か区別しているのですが、どっちもクローズできるじゃん…とかw
0 件のコメント:
コメントを投稿