diff options
| author | Simon McVittie <smcv@debian.org> | 2024-10-02 12:36:57 +0100 |
|---|---|---|
| committer | Jussi Pakkanen <jpakkane@gmail.com> | 2024-10-02 22:58:50 +0300 |
| commit | ed1d626c356e5d194b94943cd56bb99f14d38db0 (patch) | |
| tree | 25a43c9254797958d4d2cc6f00fa30bfb0ed57d8 /mesonbuild/scripts | |
| parent | 3ee9e358b4be10d982a59fabf6e247cd16ac94f5 (diff) | |
| download | meson-ed1d626c356e5d194b94943cd56bb99f14d38db0.tar.gz | |
env2mfile: Convert MachineInfo into a dataclass
This will make it easier to unit-test functions that work with a
MachineInfo, by constructing the expected object in a single call.
Signed-off-by: Simon McVittie <smcv@debian.org>
Diffstat (limited to 'mesonbuild/scripts')
| -rwxr-xr-x | mesonbuild/scripts/env2mfile.py | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/mesonbuild/scripts/env2mfile.py b/mesonbuild/scripts/env2mfile.py index c6f22ae76..ff3fedafb 100755 --- a/mesonbuild/scripts/env2mfile.py +++ b/mesonbuild/scripts/env2mfile.py @@ -3,6 +3,7 @@ from __future__ import annotations +from dataclasses import dataclass, field import sys, os, subprocess, shutil import shlex import typing as T @@ -47,21 +48,21 @@ def add_arguments(parser: 'argparse.ArgumentParser') -> None: parser.add_argument('--endian', default='little', choices=['big', 'little'], help='Define endianness for cross compilation.') +@dataclass class MachineInfo: - def __init__(self) -> None: - self.compilers: T.Dict[str, T.List[str]] = {} - self.binaries: T.Dict[str, T.List[str]] = {} - self.properties: T.Dict[str, T.Union[str, T.List[str]]] = {} - self.compile_args: T.Dict[str, T.List[str]] = {} - self.link_args: T.Dict[str, T.List[str]] = {} - self.cmake: T.Dict[str, T.Union[str, T.List[str]]] = {} - - self.system: T.Optional[str] = None - self.subsystem: T.Optional[str] = None - self.kernel: T.Optional[str] = None - self.cpu: T.Optional[str] = None - self.cpu_family: T.Optional[str] = None - self.endian: T.Optional[str] = None + compilers: T.Dict[str, T.List[str]] = field(default_factory=dict) + binaries: T.Dict[str, T.List[str]] = field(default_factory=dict) + properties: T.Dict[str, T.Union[str, T.List[str]]] = field(default_factory=dict) + compile_args: T.Dict[str, T.List[str]] = field(default_factory=dict) + link_args: T.Dict[str, T.List[str]] = field(default_factory=dict) + cmake: T.Dict[str, T.Union[str, T.List[str]]] = field(default_factory=dict) + + system: T.Optional[str] = None + subsystem: T.Optional[str] = None + kernel: T.Optional[str] = None + cpu: T.Optional[str] = None + cpu_family: T.Optional[str] = None + endian: T.Optional[str] = None #parser = argparse.ArgumentParser(description='''Generate cross compilation definition file for the Meson build system. # |
