codekingpro/portable-devtools
114k
1from collections.abc import Callable
2from pathlib import Path
3from typing import Final, Literal as L
4from typing_extensions import override
5
6from ._backend import Backend
7
8class MesonTemplate:
9 modulename: Final[str]
10 build_template_path: Final[Path]
11 sources: Final[list[str | Path]]
12 deps: Final[list[str]]
13 libraries: Final[list[str]]
14 library_dirs: Final[list[str | Path]]
15 include_dirs: Final[list[str | Path]]
16 substitutions: Final[dict[str, str]]
17 objects: Final[list[str | Path]]
18 fortran_args: Final[list[str]]
19 pipeline: Final[list[Callable[[], None]]]
20 build_type: Final[str]
21 python_exe: Final[str]
22 indent: Final[str]
23
24 def __init__(
25 self,
26 /,
27 modulename: str,
28 sources: list[Path],
29 deps: list[str],
30 libraries: list[str],
31 library_dirs: list[str | Path],
32 include_dirs: list[str | Path],
33 object_files: list[str | Path],
34 linker_args: list[str],
35 fortran_args: list[str],
36 build_type: str,
37 python_exe: str,
38 ) -> None: ...
39
40 #
41 def initialize_template(self) -> None: ...
42 def sources_substitution(self) -> None: ...
43 def objects_substitution(self) -> None: ...
44 def deps_substitution(self) -> None: ...
45 def libraries_substitution(self) -> None: ...
46 def include_substitution(self) -> None: ...
47 def fortran_args_substitution(self) -> None: ...
48
49 #
50 def meson_build_template(self) -> str: ...
51 def generate_meson_build(self) -> str: ...
52
53class MesonBackend(Backend):
54 dependencies: list[str]
55 meson_build_dir: L["bdir"]
56 build_type: L["debug", "release"]
57
58 def __init__(self, /, *args: object, **kwargs: object) -> None: ...
59 def write_meson_build(self, /, build_dir: Path) -> None: ...
60 def run_meson(self, /, build_dir: Path) -> None: ...
61 @override
62 def compile(self) -> None: ...
63 