qemu-devel
[Top][All Lists]
Advanced

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

Re: [PATCH 0/7] build: replace ninjatool with ninja


From: Yonggang Luo
Subject: Re: [PATCH 0/7] build: replace ninjatool with ninja
Date: Fri, 16 Oct 2020 02:21:42 +0800



On Wed, Oct 14, 2020 at 9:58 PM Paolo Bonzini <pbonzini@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

reply via email to

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