summaryrefslogtreecommitdiff
path: root/subprojects/packagefiles
diff options
context:
space:
mode:
authorJohn Turner <jturner.usa@gmail.com>2025-12-21 04:20:53 +0000
committerJohn Turner <jturner.usa@gmail.com>2025-12-22 08:05:20 +0000
commit96708614ba46c42f87b23f2a957c510499d8811e (patch)
tree372dcf90f1a6fdf1b90f5d006ce7a32717f47166 /subprojects/packagefiles
parent0ec856797256b5d9807929e1b32c03756eb43124 (diff)
downloadgentoo-utils-master.tar.gz
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')
-rw-r--r--subprojects/packagefiles/syn-2-rs/meson/meson.build3
-rw-r--r--subprojects/packagefiles/thiserror-2.0.17-include.patch14
-rw-r--r--subprojects/packagefiles/thiserror-2.0.17-rs/meson/meson.build22
-rw-r--r--subprojects/packagefiles/thiserror-impl-2.0.17-include.patch13
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(),
+ ));
+ }