samtupy / nvgt

The Nonvisual Gaming Toolkit
https://nvgt.gg
Other
43 stars 27 forks source link

make the compile scripts compile the stubs for other systems #64

Closed patricus3 closed 3 weeks ago

patricus3 commented 3 weeks ago

hello. sometimes you need to use git version of the software, and it would be nice if we could get the stubs to compile on our system, every stub we need, linux, windows, etc.

samtupy commented 3 weeks ago

Hi, sorry but this is not easily possible even remotely without a bunch of work with cross compilation toolchains and settings which would be difficult to set up. You'd need to build, for example, Angelscript and Poco and SDL on each platform as well, for example our build scripts for linux and MacOS assume that apt-get and homebrew are available (have fun with that on windows). Keep in mind that an nvgt stub is literally a copy of the entire nvgt application with a few changes that make it read itself to determine the bytecode rather than a script file. So what you are really asking for is the ability to build the entirety of NVGT for all platforms on one platform. I'm not trying to claim that this is an utterly impossible task, what I'm trying to say is that given my skill level, we could have replaced bass with miniaudio and closed 50 minor issues before this kind of goal could be easily met. Besides we are planning to add IOS and Android platforms, making this an even more difficult request to fulfill, and introducing the argument that it would be better to spend any energy messing with compilers getting new platforms actually working than to make it so that random users can try to cross compile NVGT, a complicated process that would result in and overwhelming load of support requests as the build would no longer consist of a few simple instructions. I'll leave you with this random forum question which might somewhat display my point. I will admit that the topic is old and so technology may have somewhat advanced since this point, but SDL2 is just one of the dependencies NVGT uses and we plan to upgrade it soon. Does building that for multiple platforms on one platform look particularly easy to you based on that thread? Finally, official builds already happen every few days/weeks apart at the latest, causing the astronomical amount of learning and effort that would go into this task to genuinely not be worth it. I'm going to close this one because it is not a reasonable goal from where I am standing. If you know something about this process that I don't such as how to make it easier, please feel free to prove me wrong by submitting a pull request with such an implementation! Thanks.