yuniframeメンテナンスまつり(VS2022)
yuniframeのような基盤ライブラリは、 一度安定してしまうとその依存ライブラリを更新しない病 にかかってしまう。ただ、最近SDL2の開発が完了してSDL3の開発が始まるなど、あんまり放置していると永久にキャッチアップできなくなりそうなので、ちょっと作業中断してアップデート作業を実施することに。
更新ターゲット
放置中に特に大きな変更が入ったのはwasm2cで、これはほぼほぼ再移植に近い手間が掛かるので別枠というか後まわしとする。
- ツールチェーン(= VS2022、Xcode)
- SDL2
- ANGLE (Vulkan、Metal、DirectX11)
- glslang と SPIR-V 関連
このうち、DirectX11でないANGLEはglslangやSPIR-Vに依存しているので同時にアップデートした方が良いかもしれない。
CMakeのバージョンアップ
そもそも普段使っているCMakeが古い。。
F:\yfrm22>cmake --version
cmake version 3.19.3
CMake suite maintained and supported by Kitware (kitware.com/cmake).
VisualStudioにバンドルされているバージョンは現状3.23のようだがこれも容赦なくアップデートされると見られるので、そのままアップデートしてしまう。3.25.1。
F:\yfrm22>"C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe" --version
cmake version 3.23.22060601-MSVC_2
CMake suite maintained and supported by Kitware (kitware.com/cmake).
あんまり世間的にはdefinitiveなバージョンは無い感じか。。
とりあえず更新
CIはいきなりwaylandがリンクできなくてコケてるな。。(変更には無関係) ひとつひとつ動作確認していく。
既に全てのPlatformでANGLEがOpenGL ESの実装に使われる(WebGL、Android)か、廃止予定(iOS、macOS)なのでPlatform OpenGLはもう廃止で良い気がするけど、RenderDocでトレースするために必要なので維持する必要がある。今はホストにPowerVR Native SDKがインストールされている前提だけど、これはIMGがGitで配ってるからそれを git-submodule
して使った方が良いかもしれない。
とりあえずVS2022に移行できた
WindowsStoreのだけ直接起動できないな。。
---------------------------
em2app.exe - システム エラー
---------------------------
vccorlib140d_app.DLL が見つからないため、コードの実行を続行できません。プログラムを再インストールすると、この問題が解決する可能性があります。
---------------------------
OK
---------------------------
ビルドは通るのにランタイムが無いとかあんのか。。InstallをクリックするとVisual Studio Installerが起動する。
ランタイムバージョンが合わない。。
Error DEP3321: To deploy this application, your deployment target should be running Windows Universal Runtime version 10.0.22000.0 or higher. You currently are running version 10.0.19045.2251. Please update your OS, or change your deployment target to a device with the appropriate version. em2app
正しいWindows SDKバージョンを指定する
適当なWindows SDKバージョンを CMAKE_SYSTEM_VERSION
に設定すると、適当なバージョン(システム上にインストールされている最新のSDK)にfallbackするらしい。
-- Selecting Windows SDK version 10.0.22621.0 to target Windows 10.0.17134.0.
-- The C compiler identification is MSVC 19.34.31935.0
-- The CXX compiler identification is MSVC 19.34.31935.0
確かにそういうロジックが存在する。。
というわけでVisualStudio installerでインストールされているSDKをちゃんと調べる:
まぁUWPはXboxでしか使わないしそこで動けば良いか。。いやまぁHololensも有るけど。。