64 lines
1.8 KiB
Python
64 lines
1.8 KiB
Python
![]() |
from collections.abc import Callable
|
||
|
from pathlib import Path
|
||
|
from typing import Final
|
||
|
from typing import Literal as L
|
||
|
|
||
|
from typing_extensions import override
|
||
|
|
||
|
from ._backend import Backend
|
||
|
|
||
|
class MesonTemplate:
|
||
|
modulename: Final[str]
|
||
|
build_template_path: Final[Path]
|
||
|
sources: Final[list[str | Path]]
|
||
|
deps: Final[list[str]]
|
||
|
libraries: Final[list[str]]
|
||
|
library_dirs: Final[list[str | Path]]
|
||
|
include_dirs: Final[list[str | Path]]
|
||
|
substitutions: Final[dict[str, str]]
|
||
|
objects: Final[list[str | Path]]
|
||
|
fortran_args: Final[list[str]]
|
||
|
pipeline: Final[list[Callable[[], None]]]
|
||
|
build_type: Final[str]
|
||
|
python_exe: Final[str]
|
||
|
indent: Final[str]
|
||
|
|
||
|
def __init__(
|
||
|
self,
|
||
|
/,
|
||
|
modulename: str,
|
||
|
sources: list[Path],
|
||
|
deps: list[str],
|
||
|
libraries: list[str],
|
||
|
library_dirs: list[str | Path],
|
||
|
include_dirs: list[str | Path],
|
||
|
object_files: list[str | Path],
|
||
|
linker_args: list[str],
|
||
|
fortran_args: list[str],
|
||
|
build_type: str,
|
||
|
python_exe: str,
|
||
|
) -> None: ...
|
||
|
|
||
|
#
|
||
|
def initialize_template(self) -> None: ...
|
||
|
def sources_substitution(self) -> None: ...
|
||
|
def deps_substitution(self) -> None: ...
|
||
|
def libraries_substitution(self) -> None: ...
|
||
|
def include_substitution(self) -> None: ...
|
||
|
def fortran_args_substitution(self) -> None: ...
|
||
|
|
||
|
#
|
||
|
def meson_build_template(self) -> str: ...
|
||
|
def generate_meson_build(self) -> str: ...
|
||
|
|
||
|
class MesonBackend(Backend):
|
||
|
dependencies: list[str]
|
||
|
meson_build_dir: L["bdir"]
|
||
|
build_type: L["debug", "release"]
|
||
|
|
||
|
def __init__(self, /, *args: object, **kwargs: object) -> None: ...
|
||
|
def write_meson_build(self, /, build_dir: Path) -> None: ...
|
||
|
def run_meson(self, /, build_dir: Path) -> None: ...
|
||
|
@override
|
||
|
def compile(self) -> None: ...
|