]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STEER/ESD/CMakeLists.txt
VZERO DAs + Object target dependencies
[u/mrichter/AliRoot.git] / STEER / ESD / 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 ESD)
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}/STEER/STEERBase)
e9e48ff1 25
26# Sources - alphabetical order
27set(SRCS
28 AliCascadeVertexer.cxx
29 AliESDACORDE.cxx
30 AliESDAD.cxx
31 AliESDCaloCells.cxx
32 AliESDCaloCluster.cxx
33 AliESDCaloTrigger.cxx
34 AliESDcascade.cxx
35 AliESDCosmicTrack.cxx
36 AliESD.cxx
37 AliESDEvent.cxx
38 AliESDFIT.cxx
39 AliESDFMD.cxx
40 AliESDfriend.cxx
41 AliESDfriendTrack.cxx
42 AliESDHandler.cxx
43 AliESDHeader.cxx
44 AliESDHLTDecision.cxx
45 AliESDHLTtrack.cxx
46 AliESDInputHandler.cxx
47 AliESDInputHandlerRP.cxx
48 AliESDkink.cxx
49 AliESDMultITS.cxx
50 AliESDMuonCluster.cxx
51 AliESDMuonGlobalTrack.cxx
52 AliESDMuonPad.cxx
53 AliESDMuonTrack.cxx
54 AliESDpid.cxx
55 AliESDPmdTrack.cxx
56 AliESDRun.cxx
57 AliESDTOFCluster.cxx
58 AliESDTOFHit.cxx
59 AliESDTOFMatch.cxx
60 AliESDtrack.cxx
61 AliESDTrdTrack.cxx
62 AliESDTrdTracklet.cxx
63 AliESDTrdTrigger.cxx
64 AliESDTZERO.cxx
65 AliESDTZEROfriend.cxx
66 AliESDUtils.cxx
67 AliESDv0.cxx
68 AliESDV0Params.cxx
69 AliESDVertex.cxx
70 AliESDVZERO.cxx
71 AliESDVZEROfriend.cxx
72 AliESDZDC.cxx
73 AliExpression.cxx
74 AliFMDFloatMap.cxx
75 AliFMDMap.cxx
76 AliKalmanTrack.cxx
77 AliKFParticleBase.cxx
78 AliKFParticle.cxx
79 AliKFVertex.cxx
80 AliMeanVertex.cxx
81 AliMultiplicity.cxx
82 AliRawDataErrorLog.cxx
83 AliSelector.cxx
84 AliStrLine.cxx
85 AliTrackerBase.cxx
86 AliTrackPointArray.cxx
87 AliTriggerBCMask.cxx
88 AliTriggerClass.cxx
89 AliTriggerCluster.cxx
90 AliTriggerConfiguration.cxx
91 AliTriggerDescriptor.cxx
92 AliTriggerInput.cxx
93 AliTriggerInteraction.cxx
94 AliTriggerIR.cxx
95 AliTriggerPFProtection.cxx
96 AliTriggerScalersESD.cxx
97 AliTriggerScalersRecordESD.cxx
98 AliV0vertexer.cxx
99 AliVertex.cxx
100 AliVertexerTracks.cxx
101 )
102
103# Headers from sources
104string(REPLACE ".cxx" ".h" HDRS "${SRCS}")
105
106# Generate the dictionary
107# It will create G_ARG1.cxx and G_ARG1.h / ARG1 = function first argument
108get_directory_property(incdirs INCLUDE_DIRECTORIES)
f82bfa66 109generate_dictionary("ESD" "${MODULE}LinkDef.h" "${HDRS}" "${incdirs}")
e9e48ff1 110
9cfdd3fd 111set(ROOT_DEPENDENCIES Core EG Geom Gpad Graf3d MathCore Matrix Physics RIO Tree)
112set(ALIROOT_DEPENDENCIES STEERBase)
113
0224bae4 114# Generate the ROOT map
115# Dependecies
9cfdd3fd 116set(LIBDEPS ${ALIROOT_DEPENDENCIES} ${ROOT_DEPENDENCIES})
f82bfa66 117generate_rootmap("ESD" "${LIBDEPS}" "${CMAKE_CURRENT_SOURCE_DIR}/${MODULE}LinkDef.h")
0224bae4 118
f82bfa66 119# Create an object to be reused in case of static libraries
120# Otherwise the sources will be compiled twice
6929fcdd 121add_library(${MODULE}-object OBJECT ${SRCS} G__${MODULE}.cxx)
139cbc46 122# Follow headers dependencies
123add_dependencies(${MODULE}-object ${ALIROOT_DEPENDENCIES})
e9e48ff1 124
f82bfa66 125# Add a library to the project using the object
6929fcdd 126add_library(${MODULE} SHARED $<TARGET_OBJECTS:ESD-object>)
127target_link_libraries(${MODULE} ${ALIROOT_DEPENDENCIES} ${ROOT_DEPENDENCIES})
128
129# Public include folders that will be propagated to the dependecies
130target_include_directories(${MODULE} PUBLIC ${incdirs})
f82bfa66 131
132# Additional compilation flags for the object
6929fcdd 133set_target_properties(ESD-object PROPERTIES COMPILE_FLAGS "-O -g")
e9e48ff1 134
135# System dependent: Modify the way the library is build
136if(${CMAKE_SYSTEM} MATCHES Darwin)
f82bfa66 137 set_target_properties(ESD PROPERTIES LINK_FLAGS "-undefined dynamic_lookup")
e9e48ff1 138endif(${CMAKE_SYSTEM} MATCHES Darwin)
139
140# Installation
141install(TARGETS ${MODULE}
142 ARCHIVE DESTINATION lib
143 LIBRARY DESTINATION lib)
144install(FILES ${HDRS} DESTINATION include)
f82bfa66 145
146# Static version if DA enabled
147if(ALIROOT_STATIC)
148 add_library(${MODULE}-static STATIC $<TARGET_OBJECTS:ESD-object>)
149 set_target_properties(${MODULE}-static PROPERTIES OUTPUT_NAME ${MODULE})
150
9cfdd3fd 151 # list of shared dependencies / the name of the variable containing the list of static ones
152 generate_static_dependencies("${ALIROOT_DEPENDENCIES}" "STATIC_ALIROOT_DEPENDENCIES")
153
d1d7d34a 154 # Public include folders that will be propagated to the dependecies
155 target_include_directories(${MODULE}-static PUBLIC ${incdirs})
156
f82bfa66 157 set_target_properties(${MODULE}-static PROPERTIES LINK_FLAGS "-Wl,--whole-archive")
9cfdd3fd 158 target_link_libraries(${MODULE}-static ${STATIC_ALIROOT_DEPENDENCIES} Root RootExtra)
f82bfa66 159
160 # Installation
161 install(TARGETS ${MODULE}-static
162 ARCHIVE DESTINATION lib
163 LIBRARY DESTINATION lib)
164endif(ALIROOT_STATIC)