VZERO DAs + Object target dependencies
[u/mrichter/AliRoot.git] / ITS / ITSbase / CMakeLists.txt
CommitLineData
56966a5e 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 ITSbase)
18
19# Module include folder
427d561c 20include_directories(${AliRoot_SOURCE_DIR}/ITS/${MODULE})
56966a5e 21
22# Additional include folders in alphabetical order except ROOT
1dbe1076 23include_directories(${ROOT_INCLUDE_DIRS}
427d561c 24 ${AliRoot_SOURCE_DIR}/RAW/RAWDatabase
25 ${AliRoot_SOURCE_DIR}/RAW/RAWDatarec
26 ${AliRoot_SOURCE_DIR}/RAW/RAWDatasim
27 ${AliRoot_SOURCE_DIR}/RAW/dateStream
28 ${AliRoot_SOURCE_DIR}/STEER/CDB
29 ${AliRoot_SOURCE_DIR}/STEER/ESD
30 ${AliRoot_SOURCE_DIR}/STEER/STEERBase
31 ${AliRoot_SOURCE_DIR}/STEER/STEER
56966a5e 32 )
33
34# Sources in alphabetical order
35set(SRCS
36 AliITSBadChannelsSSD.cxx
37 AliITSBadChannelsSSDv2.cxx
38 AliITSCalibration.cxx
39 AliITSCalibrationSDD.cxx
40 AliITSCalibrationSPD.cxx
41 AliITSCalibrationSSD.cxx
42 AliITSChannelDaSSD.cxx
43 AliITSChannelStatus.cxx
efc69e78 44 AliITSClusterFinder.cxx
45 AliITSClusterFinderSDDfast.cxx
46 AliITSClusterFinderV2SDD.cxx
47 AliITSClusterFinderV2SPD.cxx
48 AliITSClusterFinderV2SSD.cxx
49 AliITSClusterParam.cxx
50 AliITSclusterTable.cxx
56966a5e 51 AliITSclusterV2.cxx
52 AliITSCompressRawDataSDD.cxx
53 AliITSCorrMap1DSDD.cxx
54 AliITSCorrMap2DSDD.cxx
55 AliITSCorrMapSDD.cxx
56 AliITSDCSAnalyzerSDD.cxx
57 AliITSDCSDataSDD.cxx
58 AliITSDDLModuleMapSDD.cxx
59 AliITSDDLRawData.cxx
60 AliITSdEdxSamples.cxx
efc69e78 61 AliITSDetTypeRec.cxx
56966a5e 62 AliITSdigit.cxx
63 AliITSdigitSDD.cxx
64 AliITSdigitSPD.cxx
65 AliITSdigitSSD.cxx
66 AliITSDriftSpeedArraySDD.cxx
67 AliITSDriftSpeedSDD.cxx
68 AliITSEventHeader.cxx
efc69e78 69 AliITSFOSignalsSPD.cxx
56966a5e 70 AliITSGainSSD.cxx
71 AliITSGainSSDv2.cxx
72 AliITSgeom.cxx
73 AliITSgeomMatrix.cxx
74 AliITSgeomTGeo.cxx
56966a5e 75 AliITSHLTforSDD.cxx
76 AliITSInitGeometry.cxx
77 AliITSIntMap.cxx
78 AliITSIntMapNode.cxx
79 AliITSLoader.cxx
80 AliITSMapA1.cxx
81 AliITSMapA2.cxx
82 AliITSMap.cxx
83 AliITSMapSDD.cxx
84 AliITSMisAligner.cxx
85 AliITSModuleDaSSD.cxx
efc69e78 86 AliITSMultReconstructor.cxx
56966a5e 87 AliITSNoiseSSD.cxx
88 AliITSNoiseSSDv2.cxx
89 AliITSPedestalSSD.cxx
90 AliITSPedestalSSDv2.cxx
91 AliITSPlaneEff.cxx
92 AliITSPlaneEffSDD.cxx
93 AliITSPlaneEffSPD.cxx
94 AliITSPlaneEffSSD.cxx
95 AliITSpList.cxx
96 AliITSpListItem.cxx
efc69e78 97 AliITSQAChecker.cxx
98 AliITSQADataMakerRec.cxx
99 AliITSQASDDChecker.cxx
100 AliITSQASPDChecker.cxx
101 AliITSQASSDChecker.cxx
102 AliITSQASDDDataMakerRec.cxx
103 AliITSQASPDDataMakerRec.cxx
104 AliITSQASSDDataMakerRec.cxx
56966a5e 105 AliITSRawStream.cxx
106 AliITSRawStreamSDDCompressed.cxx
107 AliITSRawStreamSDD.cxx
108 AliITSRawStreamSPD.cxx
109 AliITSRawStreamSPDErrorLog.cxx
110 AliITSRawStreamSSD.cxx
111 AliITSRawStreamSSDv1.cxx
efc69e78 112 AliITSReconstructor.cxx
113 AliITSRecoParam.cxx
56966a5e 114 AliITSRecPoint.cxx
efc69e78 115 AliITSRecPointContainer.cxx
56966a5e 116 AliITSresponse.cxx
117 AliITSresponseSDD.cxx
118 AliITSresponseSPD.cxx
119 AliITSsegmentation.cxx
120 AliITSsegmentationSDD.cxx
121 AliITSsegmentationSPD.cxx
122 AliITSsegmentationSSD.cxx
efc69e78 123 AliITSSortTrkl.cxx
56966a5e 124 AliITSSurveyToAlign.cxx
efc69e78 125 AliITStrackMI.cxx
126 AliITStrackerMI.cxx
127 AliITSTracklPairs.cxx
128 AliITStrackSA.cxx
129 AliITStrackV2.cxx
130 AliITStrackerSA.cxx
131 AliITStrackerV2.cxx
132 AliITSTrackleterSPDEff.cxx
56966a5e 133 AliITSTransientDigit.cxx
134 AliITSTriggerAlgorithmConditions.cxx
135 AliITSTriggerConditions.cxx
efc69e78 136 AliITSV0Finder.cxx
137 AliITSVertexer.cxx
138 AliITSVertexer3D.cxx
139 AliITSVertexerCosmics.cxx
140 AliITSVertexerFast.cxx
141 AliITSVertexerFixed.cxx
142 AliITSVertexerZ.cxx
143 AliITSVertexerZD.cxx
144 AliITSZPoint.cxx
56966a5e 145 )
087b5ece 146if (DATE_FOUND)
48bb5b02 147 set (SRCS ${SRCS} "AliITSHandleDaSSD.cxx")
90dcc14b 148 # set the definitions per folder to be passed to ROOT
149 add_definitions(-DALI_DATE)
087b5ece 150endif (DATE_FOUND)
56966a5e 151
152# Headers from sources
153string(REPLACE ".cxx" ".h" HDRS "${SRCS}")
154
155# Generate the dictionary
156# It will create G_ARG1.cxx and G_ARG1.h / ARG1 = function first argument
157get_directory_property(incdirs INCLUDE_DIRECTORIES)
158generate_dictionary("${MODULE}" "${MODULE}LinkDef.h" "${HDRS}" "${incdirs}")
159
f5b3b5d7 160# Setting the dependencies
efc69e78 161set(ROOT_DEPENDENCIES Core EG GenVector Geom Gpad Graf3d Graf Gui HistPainter Hist MathCore Matrix Minuit Physics RIO Tree)
162set(ALIROOT_DEPENDENCIES CDB ESD STEERBase STEER RAWDatabase RAWDatarec RAWDatasim)
f5b3b5d7 163
56966a5e 164# Generate the ROOT map
165# Dependecies
f5b3b5d7 166set(LIBDEPS ${ALIROOT_DEPENDENCIES} ${ROOT_DEPENDENCIES})
56966a5e 167generate_rootmap("${MODULE}" "${LIBDEPS}" "${CMAKE_CURRENT_SOURCE_DIR}/${MODULE}LinkDef.h")
168
f5b3b5d7 169# Create an object to be reused in case of static libraries
170# Otherwise the sources will be compiled twice
171add_library(${MODULE}-object OBJECT ${SRCS} G__${MODULE}.cxx)
139cbc46 172# Follow headers dependencies
173add_dependencies(${MODULE}-object ${ALIROOT_DEPENDENCIES})
f5b3b5d7 174# Add a library to the project using the object
175add_library(${MODULE} SHARED $<TARGET_OBJECTS:ITSbase-object>)
176target_link_libraries(${MODULE} ${ALIROOT_DEPENDENCIES} ${ROOT_DEPENDENCIES})
56966a5e 177
4d31eb1c 178# Public include folders that will be propagated to the dependecies
179target_include_directories(${MODULE} PUBLIC ${incdirs})
180
3c5c763a 181set(MODULE_COMPILE_FLAGS "-O -g -fPIC")
efc69e78 182if(DATE_FOUND)
183 set(MODULE_COMPILE_FLAGS "${DATE_CFLAGS} ${MODULE_COMPILE_FLAGS}")
184endif(DATE_FOUND)
185
56966a5e 186# Additional compilation flags
efc69e78 187set_target_properties(${MODULE}-object PROPERTIES COMPILE_FLAGS "${MODULE_COMPILE_FLAGS}")
56966a5e 188
189# System dependent: Modify the way the library is build
190if(${CMAKE_SYSTEM} MATCHES Darwin)
191 set_target_properties(${MODULE} PROPERTIES LINK_FLAGS "-undefined dynamic_lookup")
192endif(${CMAKE_SYSTEM} MATCHES Darwin)
193
194# Installation
195install(TARGETS ${MODULE}
196 ARCHIVE DESTINATION lib
197 LIBRARY DESTINATION lib)
198
f5b3b5d7 199install(FILES ${HDRS} DESTINATION include)
200
201# Static version if DA enabled
202if(ALIROOT_STATIC)
203 add_library(${MODULE}-static STATIC $<TARGET_OBJECTS:ITSbase-object>)
204 set_target_properties(${MODULE}-static PROPERTIES OUTPUT_NAME ${MODULE})
205
206 # list of shared dependencies / the name of the variable containing the list of static ones
207 generate_static_dependencies("${ALIROOT_DEPENDENCIES}" "STATIC_ALIROOT_DEPENDENCIES")
208 target_link_libraries(${MODULE}-static ${STATIC_ALIROOT_DEPENDENCIES} Root)
4d31eb1c 209
210 # Public include folders that will be propagated to the dependecies
211 target_include_directories(${MODULE}-static PUBLIC ${incdirs})
212
f5b3b5d7 213 set_target_properties(${MODULE}-static PROPERTIES LINK_FLAGS "-Wl,--whole-archive")
214
215 # Installation
216 install(TARGETS ${MODULE}-static
217 ARCHIVE DESTINATION lib
218 LIBRARY DESTINATION lib)
219endif(ALIROOT_STATIC)