]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/ESD/CMakeLists.txt
0d3df90037386451ecd323f4247fb17a0db11c60
[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 # Generate the ROOT map
112 # Dependecies
113 set(LIBDEPS STEERBase Core EG Geom Gpad Graf3d MathCore Matrix Physics RIO Tree)
114 generate_rootmap("ESD" "${LIBDEPS}" "${CMAKE_CURRENT_SOURCE_DIR}/${MODULE}LinkDef.h")
115
116 # Create an object to be reused in case of static libraries 
117 # Otherwise the sources will be compiled twice
118 add_library(ESD-object OBJECT ${SRCS} G__${MODULE}.cxx)
119
120 # Add a library to the project using the object
121 add_library(ESD SHARED $<TARGET_OBJECTS:ESD-object>)
122 target_link_libraries(ESD STEERBase Core EG Geom Gpad Graf3d MathCore Matrix Physics RIO Tree)
123
124 # Additional compilation flags for the object
125 set_target_properties(ESD-object PROPERTIES COMPILE_FLAGS "-fPIC -O -g")
126
127 # System dependent: Modify the way the library is build
128 if(${CMAKE_SYSTEM} MATCHES Darwin)
129     set_target_properties(ESD PROPERTIES LINK_FLAGS "-undefined dynamic_lookup")
130 endif(${CMAKE_SYSTEM} MATCHES Darwin)
131
132 # Installation
133 install(TARGETS ${MODULE} 
134   ARCHIVE DESTINATION lib
135   LIBRARY DESTINATION lib)
136 install(FILES ${HDRS} DESTINATION include)
137
138 # Static version if DA enabled
139 if(ALIROOT_STATIC)
140     add_library(${MODULE}-static STATIC $<TARGET_OBJECTS:ESD-object>)
141     set_target_properties(${MODULE}-static PROPERTIES OUTPUT_NAME ${MODULE})
142
143     set_target_properties(${MODULE}-static PROPERTIES LINK_FLAGS "-Wl,--whole-archive")
144     target_link_libraries(${MODULE}-static STEERBase-static Root)
145
146     # Installation
147     install(TARGETS ${MODULE}-static
148             ARCHIVE DESTINATION lib
149             LIBRARY DESTINATION lib)
150 endif(ALIROOT_STATIC)