Update master to aliroot
[u/mrichter/AliRoot.git] / STEER / STEER / CMakeLists.txt
CommitLineData
e9e48ff1 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# Module
17set(MODULE STEER)
18
19# Module include folders
427d561c 20include_directories(${AliRoot_SOURCE_DIR}/STEER/${MODULE})
e9e48ff1 21
22# Additional include directories - alphabetical order except ROOT
f0315837 23include_directories(${ROOT_INCLUDE_DIR}
427d561c 24 ${AliRoot_SOURCE_DIR}/ANALYSIS/ANALYSIS
27d54f3d 25 ${AliRoot_SOURCE_DIR}/HLT/BASE
427d561c 26 ${AliRoot_SOURCE_DIR}/RAW/RAWDatabase
27 ${AliRoot_SOURCE_DIR}/RAW/RAWDatarec
28 ${AliRoot_SOURCE_DIR}/STEER/CDB
29 ${AliRoot_SOURCE_DIR}/STEER/ESD
30 ${AliRoot_SOURCE_DIR}/STEER/STEERBase
e9e48ff1 31 ${CMAKE_BINARY_DIR}/version/
32 )
33
34# Sources - alphabetical order
35set(SRCS
36 AliAlignmentTracks.cxx
37 AliAlignObj.cxx
38 AliAlignObjMatrix.cxx
39 AliAlignObjParams.cxx
40 AliBaseLoader.cxx
41 AliCentralTrigger.cxx
42 AliCluster3D.cxx
43 AliCluster.cxx
44 AliConfig.cxx
45 AliCorrQAChecker.cxx
46 AliCorrQADataMakerRec.cxx
47 AliCTPInputTimeParams.cxx
48 AliCTPRawData.cxx
49 AliCTPRawStream.cxx
50 AliCTPTimeParams.cxx
51 AliDataLoader.cxx
52 AliDCSArray.cxx
53 AliDebugVolume.cxx
54 AliDetector.cxx
55 AliDetectorRecoParam.cxx
56 AliDigit.cxx
57 AliDigitizationInput.cxx
58 AliDigitizer.cxx
59 AliDigitNew.cxx
60 AliESDTagCreator.cxx
61 AliEventInfo.cxx
62 AliFstream.cxx
63 AliGausCorr.cxx
64 AliGenerator.cxx
65 AliGeometry.cxx
66 AliGeomManager.cxx
67 AliGlobalQAChecker.cxx
68 AliGlobalQADataMaker.cxx
69 AliGRPManager.cxx
70 AliGRPObject.cxx
71 AliGRPPreprocessor.cxx
72 AliGRPRecoParam.cxx
73 AliHelix.cxx
74 AliHit.cxx
75 AliHitMap.cxx
27d54f3d 76 AliHLTSimulation.cxx
e9e48ff1 77 AliHLTTestInputHandler.cxx
78 AliKink.cxx
79 AliLego.cxx
80 AliLegoGenerator.cxx
81 AliLegoGeneratorEta.cxx
82 AliLegoGeneratorEtaR.cxx
83 AliLegoGeneratorPhiZ.cxx
84 AliLegoGeneratorXYZ.cxx
85 AliLHCClockPhase.cxx
86 AliLHCData.cxx
87 AliLHCDipValT.cxx
88 AliLHCReader.cxx
89 AliLoader.cxx
90 AliLTUConfig.cxx
91 AliMatrixSparse.cxx
92 AliMatrixSq.cxx
93 AliMC.cxx
94 AliMCGenHandler.cxx
95 AliMergeCombi.cxx
96 AliMillePede2.cxx
97 AliMillepede.cxx
98 AliMillePedeRecord.cxx
99 AliMinResSolve.cxx
100 AliMisAligner.cxx
101 AliModule.cxx
102 AliObjectLoader.cxx
103 AliParamList.cxx
104 AliParamSolver.cxx
105 AliPlaneEff.cxx
106 AliQACheckerBase.cxx
107 AliQAChecker.cxx
108 AliQADataMaker.cxx
109 AliQADataMakerRec.cxx
110 AliQADataMakerSim.cxx
111 AliQAManager.cxx
112 AliQAThresholds.cxx
113 AliQAv1.cxx
114 AliRecoInputHandler.cxx
115 AliReconstruction.cxx
116 AliReconstructor.cxx
117 AliRecoParam.cxx
118 AliRecPoint.cxx
119 AliRectMatrix.cxx
120 AliRelAlignerKalman.cxx
121 AliRieman.cxx
122 AliRndm.cxx
123 AliRun.cxx
124 AliRunInfo.cxx
125 AliRunLoader.cxx
126 AliSelectorRL.cxx
127 AliSignalProcesor.cxx
128 AliSimulation.cxx
129 AliStream.cxx
130 AliSurveyObj.cxx
131 AliSurveyPoint.cxx
132 AliSurveyToAlignObjs.cxx
133 AliSymBDMatrix.cxx
134 AliSymMatrix.cxx
135 AliTracker.cxx
136 AliTrackFitter.cxx
137 AliTrackFitterKalman.cxx
138 AliTrackFitterRieman.cxx
139 AliTrackFitterStraight.cxx
140 AliTrackleter.cxx
141 AliTrackResidualsChi2.cxx
142 AliTrackResiduals.cxx
143 AliTrackResidualsFast.cxx
144 AliTrackResidualsLinear.cxx
145 AliTransportMonitor.cxx
146 AliTreeLoader.cxx
147 AliTriggerDetector.cxx
148 AliTriggerRunScalers.cxx
149 AliTriggerUtils.cxx
150 AliV0.cxx
151 AliVectorSparse.cxx
152 AliVertexer.cxx
153 AliVertexGenerator.cxx
154 AliVertexGenFile.cxx
155 )
156
157# Headers from sources
158string(REPLACE ".cxx" ".h" HDRS "${SRCS}")
8b7d4f51 159set(HDRS ${HDRS}
160 AliConst.h
f8b5be81 161 AliRawDataHeaderSim.h
8b7d4f51 162 )
e9e48ff1 163
164# Generate the dictionary
165# It will create G_ARG1.cxx and G_ARG1.h / ARG1 = function first argument
166get_directory_property(incdirs INCLUDE_DIRECTORIES)
167generate_dictionary("${MODULE}" "${MODULE}LinkDef.h" "${HDRS}" "${incdirs}")
168
9cfdd3fd 169set(ROOT_DEPENDENCIES Core EG GenVector GeomPainter Geom Gpad Graf Hist MathCore Matrix Minuit Net Physics Proof RIO Tree VMC)
170set(ALIROOT_DEPENDENCIES STEERBase RAWDatabase RAWDatarec CDB ESD ANALYSIS HLTbase)
171
0224bae4 172# Generate the ROOT map
173# Dependecies
9cfdd3fd 174set(LIBDEPS ${ALIROOT_DEPENDENCIES} ${ROOT_DEPENDENCIES})
0224bae4 175generate_rootmap("${MODULE}" "${LIBDEPS}" "${CMAKE_CURRENT_SOURCE_DIR}/${MODULE}LinkDef.h")
176
27d54f3d 177set(LIBHLTSIM_VERSION "1")
178add_definitions("-DLIBHLTSIM_VERSION=${LIBHLTSIM_VERSION}")
0224bae4 179
f82bfa66 180# Create an object to be reused in case of static libraries
181# Otherwise the sources will be compiled twice
139cbc46 182add_library(${MODULE}-object OBJECT ${SRCS} G__${MODULE}.cxx)
f82bfa66 183# Add a library to the project using the object
139cbc46 184add_library(${MODULE} SHARED $<TARGET_OBJECTS:STEER-object>)
e9e48ff1 185
9cfdd3fd 186target_link_libraries(${MODULE} ${ALIROOT_DEPENDENCIES} ${ROOT_DEPENDENCIES})
e9e48ff1 187
68aeb13b 188# Setting the correct headers for the object as gathered from the dependencies
189target_include_directories(${MODULE}-object PUBLIC $<TARGET_PROPERTY:${MODULE},INCLUDE_DIRECTORIES>)
190set_target_properties(${MODULE}-object PROPERTIES COMPILE_DEFINITIONS $<TARGET_PROPERTY:${MODULE},COMPILE_DEFINITIONS>)
191
6929fcdd 192# Public include folders that will be propagated to the dependecies
193target_include_directories(${MODULE} PUBLIC ${incdirs})
194
195# Additional compilation flags
68aeb13b 196set_target_properties(${MODULE}-object PROPERTIES COMPILE_FLAGS "")
6929fcdd 197
e9e48ff1 198# System dependent: Modify the way the library is build
199if(${CMAKE_SYSTEM} MATCHES Darwin)
200 set_target_properties(${MODULE} PROPERTIES LINK_FLAGS "-undefined dynamic_lookup")
201endif(${CMAKE_SYSTEM} MATCHES Darwin)
202
203# Installation
204install(TARGETS ${MODULE}
205 ARCHIVE DESTINATION lib
206 LIBRARY DESTINATION lib)
207install(FILES ${HDRS} DESTINATION include)
f82bfa66 208
209# Static version if DA enabled
210if(ALIROOT_STATIC)
68aeb13b 211 add_library(${MODULE}-static STATIC $<TARGET_OBJECTS:${MODULE}-object>)
f82bfa66 212 set_target_properties(${MODULE}-static PROPERTIES OUTPUT_NAME ${MODULE})
9cfdd3fd 213
214 # list of shared dependencies / the name of the variable containing the list of static ones
215 generate_static_dependencies("${ALIROOT_DEPENDENCIES}" "STATIC_ALIROOT_DEPENDENCIES")
9cfdd3fd 216 target_link_libraries(${MODULE}-static ${STATIC_ALIROOT_DEPENDENCIES} Root RootExtra)
d1d7d34a 217
218 # Public include folders that will be propagated to the dependecies
219 target_include_directories(${MODULE}-static PUBLIC ${incdirs})
220
f82bfa66 221 set_target_properties(${MODULE}-static PROPERTIES LINK_FLAGS "-Wl,--whole-archive")
222
223 # Installation
224 install(TARGETS ${MODULE}-static
225 ARCHIVE DESTINATION lib
226 LIBRARY DESTINATION lib)
227endif(ALIROOT_STATIC)
68aeb13b 228