]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/ESD/CMakeLists.txt
e3281f3e3130907746bc08fcef73c362fb2545ed
[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(${MODULE}-object OBJECT ${SRCS} G__${MODULE}.cxx)
122 # Follow headers dependencies
123 add_dependencies(${MODULE}-object ${ALIROOT_DEPENDENCIES})
124
125 # Add a library to the project using the object
126 add_library(${MODULE} SHARED $<TARGET_OBJECTS:ESD-object>)
127 target_link_libraries(${MODULE} ${ALIROOT_DEPENDENCIES} ${ROOT_DEPENDENCIES})
128
129 # Public include folders that will be propagated to the dependecies
130 target_include_directories(${MODULE} PUBLIC ${incdirs})
131
132 # Additional compilation flags for the object
133 set_target_properties(ESD-object PROPERTIES COMPILE_FLAGS "-O -g")
134
135 # System dependent: Modify the way the library is build
136 if(${CMAKE_SYSTEM} MATCHES Darwin)
137     set_target_properties(ESD PROPERTIES LINK_FLAGS "-undefined dynamic_lookup")
138 endif(${CMAKE_SYSTEM} MATCHES Darwin)
139
140 # Installation
141 install(TARGETS ${MODULE} 
142   ARCHIVE DESTINATION lib
143   LIBRARY DESTINATION lib)
144 install(FILES ${HDRS} DESTINATION include)
145
146 # Static version if DA enabled
147 if(ALIROOT_STATIC)
148     add_library(${MODULE}-static STATIC $<TARGET_OBJECTS:ESD-object>)
149     set_target_properties(${MODULE}-static PROPERTIES OUTPUT_NAME ${MODULE})
150
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
154     # Public include folders that will be propagated to the dependecies
155     target_include_directories(${MODULE}-static PUBLIC ${incdirs})
156
157     set_target_properties(${MODULE}-static PROPERTIES LINK_FLAGS "-Wl,--whole-archive")
158     target_link_libraries(${MODULE}-static ${STATIC_ALIROOT_DEPENDENCIES} Root RootExtra)
159
160     # Installation
161     install(TARGETS ${MODULE}-static
162             ARCHIVE DESTINATION lib
163             LIBRARY DESTINATION lib)
164 endif(ALIROOT_STATIC)