![]() |
KaliVeda
Toolkit for HIC analysis
|
The build system uses CMake. The CMakeLists.txt
file in the top level source directory handles the building and/or installation of:
src/
(e.g. core/
, indra/
, ...) and the associated libraries;external/
or extras/
;execs/
directory;config/etc/
directory and etc/
directory in each subprojectdatasets/
directory;Only out-of-source builds are supported. Specific CMake modules used to build KaliVeda, find other packages, etc. etc., are in the cmake/
directory. Various tools for developers are in the extras/tools/
directory.
The list of options which can be used to configure the build are given here, with their default values in brackets. Example of use:
$ cmake [..] -D[option1]=[YES|NO] -D[option2]=[ON|OFF] [...]
Option | Default | Meaning |
---|---|---|
Option | Default | Meaning |
-----— | ------— | ------— |
WITH_INDRA_DATASETS | OFF | download & install datasets for INDRA experiments |
WITH_FAZIA_DATASETS | OFF | download & install datasets for FAZIA experiments |
WITH_INDRA_FAZIA_DATASETS | OFF | download & install datasets for INDRA-FAZIA experiments |
WITH_ALL_DATASETS | OFF | download & install all datasets listed above |
USE_GEMINI | OFF | build KVGemini interface to built-in Gemini++ statistical decay code |
USE_MFM | OFF | use library for reading GANIL acquisition data in MFM format |
USE_PROTOBUF | OFF | use Google protocol buffers e.g. for reading raw FAZIA data |
USE_MESYTEC | OFF | enable support for reading (INDRA) data from Mesytec DAQ electronics |
USE_FITLTG | OFF | build Tassan-Got package for fitting identification grids (see KVTGID) |
USE_MICROSTAT | OFF | build libraries for generation of events with different statistical weights see MicroStat Package |
USE_BUILTIN_GRU | OFF | build own library for reading legacy GANIL acquisition data (not MFM format) |
ENABLE_ALL_OPTIONS | OFF | enable all USE_* options listed above |
USE_SQLITE | ON | enable SQLite database interface KVSQLite, if SQLite3 available |
CCIN2P3_BUILD | OFF | configure build for IN2P3 Computing Centre environment |
ONLINE_TOOLS | OFF | build & install tools used during experiment data taking |
WITH_*_DATASETS=ON
build option (see above) is given will be installed.All options are handled by the cmake/HandleBuildOptions.cmake
module, which sets the value of variables
set(WITH_[option] yes)
which are visible in all subprojects, and can be used to control what gets built. These variables are used to set preprocessor directives in the KVConfig.h
header file (see Useful C++ Pre-processor Symbols), such as
#define WITH_[option]
which can be used in any C/C++ source with #include "KVConfig.h"
.
The subprojects (src/core
, src/indra
, etc.) are each in a subdirectory of the main project. The build system for each is the same. In the top-level CMakeLists.txt
file for each subproject is a call to the function
which is defined in cmake/KaliVedaMacros.cmake
.
Each module subdirectory contains:
.h
and .cpp
files);LinkDef.h
file for dictionary generationCMakeLists.txt
file for the moduleThe CMakeLists.txt
file contains a call to the function
which is defined in cmake/KaliVedaMacros.cmake
Subproject | Target | Exported target | Library |
---|---|---|---|
src/core | kaliveda | kaliveda::kaliveda | libkaliveda.so |
src/indra | kaliveda-indra | kaliveda::kaliveda-indra | libkaliveda-indra.so |
src/fazia | kaliveda-fazia | kaliveda::kaliveda-fazia | libkaliveda-fazia.so |
src/indrafazia | kaliveda-indrafazia | kaliveda::kaliveda-indrafazia | libkaliveda-indrafazia.so |
Installation directories are defined in the cmake/KaliVedaInstallDirs.cmake
module. The default layout for the installation is
bin/ include/ kaliveda/ lib/ kaliveda/ cmake/ share/ doc/ kaliveda/ examples/ core/ ... kaliveda/ data/ etc/ templates/ [dataset1]/ [dataset2]/ ... man/ man1/
This allows to install KaliVeda inside system directories, e.g. /usr/local
, as any files generated during use of KaliVeda are written in a user-specific "working directory" which by default is created in $HOME/.kaliveda
.