#playdate #bindings #code-generation #bindings-generator #env-var

bin+lib playdate-bindgen

Playdate API 和工具的 Bindgen 配置

12 个版本

0.1.11 2024 年 6 月 5 日
0.1.10 2024 年 4 月 15 日
0.1.5 2024 年 2 月 10 日
0.1.4 2024 年 1 月 16 日
0.0.0 2023 年 9 月 4 日

109FFI

Download history 333/week @ 2024-04-01 312/week @ 2024-04-08 198/week @ 2024-04-15 22/week @ 2024-04-22 48/week @ 2024-04-29 34/week @ 2024-05-06 8/week @ 2024-05-13 50/week @ 2024-05-20 68/week @ 2024-05-27 192/week @ 2024-06-03 83/week @ 2024-06-10 5/week @ 2024-06-17 16/week @ 2024-06-24 3/week @ 2024-07-01 21/week @ 2024-07-08 17/week @ 2024-07-15

57 每月下载量
14 个 Crates 中使用(通过 playdate-sys

MIT/Apache 和可能 GPL-3.0+

83KB
2K SLoC

Playdate 绑定生成器

用于生成 Playdate 绑定,并具有如通过官方 C 参考直接生成代码文档等附加代码生成功能。

要求

  1. Rust nightly 工具链
  2. Playdate SDK
    • 确保环境变量 PLAYDATE_SDK_PATH 指向 SDK 根目录
  3. 遵循 官方文档
    • 确保 arm-none-eabi-gccgcc-arm-none-eabi 在你的 PATH
  4. 继承自 bindgen 的要求,遵循 官方文档

配置

继承自 bindgen 的配置:遵循 bindgen 官方文档

环境变量 PLAYDATE_SDK_PATH,如 playdate 官方文档 中所述。

可选环境变量 ARM_GCC_PATH 以帮助找到完整的工具链中的 arm-none-eabi-gcc(或 gcc-arm-none-eabi)。仅在故障排除时有用。

用法

Cargo.toml

[build-dependencies.bindgen]
package = "playdate-bindgen"
version = "*"

将此添加到 build-dependencies 并将以下内容添加到你的构建脚本中

let cfg = bindgen::cfg::Config::default();
let generator = bindgen::Generator::new(cfg).expect("Couldn't create bindings generator.");
let out_path = bindgen::env_var("OUT_DIR").map(PathBuf::from)
	                                       .map(|p| p.join(&generator.filename.to_string()))
	                                       .unwrap();
let bindings = generator.generate().expect("Couldn't generate bindings.");
bindings.write_to_file(&out_path).expect("Couldn't write bindings.");

对于复杂示例,请参阅 playdate-sys crate 中的构建脚本。


此软件未由 Panic 赞助或支持。

依赖

~7–18MB
~250K SLoC