Setup for newbie developing native extension

What kind of setup is required for a newbie trying to develop a simple native extension? Do I need to set things up to build the engine from source? Or is there some kind of toolchain to detect any errors before trying to build?

Waiting for the usual Upload-Build-Download process of running a project with modified native extensions is pretty darn slow for constant development iteration.

1 Like

I’m afraid there’s not any faster or more streamlined version.
Of course you can setup a local build server, which might speed it up a little bit (depending on where in the world you are).

E.g. when I build a (very small) example, it takes ~4s using my local build server, and ~6s using the live build server. So not a huge difference for me in Sweden (the live server is in Ireland).

Other things you can do to speed things up are to prebuild external files into static libraries (.a/.lib). This might be good for parts of the code that never changes. The downside is that you need to supply static libraries for all platforms.
(edit: I mean all the platforms that you wish to support ofc. You might only care about one platform, and that’s ok ofc)

4 Likes

No, this will not help in this case.

One thing that will help is to install a Linter and C++ language plugin for your editor (Atom, VS Code, Sublime etc). The Linter can help detect syntax errors and so on and the language plugin will help with code completion etc

Also make sure to have the Defold SDK headers files in your path to help with auto complete suggestions. It can be downloaded from the releases page on GitHub or from d.defold.com

3 Likes

OK, those are good answers, thanks!

We’ll see how far I go with it, I might try to set up a local build server. Heh, I get ~28 seconds on a good day, often much longer. I’m in the Northeast corner of the US, but I’m in a rural area, so I assume it’s because my internet is quite slow by modern standards.

1 Like

How can I set up a local build server. The live build server give build errors and failed to bundle iOS application.

It is documented here: https://github.com/defold/extender

Setting up a local build server is a relatively complicated process and requires a bit of experience with Docker and working with a command line prompt/terminal.

What is the error you are getting?

See this thread: