From 7f89fd17ed2b1bd0c0fe4ec946dcabed0f8c74d3 Mon Sep 17 00:00:00 2001 From: pal1000 Date: Thu, 7 Mar 2019 10:38:10 +0200 Subject: [PATCH] scons: Compatibility with Scons development version string This ensures Mesa3D build doesn't fail in this case as encountered when bisecting Scons source code while regression testing https://bugs.freedesktop.org/show_bug.cgi?id=109443 and when testing 3.0.5.a.2 Technical details: Scons version string has consistently been in this format: MajorVersion.MinorVersion.Patch[.alpha/beta.yyyymmdd] so these formulas should strip alpha/beta flags and return Scons version: - as string - `'.'.join(SCons.__version__.split('.')[:3])` - as tuple of integers - `tuple(map(int, SCons.__version__.split('.')[:3]))` - v2: Fixed Scons version retrieval formulas as string and tuple of integers. - v3: Fixed Scons version string format description. Cc: "19.0" Reviewed-by: Jose Fonseca --- scons/custom.py | 7 ++++++- scons/gallium.py | 9 ++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/scons/custom.py b/scons/custom.py index 09946fa7324..8028990ef61 100644 --- a/scons/custom.py +++ b/scons/custom.py @@ -48,7 +48,12 @@ import source_list # a path directly. We want to support both, so we need to detect the SCons version, # for which no API is provided by SCons 8-P -scons_version = tuple(map(int, SCons.__version__.split('.'))) +# Scons version string has consistently been in this format: +# MajorVersion.MinorVersion.Patch[.alpha/beta.yyyymmdd] +# so this formula should cover all versions regardless of type +# stable, alpha or beta. +# For simplicity alpha and beta flags are removed. +scons_version = tuple(map(int, SCons.__version__.split('.')[:3])) def quietCommandLines(env): # Quiet command lines diff --git a/scons/gallium.py b/scons/gallium.py index efe32e06c6c..61bbeb2399f 100755 --- a/scons/gallium.py +++ b/scons/gallium.py @@ -311,7 +311,14 @@ def generate(env): # Speed up dependency checking. See # - https://github.com/SCons/scons/wiki/GoFastButton # - https://bugs.freedesktop.org/show_bug.cgi?id=109443 - scons_version = distutils.version.StrictVersion(SCons.__version__) + + # Scons version string has consistently been in this format: + # MajorVersion.MinorVersion.Patch[.alpha/beta.yyyymmdd] + # so this formula should cover all versions regardless of type + # stable, alpha or beta. + # For simplicity alpha and beta flags are removed. + + scons_version = distutils.version.StrictVersion('.'.join(SCons.__version__.split('.')[:3])) if scons_version < distutils.version.StrictVersion('3.0.2') or \ scons_version > distutils.version.StrictVersion('3.0.4'): env.Decider('MD5-timestamp') -- 2.30.2