![]() |
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.