Rust wrapper for libctru
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

50 lines
1.6 KiB

10 years ago
# ctru-rs
A Rust wrapper library for smealum's
[ctrulib](https://github.com/smealum/ctrulib). Intended for use only when
targeting CTR.
## How to build
1. Install the devkitARM toolchain for your system. Make sure `DEVKITPRO` is
set in your environment.
2. Modify ~/.cargo/config and add the following lines:
```toml
[target.3ds]
ar = "/path/to/arm-none-eabi-ar"
```
3. Build with `cargo build --target 3ds.json`.
4. A dkA linkable .rlib (static library) will be generated. Read below for
instructions on using.
## How to use
You can build your homebrew projects through Cargo just as easily as any other
platform. Add this to your `Cargo.toml`:
```toml
[dependencies.core]
git="https://github.com/hackndev/rust-libcore"
[dependencies.ctru-rs]
git="https://github.com/Furyhunter/ctru-rs"
```
Copy the `3ds.json` target file to your project root and pass `--target
3ds.json` whenever building. The instructions above for cargo configuration and
environment still apply. It's recommended that you put the `bin` dir in your
dkA root to your path.
Your homebrew's crate must specify that it does not use `std`, because `std`
is not available for the 3ds. `core` is a small subset of `std`'s functionality
that is platform agnostic. You can `use core::prelude::*` to recover much of
std's prelude, after `extern crate core`. This library makes use of core only.
## Contributing
This is a thin wrapper library **only**, any additional Rust-centric support
code for the 3DS will be put into another package. However, the wrapper is
incomplete, so PR's to finish it are helpful.