On 09/10/17 21:56, Brian Paul wrote:
If one uses a parent build script to download/build Mesa we may not
have a full git repository (maybe a tar archive) so the 'git rev-parse'
command will fail.

This updates the script to look for a MESA_GIT_SHA1_OVERRIDE env var.
If it's set, use that sha1 instead of using git rev-parse.  With this
change we can put a git hash in the GL_VERSION string even when we
don't have a git repo.
---
  bin/git_sha1_gen.py | 52 +++++++++++++++++++++++++++++++++++++++-------------
  1 file changed, 39 insertions(+), 13 deletions(-)

diff --git a/bin/git_sha1_gen.py b/bin/git_sha1_gen.py
index 97981fb..ce35cdc 100755
--- a/bin/git_sha1_gen.py
+++ b/bin/git_sha1_gen.py
@@ -1,20 +1,46 @@
  #!/usr/bin/env python
+"""
+Generate the contents of the git_sha1.h file.
+The output of this script goes to stdout.
+"""
+
+
+import os
  import os.path
  import subprocess
  import sys
-git_dir = os.path.join(os.path.dirname(sys.argv[0]), '..', '.git')
-try:
-    git_sha1 = subprocess.check_output([
-        'git',
-        '--git-dir=' + git_dir,
-        'rev-parse',
-        '--short=10',
-        'HEAD',
-    ], stderr=open(os.devnull, 'w')).decode("ascii")
-except:
-    # don't print anything if it fails
-    pass
-else:
+def get_git_envvar():
+    """Try to get the git SHA1 from the MESA_GIT_SHA1_OVERRIDE env var."""
+    try:
+        git_sha1 = os.environ['MESA_GIT_SHA1_OVERRIDE']
+        git_sha1 = git_sha1[0:10]
+    except:
+        git_sha1 = None
+    return git_sha1
+
+
+def get_git_sha1():
+    """Try to get the git SHA1 with git rev-parse."""
+    git_dir = os.path.join(os.path.dirname(sys.argv[0]), '..', '.git')
+    try:
+        git_sha1 = subprocess.check_output([
+            'git',
+            '--git-dir=' + git_dir,
+            'rev-parse',
+            '--short=10',
+            'HEAD',
+        ], stderr=open(os.devnull, 'w')).decode("ascii")
+    except:
+        # don't print anything if it fails
+        git_sha1 = None
+    return git_sha1
+
+
+git_sha1 = get_git_envvar()
+if not git_sha1:
+    git_sha1 = get_git_sha1()
+
+if git_sha1:
      sys.stdout.write('#define MESA_GIT_SHA1 "git-%s"\n' % git_sha1.rstrip())


Looks good to me.

Reviewed-by: Jose Fonseca <jfons...@vmware.com>
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to