12 releases
0.1.11 | Jun 5, 2024 |
---|---|
0.1.10 | Apr 15, 2024 |
0.1.5 | Feb 10, 2024 |
0.1.4 | Jan 16, 2024 |
0.0.0 |
|
#183 in FFI
94 downloads per month
Used in 14 crates
(via playdate-sys)
83KB
2K
SLoC
Playdate Bindings Generator
Util to generate bindings to Playdate with additional code-gen features like in-code documentation directly by official c-reference.
Requirements
- Rust nightly toolchain
- Playdate SDK
- Ensure that env var
PLAYDATE_SDK_PATH
points to the SDK root
- Ensure that env var
- Follow the official documentation
- Ensure that
arm-none-eabi-gcc
orgcc-arm-none-eabi
in yourPATH
- Ensure that
- Requirements inherited by bindgen, follow official documentation.
Configuration
Inherited configuration by bindgen: follow bindgen official documentation.
Env var PLAYDATE_SDK_PATH
as described in playdate official documentation.
Optional env var ARM_GCC_PATH
to help to find arm-none-eabi-gcc
(or gcc-arm-none-eabi
) with entire toolchain. Useful only for troubleshooting.
Usage
Cargo.toml:
[build-dependencies.bindgen]
package = "playdate-bindgen"
version = "*"
Add this to build-dependencies
and add to your build-script something like this:
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.");
For complex examples see build-script in the playdate-sys crate.
This software is not sponsored or supported by Panic.
Dependencies
~7–18MB
~262K SLoC