The Meson Build System
http://mesonbuild.com/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
158 lines
3.4 KiB
158 lines
3.4 KiB
# SPDX-License-Identifier: Apache-2.0 |
|
# Copyright © 2021 The Meson Developers |
|
# Copyright © 2021 Intel Corporation |
|
|
|
"""Keyword Argument type annotations.""" |
|
|
|
import typing as T |
|
|
|
from typing_extensions import TypedDict, Literal |
|
|
|
from .. import build |
|
from .. import coredata |
|
from ..mesonlib import MachineChoice, File, FileMode, FileOrString |
|
from .interpreterobjects import EnvironmentVariablesObject |
|
|
|
|
|
class FuncAddProjectArgs(TypedDict): |
|
|
|
"""Keyword Arguments for the add_*_arguments family of arguments. |
|
|
|
including `add_global_arguments`, `add_project_arguments`, and their |
|
link variants |
|
|
|
Because of the use of a convertor function, we get the native keyword as |
|
a MachineChoice instance already. |
|
""" |
|
|
|
native: MachineChoice |
|
language: T.List[str] |
|
|
|
|
|
class BaseTest(TypedDict): |
|
|
|
"""Shared base for the Rust module.""" |
|
|
|
args: T.List[T.Union[str, File, build.Target]] |
|
should_fail: bool |
|
timeout: int |
|
workdir: T.Optional[str] |
|
depends: T.List[T.Union[build.CustomTarget, build.BuildTarget]] |
|
priority: int |
|
env: T.Union[EnvironmentVariablesObject, T.List[str], T.Dict[str, str], str] |
|
suite: T.List[str] |
|
|
|
|
|
class FuncBenchmark(BaseTest): |
|
|
|
"""Keyword Arguments shared between `test` and `benchmark`.""" |
|
|
|
protocol: Literal['exitcode', 'tap', 'gtest', 'rust'] |
|
|
|
|
|
class FuncTest(FuncBenchmark): |
|
|
|
"""Keyword Arguments for `test` |
|
|
|
`test` only adds the `is_prallel` argument over benchmark, so inherintance |
|
is helpful here. |
|
""" |
|
|
|
is_parallel: bool |
|
|
|
|
|
class ExtractRequired(TypedDict): |
|
|
|
"""Keyword Arguments consumed by the `extract_required_kwargs` function. |
|
|
|
Any function that uses the `required` keyword argument which accepts either |
|
a boolean or a feature option should inherit it's arguments from this class. |
|
""" |
|
|
|
required: T.Union[bool, coredata.UserFeatureOption] |
|
|
|
|
|
class ExtractSearchDirs(TypedDict): |
|
|
|
"""Keyword arguments consumed by the `extract_search_dirs` function. |
|
|
|
See the not in `ExtractRequired` |
|
""" |
|
|
|
dirs: T.List[str] |
|
|
|
|
|
class FuncGenerator(TypedDict): |
|
|
|
"""Keyword rguments for the generator function.""" |
|
|
|
arguments: T.List[str] |
|
output: T.List[str] |
|
depfile: bool |
|
capture: bool |
|
depends: T.List[T.Union[build.BuildTarget, build.CustomTarget]] |
|
|
|
|
|
class GeneratorProcess(TypedDict): |
|
|
|
"""Keyword Arguments for generator.process.""" |
|
|
|
preserve_path_from: T.Optional[str] |
|
extra_args: T.List[str] |
|
|
|
class DependencyMethodPartialDependency(TypedDict): |
|
|
|
""" Keyword Arguments for the dep.partial_dependency methods """ |
|
|
|
compile_args: bool |
|
link_args: bool |
|
links: bool |
|
includes: bool |
|
sources: bool |
|
|
|
class BuildTargeMethodExtractAllObjects(TypedDict): |
|
recursive: bool |
|
|
|
class FuncInstallSubdir(TypedDict): |
|
|
|
install_dir: str |
|
strip_directory: bool |
|
exclude_files: T.List[str] |
|
exclude_directories: T.List[str] |
|
install_mode: FileMode |
|
|
|
|
|
class FuncInstallData(TypedDict): |
|
|
|
install_dir: str |
|
sources: T.List[FileOrString] |
|
rename: T.List[str] |
|
install_mode: FileMode |
|
|
|
|
|
class FuncInstallHeaders(TypedDict): |
|
|
|
install_dir: T.Optional[str] |
|
install_mode: FileMode |
|
subdir: T.Optional[str] |
|
|
|
|
|
class FuncInstallMan(TypedDict): |
|
|
|
install_dir: T.Optional[str] |
|
install_mode: FileMode |
|
locale: T.Optional[str] |
|
|
|
|
|
class FuncImportModule(ExtractRequired): |
|
|
|
disabler: bool |
|
|
|
|
|
class FuncIncludeDirectories(TypedDict): |
|
|
|
is_system: bool |
|
|
|
class FuncAddLanguages(ExtractRequired): |
|
|
|
native: T.Optional[bool]
|
|
|