PHOS - Fixing circular dependecies + initial DA files
[u/mrichter/AliRoot.git] / PHOS / PHOSbase / CMakeLists.txt
CommitLineData
97e8d2a8 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 PHOSbase)
18
19# Module include folder
427d561c 20include_directories(${AliRoot_SOURCE_DIR}/PHOS/${MODULE})
97e8d2a8 21
22# Additional include folders in alphabetical order except ROOT
23include_directories(${ROOT_INCLUDE_DIRS}
427d561c 24 ${AliRoot_SOURCE_DIR}/RAW/RAWDatabase
25 ${AliRoot_SOURCE_DIR}/RAW/RAWDatarec
00d82de9 26 ${AliRoot_SOURCE_DIR}/RAW/RAWDatasim
427d561c 27 ${AliRoot_SOURCE_DIR}/PHOS/PHOSUtils
28 ${AliRoot_SOURCE_DIR}/STEER/CDB
29 ${AliRoot_SOURCE_DIR}/STEER/ESD
30 ${AliRoot_SOURCE_DIR}/STEER/STEER
31 ${AliRoot_SOURCE_DIR}/STEER/STEERBase
97e8d2a8 32 )
33
34# Sources in alphabetical order
35set(SRCS
00d82de9 36 AliPHOS.cxx
97e8d2a8 37 AliPHOSCalibData.cxx
38 AliPHOSClusterizer.cxx
00d82de9 39 AliPHOSClusterizerv1.cxx
97e8d2a8 40 AliPHOSCpvCalibData.cxx
41 AliPHOSCpvRecPoint.cxx
42 AliPHOSDigit.cxx
43 AliPHOSDigitizer.cxx
44 AliPHOSEmcBadChannelsMap.cxx
45 AliPHOSEmcCalibData.cxx
46 AliPHOSEmcRecPoint.cxx
47 AliPHOSFastRecParticle.cxx
48 AliPHOSGeometry.cxx
49 AliPHOSHit.cxx
50 AliPHOSImpact.cxx
00d82de9 51 AliPHOSLink.cxx
97e8d2a8 52 AliPHOSLoader.cxx
53 AliPHOSModuleMisalignment.cxx
54 AliPHOSPID.cxx
55 AliPHOSPulseGenerator.cxx
56 AliPHOSQAChecker.cxx
57 AliPHOSRawDigiProducer.cxx
58 AliPHOSRawFitterv0.cxx
59 AliPHOSRawFitterv1.cxx
60 AliPHOSRawFitterv2.cxx
61 AliPHOSRawFitterv3.cxx
62 AliPHOSRawFitterv4.cxx
63 AliPHOSRecoParam.cxx
00d82de9 64 AliPHOSReconstructor.cxx
97e8d2a8 65 AliPHOSRecParticle.cxx
66 AliPHOSRecPoint.cxx
00d82de9 67 AliPHOSPIDv1.cxx
97e8d2a8 68 AliPHOSSDigitizer.cxx
69 AliPHOSSimParam.cxx
70 AliPHOSSurvey1.cxx
71 AliPHOSSurvey.cxx
00d82de9 72 AliPHOSTick.cxx
73 AliPHOSTracker.cxx
97e8d2a8 74 AliPHOSTrackSegment.cxx
75 AliPHOSTrackSegmentMaker.cxx
00d82de9 76 AliPHOSTrackSegmentMakerv1.cxx
97e8d2a8 77 AliPHOSTrigger.cxx
78 AliPHOSTriggerParameters.cxx
00d82de9 79 AliPHOSTriggerRawDigit.cxx
80 AliPHOSTriggerRawDigiProducer.cxx
81 AliPHOSTriggerRawReader.cxx
82 AliPHOSTRURawReader.cxx
83
97e8d2a8 84 )
85
86# Headers from sources
87string(REPLACE ".cxx" ".h" HDRS "${SRCS}")
88
89# Generate the dictionary
90# It will create G_ARG1.cxx and G_ARG1.h / ARG1 = function first argument
91get_directory_property(incdirs INCLUDE_DIRECTORIES)
92generate_dictionary("${MODULE}" "${MODULE}LinkDef.h" "${HDRS}" "${incdirs}")
93
00d82de9 94set(ROOT_DEPENDENCIES)
95set(ALIROOT_DEPENDENCIES STEERBase STEER CDB ESD RAWDatabase RAWDatarec PHOSUtils)
96
97e8d2a8 97# Generate the ROOT map
98# Dependecies
00d82de9 99set(LIBDEPS ${ALIROOT_DEPENDENCIES} ${ROOT_DEPENDENCIES})
97e8d2a8 100generate_rootmap("${MODULE}" "${LIBDEPS}" "${CMAKE_CURRENT_SOURCE_DIR}/${MODULE}LinkDef.h")
101
00d82de9 102# Create an object to be reused in case of static libraries
103# Otherwise the sources will be compiled twice
104add_library(${MODULE}-object OBJECT ${SRCS} G__${MODULE}.cxx)
105# Add a library to the project using the object
106add_library(${MODULE} SHARED $<TARGET_OBJECTS:PHOSbase-object>)
97e8d2a8 107
00d82de9 108# Linking
109target_link_libraries(${MODULE} ${ALIROOT_DEPENDENCIES} ${ALIROOT_DEPENDENCIES})
97e8d2a8 110
111# Additional compilation flags
00d82de9 112set_target_properties(${MODULE}-object PROPERTIES COMPILE_FLAGS "-O -g -fPIC")
97e8d2a8 113
114# System dependent: Modify the way the library is build
115if(${CMAKE_SYSTEM} MATCHES Darwin)
116 set_target_properties(${MODULE} PROPERTIES LINK_FLAGS "-undefined dynamic_lookup")
117endif(${CMAKE_SYSTEM} MATCHES Darwin)
118
119# Installation
120install(TARGETS ${MODULE}
121 ARCHIVE DESTINATION lib
122 LIBRARY DESTINATION lib)
123
00d82de9 124install(FILES ${HDRS} DESTINATION include)
125
126# Static version if DA enabled
127if(ALIROOT_STATIC)
128 add_library(${MODULE}-static STATIC $<TARGET_OBJECTS:PHOSbase-object>)
129 set_target_properties(${MODULE}-static PROPERTIES OUTPUT_NAME ${MODULE})
130
131 # list of shared dependencies / the name of the variable containing the list of static ones
132 generate_static_dependencies("${ALIROOT_DEPENDENCIES}" "STATIC_ALIROOT_DEPENDENCIES")
133 target_link_libraries(${MODULE}-static ${STATIC_ALIROOT_DEPENDENCIES} Root)
134 set_target_properties(${MODULE}-static PROPERTIES LINK_FLAGS "-Wl,--whole-archive")
135
136 # Installation
137 install(TARGETS ${MODULE}-static
138 ARCHIVE DESTINATION lib
139 LIBRARY DESTINATION lib)
140endif(ALIROOT_STATIC)