forked from mcoquet642/AliceO2
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
329 lines (307 loc) · 12.1 KB
/
CMakeLists.txt
File metadata and controls
329 lines (307 loc) · 12.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
# Copyright CERN and copyright holders of ALICE O2. This software is distributed
# under the terms of the GNU General Public License v3 (GPL Version 3), copied
# verbatim in the file "COPYING".
#
# See http://alice-o2.web.cern.ch/license for full licensing information.
#
# In applying this license CERN does not waive the privileges and immunities
# granted to it by virtue of its status as an Intergovernmental Organization or
# submit itself to any jurisdiction.
if (TARGET AliceO2::DebugGUI)
set(GUI_SOURCES src/FrameworkGUIDebugger.cxx src/FrameworkGUIDevicesGraph.cxx
src/FrameworkGUIDeviceInspector.cxx
src/FrameworkGUIDataRelayerUsage.cxx src/PaletteHelpers.cxx)
set(DEBUGGUI_TARGET AliceO2::DebugGUI)
else()
set(GUI_SOURCES src/FrameworkDummyDebugger.cxx)
endif()
# Given GCC 7.3 does not provide std::filesystem we use Boost instead
# Drop this once we move to GCC 8.2+
# if (NOT __APPLE__)
set(BOOST_FILESYSTEM Boost::filesystem)
# endif()
o2_add_library(Framework
SOURCES src/AODReaderHelpers.cxx
src/ASoA.cxx
${GUI_SOURCES}
src/AnalysisHelpers.cxx
src/AnalysisDataModelHelpers.cxx
src/BoostOptionsRetriever.cxx
src/ChannelConfigurationPolicy.cxx
src/ChannelMatching.cxx
src/ChannelConfigurationPolicyHelpers.cxx
src/ChannelSpecHelpers.cxx
src/CommonDataProcessors.cxx
src/CommonServices.cxx
src/CommonMessageBackends.cxx
src/CompletionPolicy.cxx
src/CompletionPolicyHelpers.cxx
src/ComputingResourceHelpers.cxx
src/ConfigContext.cxx
src/DispatchPolicy.cxx
src/ConfigParamStore.cxx
src/ConfigParamsHelper.cxx
src/DDSConfigHelpers.cxx
src/DataAllocator.cxx
src/DataDescriptorMatcher.cxx
src/DataDescriptorQueryBuilder.cxx
src/DataProcessingDevice.cxx
src/DataProcessingHeader.cxx
src/DataProcessingHelpers.cxx
src/SourceInfoHeader.cxx
src/DataProcessor.cxx
src/DataRelayer.cxx
src/DataRelayerHelpers.cxx
src/DataSpecUtils.cxx
src/DeviceConfigInfo.cxx
src/DeviceMetricsInfo.cxx
src/DeviceSpec.cxx
src/DeviceSpecHelpers.cxx
src/DriverControl.cxx
src/DriverInfo.cxx
src/Expressions.cxx
src/FairMQDeviceProxy.cxx
src/FairMQResizableBuffer.cxx
src/FairOptionsRetriever.cxx
src/ConfigurationOptionsRetriever.cxx
src/FreePortFinder.cxx
src/GraphvizHelpers.cxx
src/InputRecord.cxx
src/InputSpec.cxx
src/OutputSpec.cxx
src/LifetimeHelpers.cxx
src/LocalRootFileService.cxx
src/RootConfigParamHelpers.cxx
src/LogParsingHelpers.cxx
src/MessageContext.cxx
src/Metric2DViewIndex.cxx
src/SimpleOptionsRetriever.cxx
src/O2ControlHelpers.cxx
src/OutputSpec.cxx
src/PropertyTreeHelpers.cxx
src/RCombinedDS.cxx
src/ReadoutAdapter.cxx
src/ResourcesMonitoringHelper.cxx
src/ServiceRegistry.cxx
src/SimpleResourceManager.cxx
src/SimpleRawDeviceService.cxx
src/StreamOperators.cxx
src/TMessageSerializer.cxx
src/TableBuilder.cxx
src/TableConsumer.cxx
src/TableTreeHelpers.cxx
src/DataInputDirector.cxx
src/DataOutputDirector.cxx
src/Task.cxx
src/TextControlService.cxx
src/Variant.cxx
src/WorkflowHelpers.cxx
src/WorkflowSerializationHelpers.cxx
src/WorkflowSpec.cxx
src/runDataProcessing.cxx
src/ExternalFairMQDeviceProxy.cxx
test/TestClasses.cxx
PRIVATE_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_LIST_DIR}/src
PUBLIC_LINK_LIBRARIES ${DEBUGGUI_TARGET}
AliceO2::Common
AliceO2::Configuration
AliceO2::InfoLogger
AliceO2::Monitoring
CURL::libcurl
FairMQ::FairMQ
O2::CommonUtils
O2::MathUtils
O2::FrameworkFoundation
O2::Headers
O2::MemoryResources
O2::PCG
RapidJSON::RapidJSON
arrow::arrow_shared
ms_gsl::ms_gsl
ROOT::ROOTDataFrame
O2::FrameworkLogger
Boost::serialization
${BOOST_FILESYSTEM}
arrow::gandiva_shared
LibUV::LibUV
)
o2_target_root_dictionary(Framework
HEADERS test/TestClasses.h
LINKDEF test/FrameworkCoreTestLinkDef.h)
foreach(t
AlgorithmSpec
AnalysisTask
AnalysisDataModel
ASoA
ASoAHelpers
BoostOptionsRetriever
ConfigurationOptionsRetriever
CallbackRegistry
ChannelSpecHelpers
CompletionPolicy
ComputingResourceHelpers
ConfigParamStore
ConfigParamRegistry
DataDescriptorMatcher
DataProcessorSpec
DataRefUtils
DataRelayer
DeviceConfigInfo
DeviceMetricsInfo
DeviceSpec
DeviceSpecHelpers
Expressions
ExternalFairMQDeviceProxy
FairMQOptionsRetriever
FairMQResizableBuffer
FrameworkDataFlowToDDS
Graphviz
GroupSlicer
HistogramRegistry
IndexBuilder
InfoLogger
InputRecord
InputRecordWalker
InputSpan
InputSpec
Kernels
LogParsingHelpers
PtrHelpers
Root2ArrowTable
RootConfigParamHelpers
Services
StringHelpers
SuppressionGenerator
TMessageSerializer
TableBuilder
TimeParallelPipelining
TimesliceIndex
TypeTraits
Variants
WorkflowHelpers
WorkflowSerialization
TreeToTable
DataOutputDirector
DataInputDirector)
# FIXME ? The NAME parameter of o2_add_test is only needed to help the current
# o2.sh recipe. If the recipe is changed, those params can go away, if needed.
o2_add_test(${t} NAME test_Framework_test_${t}
SOURCES test/test_${t}.cxx
COMPONENT_NAME Framework
LABELS framework
PUBLIC_LINK_LIBRARIES O2::Framework)
endforeach()
o2_add_executable(dpl-null-sink
SOURCES src/o2NullSink.cxx
PUBLIC_LINK_LIBRARIES O2::Framework
)
o2_add_executable(dpl-run
SOURCES src/dplRun.cxx
PUBLIC_LINK_LIBRARIES O2::Framework
)
o2_add_executable(verify-aod-file
SOURCES src/verifyAODFile.cxx
PUBLIC_LINK_LIBRARIES O2::Framework
COMPONENT_NAME Framework)
# tests with a name not starting with test_...
o2_add_test(unittest_DataSpecUtils NAME test_Framework_unittest_DataSpecUtils
SOURCES test/unittest_DataSpecUtils.cxx
COMPONENT_NAME Framework
LABELS framework
PUBLIC_LINK_LIBRARIES O2::Framework)
o2_add_test(unittest_SimpleOptionsRetriever NAME
test_Framework_unittest_SimpleOptionsRetriever
SOURCES test/unittest_SimpleOptionsRetriever.cxx
COMPONENT_NAME Framework
LABELS framework
PUBLIC_LINK_LIBRARIES O2::Framework)
# benchmarks
foreach(b
DataDescriptorMatcher
DataRelayer
DeviceMetricsInfo
InputRecord
TableBuilder
WorkflowHelpers
ASoA
ASoAHelpers
HistogramRegistry
TableToTree
TreeToTable
)
o2_add_executable(benchmark-${b}
SOURCES test/benchmark_${b}.cxx
COMPONENT_NAME Framework
IS_BENCHMARK
PUBLIC_LINK_LIBRARIES O2::Framework benchmark::benchmark)
endforeach()
# #####################################################@
if (TARGET AliceO2::DebugGUI)
set (DEBUG_GUI_TESTS_WORKFLOW
CustomGUIGL
CustomGUISokol
SimpleTracksED
)
endif()
foreach(w
BoostSerializedProcessing
CallbackService
RegionInfoCallbackService
DanglingInputs
DanglingOutputs
DataAllocator
StaggeringWorkflow
Forwarding
ParallelPipeline
ParallelProducer
SimpleDataProcessingDevice01
SimpleRDataFrameProcessing
SimpleStatefulProcessing01
SimpleStringProcessing
SimpleTimer
SimpleWildcard
SimpleWildcard02
SingleDataSource
Task
ExternalFairMQDeviceWorkflow
${DEBUG_GUI_TESTS_WORKFLOW}
)
o2_add_test(${w} NAME test_Framework_test_${w}
SOURCES test/test_${w}.cxx
COMPONENT_NAME Framework
LABELS framework workflow
PUBLIC_LINK_LIBRARIES O2::Framework
TIMEOUT 30
NO_BOOST_TEST
COMMAND_LINE_ARGS ${DPL_WORKFLOW_TESTS_EXTRA_OPTIONS} --run --shm-segment-size 20000000)
endforeach()
# TODO: DanglingInput test not working for the moment [ERROR] Unable to relay
# part. [WARN] Incoming data is already obsolete, not relaying.
set_property(TEST test_Framework_test_DanglingInputs PROPERTY DISABLED TRUE)
if (TARGET AliceO2::DebugGUI)
# TODO: investigate the problem with the two unit tests, maybe setup of the CI
# environment assertion fired X11: The DISPLAY environment variable is missing
# glfw-3.2.1/src/window.c:579: glfwGetFramebufferSize: Assertion `window !=
# ((void *)0)' failed.
set_property(TEST test_Framework_test_SimpleTracksED PROPERTY DISABLED TRUE)
set_property(TEST test_Framework_test_CustomGUIGL PROPERTY DISABLED TRUE)
set_property(TEST test_Framework_test_CustomGUISokol PROPERTY DISABLED TRUE)
endif()
# TODO: investigate the problem and re-enable
set_property(TEST test_Framework_test_BoostSerializedProcessing
PROPERTY DISABLED TRUE)
# specific tests which needs command line options
o2_add_test(
ProcessorOptions NAME test_Framework_test_ProcessorOptions
SOURCES test/test_ProcessorOptions.cxx
COMPONENT_NAME Framework
LABELS framework workflow
TIMEOUT 60
PUBLIC_LINK_LIBRARIES O2::Framework
NO_BOOST_TEST
COMMAND_LINE_ARGS
--global-config require-me --run ${DPL_WORKFLOW_TESTS_EXTRA_OPTIONS}
# Note: the group switch makes process consumer parse only the group
arguments --consumer
"--global-config consumer-config --local-option hello-aliceo2 --a-boolean3 --an-int2 20 --a-double2 22. --an-int64-2 50000000000000"
)