KaliVeda
1.15/5
Toolkit for HIC analysis
KVConfig.h
1
#ifndef KV_CONFIG__H
2
#define KV_CONFIG__H
3
4
#include "KVMacros.h"
5
6
// These defines are passed to dependent targets using CMake target_compile_definitions,
7
// however, when compiling user's code on the kaliveda/ROOT command line with ACliC,
8
// the defines are not defined... We need to define them here.
9
#ifndef WITH_TEMPLATED_EVENTS
10
#define WITH_TEMPLATED_EVENTS
11
#endif
12
13
#ifndef USING_ROOT6
14
#define USING_ROOT6
15
#endif
16
17
#ifndef WITH_GIT_INFOS
18
#define WITH_GIT_INFOS
19
#endif
20
21
#ifndef WITH_OPENGL
22
#define WITH_OPENGL
23
#endif
24
25
#ifndef WITH_PROOF
26
#define WITH_PROOF
27
#endif
28
29
#ifndef WITH_BOOST
30
#define WITH_BOOST
31
#endif
32
33
#ifndef WITH_GNU_INSTALL
34
#define WITH_GNU_INSTALL
35
#endif
36
37
#ifndef WITH_RSQLITE
38
#define WITH_RSQLITE
39
#endif
40
41
#ifndef WITH_BUILTIN_GRU
42
#define WITH_BUILTIN_GRU
43
#endif
44
45
#ifndef WITH_MFM
46
#define WITH_MFM
47
#endif
48
49
#ifndef WITH_PROTOBUF
50
#define WITH_PROTOBUF
51
#endif
52
53
#ifndef WITH_MESYTEC
54
#define WITH_MESYTEC
55
#endif
56
57
#ifndef WITH_ZMQ
58
#define WITH_ZMQ
59
#endif
60
61
#ifndef WITH_GEMINI
62
#define WITH_GEMINI
63
#endif
64
65
#ifndef WITH_FITLTG
66
#define WITH_FITLTG
67
#endif
68
69
#ifndef WITH_MULTICORE_CPU
70
#define WITH_MULTICORE_CPU 8
71
#endif
72
73
74
// Info on C++ standard used to compile code
75
#if __cplusplus > 199711L
76
#define WITH_CPP11
77
#if __cplusplus > 201103L
78
#define WITH_CPP14
79
#if __cplusplus > 201402L
80
#define WITH_CPP17
81
#if __cplusplus > 201703L
82
#define WITH_CPP20
83
#if __cplusplus > 202002L
84
#define WITH_CPP23
85
#if __cplusplus > 202302L
86
#define WITH_CPP26
87
#endif
88
#endif
89
#endif
90
#endif
91
#endif
92
#endif
93
94
// macro which expands to default constructor
95
#define ROOT_DEF_CTOR(classname,basename) \
96
classname() : basename() {}
97
98
// macro which expands to constructor with name
99
#define ROOT_NAME_CTOR(classname,basename) \
100
classname(const Char_t* name) : basename(name) {}
101
102
// macro which expands to default constructor
103
#define ROOT_DEF_CTOR_WITH_INIT(classname,basename) \
104
classname() : basename() { init(); }
105
106
// macro which expands to constructor with name
107
#define ROOT_NAME_CTOR_WITH_INIT(classname,basename) \
108
classname(const Char_t* name) : basename(name) { init(); }
109
110
// macro which expands to standard ROOT assignment by copy operator definition
111
// using object's Copy(TObject&) const method
112
// place in header file as needed
113
#define ROOT_COPY_ASSIGN_OP(name) \
114
name& operator=(const name& other) \
115
{ \
116
if(this != &other) \
117
{ \
118
other.Copy(*this); \
119
} \
120
return (*this); \
121
}
122
123
// macro which expands to standard ROOT copy constructor definition
124
// using object's Copy(TObject&) const method
125
// place in header file as needed
126
#define ROOT_COPY_CTOR(classname,basename) \
127
classname(const classname& other) \
128
: basename() \
129
{ \
130
other.Copy(*this); \
131
}
132
133
// provide set of constructors (default, named, copy) & a default destructor,
134
// plus copy assignment operator
135
#define ROOT_FULL_SET(classname,basename) \
136
ROOT_DEF_CTOR(classname,basename) \
137
ROOT_NAME_CTOR(classname,basename) \
138
ROOT_COPY_CTOR(classname,basename) \
139
ROOT_COPY_ASSIGN_OP(classname)
140
141
// provide set of constructors (default, copy),
142
// plus copy assignment operator
143
#define ROOT_FULL_SET_UNNAMED(classname,basename) \
144
ROOT_DEF_CTOR(classname,basename) \
145
ROOT_COPY_CTOR(classname,basename) \
146
ROOT_COPY_ASSIGN_OP(classname)
147
148
// provide set of constructors (default, named, copy),
149
// plus copy assignment operator, default & named ctors call init()
150
#define ROOT_FULL_SET_WITH_INIT(classname,basename) \
151
ROOT_DEF_CTOR_WITH_INIT(classname,basename) \
152
ROOT_NAME_CTOR_WITH_INIT(classname,basename) \
153
ROOT_COPY_CTOR(classname,basename) \
154
ROOT_COPY_ASSIGN_OP(classname)
155
156
// avoid warnings from clang static analyzer
157
#define AUTO_NEW_CTOR(classname,ptr) \
158
auto ptr = new classname
159
160
#endif
kaliveda.doxygen
src
core
base
KVConfig.h
Generated on Fri Feb 13 2026 15:19:56 for KaliVeda by
1.9.1