diff options
author | Xavier Claessens <xavier.claessens@collabora.com> | 2022-09-13 09:38:19 -0400 |
---|---|---|
committer | Eli Schwartz <eschwartz93@gmail.com> | 2022-09-28 19:36:13 -0400 |
commit | 2dfd952eb99590878430510644ffe99dd4a6a41d (patch) | |
tree | 53001a096d997511a8d12a44cf5019a2ff8d5a2b /mesonbuild/scripts | |
parent | a58ec322b3a9a07af83ea268341c16f972f52791 (diff) | |
download | meson-2dfd952eb99590878430510644ffe99dd4a6a41d.zip meson-2dfd952eb99590878430510644ffe99dd4a6a41d.tar.gz meson-2dfd952eb99590878430510644ffe99dd4a6a41d.tar.bz2 |
Move classes used by scripts to their own module
Those classes are used by wrapper scripts and we should not have to
import the rest of mesonlib, build.py, and all their dependencies for
that.
This renames mesonlib/ directory to utils/ and add a mesonlib.py module
that imports everything from utils/ to not have to change `import
mesonlib` everywhere. It allows to import utils.core without importing
the rest of mesonlib.
Diffstat (limited to 'mesonbuild/scripts')
-rw-r--r-- | mesonbuild/scripts/meson_exe.py | 6 | ||||
-rw-r--r-- | mesonbuild/scripts/test_loaded_modules.py | 11 |
2 files changed, 14 insertions, 3 deletions
diff --git a/mesonbuild/scripts/meson_exe.py b/mesonbuild/scripts/meson_exe.py index bb9d940..3dd91c9 100644 --- a/mesonbuild/scripts/meson_exe.py +++ b/mesonbuild/scripts/meson_exe.py @@ -20,8 +20,7 @@ import subprocess import typing as T import locale -from .. import mesonlib -from ..backend.backends import ExecutableSerialisation +from ..utils.core import ExecutableSerialisation def buildparser() -> argparse.ArgumentParser: parser = argparse.ArgumentParser(description='Custom executable wrapper for Meson. Do not run on your own, mmm\'kay?') @@ -46,7 +45,8 @@ def run_exe(exe: ExecutableSerialisation, extra_env: T.Optional[T.Dict[str, str] if exe.extra_paths: child_env['PATH'] = (os.pathsep.join(exe.extra_paths + ['']) + child_env['PATH']) - if exe.exe_wrapper and mesonlib.substring_is_in_list('wine', exe.exe_wrapper.get_command()): + if exe.exe_wrapper and any('wine' in i for i in exe.exe_wrapper.get_command()): + from .. import mesonlib child_env['WINEPATH'] = mesonlib.get_wine_shortpath( exe.exe_wrapper.get_command(), ['Z:' + p for p in exe.extra_paths] + child_env.get('WINEPATH', '').split(';'), diff --git a/mesonbuild/scripts/test_loaded_modules.py b/mesonbuild/scripts/test_loaded_modules.py new file mode 100644 index 0000000..b3547be --- /dev/null +++ b/mesonbuild/scripts/test_loaded_modules.py @@ -0,0 +1,11 @@ +import sys +import json +import typing as T +from . import meson_exe + +# This script is used by run_unittests.py to verify we don't load too many +# modules when executing a wrapped command. +def run(args: T.List[str]) -> int: + meson_exe.run(args) + print(json.dumps(list(sys.modules.keys()))) + return 0 |