Generated static dependecies
[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
23include_directories(${ROOT_INCLUDE_DIRS}
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}")
159
160# Generate the dictionary
161# It will create G_ARG1.cxx and G_ARG1.h / ARG1 = function first argument
162get_directory_property(incdirs INCLUDE_DIRECTORIES)
163generate_dictionary("${MODULE}" "${MODULE}LinkDef.h" "${HDRS}" "${incdirs}")
164
9cfdd3fd 165set(ROOT_DEPENDENCIES Core EG GenVector GeomPainter Geom Gpad Graf Hist MathCore Matrix Minuit Net Physics Proof RIO Tree VMC)
166set(ALIROOT_DEPENDENCIES STEERBase RAWDatabase RAWDatarec CDB ESD ANALYSIS HLTbase)
167
0224bae4 168# Generate the ROOT map
169# Dependecies
9cfdd3fd 170set(LIBDEPS ${ALIROOT_DEPENDENCIES} ${ROOT_DEPENDENCIES})
0224bae4 171generate_rootmap("${MODULE}" "${LIBDEPS}" "${CMAKE_CURRENT_SOURCE_DIR}/${MODULE}LinkDef.h")
172
27d54f3d 173set(LIBHLTSIM_VERSION "1")
174add_definitions("-DLIBHLTSIM_VERSION=${LIBHLTSIM_VERSION}")
0224bae4 175
f82bfa66 176# Create an object to be reused in case of static libraries
177# Otherwise the sources will be compiled twice
178add_library(STEER-object OBJECT ${SRCS} G__${MODULE}.cxx)
179# Add a library to the project using the object
180add_library(STEER SHARED $<TARGET_OBJECTS:STEER-object>)
e9e48ff1 181
182# Additional compilation flags
f82bfa66 183set_target_properties(${MODULE}-object PROPERTIES COMPILE_FLAGS "-fPIC -O -g")
9cfdd3fd 184target_link_libraries(${MODULE} ${ALIROOT_DEPENDENCIES} ${ROOT_DEPENDENCIES})
e9e48ff1 185
186# System dependent: Modify the way the library is build
187if(${CMAKE_SYSTEM} MATCHES Darwin)
188 set_target_properties(${MODULE} PROPERTIES LINK_FLAGS "-undefined dynamic_lookup")
189endif(${CMAKE_SYSTEM} MATCHES Darwin)
190
191# Installation
192install(TARGETS ${MODULE}
193 ARCHIVE DESTINATION lib
194 LIBRARY DESTINATION lib)
195install(FILES ${HDRS} DESTINATION include)
f82bfa66 196
197# Static version if DA enabled
198if(ALIROOT_STATIC)
199 add_library(${MODULE}-static STATIC $<TARGET_OBJECTS:STEER-object>)
200 set_target_properties(${MODULE}-static PROPERTIES OUTPUT_NAME ${MODULE})
9cfdd3fd 201
202 # list of shared dependencies / the name of the variable containing the list of static ones
203 generate_static_dependencies("${ALIROOT_DEPENDENCIES}" "STATIC_ALIROOT_DEPENDENCIES")
204
205 target_link_libraries(${MODULE}-static ${STATIC_ALIROOT_DEPENDENCIES} Root RootExtra)
f82bfa66 206 set_target_properties(${MODULE}-static PROPERTIES LINK_FLAGS "-Wl,--whole-archive")
207
208 # Installation
209 install(TARGETS ${MODULE}-static
210 ARCHIVE DESTINATION lib
211 LIBRARY DESTINATION lib)
212endif(ALIROOT_STATIC)