Quoting Eric Engestrom (2017-11-08 04:21:41) > 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 <[email protected]> > > --- > > 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(),
And actually, thinking about windows, this should be:
run_command(
[find_program('python', 'python2', 'python3'), 'bin/meson_get_version.py']
).stdout(),
Since windows doesn't support shabangs link nix does.
> > 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 <[email protected]>
>
> > --
> > 2.14.3
> >
signature.asc
Description: signature
_______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
