All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: qemu-devel <qemu-devel@nongnu.org>
Cc: "Peter Maydell" <peter.maydell@linaro.org>,
	"Thomas Huth" <thuth@redhat.com>,
	"Richard Henderson" <rth@twiddle.net>,
	"Marc-André Lureau" <marcandre.lureau@redhat.com>
Subject: [Qemu-devel] Status update on Meson features needed by QEMU
Date: Mon, 27 May 2019 18:16:15 +0200	[thread overview]
Message-ID: <7628c6fa-5bfd-5633-69b4-811aa448dd80@redhat.com> (raw)
In-Reply-To: <3246431b-8d6e-f2bc-e0f0-99d80384d97b@redhat.com>

Hi all,

if everything goes according to plan, Meson 0.51.0 (out in a couple of
weeks) should have everything needed for QEMU.  I am not sure whether
I'll have time to attempt a partial conversion to have something to
show, but anyway this is a status update.

On 06/03/19 19:12, Paolo Bonzini wrote:
> - ease of use for test logs and the ability to cut and paste test
> invocations from the logs to the command line.  For this I have started
> "probing" how the Meson developers feel about this kind of change[1],
> and intend to follow up until the meson test driver is comparable in
> usability to QEMU's "make check",

This wasn't accepted, on the other hand Meson has an introspection
mechanism to export test definitions as JSON.  It should be easy to
generate Make rules from it and keep using the current TAP driver.  I
have a pending pull request to fix a bug there, which should be accepted
in 0.51.0.

> - ease of converting Makefile.objs files.  The Makefile.objs files are
> very nice to change for simple modifications, and any replacement should
> have the same feature.  This will require a Meson extension.

This was accepted.  The final syntax looks like

    obj.add(when: 'CONFIG_VIRTIO', if_true: files('virtio.c'),
                                   if_false: files('virtio-stub.c'))

    sdl_obj.add(if_true: files('sdl.c'))
    sdl_obj.add_all(when: 'CONFIG_OPENGL', if_true: opengl_obj)
    common_obj.add_all(when: sdl, if_true: sdl_obj)

> - ability to use the Kconfig declarations for dependencies.
The Kconfig parser was accepted.  It should therefore be possible to
invoke minikconf from Meson (rather than from Make) to process the
dependencies, load the result via the parser and use it as the input to
the source code selection rules.

> - Meson generates a build.ninja file rather than a Makefile

... and requires Ninja to be present when Meson runs, in order to
generate compile_commands.json.  For this I added more functionality to
my ninja lexer/parser so that (in addition to generating a Makefile from
build.ninja) it can also be used to emulate the "ninja -t compdb"
command which generates the file.  The resulting  tool can be found at
https://gist.github.com/bonzini/fd3b69f5682f7e2eca817fb797c2db0f.

Paolo


      parent reply	other threads:[~2019-05-27 16:17 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-03-06 18:12 [Qemu-devel] converting build system to Meson? Paolo Bonzini
2019-03-06 18:50 ` Marc-André Lureau
2019-03-06 21:08   ` Paolo Bonzini
2019-03-07 10:29   ` Daniel P. Berrangé
2019-03-07  6:39 ` Thomas Huth
2019-03-07 10:13   ` Peter Maydell
2019-03-07 11:11     ` Paolo Bonzini
2019-03-07 11:29     ` Dr. David Alan Gilbert
2019-03-07 11:32       ` Peter Maydell
2019-03-07 11:49       ` Marc-André Lureau
2019-03-07 11:33     ` Daniel P. Berrangé
2019-03-10 14:21       ` Markus Armbruster
2019-03-10 14:33     ` Markus Armbruster
2019-03-11 16:30       ` Paolo Bonzini
2019-03-07 10:18   ` Daniel P. Berrangé
2019-03-07 10:40   ` Paolo Bonzini
2019-03-07 10:48     ` Peter Maydell
2019-03-07 11:06       ` Paolo Bonzini
2019-03-07 10:49     ` Daniel P. Berrangé
2019-03-07 10:33 ` Stefan Hajnoczi
2019-03-07 11:54 ` Alex Bennée
2019-03-07 12:56   ` Paolo Bonzini
2019-03-07 13:09     ` Peter Maydell
2019-03-07 13:22       ` Daniel P. Berrangé
2019-03-07 18:13       ` Paolo Bonzini
2019-03-07 18:17         ` Marc-André Lureau
2019-03-07 18:18           ` Peter Maydell
2019-03-07 18:19             ` Peter Maydell
2019-03-07 19:23             ` BALATON Zoltan
2019-03-07 19:50               ` Eric Blake
2019-03-07 20:28             ` Liviu Ionescu
2019-03-08 12:19             ` Daniel P. Berrangé
2019-03-07 19:04           ` Eric Blake
2019-03-07 19:24             ` Eric Blake
2019-03-08 12:21               ` Daniel P. Berrangé
2019-03-07 18:20         ` Alex Bennée
2019-03-08  6:47         ` Gerd Hoffmann
2019-03-08  6:58           ` Thomas Huth
2019-03-08 10:31           ` Peter Maydell
2019-03-08 11:58             ` Gerd Hoffmann
2019-03-08 12:03               ` Peter Maydell
2019-03-08 16:17                 ` Eric Blake
2019-03-08 16:26                   ` Peter Maydell
2019-03-08 16:32                   ` Paolo Bonzini
2019-03-08 16:36                     ` Peter Maydell
2019-03-11  1:09         ` Neal Gompa
2019-03-07 19:05       ` Cleber Rosa
2019-03-10 16:33         ` Markus Armbruster
2019-03-10 16:28 ` Markus Armbruster
2019-03-11  6:42   ` Thomas Huth
2019-03-11 10:14   ` Daniel P. Berrangé
2019-04-18  8:21 ` Markus Armbruster
2019-04-18  8:21   ` Markus Armbruster
2019-04-18  8:35   ` Paolo Bonzini
2019-04-18  8:35     ` Paolo Bonzini
2019-05-27 16:16 ` Paolo Bonzini [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7628c6fa-5bfd-5633-69b4-811aa448dd80@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=marcandre.lureau@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=rth@twiddle.net \
    --cc=thuth@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.