From 55d30b61ffadb014abb0c814c039ebebfc7df347 Mon Sep 17 00:00:00 2001 From: Dylan Baker Date: Fri, 19 Jan 2024 14:50:31 -0800 Subject: [PATCH] rust: Add `--extern proc_macro` in `rust.proc_macro() not in cargo translation Cargo does this by default, so it's reasonable that we do the same. Fixes: #12758 --- mesonbuild/cargo/interpreter.py | 3 +-- mesonbuild/modules/rust.py | 3 ++- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mesonbuild/cargo/interpreter.py b/mesonbuild/cargo/interpreter.py index a6634ac1b..66e45acc1 100644 --- a/mesonbuild/cargo/interpreter.py +++ b/mesonbuild/cargo/interpreter.py @@ -1,5 +1,5 @@ # SPDX-License-Identifier: Apache-2.0 -# Copyright © 2022-2023 Intel Corporation +# Copyright © 2022-2024 Intel Corporation """Interpreter for converting Cargo Toml definitions to Meson AST @@ -418,7 +418,6 @@ def _create_lib(cargo: Manifest, build: builder.Builder, crate_type: manifest.CR lib: mparser.BaseNode if cargo.lib.proc_macro or crate_type == 'proc-macro': - kwargs['rust_args'] = build.array([build.string('--extern'), build.string('proc_macro')]) lib = build.method('proc_macro', build.identifier('rust'), posargs, kwargs) else: if crate_type in {'lib', 'rlib', 'staticlib'}: diff --git a/mesonbuild/modules/rust.py b/mesonbuild/modules/rust.py index eb15473de..96e1e6f16 100644 --- a/mesonbuild/modules/rust.py +++ b/mesonbuild/modules/rust.py @@ -1,5 +1,5 @@ # SPDX-License-Identifier: Apache-2.0 -# Copyright © 2020-2023 Intel Corporation +# Copyright © 2020-2024 Intel Corporation from __future__ import annotations import itertools @@ -283,6 +283,7 @@ class RustModule(ExtensionModule): def proc_macro(self, state: ModuleState, args: T.Tuple[str, SourcesVarargsType], kwargs: _kwargs.SharedLibrary) -> SharedLibrary: kwargs['native'] = True # type: ignore kwargs['rust_crate_type'] = 'proc-macro' # type: ignore + kwargs['rust_args'] = kwargs['rust_args'] + ['--extern', 'proc_macro'] target = state._interpreter.build_target(state.current_node, args, kwargs, SharedLibrary) return target