build: increase minimum meson version to 0.53.2

This patchset bumps the minimum meson version from 0.49.2 to 0.53.2.
Ideally, the minimum version should be 0.53 without a point release, but
some DPDK builds (mingw) are broken with 0.53.0 due to issue[1], fixed
by commit[2] in 0.53.1. Therefore we use the latest point release from
0.53 branch i.e. 0.53.2.

Some new features of interest which can now be used in DPDK with this
new minimum meson version:

* can do header-file checks directly inside find_library calls, rather
  than needing a separate check.[v0.50].
* can pass multiple cross-files at the same time when cross-compiling
  [v0.51].
* "alias_target" function, to allow use to give better/shorter names
  for particular build objects [v0.52].
* auto-generation of clang-format [v0.50] and clang-tidy[v0.52] targets
  when those tools are present and config dotfiles are present.
  Similarly ctags and cscope are added as targets when those tools are
  present [v0.53]
* meson module for filesystem operations, so meson can now check for the
  presence of particular files or directories [v0.53].
* "summary" function to provide a configuration summary at the end of
  the meson run [v0.53].

Plus many other features. See [3] for full details of each version.

[1] https://github.com/mesonbuild/meson/issues/6442
[2] https://github.com/mesonbuild/meson/pull/6457/commits/8e7a7c36b579
[3] https://mesonbuild.com/Release-notes.html

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: David Marchand <david.marchand@redhat.com>
This commit is contained in:
Bruce Richardson 2022-10-07 17:24:04 +01:00 committed by David Marchand
parent 8ad97e4b32
commit 909ad7b80e
5 changed files with 7 additions and 9 deletions

View File

@ -4,7 +4,7 @@
[ "$(id -u)" != '0' ] || alias sudo=
# need to install as 'root' since some of the unit tests won't run without it
sudo python3 -m pip install --upgrade 'meson==0.49.2'
sudo python3 -m pip install --upgrade 'meson==0.53.2'
# setup hugepages. error ignored because having hugepage is not mandatory.
cat /proc/meminfo

View File

@ -43,7 +43,7 @@ Compilation of the DPDK
* Python 3.5 or later.
* Meson (version 0.49.2+) and ninja
* Meson (version 0.53.2+) and ninja
* ``meson`` & ``ninja-build`` packages in most Linux distributions
* If the packaged version is below the minimum version, the latest versions

View File

@ -35,7 +35,7 @@ The ``meson`` tool is used to configure a DPDK build. On most Linux
distributions this can be got using the local package management system,
e.g. ``dnf install meson`` or ``apt-get install meson``. If meson is not
available as a suitable package, it can also be installed using the Python
3 ``pip`` tool, e.g. ``pip3 install meson``. Version 0.49.2 of meson is
3 ``pip`` tool, e.g. ``pip3 install meson``. Version 0.53.2 or later of meson is
required - if the version packaged is too old, the latest version is
generally available from "pip".

View File

@ -47,7 +47,7 @@ endif
libmtcr_ul_found = false
lib = cc.find_library('mtcr_ul', required:false)
if lib.found() and run_command('meson', '--version').stdout().version_compare('>= 0.49.2')
if lib.found()
libmtcr_ul_found = true
ext_deps += lib
endif

View File

@ -12,16 +12,14 @@ project('DPDK', 'C',
'default_library=static',
'warning_level=2',
],
meson_version: '>= 0.49.2'
meson_version: '>= 0.53.2'
)
# check for developer mode
developer_mode = false
if get_option('developer_mode').auto()
if meson.version().version_compare('>=0.53') # fs module available
fs = import('fs')
developer_mode = fs.exists('.git')
endif
fs = import('fs')
developer_mode = fs.exists('.git')
else
developer_mode = get_option('developer_mode').enabled()
endif