subprojects: add zerocopy

Version 0.8.13 supported in:

     - AOSP
     - Fedora (https://src.fedoraproject.org/rpms/rust-zerocopy)

Acked-by: Aaron Ruby <aruby@qnx.com>
Reviewed-by: @LingMan
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35210>
This commit is contained in:
Gurchetan Singh
2024-12-17 08:06:00 -08:00
committed by Marge Bot
parent 15b100770b
commit 68c70c3eff
5 changed files with 157 additions and 0 deletions

View File

@@ -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]
)

View File

@@ -0,0 +1,92 @@
From 84985902ff045a69ede82c4f7bdd1187836c201f Mon Sep 17 00:00:00 2001
From: Gurchetan Singh <gurchetansingh@google.com>
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<S, T: TryFromBytes>(
)]
#[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,

View File

@@ -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]
)

View File

@@ -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

View File

@@ -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