1 # **************************************************************************
2 # * Copyright(c) 1998-2014, ALICE Experiment at CERN, All rights reserved. *
4 # * Author: The ALICE Off-line Project. *
5 # * Contributors are mentioned in the code where appropriate. *
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 # **************************************************************************
19 # Module include folder
20 include_directories(${AliRoot_SOURCE_DIR}/ITS/${MODULE})
22 # Additional include folders in alphabetical order except ROOT
23 include_directories(${ROOT_INCLUDE_DIRS}
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
34 # Sources in alphabetical order
36 AliITSBadChannelsSSD.cxx
37 AliITSBadChannelsSSDv2.cxx
39 AliITSCalibrationSDD.cxx
40 AliITSCalibrationSPD.cxx
41 AliITSCalibrationSSD.cxx
42 AliITSChannelDaSSD.cxx
43 AliITSChannelStatus.cxx
44 AliITSClusterFinder.cxx
45 AliITSClusterFinderSDDfast.cxx
46 AliITSClusterFinderV2SDD.cxx
47 AliITSClusterFinderV2SPD.cxx
48 AliITSClusterFinderV2SSD.cxx
49 AliITSClusterParam.cxx
50 AliITSclusterTable.cxx
52 AliITSCompressRawDataSDD.cxx
53 AliITSCorrMap1DSDD.cxx
54 AliITSCorrMap2DSDD.cxx
56 AliITSDCSAnalyzerSDD.cxx
58 AliITSDDLModuleMapSDD.cxx
66 AliITSDriftSpeedArraySDD.cxx
67 AliITSDriftSpeedSDD.cxx
69 AliITSFOSignalsSPD.cxx
76 AliITSInitGeometry.cxx
86 AliITSMultReconstructor.cxx
90 AliITSPedestalSSDv2.cxx
98 AliITSQADataMakerRec.cxx
99 AliITSQASDDChecker.cxx
100 AliITSQASPDChecker.cxx
101 AliITSQASSDChecker.cxx
102 AliITSQASDDDataMakerRec.cxx
103 AliITSQASPDDataMakerRec.cxx
104 AliITSQASSDDataMakerRec.cxx
106 AliITSRawStreamSDDCompressed.cxx
107 AliITSRawStreamSDD.cxx
108 AliITSRawStreamSPD.cxx
109 AliITSRawStreamSPDErrorLog.cxx
110 AliITSRawStreamSSD.cxx
111 AliITSRawStreamSSDv1.cxx
112 AliITSReconstructor.cxx
115 AliITSRecPointContainer.cxx
117 AliITSresponseSDD.cxx
118 AliITSresponseSPD.cxx
119 AliITSsegmentation.cxx
120 AliITSsegmentationSDD.cxx
121 AliITSsegmentationSPD.cxx
122 AliITSsegmentationSSD.cxx
124 AliITSSurveyToAlign.cxx
127 AliITSTracklPairs.cxx
132 AliITSTransientDigit.cxx
133 AliITSTriggerAlgorithmConditions.cxx
134 AliITSTriggerConditions.cxx
138 AliITSVertexerCosmics.cxx
139 AliITSVertexerFast.cxx
140 AliITSVertexerFixed.cxx
146 set (SRCS ${SRCS} "AliITSHandleDaSSD.cxx")
147 # set the definitions per folder to be passed to ROOT
148 set(MODULE_COMPILE_FLAGS "${DATE_CFLAGS}")
149 set(MODULE_LINK_FLAGS "${DATE_LDFLAGS} ${DATE_LIBS} ${DATE_DYNMONLIBS}")
152 # Headers from sources
153 string(REPLACE ".cxx" ".h" HDRS "${SRCS}")
155 # Generate the dictionary
156 # It will create G_ARG1.cxx and G_ARG1.h / ARG1 = function first argument
157 get_directory_property(incdirs INCLUDE_DIRECTORIES)
158 generate_dictionary("${MODULE}" "${MODULE}LinkDef.h" "${HDRS}" "${incdirs}" "${MODULE_COMPILE_FLAGS}")
160 # Setting the dependencies
161 set(ROOT_DEPENDENCIES Core EG GenVector Geom Gpad Graf3d Graf Gui HistPainter Hist MathCore Matrix Minuit Physics RIO Tree)
162 set(ALIROOT_DEPENDENCIES CDB ESD STEERBase STEER RAWDatabase RAWDatarec RAWDatasim)
164 # Generate the ROOT map
166 set(LIBDEPS ${ALIROOT_DEPENDENCIES} ${ROOT_DEPENDENCIES})
167 generate_rootmap("${MODULE}" "${LIBDEPS}" "${CMAKE_CURRENT_SOURCE_DIR}/${MODULE}LinkDef.h")
169 # Create an object to be reused in case of static libraries
170 # Otherwise the sources will be compiled twice
171 add_library(${MODULE}-object OBJECT ${SRCS} G__${MODULE}.cxx)
172 # Add a library to the project using the object
173 add_library(${MODULE} SHARED $<TARGET_OBJECTS:${MODULE}-object>)
175 target_link_libraries(${MODULE} ${ALIROOT_DEPENDENCIES} ${ROOT_DEPENDENCIES})
177 # Public include folders that will be propagated to the dependecies
178 target_include_directories(${MODULE} PUBLIC ${incdirs})
180 # System dependent: Modify the way the library is build
181 if(${CMAKE_SYSTEM} MATCHES Darwin)
182 set(MODULE_LINK_FLAGS "-undefined dynamic_lookup ${MODULE_LINK_FLAGS}")
183 endif(${CMAKE_SYSTEM} MATCHES Darwin)
185 # Aditional compile and link flags
186 set_target_properties(${MODULE}-object PROPERTIES COMPILE_FLAGS "${MODULE_COMPILE_FLAGS}")
187 set_target_properties(${MODULE} PROPERTIES LINK_FLAGS "${MODULE_LINK_FLAGS}")
189 # Setting the correct headers for the object as gathered from the dependencies
190 # After all compilation flags are set
191 target_include_directories(${MODULE}-object PUBLIC $<TARGET_PROPERTY:${MODULE},INCLUDE_DIRECTORIES>)
192 set_target_properties(${MODULE}-object PROPERTIES COMPILE_DEFINITIONS $<TARGET_PROPERTY:${MODULE},COMPILE_DEFINITIONS>)
195 install(TARGETS ${MODULE}
196 ARCHIVE DESTINATION lib
197 LIBRARY DESTINATION lib)
199 install(FILES ${HDRS} DESTINATION include)
201 # Static version if DA enabled
203 add_library(${MODULE}-static STATIC $<TARGET_OBJECTS:${MODULE}-object>)
204 set_target_properties(${MODULE}-static PROPERTIES OUTPUT_NAME ${MODULE})
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)
210 # Public include folders that will be propagated to the dependecies
211 target_include_directories(${MODULE}-static PUBLIC ${incdirs})
213 set_target_properties(${MODULE}-static PROPERTIES LINK_FLAGS "-Wl,--whole-archive")
216 install(TARGETS ${MODULE}-static
217 ARCHIVE DESTINATION lib
218 LIBRARY DESTINATION lib)
219 endif(ALIROOT_STATIC)