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
