On 2017-10-24 14:54:10, Eric Engestrom wrote: > Meson's vcs_tag() uses the output of `git describe`, eg. > 17.3-branchpoint-5-gfbf29c3cd15ae831e249+ > > Whereas the other build systems used a script that outputs only the sha1 > of the HEAD commit, eg. > fbf29c3cd1 > > Given that this information is used by printing it next to the version > number, there's some redundancy here, and inconsistency between build > systems.
So, the GL version string is something like this? 4.5 (Core Profile) Mesa 17.4.0-devel (17.3-branchpoint-5-gfbf29c3cd15ae831e249+) > Bring Meson in line by making it use the same script, with the added > advantage of now supporting the MESA_GIT_SHA1_OVERRIDE env var. > > Downside is, files using MESA_GIT_SHA1 now have to be rebuilt every > time. How about having git_sha1_gen.py read the file and skip writing it if the content would be the same? -Jordan > Signed-off-by: Eric Engestrom <e...@engestrom.ch> > --- > I don't like this solution because of the downside mentioned; I'm not > sure the redundant information is really an issue, and the inconsistency > aspect will go away once Meson becomes The One True Build System, and > the env var fallback can be implemented with a meson option instead, > although I don't like that because if you set the git version once, it > will be carried over across git pulls, but if we make it clear that such > an option is only to be used by build scripts it should be fine. > > I'm leaning towards "let's accept `git describe` as the new information > printed with the version", and implement the meson option fallback. > Thoughts? > --- > bin/meson.build | 21 +++++++++++++++++++++ > meson.build | 1 + > src/meson.build | 6 +++++- > 3 files changed, 27 insertions(+), 1 deletion(-) > create mode 100644 bin/meson.build > > diff --git a/bin/meson.build b/bin/meson.build > new file mode 100644 > index 0000000000..b8b44baf7d > --- /dev/null > +++ b/bin/meson.build > @@ -0,0 +1,21 @@ > +# Copyright © 2017 Eric Engestrom > + > +# 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. > + > +git_sha1_gen_py = files('git_sha1_gen.py') > diff --git a/meson.build b/meson.build > index 09e4615a14..8a92ddc9a9 100644 > --- a/meson.build > +++ b/meson.build > @@ -834,4 +834,5 @@ endif > pkg = import('pkgconfig') > > subdir('include') > +subdir('bin') > subdir('src') > diff --git a/src/meson.build b/src/meson.build > index 9b1b0ae594..b35295e9d3 100644 > --- a/src/meson.build > +++ b/src/meson.build > @@ -34,9 +34,13 @@ libglsl_util = static_library( > build_by_default : false, > ) > > -sha1_h = vcs_tag( > +sha1_h = custom_target( > + 'git_sha1.h', > input : 'git_sha1.h.in', > output : 'git_sha1.h', > + command : [prog_python2, git_sha1_gen_py], > + capture : true, > + build_always : true, > ) > > subdir('gtest') > -- > Cheers, > Eric > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev