I would not expect any regression issue with iOS in the new branch, but no harm to double check that. In fact the tvOS platform is so similar to iOS platform, I am also almost certain that Urho3D game engine will render correctly on the actual device. It is the input subsystem that I have my doubt to get it right at first try.
Probably I should have created another thread for discussion about the MODULE lib type for Web platform. Anyway, I just want to update that I have some success today to build a working main module with DCE enabled, which tremendously reduce the size of the main module and the time to build it. However, the process requires manual exporting of the mangled symbol names and feed them to the Emscripten’s EXPORTED_FUNCTIONS setting during linking phase (finally I figure out how to pass that setting correctly via CMake to Emscripten). Perhaps it is time to revisit our Clang tool branch to auto-prepare the exported symbols list (easier to do); or as I commented before, hack into Fastcomp to auto-preserve URHO3D_API (harder to pull off).
EDIT: It is actually easier than I originally thought to hack into Fastcomp to auto-preserve the symbols with URHO3D_API attribute, however, by automatically including all the Urho exported public API symbols then the main module size increases back in size
Main module size:
- without global DCE = 56MB
- with DCE + hack to auto-preserve = 51MB
In short, it does not worth it. So, the best way to do this is to disable the DCE; OR manually extract the required symbols for each individual project but with DCE enabled, which is unfortunate, cause I am not able to add that kind of logic in our build system for the latter. BTW, for those who still doesn’t get it why we need a new lib type. The use case of MODULE lib type is to link the main module to asm.js only once which takes relatively a long time, so that the side module (which contains only the application-specific code) can be linked to asm.js in a short time. Good for fast iteration during development.