diff --git a/subprojects/packagefiles/zerocopy-derive/meson.build b/subprojects/packagefiles/zerocopy-derive/meson.build new file mode 100644 index 00000000000..010aa11ed85 --- /dev/null +++ b/subprojects/packagefiles/zerocopy-derive/meson.build @@ -0,0 +1,25 @@ +# Copyright © 2024 Google +# SPDX-License-Identifier: MIT + +project( + 'zerocopy-derive', + 'rust', + version : '0.8.13', + license : 'MIT OR Apache-2.0 OR BSD 2-Clause', +) + +syn = subproject('syn').get_variable('lib') +quote = subproject('quote').get_variable('lib') +proc_macro2 = subproject('proc-macro2').get_variable('lib') + +rust = import('rust') +lib = rust.proc_macro( + 'zerocopy_derive', + 'src/lib.rs', + override_options : ['rust_std=2021', 'build.rust_std=2021'], + link_with : [syn, quote, proc_macro2] +) + +dep_zerocopy_derive = declare_dependency( + link_with : [lib, syn, quote, proc_macro2] +) diff --git a/subprojects/packagefiles/zerocopy/0001-zerocopy-work-around-Meson-limitation.patch b/subprojects/packagefiles/zerocopy/0001-zerocopy-work-around-Meson-limitation.patch new file mode 100644 index 00000000000..72171acc97e --- /dev/null +++ b/subprojects/packagefiles/zerocopy/0001-zerocopy-work-around-Meson-limitation.patch @@ -0,0 +1,92 @@ +From 84985902ff045a69ede82c4f7bdd1187836c201f Mon Sep 17 00:00:00 2001 +From: Gurchetan Singh +Date: Wed, 18 Dec 2024 14:29:44 -0800 +Subject: [PATCH] zerocopy: work around Meson limitation + +A local hack until: + +https://github.com/mesonbuild/meson/pull/10030 +https://github.com/mesonbuild/meson/issues/13752 + +is fixed. +--- + src/lib.rs | 24 ++++++++++++------------ + 1 file changed, 12 insertions(+), 12 deletions(-) + +diff --git a/src/lib.rs b/src/lib.rs +index a45c49c..d831634 100644 +--- a/src/lib.rs ++++ b/src/lib.rs +@@ -711,7 +711,7 @@ pub use zerocopy_derive::KnownLayout; + #[cfg_attr(feature = "derive", doc = "[derive]: zerocopy_derive::KnownLayout")] + #[cfg_attr( + not(feature = "derive"), +- doc = concat!("[derive]: https://docs.rs/zerocopy/", env!("CARGO_PKG_VERSION"), "/zerocopy/derive.KnownLayout.html"), ++ doc = concat!("[derive]: https://docs.rs/zerocopy/", "0.8.13", "/zerocopy/derive.KnownLayout.html"), + )] + #[cfg_attr( + zerocopy_diagnostic_on_unimplemented_1_78_0, +@@ -1217,8 +1217,8 @@ pub use zerocopy_derive::Immutable; + )] + #[cfg_attr( + not(feature = "derive"), +- doc = concat!("[derive]: https://docs.rs/zerocopy/", env!("CARGO_PKG_VERSION"), "/zerocopy/derive.Immutable.html"), +- doc = concat!("[derive-analysis]: https://docs.rs/zerocopy/", env!("CARGO_PKG_VERSION"), "/zerocopy/derive.Immutable.html#analysis"), ++ doc = concat!("[derive]: https://docs.rs/zerocopy/", "0.8.13", "/zerocopy/derive.Immutable.html"), ++ doc = concat!("[derive-analysis]: https://docs.rs/zerocopy/", "0.8.13", "/zerocopy/derive.Immutable.html#analysis"), + )] + #[cfg_attr( + zerocopy_diagnostic_on_unimplemented_1_78_0, +@@ -1368,7 +1368,7 @@ pub use zerocopy_derive::TryFromBytes; + #[cfg_attr(feature = "derive", doc = "[derive]: zerocopy_derive::TryFromBytes")] + #[cfg_attr( + not(feature = "derive"), +- doc = concat!("[derive]: https://docs.rs/zerocopy/", env!("CARGO_PKG_VERSION"), "/zerocopy/derive.TryFromBytes.html"), ++ doc = concat!("[derive]: https://docs.rs/zerocopy/", "0.8.13", "/zerocopy/derive.TryFromBytes.html"), + )] + #[cfg_attr( + zerocopy_diagnostic_on_unimplemented_1_78_0, +@@ -2900,8 +2900,8 @@ unsafe fn try_read_from( + )] + #[cfg_attr( + not(feature = "derive"), +- doc = concat!("[derive]: https://docs.rs/zerocopy/", env!("CARGO_PKG_VERSION"), "/zerocopy/derive.FromZeros.html"), +- doc = concat!("[derive-analysis]: https://docs.rs/zerocopy/", env!("CARGO_PKG_VERSION"), "/zerocopy/derive.FromZeros.html#analysis"), ++ doc = concat!("[derive]: https://docs.rs/zerocopy/", "0.8.13", "/zerocopy/derive.FromZeros.html"), ++ doc = concat!("[derive-analysis]: https://docs.rs/zerocopy/", "0.8.13", "/zerocopy/derive.FromZeros.html#analysis"), + )] + #[cfg_attr( + zerocopy_diagnostic_on_unimplemented_1_78_0, +@@ -3419,8 +3419,8 @@ pub use zerocopy_derive::FromBytes; + )] + #[cfg_attr( + not(feature = "derive"), +- doc = concat!("[derive]: https://docs.rs/zerocopy/", env!("CARGO_PKG_VERSION"), "/zerocopy/derive.FromBytes.html"), +- doc = concat!("[derive-analysis]: https://docs.rs/zerocopy/", env!("CARGO_PKG_VERSION"), "/zerocopy/derive.FromBytes.html#analysis"), ++ doc = concat!("[derive]: https://docs.rs/zerocopy/", "0.8.13", "/zerocopy/derive.FromBytes.html"), ++ doc = concat!("[derive-analysis]: https://docs.rs/zerocopy/", "0.8.13", "/zerocopy/derive.FromBytes.html#analysis"), + )] + #[cfg_attr( + zerocopy_diagnostic_on_unimplemented_1_78_0, +@@ -4857,8 +4857,8 @@ pub use zerocopy_derive::IntoBytes; + )] + #[cfg_attr( + not(feature = "derive"), +- doc = concat!("[derive]: https://docs.rs/zerocopy/", env!("CARGO_PKG_VERSION"), "/zerocopy/derive.IntoBytes.html"), +- doc = concat!("[derive-analysis]: https://docs.rs/zerocopy/", env!("CARGO_PKG_VERSION"), "/zerocopy/derive.IntoBytes.html#analysis"), ++ doc = concat!("[derive]: https://docs.rs/zerocopy/", "0.8.13", "/zerocopy/derive.IntoBytes.html"), ++ doc = concat!("[derive-analysis]: https://docs.rs/zerocopy/", "0.8.13", "/zerocopy/derive.IntoBytes.html#analysis"), + )] + #[cfg_attr( + zerocopy_diagnostic_on_unimplemented_1_78_0, +@@ -5416,8 +5416,8 @@ pub use zerocopy_derive::Unaligned; + )] + #[cfg_attr( + not(feature = "derive"), +- doc = concat!("[derive]: https://docs.rs/zerocopy/", env!("CARGO_PKG_VERSION"), "/zerocopy/derive.Unaligned.html"), +- doc = concat!("[derive-analysis]: https://docs.rs/zerocopy/", env!("CARGO_PKG_VERSION"), "/zerocopy/derive.Unaligned.html#analysis"), ++ doc = concat!("[derive]: https://docs.rs/zerocopy/", "0.8.13", "/zerocopy/derive.Unaligned.html"), ++ doc = concat!("[derive-analysis]: https://docs.rs/zerocopy/", "0.8.13", "/zerocopy/derive.Unaligned.html#analysis"), + )] + #[cfg_attr( + zerocopy_diagnostic_on_unimplemented_1_78_0, diff --git a/subprojects/packagefiles/zerocopy/meson.build b/subprojects/packagefiles/zerocopy/meson.build new file mode 100644 index 00000000000..ddf706b8bb0 --- /dev/null +++ b/subprojects/packagefiles/zerocopy/meson.build @@ -0,0 +1,26 @@ +# Copyright © 2024 Google +# SPDX-License-Identifier: MIT + +project( + 'zerocopy', + 'rust', + version : '0.8.13', + license : 'MIT OR Apache-2.0 OR BSD 2-Clause', +) + +zerocopy_args = ['--cfg', 'feature="derive"'] +zerocopy_derive = subproject('zerocopy-derive').get_variable('lib') + +lib = static_library( + 'zerocopy', + 'src/lib.rs', + override_options : ['rust_std=2021', 'build.rust_std=2021'], + rust_abi : 'rust', + native : true, + rust_args: zerocopy_args, + link_with : [zerocopy_derive] +) + +dep_zerocopy = declare_dependency( + link_with : [lib, zerocopy_derive] +) diff --git a/subprojects/zerocopy-derive.wrap b/subprojects/zerocopy-derive.wrap new file mode 100644 index 00000000000..2275accec72 --- /dev/null +++ b/subprojects/zerocopy-derive.wrap @@ -0,0 +1,6 @@ +[wrap-file] +directory = zerocopy-derive-0.8.13 +source_url = https://crates.io/api/v1/crates/zerocopy-derive/0.8.13/download +source_filename = zerocopy-derive-0.8.13.tar.gz +source_hash = 7988d73a4303ca289df03316bc490e934accf371af6bc745393cf3c2c5c4f25d +patch_directory = zerocopy-derive diff --git a/subprojects/zerocopy.wrap b/subprojects/zerocopy.wrap new file mode 100644 index 00000000000..bd8e8abf85b --- /dev/null +++ b/subprojects/zerocopy.wrap @@ -0,0 +1,8 @@ +[wrap-file] +directory = zerocopy-0.8.13 +source_url = https://crates.io/api/v1/crates/zerocopy/0.8.13/download +source_filename = zerocopy-0.8.13.tar.gz +source_hash = 67914ab451f3bfd2e69e5e9d2ef3858484e7074d63f204fd166ec391b54de21d +patch_directory = zerocopy + +diff_files = zerocopy/0001-zerocopy-work-around-Meson-limitation.patch