A Project under CMT
(last modified by M.Cattaneo
02 December 2009)
The notion of project is a feature taken from the CMS SCRAM tool. A project is a coherent set of packages
which are released together.
- The Gaudi project is experiment independent the framework
- The LHCb project is the LHCb specific part of the
framework
- A given version of LHCb depends on (built against) a given
version of the Gaudi project
- it contains the event model, detector description, interfaces
- it is used by all other LHCb projects
- The Lbcom, Rec, Phys, Analysis, Hlt, Online projects
are component projects
- Each depends on a specific version of the LHCb project
- They contain components packages
- A given package can belong to only one project. The choice of
project depends on the functionality of the package
- The Boole, Brunel, Moore, DaVinci, Gauss, Panoramix projects are
the LHCb applications
- Each depends on a specific version of the LHCb project and
optionally on one or more of the component projects
- They may also depend on one or more components projects, in
which case all projects must consistently depend on the same LHCB
project version
- They contain job options for running the application, and may also contain sets of packages specific to the application
- Each project has a PROJECT package (whose name is the name of the
project in upper case) containing a single file (cmt/project.cmt) which
defines the dependencies of the project on other projects. Inside a
project (in any subdirectory of the project), you can do "cmt show
projects" which gives you the complete tree of project dependencies.
- A project has a version number: the version number is changed if one of
its constituent packages is modified, or if the version
of a project it depends on is changed
- Each project has a ProjectSys "container" package (whose name is the
name of the project followed by "Sys") whose cmt/requirements file lists
all the constituent packages of that project and defines their versions.
For given version of the project, the versions of the constituent
packages are frozen.
- Different versions of a project are built under different directories in
such a way that the user of a version of the project will only see versions
of packages relevant for this version of the project.
- Gaudi v19r4 is built under GAUDI/GAUDI_v19r4
- LHCb v11r11 is built under LHCB/LHCB_v11r11
- Gauss v10r0 is built under GAUSS/GAUSS_v10r0
- Brunel v18r0 is built under BRUNEL/BRUNEL_v18r0
- DaVinci v8r0 is built under DAVINCI/DAVINCI_v8r0
- Panoramix v7r0 is built under PANORAMIX/PANORAMIX_v7r0