mrb design details

mrb newDev

mrb newDev needs to know the project version and qualifiers.

working with an existing release

Most users will build against an existing frozen release:
setup <project> <version> -q <qualifiers>
mrb newDev

building a new release

Code managers will need to build and tag new releases.
In this case, you cannot setup the release because it does not yet exist.
Instead, you pass the version and qualifier to newDev:
mrb newDev -V <version> -Q <qualifier>

how to reference library dependencies

In the normal case, your cmake files will define ${LIBRARYNAME} for every external library.
However, for libraries which are part of your project, you don't know if they are external or not, so cmake must deal with this.
Instead of using ${LIBRARYNAME} in your cmake files, you must instead use LibraryName.
mrb provides a macro which translates LibraryName to uppercase and checks to see if ${LIBRARYNAME} is defined.
If ${LIBRARYNAME} is defined, it replaces LibraryName with the definition of ${LIBRARYNAME} in the library list.
For simplicity, mrb contains front end macros to do this:
  • mrb_make
  • mrb_simple_plugin