[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] converting build system to Meson?
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] converting build system to Meson? |
Date: |
Thu, 18 Apr 2019 10:35:36 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1 |
On 18/04/19 10:21, Markus Armbruster wrote:
> Paolo Bonzini <address@hidden> writes:
>
>> Hi all,
>>
>> lately I have been thinking of converting the QEMU build system to
>> Meson. Meson is a relatively new build system that can replace
>> Autotools or hand-written Makefiles such as QEMU; as a die-hard
>> Autotools fan, I must say that Meson is by far better than anything else
>> that has ever tried to replace Autotools, and actually has the potential
>> to do so.
>>
>> Advantages of Meson that directly matter for QEMU include:
>>
>> - build definitions in a very readable and user friendly DSL, which
>> supports looping and conditions.
>>
>> - ability to introspect the build definitions so that you can find out
>> what is built without building it (the DSL is not Turing complete and
>> most objects in it are immutable, so it cannot be abused that much :))
>>
>> - support for a non-recursive build from per-subdirectory input (similar
>> to Makefile.objs)
>
> Could Meson build the $(TARGET_DIRS) non-recursively?
Yes. It doesn't support recursive builds at all, in fact.
If you can stand the C++, you can find a "testcase slash example with
obvious QEMU inspiration" at
https://github.com/mesonbuild/meson/pull/5028/commits/9495ea241aaca5c2242dac1654ef3168bee1657a.
In fact, that pull request is basically the last obvious missing piece
before one could seriously try Meson for QEMU. Then of course there are
the non-obvious missing pieces, but those are more bugfixes than
anything else.
Paolo
>
> I'm asking because I find the make recursion there annoying. As usual
> with recursion, we have to dumb down dependencies: if anything made by
> the recursion needs X, then everything does. If making X fails, we
> don't recurse. Defeats -k.
>
>> - ease of distributing a full copy of Meson to support distros that ship
>> an older version (no dependencies apart from Python 3.5). At 40000
>> lines of Python, Meson is relatively small.
>
> [...]
>