meson: Support for both packaging and distutils

distutils was deprecated and is now gone on modern systems.
so the default behavior is to use the supported thing, which is packaging.version, and when on an old system, fallback to the old distutils.version.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9943

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26746>
(cherry picked from commit 670a799ebf)
This commit is contained in:
Yonggang Luo
2023-12-18 18:16:47 +08:00
committed by Eric Engestrom
parent 0b44ec8648
commit 92cdf6cb5f
2 changed files with 6 additions and 3 deletions

View File

@@ -2464,7 +2464,7 @@
"description": "meson: Support for both packaging and distutils",
"nominated": false,
"nomination_type": 3,
"resolution": 4,
"resolution": 1,
"main_sha": null,
"because_sha": null,
"notes": null

View File

@@ -886,9 +886,12 @@ prog_python = import('python').find_installation('python3')
has_mako = run_command(
prog_python, '-c',
'''
from distutils.version import StrictVersion
try:
from packaging.version import Version
except:
from distutils.version import StrictVersion as Version
import mako
assert StrictVersion(mako.__version__) >= StrictVersion("0.8.0")
assert Version(mako.__version__) >= Version("0.8.0")
''', check: false)
if has_mako.returncode() != 0
error('Python (3.x) mako module >= 0.8.0 required to build mesa.')