The Build-System and Large Models

I’m not sure of whether the following is feasible, so I’m raising it here for discussion before considering making a feature-request entry on GitHub for it.

If I’m not much mistaken, the current build-system automatically converts egg-files to bam-files and then writes them into the platform-specific folders for the builds being made.

However, it seems that it does this regardless of whether the process has already been done in a previous build. This means that, for a project with large model-files, build-times may be extensive even if the build only reflects changes in code. (If I’m mistaken, I would be very happy to be corrected, I believe!)

What I have in mind to suggest then is this:

That the system check the build directory for extant bam-files, and, if those are more recent than the associated egg-files, skip converting and copying them.

I’m tempted to also suggest that the system only write the bam-files once (instead of once per platform, as I think that it currently does)–but that might interfere with builds that are intended to just create a distributable directory, without creating a zip-file or installer.

On a related note, something that’s unclear to me right now is whether the build-system uses cached bam-files (such as from previous SDK-runs of the program in question), or whether it runs egg2bam (or similar) regardless of the local model-cache. Again, this is a concern in the case of large model-files, which can take quite a bit of time to convert, I sometimes find.

So, any thoughts on these points?

It sounds like it could probably be improved to support loading the models from the model-cache. It currently invokes egg2bam, but there’s no good reason it can’t be written to just use loader.loadModel followed by writeBamFile. Then it will automatically make use of the model-cache.

That sounds good to me! :slight_smile:

Shall I post a GitHub issue making that suggestion, then?

[edit] I’ve gone ahead and done so!