jijinbei <[email protected]> writes:

> I recently openedBug 168776 
> <https://bugs.documentfoundation.org/show_bug.cgi?id=168776> 
> (https://bugs.documentfoundation.org/show_bug.cgi?id=168776 
> <https://bugs.documentfoundation.org/show_bug.cgi?id=168776>) to propose 
> migrating the LibreOffice build system from Make, autotools, and Perl to 
> *Bazel*.

If we’re going to consider migrating the build system I’d like to also
nominate Meson for consideration. I get the impression that a large part
of the open source community is converging on this build system and it
would be nice to be able to share the growing base of expertise with it.
Indeed several of the external dependencies of LibreOffice are using it
so I’m sure a lot of the LibreOffice devs are already familiar with it.
In my experience working on other projects that use it it always been a
positive experience.

>     *Incremental Builds:* Bazel can significantly reduce compilation
>     time compared to the current Make-based system.

I don’t know whether a new build system will improve the build times,
but I think it’s worth noting that the current build system is quite
slow even when there is nothing to build. On my old Mac if I change just
one file and build there is quite a noticeable delay before it even
starts compiling this one file. I imagine this is just the time needed
for Make to parse the thousands of non-trivial make files. I guess the
advantage of using something like Bazel or Meson is that the generated
build files can be optimized and would presumably take less time to
parse. This would probably improve the development process for a lot of
people if the write-build cycle time was reduced.

>     *Modern Build Language:* Legacy Perl scripts could be replaced by
>     the modern, Python-like Starlark language.

I wonder if it would make more sense to replace the legacy Perl scripts
with actual Python instead of a language from the build system. I think
this could be done incrementally and doesn’t depend on replacing the
entire build system. It might even be nice to do as mentoring tasks that
are slightly harder than “easy hack”.

Another difficulty around changing the build system that might be worth
mentioning is that the current one is also partially exported to
extension developers as part of the SDK. So if we wanted to avoid
breaking the builds for extensions we would presumably have to continue
maintaining the make files that are installed in the SDK.

Regards,
– Neil

Reply via email to