[Mesa-dev] [PATCH mesa] meson: bring MESA_GIT_SHA1 in line with other build systems

Jordan Justen jordan.l.justen at intel.com
Wed Oct 25 07:02:49 UTC 2017


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 <eric at 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 at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list