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 <dylanx.c.ba...@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(),
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 <eric.engest...@imgtec.com> > > > -- > > 2.14.3 > >
signature.asc
Description: signature
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev