- Notifications
You must be signed in to change notification settings - Fork7
Opinionated Rust binding for the PROS library and operating system.
License
vexide/pros-rs
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Opinionated Rust bindings for thePROS library and kernel.
Important
This project is not currently in development. If this looks interesting to you, check outvexide
instead!
The only dependency of pros-rs outside of Rust is The Arm Gnu Toolchain (arm-none-eabi-gcc).
Read the installation guide for your OS to see how to get things set up.
Steps:
- Run The Arm Gnu Toolchainhere
- Install the pros cli, instructions arehere
- Install cargo pros with
cargo install cargo-pros
To compile the project just runcargo pros build
.
The steps for getting pros-rs compiling are slightly different based on if you use Nix or not.
The Nix flake contains the Arm GNU Toolchain, cargo pros, and pros-cli.
There is a.envrc
file included for Nix + Direnv users.
Install arm-none-eabi-gcc and pros-cli from your package manager of choice.Cargo pros can be installed withcargo install cargo-pros
.
This project depends on the Xcode Command Line Tools.Chances are that if you develop on MacOS you have them already, but if not you can install them withxcode-select --install
.
Most of the other dependencies can easily be installed with Homebrew.
Install the Arm GNU Toolchain withbrew install osx-cross/arm/arm-gcc-bin
.
Install pros-cli withbrew install purduesigbots/pros/pros-cli
.
And you are done! Compile the project withcargo build
.
To build projects in this repository for WebAssembly, runcargo pros build -s
This will automatically pass all of the correct arguments to cargo.
If for some reason you want to do it manually, this is the command:cargo build --target wasm32-unknown-unknown -Zbuild-std=std,panic_abort
.
The extra build-std argument is neccesary because this repository's.cargo/config.toml
enables build-std but only for core, alloc, and compiler_builtins. WebAssembly does come withstd
but there iscurrently no way to conditionally enable build-std.
About
Opinionated Rust binding for the PROS library and operating system.