port to meson cargo
Some checks failed
Gentoo Utils / build-oci-image (push) Failing after 5m17s
Gentoo Utils / build (push) Has been skipped
Gentoo Utils / test (push) Has been skipped
Gentoo Utils / fuzz (push) Has been skipped
Gentoo Utils / check-format (push) Has been skipped
Gentoo Utils / docs (push) Has been skipped
Gentoo Utils / grep (push) Has been skipped

Use the new unstable meson cargo support. This simplifies the
meson.build script and allows to use crates such as clap that require
picking up features from Cargo.toml.

This also allows us to not embed thiserror in subprojects, and instead
use a wrap file with a custom meson.build and some patches to make it
compile without running its build.rs script.
This commit is contained in:
2025-12-21 04:20:53 +00:00
parent 0ec8567972
commit 787aacc865
128 changed files with 67 additions and 6187 deletions

View File

@@ -0,0 +1,3 @@
extra_args += [
'--cfg', 'feature="full"',
]

View File

@@ -0,0 +1,14 @@
diff --git a/src/lib.rs b/src/lib.rs
index 155272d..7683f4c 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -288,4 +288,8 @@ pub use thiserror_impl::*;
mod private;
-include!(concat!(env!("OUT_DIR"), "/private.rs"));
+#[doc(hidden)]
+pub mod __private_MESON {
+ #[doc(hidden)]
+ pub use crate::private::*;
+}

View File

@@ -0,0 +1,22 @@
project(
'thiserror',
'rust',
version: '2.0.17',
meson_version: '>=1.9.1',
default_options: {
'rust_std': '2024',
'rust_nightly': 'enabled',
'rust_edition': 2024,
},
)
rust = import('rust')
cargo = rust.workspace()
syn = dependency('syn-2-rs')
proc_macro2 = dependency('proc-macro2-1-rs')
quote = dependency('quote-1-rs')
impl = cargo.package('impl').proc_macro()
thiserror = cargo.package().library()

View File

@@ -0,0 +1,13 @@
diff --git a/impl/src/lib.rs b/impl/src/lib.rs
index 25890f2..1559a41 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -48,7 +48,7 @@ struct private;
impl ToTokens for private {
fn to_tokens(&self, tokens: &mut proc_macro2::TokenStream) {
tokens.append(Ident::new(
- concat!("__private", env!("CARGO_PKG_VERSION_PATCH")),
+ concat!("__private", "_MESON"),
Span::call_site(),
));
}