[Mesa-dev] [PATCH] meson: Add script to use VERSION file for getting version
Eric Engestrom
eric.engestrom at imgtec.com
Wed Nov 8 12:21:41 UTC 2017
On Wednesday, 2017-11-01 11:58:16 -0700, Dylan Baker wrote:
> Meson has up until this point set it's version in the root meson.build
> script. While there are other build systems them creates "one more
> thing" to duplicate between meson and every other build system, this
> script is a simple "read, strip, print" sort of deal to allow meson to
> read the VERSION file.
>
> I chose to implement this in python since python is portable, and to
> keep the meson.build script clean. This is also complicated by the fact
> that the project() call *must* be the first non-comment,non-blank in the
> toplevel meson.build script.
>
> Signed-off-by: Dylan Baker <dylanx.c.baker at intel.com>
> ---
> meson.build | 2 +-
> scripts/meson_get_version.py | 35 +++++++++++++++++++++++++++++++++++
> 2 files changed, 36 insertions(+), 1 deletion(-)
> create mode 100644 scripts/meson_get_version.py
>
> diff --git a/meson.build b/meson.build
> index 6ad8c8bbf4b..3f77380f7df 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -21,7 +21,7 @@
> project(
> 'mesa',
> ['c', 'cpp'],
> - version : '17.3.0-devel',
> + version : run_command(find_program('scripts/meson_get_version.py')).stdout(),
> license : 'MIT',
> meson_version : '>= 0.42',
> default_options : ['c_std=c99', 'cpp_std=c++11']
> diff --git a/scripts/meson_get_version.py b/scripts/meson_get_version.py
> new file mode 100644
> index 00000000000..a221e26f250
> --- /dev/null
> +++ b/scripts/meson_get_version.py
get_reviewers.pl is the only script in `scripts/`, everything else is in
`bin/`. I would suggest putting your script in `bin/` for now, we might
merge `bin/` into `scripts/` later.
> @@ -0,0 +1,35 @@
> +#!/usr/bin/env python
> +# encoding=utf-8
> +# Copyright © 2017 Intel Corporation
> +
> +# Permission is hereby granted, free of charge, to any person obtaining a copy
> +# of this software and associated documentation files (the "Software"), to deal
> +# in the Software without restriction, including without limitation the rights
> +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
> +# copies of the Software, and to permit persons to whom the Software is
> +# furnished to do so, subject to the following conditions:
> +
> +# The above copyright notice and this permission notice shall be included in
> +# all copies or substantial portions of the Software.
> +
> +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
> +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
> +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
> +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
> +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
> +# SOFTWARE.
> +
> +from __future__ import print_function
> +import os
> +
> +
> +def main():
> + filename = os.path.join(os.environ['MESON_SOURCE_ROOT'], 'VERSION')
> + with open(filename) as f:
> + version = f.read().strip()
> + print(version, end='')
> +
> +
> +if __name__ == '__main__':
> + main()
Seems like overkill, but why not. Change `main()` to `print_mesa_version()`
or something though, if the idea is to have it available as a module?
Reviewed-by: Eric Engestrom <eric.engestrom at imgtec.com>
> --
> 2.14.3
>
More information about the mesa-dev
mailing list