Hi Neil,*,

On Mon, Oct 13, 2025 at 4:12 PM Neil Roberts <[email protected]> wrote:
> jijinbei <[email protected]> writes:
> [meson]
> 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.

Well, kinda, but it was a rough ride just getting the build to work
with harfbuzz with all our requirements, externals, in
cross-compliations and still isn't really fully working because it
ignores the visual studio selection but just picks whatever newest it
can find...

> […]
> 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.

Parsing of the make files is only one part, and for a program the
apparent complexity isn't really a problem. But then of course it also
has to check all targets and dependencies whether they have been
modified and something needs to be rebuilt, so it needs to probe every
input and output file to compare the two.
That part could only be faster if it was a persistent system/hooking
into file monitoring functionality provided by the operating system to
see what files were changed. But that kind of monitoring for such a
huge number of files (and if building with translations enabled you'd
also have all the translation files) is already a problem with
IDE's/the number of files exceed most system's default limit, not to
mention it wouldn't be available everywhere...

> 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.

bazel would still need to compare what's changed compared to last
time, so hard to imagine that that part would be slower due to any
caching.
Where our make system is "wasting" time is by still having a couple
$(shell …) and similar calls that are run when parsing the makefiles,
so launching processes, running some small script – but that affects
mostly windows. (and is not a fault of make itself, just "historic
debt" of how the files were created)

ciao
Christian

Reply via email to