Developer Bootstrap

This page provides setup instructions for the software team's tools so members can quickly start learning C++. Please install 64-bit versions of tools if possible and make sure the bitness of all your tools matches by using the appropriate archives/installers.

The Tools

Eclipse CDT

Eclipse CDT is an integrated development environment which makes it easier to write, build, and test programs written in C and C++.

New Project Toolchain Selection

On Linux, use "Linux GCC". On Windows, use "Cygwin GCC".

False Errors

Eclipse occasionally shows outdated or false errors in a project file. If this is the case, the project's index needs to be rebuilt. To do so, select the following option.

Right-click project > Index > Rebuild

Keep in mind errors shown in the IDE aren't authoritative. The console build output should be used to determine whether the executable was built successfully.

C++14 Support

To configure a project to build with C++14, select "ISOC++1y" from the "Language standard" drop-down menu in the following location.

Right-click project > Properties > C/C++ Build > Settings > GCC C++ Compiler > Dialect

GCC Compiler

This is the compiler Eclipse CDT will use to build the programs you write. MSYS2 provides a Linux-like environment with this compiler.

Git

Git is a version control system used to manage the code you write. See Git 1 for more information and detailed setup.

Gerrit

Gerrit provides web based code review and repository management for the Git version control system. Our Gerrit server is here. User setup instructions are here.

Formatter

Formatters help ensure style guide conformance by automatically correcting deviations. We use the Python 3 scripts provided in WPILib's style guide repository and clang-format for source code formatting. We also use Python 3 for optimizing feedback control system behavior.

Note: The formatter should be considered a safety net. It is good practice to be familiar with the enforced style guide and be able to write code in that style directly.

*buntu Installation

Eclipse CDT

sudo apt-get install openjdk-8-jdk

Download the Eclipse IDE for C/C++ Developers. Once the download is complete, extract it to a directory of your choice.

GCC

sudo apt-get install gcc

Git

sudo apt-get install git

Formatter

sudo apt-get install clang-format python3-pip
pip3 install --user wpiformat

Arch Linux Installation

Eclipse CDT

sudo pacman -S jdk8-openjdk eclipse-cpp

GCC

sudo pacman -S gcc

Git

sudo pacman -S git

Formatter

This requires a package from the AUR. Use either the manual installation method (shown below) or an AUR helper.

sudo pacman -S python
cd /tmp
git clone https://aur.archlinux.org/python-wpiformat-git
makepkg -si

Windows Installation

Eclipse CDT

Download the JDK 8 installer from here and run it.

Download the Eclipse IDE for C/C++ Developers, then extract it to a directory of your choice.

GCC Compiler

  1. Download the MSYS2 installer from here and run it. Use the default installation directory.
  2. pacman -Syu, then close all terminals when directed to do so.
  3. pacman -Su
  4. Add MSYS2 to your system-wide PATH environment variable.
  5. Create a desktop shortcut for "MSYS2 MSYS" if desired.
  6. pacman -S base-devel gcc, then when prompted for which packages in the base-devel group to install, press Enter to select the default option (all of them).

Git

pacman -S git

Formatter

Download the latest version of LLVM from here under "Pre-Built Binaries" and run it. The default installation options are fine.

MSYS2 keeps a separate PATH environment variable from the operating system. Run the following command to add the LLVM installation to it.

echo 'export PATH=$PATH:/c/Program\ Files/LLVM/bin' >> .bashrc

The following commands install Python and pip, then use pip to install wpiformat.

pacman -S python
wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py
pip install wpiformat

After those commands complete, close and reopen the terminal so the PATH environment variable change from earlier takes effect.