]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/ESD/CMakeLists.txt
7bba85439636d4138977133a4d98504193c5a618
[u/mrichter/AliRoot.git] / STEER / ESD / 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 # Module
17 set(MODULE ESD)
18
19 # Module include folders
20 include_directories(${AliRoot_SOURCE_DIR}/STEER/${MODULE})
21
22 # Additional include directories - alphabetical order except ROOT
23 include_directories(${ROOT_INCLUDE_DIRS}
24                     ${AliRoot_SOURCE_DIR}/STEER/STEERBase)
25
26 # Sources - alphabetical order
27 set(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
104 string(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
108 get_directory_property(incdirs INCLUDE_DIRECTORIES)
109 generate_dictionary("ESD" "${MODULE}LinkDef.h" "${HDRS}" "${incdirs}")
110
111 set(ROOT_DEPENDENCIES Core EG Geom Gpad Graf3d MathCore Matrix Physics RIO Tree)
112 set(ALIROOT_DEPENDENCIES STEERBase)
113
114 # Generate the ROOT map
115 # Dependecies
116 set(LIBDEPS ${ALIROOT_DEPENDENCIES} ${ROOT_DEPENDENCIES})
117 generate_rootmap("ESD" "${LIBDEPS}" "${CMAKE_CURRENT_SOURCE_DIR}/${MODULE}LinkDef.h")
118
119 # Create an object to be reused in case of static libraries 
120 # Otherwise the sources will be compiled twice
121 add_library(ESD-object OBJECT ${SRCS} G__${MODULE}.cxx)
122
123 # Add a library to the project using the object
124 add_library(ESD SHARED $<TARGET_OBJECTS:ESD-object>)
125 target_link_libraries(ESD ${ALIROOT_DEPENDENCIES} ${ROOT_DEPENDENCIES})
126
127 # Additional compilation flags for the object
128 set_target_properties(ESD-object PROPERTIES COMPILE_FLAGS "-fPIC -O -g")
129
130 # System dependent: Modify the way the library is build
131 if(${CMAKE_SYSTEM} MATCHES Darwin)
132     set_target_properties(ESD PROPERTIES LINK_FLAGS "-undefined dynamic_lookup")
133 endif(${CMAKE_SYSTEM} MATCHES Darwin)
134
135 # Installation
136 install(TARGETS ${MODULE} 
137   ARCHIVE DESTINATION lib
138   LIBRARY DESTINATION lib)
139 install(FILES ${HDRS} DESTINATION include)
140
141 # Static version if DA enabled
142 if(ALIROOT_STATIC)
143     add_library(${MODULE}-static STATIC $<TARGET_OBJECTS:ESD-object>)
144     set_target_properties(${MODULE}-static PROPERTIES OUTPUT_NAME ${MODULE})
145
146     # list of shared dependencies / the name of the variable containing the list of static ones
147     generate_static_dependencies("${ALIROOT_DEPENDENCIES}" "STATIC_ALIROOT_DEPENDENCIES")
148
149     set_target_properties(${MODULE}-static PROPERTIES LINK_FLAGS "-Wl,--whole-archive")
150     target_link_libraries(${MODULE}-static ${STATIC_ALIROOT_DEPENDENCIES} Root RootExtra)
151
152     # Installation
153     install(TARGETS ${MODULE}-static
154             ARCHIVE DESTINATION lib
155             LIBRARY DESTINATION lib)
156 endif(ALIROOT_STATIC)