Mrb alpha v0_02_00¶
- Table of contents
- 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.