diff options
| author | Xavier Claessens <xavier.claessens@collabora.com> | 2023-06-02 12:11:45 -0400 |
|---|---|---|
| committer | Xavier Claessens <xclaesse@gmail.com> | 2023-10-09 21:13:58 -0400 |
| commit | dc329f0f04d917da5bf295e013f393caed4a85fc (patch) | |
| tree | 00ec4bd14f1af655fa049ec102649dad9e53f0f7 /mesonbuild/cargo | |
| parent | ea42d2d01999c00c7fe7846de38416b8693bfb79 (diff) | |
| download | meson-dc329f0f04d917da5bf295e013f393caed4a85fc.tar.gz | |
interpreter: Add support for cargo subproject
Diffstat (limited to 'mesonbuild/cargo')
| -rw-r--r-- | mesonbuild/cargo/__init__.py | 5 | ||||
| -rw-r--r-- | mesonbuild/cargo/interpreter.py | 8 |
2 files changed, 12 insertions, 1 deletions
diff --git a/mesonbuild/cargo/__init__.py b/mesonbuild/cargo/__init__.py index e69de29bb..0007b9d64 100644 --- a/mesonbuild/cargo/__init__.py +++ b/mesonbuild/cargo/__init__.py @@ -0,0 +1,5 @@ +__all__ = [ + 'interpret' +] + +from .interpreter import interpret diff --git a/mesonbuild/cargo/interpreter.py b/mesonbuild/cargo/interpreter.py index 68517ba45..12365bb1d 100644 --- a/mesonbuild/cargo/interpreter.py +++ b/mesonbuild/cargo/interpreter.py @@ -457,7 +457,13 @@ def _create_lib(cargo: Manifest, build: builder.Builder, crate_type: manifest.CR ] -def interpret(cargo: Manifest, env: Environment) -> mparser.CodeBlockNode: +def interpret(subp_name: str, subdir: str, env: Environment) -> mparser.CodeBlockNode: + package_name = subp_name[:-3] if subp_name.endswith('-rs') else subp_name + manifests = _load_manifests(os.path.join(env.source_dir, subdir)) + cargo = manifests.get(package_name) + if not cargo: + raise MesonException(f'Cargo package {package_name!r} not found in {subdir}') + filename = os.path.join(cargo.subdir, cargo.path, 'Cargo.toml') build = builder.Builder(filename) |
