diff options
| author | John Turner <jturner.usa@gmail.com> | 2025-12-21 04:20:53 +0000 |
|---|---|---|
| committer | John Turner <jturner.usa@gmail.com> | 2025-12-22 08:05:20 +0000 |
| commit | 96708614ba46c42f87b23f2a957c510499d8811e (patch) | |
| tree | 372dcf90f1a6fdf1b90f5d006ce7a32717f47166 /subprojects/packagefiles | |
| parent | 0ec856797256b5d9807929e1b32c03756eb43124 (diff) | |
| download | gentoo-utils-master.tar.gz | |
port to meson cargoHEADmasterfeature/port-to-meson-cargo
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.
Diffstat (limited to 'subprojects/packagefiles')
4 files changed, 52 insertions, 0 deletions
diff --git a/subprojects/packagefiles/syn-2-rs/meson/meson.build b/subprojects/packagefiles/syn-2-rs/meson/meson.build new file mode 100644 index 0000000..02439c2 --- /dev/null +++ b/subprojects/packagefiles/syn-2-rs/meson/meson.build @@ -0,0 +1,3 @@ +extra_args += [ + '--cfg', 'feature="full"', +] diff --git a/subprojects/packagefiles/thiserror-2.0.17-include.patch b/subprojects/packagefiles/thiserror-2.0.17-include.patch new file mode 100644 index 0000000..a061aee --- /dev/null +++ b/subprojects/packagefiles/thiserror-2.0.17-include.patch @@ -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::*; ++} diff --git a/subprojects/packagefiles/thiserror-2.0.17-rs/meson/meson.build b/subprojects/packagefiles/thiserror-2.0.17-rs/meson/meson.build new file mode 100644 index 0000000..a92f73d --- /dev/null +++ b/subprojects/packagefiles/thiserror-2.0.17-rs/meson/meson.build @@ -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() diff --git a/subprojects/packagefiles/thiserror-impl-2.0.17-include.patch b/subprojects/packagefiles/thiserror-impl-2.0.17-include.patch new file mode 100644 index 0000000..372862d --- /dev/null +++ b/subprojects/packagefiles/thiserror-impl-2.0.17-include.patch @@ -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(), + )); + } |
