Open4

Yuniframeメンテナンスまつり2024

okuokuokuoku

SDL2

CMake Error at E:/repos/em2native-tests/integ/ext/platform/SDL2/CMakeLists.txt:3534 (set_property):
  set_property could not find TARGET SDL2.  Perhaps it has not yet been
  created.

https://github.com/libsdl-org/SDL/blob/6e931bee01b34a9f7a51579bcaf9a95f7f9451ce/CMakeLists.txt#L3526-L3538

これはSDL2側のバグだな。。 LIBCSDL_LIBC したようなので追従する。

https://github.com/okuoku/em2native-integ/commit/bcc8d977727989728d2047373c5433e62342cb37

SDL2側でも起票されて治ったようだ。

https://github.com/libsdl-org/SDL/issues/10462

okuokuokuoku

GLSLang

In-tree ビルドをチェックするようになった。

CMake Error at E:/repos/em2native-tests/integ/ext/cwgl/glslang/CMakeLists.txt:300 (message):
  ENABLE_OPT set but SPIR-V tools not found.  Please run
  update_glslang_sources.py, set the ALLOW_EXTERNAL_SPIRV_TOOLS option to use
  a local install of SPIRV-Tools, or set ENABLE_OPT=0.

https://github.com/KhronosGroup/glslang/commit/3805888a57c07904b6bbdec639bfe5f078e26342

まぁちゃんとin-treeビルドしてるんで順序を入れ替えるだけだな。

あと OGLCompiler ライブラリは削除された。もう不要なはず。

https://github.com/KhronosGroup/glslang/commit/6be56e45e574b375d759b89dad35f780bbd4792f

ResourceLimits は移動した。

https://github.com/KhronosGroup/glslang/commit/f5fa593143e40c6669d14cc4d6fa38cebefabf8d

E:/repos/em2native-tests/integ/cwgl/shxm/src/shxm_glslang.cpp:73:30: error: member access into incomplete type 'glslang::TIntermediate'
        ts->getIntermediate()->setOriginUpperLeft();
                             ^
E:/repos/em2native-tests/integ/ext/cwgl/glslang/glslang/Public/ShaderLang.h:415:7: note: forward declaration of 'glslang::TIntermediate'
class TIntermediate;
      ^

これPrivateになっちゃったのか。。まぁ直接使うしかないかな。。

https://github.com/okuoku/cwgl/commit/fcef8196a5d4f2cd0b828d7f2645a9293c65d9f5

okuokuokuoku

ANGLE

https://github.com/google/angle/commit/9b63700be169a93b5e95201c48b8e19a10e59b13

なかなかマッシブなリファクタが来たな。。というかいちいち拾ってられないくらい変ってるのでほぼ書き直し。

https://github.com/okuoku/angle-static-cmake/commit/7e908250387f79b5512c3cf332b975e50245ec5b

今回の変更でたぶんWindows8以降専用になった。

https://github.com/okuoku/em2native-tests/commit/5031c480d47b0ce8127a4fcef90c3d24098c9acc#diff-919ae15f6580a1c3cbc171fc310d79074ba898f294df60f7e753af8d28bdf55aR49-R52

Windowsネイティブビルドは WaitOnAddress https://learn.microsoft.com/ja-jp/windows/win32/api/synchapi/nf-synchapi-waitonaddress に依存するのでライブラリとして synchronization を要求するようになり、これがWin8以降にしかない。でもChromiumでは使ってないから無効にした方が良いかもなぁ。。

https://github.com/google/angle/blob/85edb907199e7a15e4ac30ea3fd0bbed021880ad/BUILD.gn#L297-L299

ANGLEはSubmoduleを使うようになったので、AOSPのforkに乗り換えた。

https://zenn.dev/okuoku/scraps/34786a4b3a57b5