On Wed, Oct 14, 2020 at 9:58 PM Paolo Bonzini <pbonz...@redhat.com> wrote: > > This pull request is the last build system change for 5.2 from > me, and it is simple: similar to how we are invoking > ROM or tests/tcg "make" from the main Makefile, we now invoke ninja > to build QEMU. Unlike those cases, however, build.ninja targets are > forwarded transparently. > > The advantages cover various areas: > > - maintainability: we drop scripts/ninjatool.py, which is > a large and hairy piece of code, and generally remove one > thing that can go wrong and one thing that is unique to QEMU; > > - platform support: we remove the requirement for GNU make > 3.82, which was annoying on Mac. We also avoid bugs on Windows > due to meson emitting Windows rather than POSIX escapes (as > expected by Ninja) and ninjatool ignoring the difference; > > - speed: invoking "configure" does not have to generate > 44k lines of rules, while invoking "Make" does not anymore have > to parse 44k lines of rules. > > - ease of use: Ninja tracks command lines, hence the problem > of static library changing the objects they hold goes away > > Paolo > > Paolo Bonzini (7): > tests/Makefile.include: unbreak non-tcg builds > make: run shell with pipefail > tests: add missing generated sources to testqapi > configure: move QEMU_INCLUDES to meson > dockerfiles: enable Centos 8 PowerTools > add ninja to dockerfiles, CI configurations and test VMs > build: replace ninjatool with ninja > > .cirrus.yml | 6 +- > .travis.yml | 13 + > Makefile | 42 +- > configure | 29 +- > docs/devel/build-system.rst | 6 +- > meson.build | 34 +- > scripts/mtest2make.py | 4 +- > scripts/ninjatool.py | 1008 -------------------- > tests/Makefile.include | 2 +- > tests/docker/dockerfiles/centos7.docker | 1 + > tests/docker/dockerfiles/centos8.docker | 4 + > tests/docker/dockerfiles/debian10.docker | 1 + > tests/docker/dockerfiles/fedora.docker | 1 + > tests/docker/dockerfiles/travis.docker | 2 +- > tests/docker/dockerfiles/ubuntu.docker | 1 + > tests/docker/dockerfiles/ubuntu1804.docker | 1 + > tests/docker/dockerfiles/ubuntu2004.docker | 1 + > tests/include/meson.build | 8 +- > tests/meson.build | 14 +- > tests/vm/centos | 2 +- > tests/vm/centos.aarch64 | 2 +- > tests/vm/fedora | 2 +- > tests/vm/freebsd | 1 + > tests/vm/netbsd | 1 + > tests/vm/openbsd | 1 + > tests/vm/ubuntu.aarch64 | 2 +- > tests/vm/ubuntu.i386 | 2 +- > 27 files changed, 121 insertions(+), 1070 deletions(-) > delete mode 100755 scripts/ninjatool.py > > -- > 2.26.2 > > That's good, it's broken my locally rST doc build ``` [226/1564] Generating input-keymap-qnum-to-qcode.c.inc with a custom command (wrapped by meson to capture output) [227/1564] Generating input-keymap-qcode-to-qnum.c.inc with a custom command (wrapped by meson to capture output) [228/1564] Generating shared QAPI source files with a custom command [229/1564] Generating input-keymap-qcode-to-linux.c.inc with a custom command (wrapped by meson to capture output) [230/1564] Generating input-keymap-win32-to-qcode.c.inc with a custom command (wrapped by meson to capture output) [231/1564] Generating QAPI rST doc with a custom command FAILED: tests/qapi-schema/doc-good.txt "/mingw64/bin/sphinx-build" "-Dversion=5.1.50" "-Drelease=" "-W" "-b" "text" "-E" "-c" "C:/work/xemu/qemu/docs" "-D" "master_doc=doc-good" "C:/work/xemu/qemu/tests/qapi-schema" "C:/work/xemu/qemu/build/tests/qapi-schema" CreateProcess failed: The system cannot find the file specified. [232/1564] Generating input-keymap-qcode-to-atset1.c.inc with a custom command (wrapped by meson to capture output) [233/1564] Generating generated-helpers-wrappers.h with a custom command (wrapped by meson to capture output) ninja: fatal: GetOverlappedResult: �������
make: *** [Makefile:87:run-ninja] 错误 1 /mingw64/bin/ninja -v -j1 tests/check-block-qdict.exe tests/check-qdict.exe tests/check-qjson.exe tests/check-qlist.exe tests/check-qlit.exe tests/check-qnull.exe tests/check-qnum.exe tests/check-qobject.exe tests/check-qom-interface.exe tests/check-qom-proplist.exe tests/check-qstring.exe tests/ptimer-test.exe tests/qapi-schema/doc-good.ref.nocr tests/qapi-schema/doc-good.txt.nocr tests/rcutorture.exe tests/test-aio-multithread.exe tests/test-aio.exe tests/test-authz-list.exe tests/test-authz-listfile.exe tests/test-authz-simple.exe tests/test-base64.exe tests/test-bdrv-drain.exe tests/test-bdrv-graph-mod.exe tests/test-bitcnt.exe tests/test-bitmap.exe tests/test-bitops.exe tests/test-block-backend.exe tests/test-block-iothread.exe tests/test-blockjob-txn.exe tests/test-blockjob.exe tests/test-bufferiszero.exe tests/test-char.exe tests/test-clone-visitor.exe tests/test-coroutine.exe tests/test-crypto-afsplit.exe tests/test-crypto-block.exe tests/test-crypto-cipher.exe tests/test-crypto-hash.exe tests/test-crypto-hmac.exe tests/test-crypto-ivgen.exe tests/test-crypto-pbkdf.exe tests/test-crypto-secret.exe tests/test-cutils.exe tests/test-hbitmap.exe tests/test-int128.exe tests/test-io-channel-buffer.exe tests/test-io-channel-command.exe tests/test-io-channel-file.exe tests/test-io-channel-socket.exe tests/test-io-task.exe tests/test-iov.exe tests/test-keyval.exe tests/test-logging.exe tests/test-mul64.exe tests/test-opts-visitor.exe tests/test-qapi-util.exe tests/test-qdev-global-props.exe tests/test-qdist.exe tests/test-qemu-opts.exe tests/test-qgraph.exe tests/test-qht.exe tests/test-qmp-cmds.exe tests/test-qmp-event.exe tests/test-qobject-input-visitor.exe tests/test-qobject-output-visitor.exe tests/test-rcu-list.exe tests/test-rcu-simpleq.exe tests/test-rcu-slist.exe tests/test-rcu-tailq.exe tests/test-replication.exe tests/test-shift128.exe tests/test-string-input-visitor.exe tests/test-string-output-visitor.exe tests/test-thread-pool.exe tests/test-throttle.exe tests/test-timed-average.exe tests/test-util-sockets.exe tests/test-uuid.exe tests/test-visitor-serialization.exe tests/test-vmstate.exe tests/test-write-threshold.exe tests/test-x86-cpuid.exe tests/test-xbzrle.exe | cat ``` That's because currently sphinx-build are found in configure not in meson, maybe it's worth to move the sphinx related thing into meson totally. -- 此致 礼 罗勇刚 Yours sincerely, Yonggang Luo