summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDylan Baker <dylan@pnwbakers.com>2024-01-19 14:50:31 -0800
committerDylan Baker <dylan@pnwbakers.com>2024-01-30 10:58:14 -0800
commit55d30b61ffadb014abb0c814c039ebebfc7df347 (patch)
treefa221a687f0ba77557863063f3555cd963d05642
parent708a108cded4b25928b838483a95aad764622716 (diff)
downloadmeson-55d30b61ffadb014abb0c814c039ebebfc7df347.tar.gz
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
-rw-r--r--mesonbuild/cargo/interpreter.py3
-rw-r--r--mesonbuild/modules/rust.py3
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