<div dir="ltr">Hi<div><br></div><div>I'm working on a new build system called Meson and as part of development I try to convert build systems of existing projects into Meson to see that it fullfillls the requirements of real processes. I did a trial conversion of Mesa because it seemed like an interesting challenge as it has lots of code generation and other unorthodox stuff.</div>
<div><br></div><div>Attached is a patch that compiles most of Mesa with Meson. It does not do all drivers and there are probably other things missing as well. Here's how it stacks up against the Scons compile:</div><div>
<br></div><div>build time (not directly comparable, as Meson compiles less code)</div><div><br></div><div>Scons: 1m 13s</div><div>Meson: 40s</div><div><br></div><div>no-op build time</div><div><br></div><div>Scons: 4.7s</div>
<div>Meson: 0.04s</div><div><br></div><div>If someone wants to try it out themselves, first they need to get the latest Meson from trunk (the version in Debian is too old) and Ninja from distro packages (usually called ninja-build):</div>
<div><br></div><div><a href="https://github.com/jpakkane/meson">https://github.com/jpakkane/meson</a><br></div><div><br></div><div>Then apply the attached patch to trunk (it's originally on top of commit 74e100affc0ac1). Then cd into source root and do the following</div>
<div><br></div><div>mkdir buildmeson</div><div>cd buildmeson</div><div>path/to/meson.py ..</div><div>ninja</div><div><br></div><div>If it dies halfway through just run ninja again. This is a dependency bug, which I'll try to get fixed soon.</div>
<div><br></div><div>This was a fun challenge, hope some of you find it interesting,</div><div><br></div></div>