* [RFC PATCH 0/2] meson: Specify Rust edition by rust_std=20XX
@ 2024-08-14 9:08 Junjie Mao
2024-08-14 9:08 ` [RFC PATCH 1/2] meson: subprojects: " Junjie Mao
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Junjie Mao @ 2024-08-14 9:08 UTC (permalink / raw)
To: manos.pitsidianakis, pbonzini
Cc: alex.bennee, armbru, berrange, gustavo.romero, mads,
marcandre.lureau, peter.maydell, philmd, pierrick.bouvier,
qemu-devel, richard.henderson, rowan.hart, stefanha, thuth,
zhao1.liu
The official way to specify Rust edition in meson is the rust_std build option
[1]. It is used for generating --edition rustc options and filling
rust-project.json which provides project layout information to
rust-analyzer. Specifying Rust edition by rust_args instead causes meson to
generate "edition": "--edition" in rust-project.json, which is invalid.
Replace "--edition" rust_args with overriding of rust_std and build.rust_std to
fix the generated rust-project.json.
The rust_std option is part of the build environment and has two forms: rust_std
for the host machine and build.rust_std for the build machine. Specify both in
meson.build for completeness.
The default_options argument of project() is not used because it does not work
for rust_std in subprojects in meson 1.5.1.
This series is based on Paolo's refinement [2] to Manos's rust-pl011-rfc-v6
[3]. Feel free to squash these changes into that series.
[1] https://github.com/mesonbuild/meson/pull/7934
[2] https://gitlab.com/bonzini/qemu/-/tree/rust-for-manos
[3] https://lore.kernel.org/qemu-devel/rust-pl011-rfc-v6.git.manos.pitsidianakis@linaro.org
Junjie Mao (2):
meson: subprojects: Specify Rust edition by rust_std=20XX
rust: Specify Rust edition by rust_std=20XX
rust/hw/char/pl011/meson.build | 4 +---
rust/meson.build | 4 +---
rust/qemu-api/meson.build | 2 +-
subprojects/packagefiles/arbitrary-int-1-rs/meson.build | 4 +---
subprojects/packagefiles/bilge-impl-0.2-rs/meson.build | 2 +-
subprojects/packagefiles/either-1-rs/meson.build | 2 +-
subprojects/packagefiles/itertools-0.11-rs/meson.build | 2 +-
subprojects/packagefiles/proc-macro-error-1-rs/meson.build | 2 +-
.../packagefiles/proc-macro-error-attr-1-rs/meson.build | 2 +-
subprojects/packagefiles/proc-macro2-1-rs/meson.build | 2 +-
subprojects/packagefiles/quote-1-rs/meson.build | 2 +-
subprojects/packagefiles/syn-2-rs/meson.build | 2 +-
subprojects/packagefiles/unicode-ident-1-rs/meson.build | 4 +---
13 files changed, 13 insertions(+), 21 deletions(-)
--
2.30.2
^ permalink raw reply [flat|nested] 4+ messages in thread
* [RFC PATCH 1/2] meson: subprojects: Specify Rust edition by rust_std=20XX
2024-08-14 9:08 [RFC PATCH 0/2] meson: Specify Rust edition by rust_std=20XX Junjie Mao
@ 2024-08-14 9:08 ` Junjie Mao
2024-08-14 9:08 ` [RFC PATCH 2/2] rust: " Junjie Mao
2024-08-14 11:19 ` [RFC PATCH 0/2] meson: " Manos Pitsidianakis
2 siblings, 0 replies; 4+ messages in thread
From: Junjie Mao @ 2024-08-14 9:08 UTC (permalink / raw)
To: manos.pitsidianakis, pbonzini
Cc: alex.bennee, armbru, berrange, gustavo.romero, mads,
marcandre.lureau, peter.maydell, philmd, pierrick.bouvier,
qemu-devel, richard.henderson, rowan.hart, stefanha, thuth,
zhao1.liu
Signed-off-by: Junjie Mao <junjie.mao@intel.com>
---
subprojects/packagefiles/arbitrary-int-1-rs/meson.build | 4 +---
subprojects/packagefiles/bilge-impl-0.2-rs/meson.build | 2 +-
subprojects/packagefiles/either-1-rs/meson.build | 2 +-
subprojects/packagefiles/itertools-0.11-rs/meson.build | 2 +-
subprojects/packagefiles/proc-macro-error-1-rs/meson.build | 2 +-
.../packagefiles/proc-macro-error-attr-1-rs/meson.build | 2 +-
subprojects/packagefiles/proc-macro2-1-rs/meson.build | 2 +-
subprojects/packagefiles/quote-1-rs/meson.build | 2 +-
subprojects/packagefiles/syn-2-rs/meson.build | 2 +-
subprojects/packagefiles/unicode-ident-1-rs/meson.build | 4 +---
10 files changed, 10 insertions(+), 14 deletions(-)
diff --git a/subprojects/packagefiles/arbitrary-int-1-rs/meson.build b/subprojects/packagefiles/arbitrary-int-1-rs/meson.build
index 9cba82365f..34a189cbae 100644
--- a/subprojects/packagefiles/arbitrary-int-1-rs/meson.build
+++ b/subprojects/packagefiles/arbitrary-int-1-rs/meson.build
@@ -7,10 +7,8 @@ _arbitrary_int_rs = static_library(
'arbitrary_int',
files('src/lib.rs'),
gnu_symbol_visibility: 'hidden',
+ override_options: ['rust_std=2021', 'build.rust_std=2021'],
rust_abi: 'rust',
- rust_args: [
- '--edition', '2021',
- ],
dependencies: [],
)
diff --git a/subprojects/packagefiles/bilge-impl-0.2-rs/meson.build b/subprojects/packagefiles/bilge-impl-0.2-rs/meson.build
index e0c51c7375..80243c7024 100644
--- a/subprojects/packagefiles/bilge-impl-0.2-rs/meson.build
+++ b/subprojects/packagefiles/bilge-impl-0.2-rs/meson.build
@@ -22,8 +22,8 @@ rust = import('rust')
_bilge_impl_rs = rust.proc_macro(
'bilge_impl',
files('src/lib.rs'),
+ override_options: ['rust_std=2021', 'build.rust_std=2021'],
rust_args: [
- '--edition', '2021',
'--cfg', 'use_fallback',
'--cfg', 'feature="syn-error"',
'--cfg', 'feature="proc-macro"',
diff --git a/subprojects/packagefiles/either-1-rs/meson.build b/subprojects/packagefiles/either-1-rs/meson.build
index 07240b8708..a5842eb3a6 100644
--- a/subprojects/packagefiles/either-1-rs/meson.build
+++ b/subprojects/packagefiles/either-1-rs/meson.build
@@ -7,9 +7,9 @@ _either_rs = static_library(
'either',
files('src/lib.rs'),
gnu_symbol_visibility: 'hidden',
+ override_options: ['rust_std=2018', 'build.rust_std=2018'],
rust_abi: 'rust',
rust_args: [
- '--edition', '2018',
'--cfg', 'feature="use_std"',
'--cfg', 'feature="use_alloc"',
],
diff --git a/subprojects/packagefiles/itertools-0.11-rs/meson.build b/subprojects/packagefiles/itertools-0.11-rs/meson.build
index da731ca032..13d2d27019 100644
--- a/subprojects/packagefiles/itertools-0.11-rs/meson.build
+++ b/subprojects/packagefiles/itertools-0.11-rs/meson.build
@@ -11,9 +11,9 @@ _itertools_rs = static_library(
'itertools',
files('src/lib.rs'),
gnu_symbol_visibility: 'hidden',
+ override_options: ['rust_std=2018', 'build.rust_std=2018'],
rust_abi: 'rust',
rust_args: [
- '--edition', '2018',
'--cfg', 'feature="use_std"',
'--cfg', 'feature="use_alloc"',
],
diff --git a/subprojects/packagefiles/proc-macro-error-1-rs/meson.build b/subprojects/packagefiles/proc-macro-error-1-rs/meson.build
index 20f2e99a87..38ea7b89d3 100644
--- a/subprojects/packagefiles/proc-macro-error-1-rs/meson.build
+++ b/subprojects/packagefiles/proc-macro-error-1-rs/meson.build
@@ -16,9 +16,9 @@ syn_dep = dependency('syn-2-rs', native: true)
_proc_macro_error_rs = static_library(
'proc_macro_error',
files('src/lib.rs'),
+ override_options: ['rust_std=2018', 'build.rust_std=2018'],
rust_abi: 'rust',
rust_args: [
- '--edition', '2018',
'--cfg', 'use_fallback',
'--cfg', 'feature="syn-error"',
'--cfg', 'feature="proc-macro"',
diff --git a/subprojects/packagefiles/proc-macro-error-attr-1-rs/meson.build b/subprojects/packagefiles/proc-macro-error-attr-1-rs/meson.build
index 1aafd41795..d900c54cfd 100644
--- a/subprojects/packagefiles/proc-macro-error-attr-1-rs/meson.build
+++ b/subprojects/packagefiles/proc-macro-error-attr-1-rs/meson.build
@@ -13,8 +13,8 @@ rust = import('rust')
_proc_macro_error_attr_rs = rust.proc_macro(
'proc_macro_error_attr',
files('src/lib.rs'),
+ override_options: ['rust_std=2018', 'build.rust_std=2018'],
rust_args: [
- '--edition', '2018',
'--cfg', 'use_fallback',
'--cfg', 'feature="syn-error"',
'--cfg', 'feature="proc-macro"'
diff --git a/subprojects/packagefiles/proc-macro2-1-rs/meson.build b/subprojects/packagefiles/proc-macro2-1-rs/meson.build
index 6796d75295..8e601b50cc 100644
--- a/subprojects/packagefiles/proc-macro2-1-rs/meson.build
+++ b/subprojects/packagefiles/proc-macro2-1-rs/meson.build
@@ -11,9 +11,9 @@ _proc_macro2_rs = static_library(
'proc_macro2',
files('src/lib.rs'),
gnu_symbol_visibility: 'hidden',
+ override_options: ['rust_std=2021', 'build.rust_std=2021'],
rust_abi: 'rust',
rust_args: [
- '--edition', '2021',
'--cfg', 'feature="proc-macro"',
'--cfg', 'no_literal_byte_character',
'--cfg', 'no_literal_c_string',
diff --git a/subprojects/packagefiles/quote-1-rs/meson.build b/subprojects/packagefiles/quote-1-rs/meson.build
index a9c2fb9b61..d36609bd3c 100644
--- a/subprojects/packagefiles/quote-1-rs/meson.build
+++ b/subprojects/packagefiles/quote-1-rs/meson.build
@@ -11,9 +11,9 @@ _quote_rs = static_library(
'quote',
files('src/lib.rs'),
gnu_symbol_visibility: 'hidden',
+ override_options: ['rust_std=2021', 'build.rust_std=2021'],
rust_abi: 'rust',
rust_args: [
- '--edition', '2021',
'--cfg', 'feature="proc-macro"',
],
dependencies: [
diff --git a/subprojects/packagefiles/syn-2-rs/meson.build b/subprojects/packagefiles/syn-2-rs/meson.build
index b4666473fb..a53335f309 100644
--- a/subprojects/packagefiles/syn-2-rs/meson.build
+++ b/subprojects/packagefiles/syn-2-rs/meson.build
@@ -15,9 +15,9 @@ _syn_rs = static_library(
'syn',
files('src/lib.rs'),
gnu_symbol_visibility: 'hidden',
+ override_options: ['rust_std=2021', 'build.rust_std=2021'],
rust_abi: 'rust',
rust_args: [
- '--edition', '2021',
'--cfg', 'feature="full"',
'--cfg', 'feature="derive"',
'--cfg', 'feature="parsing"',
diff --git a/subprojects/packagefiles/unicode-ident-1-rs/meson.build b/subprojects/packagefiles/unicode-ident-1-rs/meson.build
index 77c581f40a..54f2376854 100644
--- a/subprojects/packagefiles/unicode-ident-1-rs/meson.build
+++ b/subprojects/packagefiles/unicode-ident-1-rs/meson.build
@@ -7,10 +7,8 @@ _unicode_ident_rs = static_library(
'unicode_ident',
files('src/lib.rs'),
gnu_symbol_visibility: 'hidden',
+ override_options: ['rust_std=2021', 'build.rust_std=2021'],
rust_abi: 'rust',
- rust_args: [
- '--edition', '2021',
- ],
dependencies: [],
native: true,
)
--
2.30.2
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [RFC PATCH 2/2] rust: Specify Rust edition by rust_std=20XX
2024-08-14 9:08 [RFC PATCH 0/2] meson: Specify Rust edition by rust_std=20XX Junjie Mao
2024-08-14 9:08 ` [RFC PATCH 1/2] meson: subprojects: " Junjie Mao
@ 2024-08-14 9:08 ` Junjie Mao
2024-08-14 11:19 ` [RFC PATCH 0/2] meson: " Manos Pitsidianakis
2 siblings, 0 replies; 4+ messages in thread
From: Junjie Mao @ 2024-08-14 9:08 UTC (permalink / raw)
To: manos.pitsidianakis, pbonzini
Cc: alex.bennee, armbru, berrange, gustavo.romero, mads,
marcandre.lureau, peter.maydell, philmd, pierrick.bouvier,
qemu-devel, richard.henderson, rowan.hart, stefanha, thuth,
zhao1.liu
Signed-off-by: Junjie Mao <junjie.mao@intel.com>
---
rust/hw/char/pl011/meson.build | 4 +---
rust/meson.build | 4 +---
rust/qemu-api/meson.build | 2 +-
3 files changed, 3 insertions(+), 7 deletions(-)
diff --git a/rust/hw/char/pl011/meson.build b/rust/hw/char/pl011/meson.build
index 1c139d3af9..518d4924a9 100644
--- a/rust/hw/char/pl011/meson.build
+++ b/rust/hw/char/pl011/meson.build
@@ -7,10 +7,8 @@ bilge_impl_dep = dependency('bilge-impl-0.2-rs')
_libpl011_rs = static_library(
'pl011',
files('src/lib.rs'),
+ override_options: ['rust_std=2021', 'build.rust_std=2021'],
rust_abi: 'c',
- rust_args: rust_args + [
- '--edition', '2021',
- ],
dependencies: [
bilge_dep,
bilge_impl_dep,
diff --git a/rust/meson.build b/rust/meson.build
index c321fa455e..590e9397c3 100644
--- a/rust/meson.build
+++ b/rust/meson.build
@@ -2,10 +2,8 @@ _lib_bindings_rs = static_library(
'_bindings_rs',
bindings_rs,
gnu_symbol_visibility: 'hidden',
+ override_options: ['rust_std=2021', 'build.rust_std=2021'],
rust_abi: 'rust',
- rust_args: rust_args + [
- '--edition', '2021',
- ],
)
subdir('qemu-api')
diff --git a/rust/qemu-api/meson.build b/rust/qemu-api/meson.build
index a169872026..997d478309 100644
--- a/rust/qemu-api/meson.build
+++ b/rust/qemu-api/meson.build
@@ -2,9 +2,9 @@ _qemu_api_rs = static_library(
'qemu_api',
[files('src/lib.rs')],
gnu_symbol_visibility: 'hidden',
+ override_options: ['rust_std=2021', 'build.rust_std=2021'],
rust_abi: 'rust',
rust_args: rust_args + [
- '--edition', '2021',
'--cfg', 'MESON_BINDINGS_RS',
],
link_with: [
--
2.30.2
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [RFC PATCH 0/2] meson: Specify Rust edition by rust_std=20XX
2024-08-14 9:08 [RFC PATCH 0/2] meson: Specify Rust edition by rust_std=20XX Junjie Mao
2024-08-14 9:08 ` [RFC PATCH 1/2] meson: subprojects: " Junjie Mao
2024-08-14 9:08 ` [RFC PATCH 2/2] rust: " Junjie Mao
@ 2024-08-14 11:19 ` Manos Pitsidianakis
2 siblings, 0 replies; 4+ messages in thread
From: Manos Pitsidianakis @ 2024-08-14 11:19 UTC (permalink / raw)
To: Junjie Mao, pbonzini
Cc: alex.bennee, armbru, berrange, gustavo.romero, mads,
marcandre.lureau, peter.maydell, philmd, pierrick.bouvier,
qemu-devel, richard.henderson, rowan.hart, stefanha, thuth,
zhao1.liu
On Wed, 14 Aug 2024 12:08, Junjie Mao <junjie.mao@intel.com> wrote:
>The official way to specify Rust edition in meson is the rust_std build option
>[1]. It is used for generating --edition rustc options and filling
>rust-project.json which provides project layout information to
>rust-analyzer. Specifying Rust edition by rust_args instead causes meson to
>generate "edition": "--edition" in rust-project.json, which is invalid.
>
>Replace "--edition" rust_args with overriding of rust_std and build.rust_std to
>fix the generated rust-project.json.
>
>The rust_std option is part of the build environment and has two forms: rust_std
>for the host machine and build.rust_std for the build machine. Specify both in
>meson.build for completeness.
>
>The default_options argument of project() is not used because it does not work
>for rust_std in subprojects in meson 1.5.1.
>
>This series is based on Paolo's refinement [2] to Manos's rust-pl011-rfc-v6
>[3]. Feel free to squash these changes into that series.
>
>[1] https://github.com/mesonbuild/meson/pull/7934
>[2] https://gitlab.com/bonzini/qemu/-/tree/rust-for-manos
>[3] https://lore.kernel.org/qemu-devel/rust-pl011-rfc-v6.git.manos.pitsidianakis@linaro.org
>
>Junjie Mao (2):
> meson: subprojects: Specify Rust edition by rust_std=20XX
> rust: Specify Rust edition by rust_std=20XX
>
> rust/hw/char/pl011/meson.build | 4 +---
> rust/meson.build | 4 +---
> rust/qemu-api/meson.build | 2 +-
> subprojects/packagefiles/arbitrary-int-1-rs/meson.build | 4 +---
> subprojects/packagefiles/bilge-impl-0.2-rs/meson.build | 2 +-
> subprojects/packagefiles/either-1-rs/meson.build | 2 +-
> subprojects/packagefiles/itertools-0.11-rs/meson.build | 2 +-
> subprojects/packagefiles/proc-macro-error-1-rs/meson.build | 2 +-
> .../packagefiles/proc-macro-error-attr-1-rs/meson.build | 2 +-
> subprojects/packagefiles/proc-macro2-1-rs/meson.build | 2 +-
> subprojects/packagefiles/quote-1-rs/meson.build | 2 +-
> subprojects/packagefiles/syn-2-rs/meson.build | 2 +-
> subprojects/packagefiles/unicode-ident-1-rs/meson.build | 4 +---
> 13 files changed, 13 insertions(+), 21 deletions(-)
>
>--
>2.30.2
Thank you Junjie, I have applied the changes to the next version I will
be posting. Cheers!
Manos
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2024-08-14 11:21 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-08-14 9:08 [RFC PATCH 0/2] meson: Specify Rust edition by rust_std=20XX Junjie Mao
2024-08-14 9:08 ` [RFC PATCH 1/2] meson: subprojects: " Junjie Mao
2024-08-14 9:08 ` [RFC PATCH 2/2] rust: " Junjie Mao
2024-08-14 11:19 ` [RFC PATCH 0/2] meson: " Manos Pitsidianakis
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).