/WML

WPILib Modularisation Lib

Primary LanguageC++MIT LicenseMIT

A modularity-based library designed for use in the FIRST Robotics Competition.

Build Status

Build Status

WML As FRC Vendor

WML As Submodule

Setting up WML in your own project

  • First you will need to 'install' the submodule to your root directory. Navigate to your root dir and install via git submodule add https://github.com/wml-frc/WML.git.

  • Once complete you will need to apply the project to your own codebase. Every team has their own style of programming, building & deploying. But in general most will have a build.gradle and settings.gradle, and you would apply the library via appending the two.

Adding WML to your project's gradle config

  • First we need to link the directories in settings.gradle
  • WML currently consists of two section (WML-Core & WML-Rev) and may soom be seperated further for efficiency.
// WML
include 'WML-Core', 'WML-Rev'
project(':WML-Core').projectDir = file('WML/WML-Core')
project(':WML-Rev').projectDir = file('WML/WML-Rev')
  • Inside your project file (e.g. build.gradle) append the libraries:
model {
	components {
		frcUserProgram(NativeExecutableSpec) {
			// ...
			binaries.all {
				lib project: ':WML-Core', library: 'WML-Core', linkage: 'shared' // can also be static
				lib project: ':WML-Rev', library: 'WML-Core', linkage: 'shared' // can also be static
			}
			// ...
		}
	}

	testSuites {
		frcUserProgramTest(GoogleTestTestSuiteSpec) {
			// ...
			binaries.all {
				lib project: ':WML-Core', library: 'WML-Core', linkage: 'shared'
				lib project: ':WML-Rev', library: 'WML-Core', linkage: 'shared'
			}
			// ...
		}
	}
}
  • Note that :WML-Rev is not required if you are not using Rev products (Neo Motor)

Doxygen

Library examples

  • Added to the library is an example folder. More examples are planned, however, I am aware that there are not many examples currently (especially compared to the breadth of the content in the library).

  • I recommend looking at code that uses the library to get a better idea of what to do. (e.g. CurtinFRC's code -> Code)

Contributing to WML

CONTRIBUTING.md

readme written by @CJBuchel, 20/12/21