Project

General

Profile

Mrb alpha v0_02_00

mrb is designed to work with software packages that use art, either directly or indirectly.

Design details are described here: mrb design details

mrb v0_02_00 needs cetbuildtools v3_07_00 or later.

Definitions

  • PRODUCTS - the directory path containing ups, art, and other external ups products
  • PRODUCTS can point to one or more ups directories
  • LOCAL_PRODUCT_DIR - a local ups product directory
  • LOCAL_PRODUCT_DIR is for private investigation and development.
  • This directory is created by mrb.
  • WORKING_DIR
  • This is the local working directory where you will build the project code.
  • newDev will create appropriate subdirectories in the working directory.

Initial setup

The first time you start a mrb project, you'll need to define various things.

  • setup ups
  • set the $PRODUCTS path
  • make sure you have gitflow and git 1.8 or newer
  • define MRB_PROJECT
  • setup mrb
  • setup <project> <version> -q <qualifiers>

We imagine that everything except "setup <project> ..." will be part of a script supplied by each experiment.

Create a working area

Everything in one directory

  • mkdir <working_dir>
  • cd <working_dir>
  • mrb newDev
  • this creates <working_dir>/build, <working_dir>/srcs, and <working_dir>/localProducts_<MRB_PROJECT>_<version>_<qualifiers>
  • We refer to <working_dir>/localProducts... as <localProdDir>
  • source <localProdDir>/setup

Source code under your home directory

  • mkdir <working_dir>
  • mkdir <source_dir>
  • cd <source_dir>
  • mrb newDev -T <working_dir>
  • this creates <working_dir>/build and <working_dir>/localProducts_<MRB_PROJECT>_<version>_<qualifiers>
  • We refer to <working_dir>/localProducts... as <localProdDir>
  • source <localProdDir>/setup

From a fresh login

  • setup the basic environment
  • setup ups
  • set the $PRODUCTS path
  • make sure you have gitflow and git 1.8 or newer
  • source <localProdDir>/setup

Adding a package

  • After setting up the working environment:
  • cd $MRB_SOURCE
  • mrb gitCheckout <package_1>
  • mrb g <package_2>
  • At the moment, mrb presumes your package is in Fermilab redmine.
  • In future, you will be able to supply either a package name or a repository name
  • if there is only a package name, presume this is a Fermilab redmine project
  • if there is a full repository name, use the repository name

Build

  • After setting up the working environment:
  • cd $MRB_BUILDDIR
  • source mrb setEnv
  • mrb b [-jN]
  • where N is the number of parallel build streams to use
  • mrb b (build) calls buildtool, which is very powerful
  • mrb install (i)
  • optional install in <localProdDir>

Running

A temporary copy of the fcl files will be in $MRB_BUILDDIR/fcl and FHICL_FILE_PATH will point to this directory.