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: ...
 |