[PATCH xserver 0/3] meson build for xserver

Eric Anholt eric at anholt.net
Tue Apr 25 23:02:58 UTC 2017


Here's my little patch series for adding a Meson build system for the
X Server.  You'll need meson 0.40, which was released this weekend --
it has a feature that we requested for Xorg's meson.build, and the
bugfix for chrpath when installing the the modesetting driver.

The meson build is not quite complete yet (see patch 3 for some notes
on that, and its XXX comments), but I'm hoping we can merge it and
finish it off in the shared tree.  My expectation is that we would
ship a release with autotools and meson in parallel, then remove
autotools after that release.

                        autotools:   meson:
no-op build              0.83         0.49
touch Makefile.am        1.28
touch configure.ac      16.68
touch meson.build                     2.92
clean ccache build      16.74         1.44
clean build             52.24        27.84

Note that the time for no-op build isn't quite fair to meson: in the
meson build I have the X.org BUILD_DATE changing on every ninja build,
while autotools was setting BUILD_DATE once at ./configure time.

Quick guide:

meson build/ -Dxephyr=true  # ./configure equivalent
mesonconf build/ -Ddmx=yes  # Turns on a feature later.
ninja -C build/             # make equivalent
ninja -C build/ install     # make install equivalent
ninja -C build/ test        # make check equivalent

Eric Anholt (3):
  dix: Remove a redundant #define
  Use #ifdef instead of #if for features to make Meson easier.
  Add a Meson build system alongside autotools.

 Xext/meson.build                           |  61 +++++
 Xi/meson.build                             |  67 ++++++
 composite/meson.build                      |  13 ++
 config/meson.build                         |  35 +++
 damageext/meson.build                      |   9 +
 dbe/meson.build                            |  10 +
 dix/dispatch.c                             |   3 +-
 dix/meson.build                            |  47 ++++
 dri3/meson.build                           |  12 +
 exa/meson.build                            |  24 ++
 fb/meson.build                             |  36 +++
 glamor/glamor_priv.h                       |   4 +-
 glamor/meson.build                         |  58 +++++
 glx/meson.build                            |  50 ++++
 hw/dmx/config/meson.build                  |  81 +++++++
 hw/dmx/examples/meson.build                |  33 +++
 hw/dmx/glxProxy/meson.build                |  27 +++
 hw/dmx/input/meson.build                   |  32 +++
 hw/dmx/meson.build                         |  68 ++++++
 hw/kdrive/ephyr/meson.build                |  62 +++++
 hw/kdrive/meson.build                      |   2 +
 hw/kdrive/src/meson.build                  |  22 ++
 hw/meson.build                             |  25 ++
 hw/vfb/meson.build                         |  21 ++
 hw/xfree86/common/meson.build              |  93 ++++++++
 hw/xfree86/common/xf86.h                   |   2 +-
 hw/xfree86/common/xf86Build.sh             |   6 +
 hw/xfree86/ddc/meson.build                 |  15 ++
 hw/xfree86/dixmods/meson.build             |  38 +++
 hw/xfree86/dri/meson.build                 |  23 ++
 hw/xfree86/dri2/meson.build                |  16 ++
 hw/xfree86/drivers/modesetting/driver.c    |  16 +-
 hw/xfree86/drivers/modesetting/meson.build |  42 ++++
 hw/xfree86/exa/meson.build                 |   9 +
 hw/xfree86/glamor_egl/meson.build          |  22 ++
 hw/xfree86/i2c/meson.build                 |  12 +
 hw/xfree86/int10/meson.build               |  54 +++++
 hw/xfree86/loader/loader.c                 |   4 +
 hw/xfree86/loader/loadmod.c                |   4 +-
 hw/xfree86/loader/meson.build              |  16 ++
 hw/xfree86/loader/symbol-test.c            |  53 +++++
 hw/xfree86/meson.build                     | 106 +++++++++
 hw/xfree86/modes/meson.build               |  30 +++
 hw/xfree86/os-support/meson.build          | 125 ++++++++++
 hw/xfree86/parser/meson.build              |  32 +++
 hw/xfree86/ramdac/meson.build              |  27 +++
 hw/xfree86/sdksyms.sh                      |   8 +-
 hw/xfree86/x86emu/meson.build              |  15 ++
 hw/xnest/meson.build                       |  37 +++
 hw/xquartz/meson.build                     |  40 ++++
 hw/xwayland/meson.build                    |  66 ++++++
 hw/xwayland/xwayland.c                     |   2 +-
 include/dixstruct.h                        |   2 +-
 include/meson.build                        | 329 ++++++++++++++++++++++++++
 include/os.h                               |   2 +-
 include/xorg-config.h.meson.in             | 151 ++++++++++++
 include/xserver_poll.h                     |   2 +-
 meson.build                                | 360 +++++++++++++++++++++++++++++
 meson_options.txt                          |  46 ++++
 mi/meson.build                             |  39 ++++
 miext/damage/meson.build                   |   9 +
 miext/shadow/meson.build                   |  32 +++
 miext/sync/meson.build                     |  17 ++
 os/meson.build                             |  65 ++++++
 os/utils.c                                 |  16 +-
 present/meson.build                        |  19 ++
 pseudoramiX/meson.build                    |   5 +
 randr/meson.build                          |  26 +++
 record/meson.build                         |  10 +
 render/meson.build                         |  19 ++
 xfixes/meson.build                         |  13 ++
 xkb/meson.build                            |  42 ++++
 72 files changed, 2888 insertions(+), 31 deletions(-)
 create mode 100644 Xext/meson.build
 create mode 100644 Xi/meson.build
 create mode 100644 composite/meson.build
 create mode 100644 config/meson.build
 create mode 100644 damageext/meson.build
 create mode 100644 dbe/meson.build
 create mode 100644 dix/meson.build
 create mode 100644 dri3/meson.build
 create mode 100644 exa/meson.build
 create mode 100644 fb/meson.build
 create mode 100644 glamor/meson.build
 create mode 100644 glx/meson.build
 create mode 100644 hw/dmx/config/meson.build
 create mode 100644 hw/dmx/examples/meson.build
 create mode 100644 hw/dmx/glxProxy/meson.build
 create mode 100644 hw/dmx/input/meson.build
 create mode 100644 hw/dmx/meson.build
 create mode 100644 hw/kdrive/ephyr/meson.build
 create mode 100644 hw/kdrive/meson.build
 create mode 100644 hw/kdrive/src/meson.build
 create mode 100644 hw/meson.build
 create mode 100644 hw/vfb/meson.build
 create mode 100644 hw/xfree86/common/meson.build
 create mode 100755 hw/xfree86/common/xf86Build.sh
 create mode 100644 hw/xfree86/ddc/meson.build
 create mode 100644 hw/xfree86/dixmods/meson.build
 create mode 100644 hw/xfree86/dri/meson.build
 create mode 100644 hw/xfree86/dri2/meson.build
 create mode 100644 hw/xfree86/drivers/modesetting/meson.build
 create mode 100644 hw/xfree86/exa/meson.build
 create mode 100644 hw/xfree86/glamor_egl/meson.build
 create mode 100644 hw/xfree86/i2c/meson.build
 create mode 100644 hw/xfree86/int10/meson.build
 create mode 100644 hw/xfree86/loader/meson.build
 create mode 100644 hw/xfree86/loader/symbol-test.c
 create mode 100644 hw/xfree86/meson.build
 create mode 100644 hw/xfree86/modes/meson.build
 create mode 100644 hw/xfree86/os-support/meson.build
 create mode 100644 hw/xfree86/parser/meson.build
 create mode 100644 hw/xfree86/ramdac/meson.build
 create mode 100644 hw/xfree86/x86emu/meson.build
 create mode 100644 hw/xnest/meson.build
 create mode 100644 hw/xquartz/meson.build
 create mode 100644 hw/xwayland/meson.build
 create mode 100644 include/meson.build
 create mode 100644 include/xorg-config.h.meson.in
 create mode 100644 meson.build
 create mode 100644 meson_options.txt
 create mode 100644 mi/meson.build
 create mode 100644 miext/damage/meson.build
 create mode 100644 miext/shadow/meson.build
 create mode 100644 miext/sync/meson.build
 create mode 100644 os/meson.build
 create mode 100644 present/meson.build
 create mode 100644 pseudoramiX/meson.build
 create mode 100644 randr/meson.build
 create mode 100644 record/meson.build
 create mode 100644 render/meson.build
 create mode 100644 xfixes/meson.build
 create mode 100644 xkb/meson.build

-- 
2.11.0



More information about the xorg-devel mailing list