]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TPCLib/CMakeLists.txt
Fixes for object target dependencies
[u/mrichter/AliRoot.git] / HLT / TPCLib / CMakeLists.txt
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
19 add_subdirectory(calibration)
20 if(ROOT_HASOPENGL)
21     add_subdirectory(EVE)
22 endif()
23
24 if(HLT_CUDA)
25     add_subdirectory(tracking-ca/cagpu/cuda)
26 endif(HLT_CUDA)
27
28 if(HLT_OPENCL)
29     add_subdirectory(tracking-ca/cagpu/opencl)
30 endif()
31
32 # Module
33 set(MODULE AliHLTTPC)
34
35 # Module include folder
36 include_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
46 include_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
63 ALICE_UseVc()
64
65 # Sources in alphabetical order
66 set(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
162 string(REPLACE ".cxx" ".h" HDRS "${SRCS}")
163 set(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
177 get_directory_property(incdirs INCLUDE_DIRECTORIES)
178 generate_dictionary("${MODULE}" "${MODULE}LinkDef.h" "${HDRS}" "${incdirs}")
179
180 # Generate the ROOT map
181 # Dependecies
182 set(LIBDEPS STEERBase STEER ESD CDB RAWDatabase RAWDatarec ANALYSISalice HLTbase AliHLTUtil AliHLTRCU TPCbase TPCrec TPCsim Eve Graf Gpad Recorder)
183 generate_rootmap("${MODULE}" "${LIBDEPS}" "${CMAKE_CURRENT_SOURCE_DIR}/${MODULE}LinkDef.h")
184
185 # Add a library to the project using the specified source files
186 add_library(${MODULE} SHARED ${SRCS} G__${MODULE}.cxx)
187 target_link_libraries(${MODULE} Vc STEERBase STEER ESD CDB RAWDatabase RAWDatarec ANALYSISalice HLTbase AliHLTUtil AliHLTRCU TPCbase TPCrec TPCsim Eve Graf Gpad Recorder)
188
189 # Additional compilation flags
190 set_target_properties(${MODULE} PROPERTIES COMPILE_FLAGS "")
191
192 # System dependent: Modify the way the library is build
193 if(${CMAKE_SYSTEM} MATCHES Darwin)
194     set_target_properties(${MODULE} PROPERTIES LINK_FLAGS "-undefined dynamic_lookup")
195 endif(${CMAKE_SYSTEM} MATCHES Darwin)
196
197 # Installation
198 install(TARGETS ${MODULE}
199         ARCHIVE DESTINATION lib
200         LIBRARY DESTINATION lib)
201
202 install(FILES ${HDRS} DESTINATION include)