On Thu, 6 Aug 2020 21:13:56 +0200 Paolo Bonzini <pbonz...@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.