Skip to content

Latest commit

 

History

History
20 lines (15 loc) · 1.43 KB

README.md

File metadata and controls

20 lines (15 loc) · 1.43 KB

libgrapplefrc

libgrapplefrc is the RoboRIO library for Grapple devices.

Installing

If you wish to use libgrapplefrc, use "Manage Vendor Libraries" in VSCode to install from URL https://storage.googleapis.com/grapple-frc-maven/libgrapplefrc2025.json.

Layout

This project is modelled off WPILib's vendor template, with some key differences. The project is split into three components:

  • grapplefrcdriver: The Rust low-level library that contains all the primary communications code. This also includes JNI and C bindings for the companion libraries below.
  • libgrapplefrccpp: The FRC C++ bindings for Grapple devices, interfacing with grapplefrcdriver.
  • libgrapplefrcjava: The FRC Java bindings for Grapple devices, interfacing with grapplefrcdriver.

Building

After installing the appropriate toolchains (rustup target add arm-unknown-linux-gnueabi, ./gradlew installRoboRioToolchain), follow the below steps:

  • ./gradlew updateRustLibs -PreleaseMode - Dumps WPI libs so the Rust library can access them. This only has to be done once per version, just make sure grapplefrcdriver/buildlibs is empty first.
  • cd grapplefrcdriver && python build.py linuxathena - Build the Rust library for the linuxathena target. Replace linuxathena with another valid platform if required.
  • ./gradlew build -PreleaseMode - Build the vendor library.

For publishing, this is achieved in the GitHub workflows / actions file.