ROSS is an actively developing framework. As such, it is important to setup your development environment to allow for updating of the ROSS core library. The goal of this article is to outline the best-practices for setting up a development environment.

Note: We are assuming that the top level directory where you will develop code is ~/Projects. Feel free to place ROSS and your model directories where ever you see fit.

Initial Setup

First, the ROSS framework must be downloaded. Since ROSS is in active development, it is recommended that you use git to clone the source. This allows for an easy way to update ROSS each time a new version is released.

$ cd ~/Projects
$ git clone https://github.com/ross-org/ROSS.git

Model Development Setup

There are several options for configuring the directory hierarchy for ROSS and you model. The goal for each of these options is to make a clear separation of model code and the ROSS framework. Option 1 is highly recommended.

The CMake configuration in ROSS automatically looks for models located in ROSS/models/. Unfortunately, it is not ideal to place your model (and its own version control system) with the version-controlled ROSS source. This dilemma is solved through sym-links.

$ cd ~/Projects
$ mkdir my-model
$ ln -s ~/Projects/my-model ~/Projects/ROSS/models/my-model

With this configuration both ROSS and your model are found in your top-level development directory (here we’ve used ~/Projects). It is within this same directory that you will want to do an out-of-tree build for ROSS and your model.

Option 2: In-Tree Model

While this approach is similar to option 1, it does not use sym-links. Instead, you simply put your model development directory at ROSS/models/my-model. Even with an “in-tree” model, there should be no conflicts if you choose to use git for version control (which would be separate from the git repository for ROSS).

$ cd ~/Projects
$ cd ROSS/models
$ mkdir my-model
$ cd my-model
$ git init

Option 2: CMake Find-Package

Coming Soon

Building

We recommend performing out-of-tree builds for ROSS.

$ cd ~/Projects
$ mkdir ROSS-build
$ cd ROSS-build
$ ccmake ../ROSS
$ cd models/my-model
$ make