meson: modernize to 0.59
This is based on !20409 (merged).
Since that series our meson minimum version has been bumped to 0.59, which brings some new features (and deprecations) for us to take advantage of. In addition, I wanted to make a few cleanups to some of the warnings that Meson spews.
Whats changed:
- make use of Meson's new (in 0.57)
project(version : files('VERSION'))
syntax. We no longer need to call a script in theproject()
call (or maintain said script) to read our VERSION file. - replace all uses of
ExternalProgram.path()
withExternalProgram.full_path()
- remove
meson.version().version_compare()
checks that will always evaluate to True - use
[]
as a default value totarget(name_prefix)
. This is poorly documented and will eventually be replaced by something more obvious, but for the moment this gets rid of warnings when we set the value to the default