port to meson cargo
All checks were successful
Gentoo Utils / build-oci-image (push) Successful in 7m41s
Gentoo Utils / grep (push) Successful in 1m23s
Gentoo Utils / docs (push) Successful in 1m34s
Gentoo Utils / check-format (push) Successful in 1m37s
Gentoo Utils / build (push) Successful in 1m44s
Gentoo Utils / test (push) Successful in 36s
Gentoo Utils / fuzz (push) Successful in 1m19s

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 9002d19a40
128 changed files with 67 additions and 6190 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(),
));
}