[dpdk-dev] [PATCH 0/6] enable easier app compilation testing with meson

Bruce Richardson bruce.richardson at intel.com
Thu Mar 29 15:54:30 CEST 2018


Summary:
	With this set you can test building all applicable examples by
	calling meson with "-Dexamples=all"

When building DPDK with meson, it's possible to specify a list of sample
apps to have built along with the main code. However, specifying a full
list of all apps can be unwieldy, so this set adds support for passing
"all" as the examples to be built.

With "all", meson just adds all subdirectories of "examples" to the build,
so the first few patches are ensuring that we don't get an error by
attempting to build an unsupported application. On linux, only 7 apps were
unsupported, in that they had not been given a meson.build file. On
FreeBSD, a few others had to have their meson.build files updated to report
them as unsupported.

In terms of behaviour, the meson.build file for each app will report if the
app can be built or not. If "all" is requested, then a message is printed
and the meson run can continue. If, however, the app is requested by name,
then an error is reported and the meson run halts.

The final two patches in the series are more cleanup, the former improves
error reporting, while the last patch is a performance improvement. Meson
runs quickly enough in the normal case, but with a full set of examples,
the dependency chain resolution can slow things down. Reducing the lists of
dependencies makes a noticable difference in this case. [NOTE: this
slowness and speedup only applies to the meson run; the actual build using
ninja is as fast as ever!]

Bruce Richardson (6):
  examples: add empty meson files for unsupported examples
  examples/l2fwd-cat: make build dependent on pqos library
  examples: disable unsupported examples on BSD
  examples: allow building all examples as part of meson build
  examples: improve error report for missing meson deps
  drivers/dpaa*: reduce meson dependency lists

 drivers/bus/dpaa/meson.build            |  2 +-
 drivers/bus/fslmc/meson.build           |  2 +-
 drivers/crypto/dpaa2_sec/meson.build    |  2 +-
 drivers/event/dpaa/meson.build          |  2 +-
 drivers/event/dpaa2/meson.build         |  2 +-
 drivers/mempool/dpaa2/meson.build       |  2 +-
 drivers/net/dpaa/meson.build            |  2 +-
 drivers/net/dpaa2/meson.build           |  2 +-
 examples/ethtool/meson.build            | 10 +++++++
 examples/kni/meson.build                |  3 +++
 examples/l2fwd-cat/meson.build          |  4 ++-
 examples/l3fwd-power/meson.build        |  3 +++
 examples/meson.build                    | 48 ++++++++++++++++++++++++---------
 examples/multi_process/meson.build      | 10 +++++++
 examples/netmap_compat/meson.build      | 10 +++++++
 examples/performance-thread/meson.build | 10 +++++++
 examples/quota_watermark/meson.build    | 10 +++++++
 examples/server_node_efd/meson.build    | 10 +++++++
 examples/tep_termination/meson.build    |  3 +++
 examples/vhost/meson.build              |  3 +++
 examples/vhost_scsi/meson.build         |  3 +++
 examples/vm_power_manager/meson.build   | 10 +++++++
 22 files changed, 131 insertions(+), 22 deletions(-)
 create mode 100644 examples/ethtool/meson.build
 create mode 100644 examples/multi_process/meson.build
 create mode 100644 examples/netmap_compat/meson.build
 create mode 100644 examples/performance-thread/meson.build
 create mode 100644 examples/quota_watermark/meson.build
 create mode 100644 examples/server_node_efd/meson.build
 create mode 100644 examples/vm_power_manager/meson.build

-- 
2.14.3



More information about the dev mailing list