Building extender on a server (not in docker)

I have been working on building a standalone extender native extension build system using the information here:


And with some assistance from @jcash and @britzl and others used a dockerfile to bash convertor here:

The general output is ok, I have modified the convertor to work better with the extender dockerfile (will put it up when its stable) and I have generated some reasonably valid bash scripts to build the server setup.

The question I have is whether the emsdk-1.38.12-x86_64-linux.tar.gz is required anymore. I havent found a way to get a working version of this, so Im not sure its needed? Can I remove it from the Docker and script?

2 Likes

(reposting my answer from discord)

Yes, you can leave out older packages.
We try to keep backwards compatibility for ~6 months when it comes to native extensions. After that, we usually remove the support for the older SDK’s.

Since you’re doing a custom build, you get to choose!

The corresponding file in the Defold repo is the build.yml which knows about what versions and command lines to use.
Check the file version for various tags, to see when certain sdks were added/removed.

I think you can be even more aggressive and skip support for emscripten 1.39.16 too?
Same goes for various sdks, e.g. our different win32 versions.

Currently our docker container weighs in at ~20GB, with all our supported sdk versions so it makes sense to try to minimize the size. :slight_smile:

4 Likes

Thanks for this. I will look at reducing it to a few targets to start with and build it up :slight_smile:
Im trying to do most of it with the translator, that way it is easier as you deploy dockers and builds, to then update an image. Thanks for this, its a very impressive thing you have all put together - I am really thankful you have made this, and I have many ideas where this may be quite a brilliant application development platform (not just games :slight_smile: ).

3 Likes

Ok. I seem to be digging lots of rabbit holes for myself at the moment :slight_smile:
Anyway, the convertor turned into something a little more complicated, so I could do things like “sectioning” a dockerfile and enabling/disabling features.
I built it using lua (calls luajit, but should work fine with Lua).

Its very untested and prototype at the moment, so please DO NOT USE on anything you care about :slight_smile:
This is just for people who might be interested.
Once it stabilizes I’ll tag a release.
Cheers,
Dave

2 Likes