diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2022-10-05 14:53:56 +0300 |
---|---|---|
committer | Nirbheek Chauhan <nirbheek@centricular.com> | 2022-10-05 21:32:25 +0530 |
commit | 6a39ef1b33a6cfae2a8d2bda383e1f7fc13a5393 (patch) | |
tree | 0c43177b513207bf396ecbe9d474bd562590b5e1 | |
parent | e168c3d23a05b23c13a98c95da5c68398575c54a (diff) | |
download | meson-6a39ef1b33a6cfae2a8d2bda383e1f7fc13a5393.tar.gz |
Only use Debian path fixing on old distros.
Cherry-picked from https://github.com/mesonbuild/meson/pull/10886
Final version will probably look different when merged.
-rwxr-xr-x | run_meson_command_tests.py | 37 |
1 files changed, 26 insertions, 11 deletions
diff --git a/run_meson_command_tests.py b/run_meson_command_tests.py index 03083f07a..a6a137b7f 100755 --- a/run_meson_command_tests.py +++ b/run_meson_command_tests.py @@ -19,29 +19,44 @@ import tempfile import unittest import subprocess import zipapp +import sysconfig from pathlib import Path from mesonbuild.mesonlib import windows_proof_rmtree, python_command, is_windows from mesonbuild.coredata import version as meson_version -# Handle the scheme that Debian patches in the as default -import sysconfig -# This function was renamed and made public in Python 3.10 -if hasattr(sysconfig, 'get_default_scheme'): - scheme = sysconfig.get_default_scheme() -else: - scheme = sysconfig._get_default_scheme() -if scheme == 'posix_local': - scheme = 'posix_prefix' +scheme = None + +def needs_debian_path_hack(): + try: + import setuptools + return int(setuptools.__version__.split('.')[0]) < 65 + except ModuleNotFoundError: + return False + +if needs_debian_path_hack(): + # Handle the scheme that Debian patches in the as default + # This function was renamed and made public in Python 3.10 + if hasattr(sysconfig, 'get_default_scheme'): + scheme = sysconfig.get_default_scheme() + else: + scheme = sysconfig._get_default_scheme() + if scheme == 'posix_local': + scheme = 'posix_prefix' def get_pypath(): - pypath = sysconfig.get_path('purelib', scheme=scheme, vars={'base': ''}) + if scheme: + pypath = sysconfig.get_path('purelib', scheme=scheme, vars={'base': ''}) + else: + pypath = sysconfig.get_path('purelib', vars={'base': ''}) # Ensure that / is the path separator and not \, then strip / return Path(pypath).as_posix().strip('/') def get_pybindir(): # 'Scripts' on Windows and 'bin' on other platforms including MSYS - return sysconfig.get_path('scripts', scheme=scheme, vars={'base': ''}).strip('\\/') + if scheme: + return sysconfig.get_path('scripts', scheme=scheme, vars={'base': ''}).strip('\\/') + return sysconfig.get_path('scripts', vars={'base': ''}).strip('\\/') class CommandTests(unittest.TestCase): ''' |