From af7598ed9a7a58f824031313f3d5932bce71f7a9 Mon Sep 17 00:00:00 2001 From: alloncm Date: Sat, 28 Feb 2026 04:49:23 +0200 Subject: [PATCH] Add support for no_std Replace the use of std with core in the auto genratred bindings. In order for the bindings to work core must also be declared via extern crate core; or #![no_std]. This is due to the project using the 2015 edition, upgrading the edition will remove this requirement --- gl/Cargo.toml | 4 ++-- gl/src/lib.rs | 1 + gl_generator/Cargo.toml | 2 +- gl_generator/README.md | 2 ++ gl_generator/generators/debug_struct_gen.rs | 6 +++--- gl_generator/generators/global_gen.rs | 4 ++-- gl_generator/generators/static_gen.rs | 4 ++-- gl_generator/generators/static_struct_gen.rs | 4 ++-- gl_generator/generators/struct_gen.rs | 6 +++--- tests/test_add_registries/lib.rs | 2 ++ tests/test_gen_symbols/lib.rs | 2 ++ tests/test_no_warnings/lib.rs | 2 ++ tests/test_symbols/lib.rs | 2 ++ tests/test_with_extensions/lib.rs | 2 ++ 14 files changed, 28 insertions(+), 15 deletions(-) diff --git a/gl/Cargo.toml b/gl/Cargo.toml index df9f0a62..46d511fa 100644 --- a/gl/Cargo.toml +++ b/gl/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "gl" -version = "0.14.0" +version = "0.14.1" authors = [ "Brendan Zabarauskas ", "Corey Richardson", @@ -16,7 +16,7 @@ categories = ["api-bindings", "rendering::graphics-api"] keywords = ["gl", "egl", "opengl", "khronos"] [build-dependencies] -gl_generator = { version = "0.14.0", path = "../gl_generator" } +gl_generator = { version = "0.15.0", path = "../gl_generator" } [dev-dependencies] glutin = "0.24" diff --git a/gl/src/lib.rs b/gl/src/lib.rs index 607a1565..bd928897 100644 --- a/gl/src/lib.rs +++ b/gl/src/lib.rs @@ -78,6 +78,7 @@ clippy::too_many_arguments, clippy::unused_unit )] +#![no_std] include!(concat!(env!("OUT_DIR"), "/bindings.rs")); diff --git a/gl_generator/Cargo.toml b/gl_generator/Cargo.toml index b90beca1..d6f136bf 100644 --- a/gl_generator/Cargo.toml +++ b/gl_generator/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "gl_generator" -version = "0.14.0" +version = "0.15.0" authors = [ "Brendan Zabarauskas ", "Corey Richardson", diff --git a/gl_generator/README.md b/gl_generator/README.md index c5535231..fbd081c3 100644 --- a/gl_generator/README.md +++ b/gl_generator/README.md @@ -53,6 +53,8 @@ fn main() { Then use it like this: ```rust +extern crate core; // or #![no_std] for no_std support + mod gl { include!(concat!(env!("OUT_DIR"), "/bindings.rs")); } diff --git a/gl_generator/generators/debug_struct_gen.rs b/gl_generator/generators/debug_struct_gen.rs index b826a86a..a3520ee6 100644 --- a/gl_generator/generators/debug_struct_gen.rs +++ b/gl_generator/generators/debug_struct_gen.rs @@ -44,9 +44,9 @@ where dest, r#" mod __gl_imports {{ - pub use std::mem; - pub use std::marker::Send; - pub use std::os::raw; + pub use core::mem; + pub use core::marker::Send; + pub use core::ffi as raw; }} "# ) diff --git a/gl_generator/generators/global_gen.rs b/gl_generator/generators/global_gen.rs index 11bae560..c1af4b9d 100644 --- a/gl_generator/generators/global_gen.rs +++ b/gl_generator/generators/global_gen.rs @@ -47,8 +47,8 @@ where dest, r#" mod __gl_imports {{ - pub use std::mem; - pub use std::os::raw; + pub use core::mem; + pub use core::ffi as raw; }} "# ) diff --git a/gl_generator/generators/static_gen.rs b/gl_generator/generators/static_gen.rs index a1d2a91a..9b8dc50d 100644 --- a/gl_generator/generators/static_gen.rs +++ b/gl_generator/generators/static_gen.rs @@ -41,8 +41,8 @@ where dest, r#" mod __gl_imports {{ - pub use std::mem; - pub use std::os::raw; + pub use core::mem; + pub use core::ffi as raw; }} "# ) diff --git a/gl_generator/generators/static_struct_gen.rs b/gl_generator/generators/static_struct_gen.rs index 0e385cb5..8e99c22d 100644 --- a/gl_generator/generators/static_struct_gen.rs +++ b/gl_generator/generators/static_struct_gen.rs @@ -43,8 +43,8 @@ where dest, r#" mod __gl_imports {{ - pub use std::mem; - pub use std::os::raw; + pub use core::mem; + pub use core::ffi as raw; }} "# ) diff --git a/gl_generator/generators/struct_gen.rs b/gl_generator/generators/struct_gen.rs index 5dcef6f1..7e6bba9d 100644 --- a/gl_generator/generators/struct_gen.rs +++ b/gl_generator/generators/struct_gen.rs @@ -44,9 +44,9 @@ where dest, r#" mod __gl_imports {{ - pub use std::mem; - pub use std::marker::Send; - pub use std::os::raw; + pub use core::mem; + pub use core::marker::Send; + pub use core::ffi as raw; }} "# ) diff --git a/tests/test_add_registries/lib.rs b/tests/test_add_registries/lib.rs index 5285906f..43697f5f 100644 --- a/tests/test_add_registries/lib.rs +++ b/tests/test_add_registries/lib.rs @@ -12,6 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. +extern crate core; + pub mod gl { #![allow( clippy::missing_safety_doc, diff --git a/tests/test_gen_symbols/lib.rs b/tests/test_gen_symbols/lib.rs index 122ad7ec..930049d1 100644 --- a/tests/test_gen_symbols/lib.rs +++ b/tests/test_gen_symbols/lib.rs @@ -19,6 +19,8 @@ clippy::upper_case_acronyms )] +extern crate core; + use std::os::raw; include!(concat!(env!("OUT_DIR"), "/test_gen_symbols.rs")); diff --git a/tests/test_no_warnings/lib.rs b/tests/test_no_warnings/lib.rs index 519e2ea5..0c053e3e 100644 --- a/tests/test_no_warnings/lib.rs +++ b/tests/test_no_warnings/lib.rs @@ -28,4 +28,6 @@ clippy::upper_case_acronyms, )] +extern crate core; + include!(concat!(env!("OUT_DIR"), "/test_no_warnings.rs")); diff --git a/tests/test_symbols/lib.rs b/tests/test_symbols/lib.rs index c0a56da0..fcc992a2 100644 --- a/tests/test_symbols/lib.rs +++ b/tests/test_symbols/lib.rs @@ -12,6 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. +extern crate core; + use std::os::raw; pub mod gl { diff --git a/tests/test_with_extensions/lib.rs b/tests/test_with_extensions/lib.rs index 07a2a021..7dfe5f56 100644 --- a/tests/test_with_extensions/lib.rs +++ b/tests/test_with_extensions/lib.rs @@ -12,6 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. +extern crate core; + pub mod gl { #![allow( clippy::missing_safety_doc,