Fixes for object target dependencies
[u/mrichter/AliRoot.git] / HLT / TPCLib / CMakeLists.txt
CommitLineData
b5a0ad8b 1# **************************************************************************
2# * Copyright(c) 1998-2014, ALICE Experiment at CERN, All rights reserved. *
3# * *
4# * Author: The ALICE Off-line Project. *
5# * Contributors are mentioned in the code where appropriate. *
6# * *
7# * Permission to use, copy, modify and distribute this software and its *
8# * documentation strictly for non-commercial purposes is hereby granted *
9# * without fee, provided that the above copyright notice appears in all *
10# * copies and that both the copyright notice and this permission notice *
11# * appear in the supporting documentation. The authors make no claims *
12# * about the suitability of this software for any purpose. It is *
13# * provided "as is" without express or implied warranty. *
14# **************************************************************************
15
16# Other TPC libraries
17# Submodules have to be included before the main library otherwise
18# they will inherit parent folder properties
19add_subdirectory(calibration)
4d31eb1c 20if(ROOT_HASOPENGL)
b5a0ad8b 21 add_subdirectory(EVE)
22endif()
23
e5ef0c3a 24if(HLT_CUDA)
25 add_subdirectory(tracking-ca/cagpu/cuda)
26endif(HLT_CUDA)
27
28if(HLT_OPENCL)
29 add_subdirectory(tracking-ca/cagpu/opencl)
30endif()
31
b5a0ad8b 32# Module
33set(MODULE AliHLTTPC)
34
35# Module include folder
36include_directories(${AliRoot_SOURCE_DIR}/HLT/TPCLib
37 ${AliRoot_SOURCE_DIR}/HLT/TPCLib/HWCFemulator/
38 ${AliRoot_SOURCE_DIR}/HLT/TPCLib/comp
39 ${AliRoot_SOURCE_DIR}/HLT/TPCLib/merger-ca
40 ${AliRoot_SOURCE_DIR}/HLT/TPCLib/offline
41 ${AliRoot_SOURCE_DIR}/HLT/TPCLib/tracking-ca
42 ${AliRoot_SOURCE_DIR}/HLT/TPCLib/transform
43)
44
45# Additional include folders in alphabetical order except ROOT
46include_directories(${ROOT_INCLUDE_DIRS}
47 ${AliRoot_SOURCE_DIR}/ANALYSIS/ANALYSISalice
48 ${AliRoot_SOURCE_DIR}/HLT/BASE
49 ${AliRoot_SOURCE_DIR}/HLT/BASE/util
50 ${AliRoot_SOURCE_DIR}/HLT/RCU
51 ${AliRoot_SOURCE_DIR}/RAW/RAWDatabase
52 ${AliRoot_SOURCE_DIR}/RAW/RAWDatarec
53 ${AliRoot_SOURCE_DIR}/STEER/CDB
54 ${AliRoot_SOURCE_DIR}/STEER/ESD
55 ${AliRoot_SOURCE_DIR}/STEER/STEER
56 ${AliRoot_SOURCE_DIR}/STEER/STEERBase
57 ${AliRoot_SOURCE_DIR}/TPC/TPCbase
58 ${AliRoot_SOURCE_DIR}/TPC/TPCrec
59 ${AliRoot_SOURCE_DIR}/TPC/TPCsim
60 )
61
62# Enable Vc
63ALICE_UseVc()
64
65# Sources in alphabetical order
66set(SRCS
67 AliHLTTPCAgent.cxx
68 AliHLTTPCCFComparisonComponent.cxx
69 AliHLTTPCClusterAccessHLTOUT.cxx
70 AliHLTTPCClusterConverterComponent.cxx
71 AliHLTTPCClusterDumpComponent.cxx
72 AliHLTTPCClusterFinderComponent.cxx
73 AliHLTTPCClusterFinder.cxx
74 AliHLTTPCClusterHistoComponent.cxx
75 AliHLTTPCClusters.cxx
76 AliHLTTPCClusterTransformationComponent.cxx
77 AliHLTTPCClusterTransformation.cxx
78 AliHLTTPCDataCheckerComponent.cxx
79 AliHLTTPCDataPublisherComponent.cxx
80 AliHLTTPCdEdxComponent.cxx
81 AliHLTTPCdEdxMonitoringComponent.cxx
82 AliHLTTPCDefinitions.cxx
83 AliHLTTPCDigitDumpComponent.cxx
84 AliHLTTPCDigitReader32Bit.cxx
85 AliHLTTPCDigitReader.cxx
86 AliHLTTPCDigitReaderUnpacked.cxx
87 AliHLTTPCFileHandler.cxx
88 AliHLTTPCHistogramHandlerComponent.cxx
89 AliHLTTPCHWCFData.cxx
90 AliHLTTPCHWCFDataReverterComponent.cxx
91 AliHLTTPCHWCFSpacePointContainer.cxx
92 AliHLTTPCHWClusterDecoderComponent.cxx
93 AliHLTTPCHWClusterTransformComponent.cxx
94 AliHLTTPCLog.cxx
95 AliHLTTPCMapping.cxx
96 AliHLTTPCMemHandler.cxx
97 AliHLTTPCPad.cxx
98 AliHLTTPCRawSpacePointContainer.cxx
99 AliHLTTPCSpacePointContainer.cxx
100 AliHLTTPCTrackDumpComponent.cxx
101 AliHLTTPCTrackGeometry.cxx
102 AliHLTTPCTrackHistoComponent.cxx
103 AliHLTTPCTrackMCMarkerComponent.cxx
104 AliHLTTPCTransform.cxx
105 comp/AliHLTTPCDataCompressionComponent.cxx
106 comp/AliHLTTPCDataCompressionDecoder.cxx
107 comp/AliHLTTPCDataCompressionFilterComponent.cxx
108 comp/AliHLTTPCDataCompressionIDMap.cxx
109 comp/AliHLTTPCDataCompressionMonitorComponent.cxx
110 HWCFemulator/AliHLTTPCHWCFConsistencyControlComponent.cxx
111 HWCFemulator/AliHLTTPCHWCFDivisionUnit.cxx
112 HWCFemulator/AliHLTTPCHWCFEmulatorComponent.cxx
113 HWCFemulator/AliHLTTPCHWCFEmulator.cxx
114 HWCFemulator/AliHLTTPCHWCFExtractorUnit.cxx
115 HWCFemulator/AliHLTTPCHWCFMergerUnit.cxx
116 HWCFemulator/AliHLTTPCHWCFPeakFinderUnit.cxx
117 HWCFemulator/AliHLTTPCHWCFProcessorUnit.cxx
118 HWCFemulator/AliHLTTPCHWCFSupport.cxx
119 HWCFemulator/AliHLTTPCHWClusterMerger.cxx
120 HWCFemulator/AliHLTTPCHWClusterMergerV1.cxx
121 merger-ca/AliHLTTPCGMMerger.cxx
122 merger-ca/AliHLTTPCGMSliceTrack.cxx
123 merger-ca/AliHLTTPCGMTrackParam.cxx
124 offline/AliHLTTPCDigitPublisherComponent.cxx
125 offline/AliHLTTPCOfflineCluster.cxx
126 tracking-ca/AliHLTTPCCABaseTrackParam.cxx
127 tracking-ca/AliHLTTPCCAClusterData.cxx
128 tracking-ca/AliHLTTPCCADisplay.cxx
129 tracking-ca/AliHLTTPCCAGlobalMergerComponent.cxx
130 tracking-ca/AliHLTTPCCAGPUTracker.cxx
131 tracking-ca/AliHLTTPCCAGrid.cxx
132 tracking-ca/AliHLTTPCCAHitArea.cxx
133 tracking-ca/AliHLTTPCCAInputDataCompressorComponent.cxx
134 tracking-ca/AliHLTTPCCAMCPoint.cxx
135 tracking-ca/AliHLTTPCCAMCTrack.cxx
136 tracking-ca/AliHLTTPCCAMerger.cxx
137 tracking-ca/AliHLTTPCCANeighboursCleaner.cxx
138 tracking-ca/AliHLTTPCCANeighboursFinder.cxx
139 tracking-ca/AliHLTTPCCAParam.cxx
140 tracking-ca/AliHLTTPCCAPerformance.cxx
141 tracking-ca/AliHLTTPCCARow.cxx
142 tracking-ca/AliHLTTPCCASliceData.cxx
143 tracking-ca/AliHLTTPCCASliceOutput.cxx
144 tracking-ca/AliHLTTPCCAStandaloneFramework.cxx
145 tracking-ca/AliHLTTPCCAStartHitsFinder.cxx
146 tracking-ca/AliHLTTPCCATrackConvertor.cxx
147 tracking-ca/AliHLTTPCCATrackerComponent.cxx
148 tracking-ca/AliHLTTPCCATrackerFramework.cxx
149 tracking-ca/AliHLTTPCCATracker.cxx
150 tracking-ca/AliHLTTPCCATrackerOutputConverter.cxx
151 tracking-ca/AliHLTTPCCATrack.cxx
152 tracking-ca/AliHLTTPCCATrackletConstructor.cxx
153 tracking-ca/AliHLTTPCCATracklet.cxx
154 tracking-ca/AliHLTTPCCATrackletSelector.cxx
155 tracking-ca/AliHLTTPCCATrackParam.cxx
156 tracking-ca/AliTPCtrackerCA.cxx
157 transform/AliHLTTPCFastTransform.cxx
158 transform/AliHLTTPCSpline2D3D.cxx
159 )
160
161# Headers from sources
162string(REPLACE ".cxx" ".h" HDRS "${SRCS}")
163set(HDRS ${HDRS}
164 AliHLTTPCLog.h
165 AliHLTTPCLogging.h
166 AliHLTTPCSpacePointData.h
167 AliHLTTPCDigitData.h
168 AliHLTTPCTrackSegmentData.h
169 AliHLTTPCTrackletDataFormat.h
170 AliHLTTPCClusterDataFormat.h
171 AliHLTTPCClusterMCData.h
172 HWCFemulator/AliHLTTPCHWCFDataTypes.h
173)
174
175# Generate the dictionary
176# It will create G_ARG1.cxx and G_ARG1.h / ARG1 = function first argument
177get_directory_property(incdirs INCLUDE_DIRECTORIES)
178generate_dictionary("${MODULE}" "${MODULE}LinkDef.h" "${HDRS}" "${incdirs}")
179
180# Generate the ROOT map
181# Dependecies
9b5771f4 182set(LIBDEPS STEERBase STEER ESD CDB RAWDatabase RAWDatarec ANALYSISalice HLTbase AliHLTUtil AliHLTRCU TPCbase TPCrec TPCsim Eve Graf Gpad Recorder)
b5a0ad8b 183generate_rootmap("${MODULE}" "${LIBDEPS}" "${CMAKE_CURRENT_SOURCE_DIR}/${MODULE}LinkDef.h")
184
185# Add a library to the project using the specified source files
186add_library(${MODULE} SHARED ${SRCS} G__${MODULE}.cxx)
9b5771f4 187target_link_libraries(${MODULE} Vc STEERBase STEER ESD CDB RAWDatabase RAWDatarec ANALYSISalice HLTbase AliHLTUtil AliHLTRCU TPCbase TPCrec TPCsim Eve Graf Gpad Recorder)
b5a0ad8b 188
189# Additional compilation flags
68aeb13b 190set_target_properties(${MODULE} PROPERTIES COMPILE_FLAGS "")
b5a0ad8b 191
192# System dependent: Modify the way the library is build
193if(${CMAKE_SYSTEM} MATCHES Darwin)
194 set_target_properties(${MODULE} PROPERTIES LINK_FLAGS "-undefined dynamic_lookup")
195endif(${CMAKE_SYSTEM} MATCHES Darwin)
196
197# Installation
198install(TARGETS ${MODULE}
199 ARCHIVE DESTINATION lib
200 LIBRARY DESTINATION lib)
201
202install(FILES ${HDRS} DESTINATION include)