qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [DRAFT PATCH 000/143] Meson integration for 5.2


From: Yonggang Luo
Subject: Re: [DRAFT PATCH 000/143] Meson integration for 5.2
Date: Fri, 7 Aug 2020 16:01:53 +0800

Could meson can generate CMake file or directly using CMake?
cause Cmake have better IDE support.

On Fri, Aug 7, 2020 at 2:54 PM Cornelia Huck <cohuck@redhat.com> wrote:
On Thu,  6 Aug 2020 21:13:56 +0200
Paolo Bonzini <pbonzini@redhat.com> wrote:

> This the more or less final version of the Meson conversion.  Due to
> the sheer size of the series you have been CCed only on the cover
> letter.
>
> The series reaches the point where Makefile.target and unnest-vars
> can be removed, and all builds become non-recursive.  I have also
> converted parts of the testsuite, notably qtest since it is needed
> for fuzzing.  What's left for _after_ the merge is: 1) unit tests;
> 2) moving the rest of installation to meson (for which I have patches);
> 3) moving feature detection from configure to meson.
>
> Things I still haven't tested:
> - fuzzing
> - non-x86/Linux builds

So, I was planning to give it a go on s390, but I cannot even build it
on x86 (fails configure):

Build started at 2020-08-07T08:43:43.873638
Main binary: /usr/bin/python3
Build Options: -Doptimization=2 -Ddebug=true -Dwerror=true -Dstrip=true -Db_pie=true -Db_coverage=false -Dsdl=auto -Dsdl_image=auto -Dvnc=enabled -Dvnc_sasl=auto -Dvnc_jpeg=auto -Dvnc_png=auto -Dprefix=/usr/local -Dbindir=/usr/local/bin -Ddatadir=/usr/local/share -Dincludedir=/usr/local/include -Dlibdir=/usr/local/lib -Dlibexecdir=/usr/local/libexec -Dlocalstatedir=/usr/local/var -Dmandir=/usr/local/share/man -Dsysconfdir=/usr/local/etc
Python system: Linux
The Meson build system
Version: 0.52.0
Source dir: /home/cohuck/git/qemu
Build dir: /home/cohuck/git/qemu/build
Build type: native build

meson.build:438:22: ERROR: Key must be a string.
  config_target_h += {target: configure_file(output: target + '-config-target.h',
                      ^
(Fedora 31, version from your github branch)

Is there anything special I need to install beyond meson?

> - static builds
> - Docker and VM builds
>
> Things I have checked:
> - x86 builds
> - modules
> - "make install"
> - internal slirp/dtc/capstone.
>
> It should be more or less bisectable.  I have not tried building
> _all_ steps, but I have tried both before and after each major one.
>
> Build system rebuild rules seem to work reliably.
>
> After a week or quite intense rebasing, my impression is more or less
> the same as last December: Meson looks more daunting, but it is actually
> much nicer to work with.
>
> The diffstat so far is not very favorable, but remember that:
>
> 1) the series leaves quite a few nearly-obsolete bits in configure,
> Makefile and rules.mak (over 200 lines only in the makefiles).
>
> 2) configure test conversion will be where meson really shines.  I
> included a couple examples just to show
>
>     meson: convert VNC and dependent libraries to meson
>        4 files changed, 44 insertions(+), 134 deletions(-)
>
>     meson: move SDL and SDL-image detection to meson
>        5 files changed, 30 insertions(+), 144 deletions(-)
>
>     meson: replace create-config with meson configure_file
>        6 files changed, 80 insertions(+), 168 deletions(-)
>
> 3) the idea behind using Makefile generators is to have stable
> code written in a high-level language instead of Makefile magic
> that tends to grow by accretion.  So even though ninjatool is
> large at 1000 lines of Python, it can already be considered mature
> or even "done".  It had only ~15 lines changed since the last post,
> and whenever debugging meson.build issues looking at build.ninja has
> always (literally!) been enough.
>
> Available on git://github.com/bonzini/qemu branch meson-poc-next.




--
         此致

罗勇刚
Yours
    sincerely,
Yonggang Luo

reply via email to

[Prev in Thread] Current Thread [Next in Thread]