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
