[L2Ork-dev] CI build times
ssssam at gmail.com
Wed Jul 1 06:28:48 EDT 2020
On Wed, Jul 1, 2020 at 1:59 AM Jonathan Wilkes <jon.w.wilkes at gmail.com> wrote:
> On Mon, Jun 22, 2020 at 5:18 AM Sam Thursfield <ssssam at gmail.com> wrote:
> > One is Meson, which is a replacement for Make/Automake/Autoconf.
> The tough part is that we have so many kludges-- like downloading the asio
> dlls for windows-- that doing things the "right" way might be difficult.
Ultimately you can do anything with Meson as it lets you run arbitrary
shell scripts, but automatically downloading dependencies would
probably be better moved to a separate "prepare dependencies" script
that you'd run before the build system.
> Also, I'm surprised it only cut build times by half. I'd want something like a
> 10x speedup by not having to re-run configure for every single external and
> using all the cores to build.
> At the same time, it might be worth it to try to, say, build just the core with
> meson for Linux.
This was for a "simple" project. If you managed to port all the
externals to Meson then it would be a *huge* speedup... but would that
create problems with merging new changes from upstream versions of the
Porting the core alone would make a lot of sense. And it wouldn't need
to be Linux only -- Meson can also generate project files for MSVC.
> > The other is BuildStream, which is a "meta build" tool, i.e. it
> > wraps an existing project's Makefile.
> That sounds interesting. But how would that work for Windows and OSX?
The project is intended to be useful on Windows and OSX, and I think
it already works if you drive the builds from a Linux machine. I
suppose the sandboxing guarantees go away if you're building on an OS
that doesn't provide a containerised version. It's rather in the early
stages as yet, but I think once BuildStream 2.0 is out, we will start
to see a story for building apps like PD across the 3 major platforms.
Right now, I present it just as a source of inspiration for how an
ideal build infrastructure could look :)
More information about the L2Ork-dev