Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / PHOS / PHOSrec / 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 PHOSrec)
18
19# Module include folder
427d561c 20include_directories(${AliRoot_SOURCE_DIR}/PHOS/${MODULE})
97e8d2a8 21
22# Additional include folders in alphabetical order except ROOT
f0315837 23include_directories(${ROOT_INCLUDE_DIR}
427d561c 24 ${AliRoot_SOURCE_DIR}/PHOS/PHOSbase
25 ${AliRoot_SOURCE_DIR}/PHOS/PHOSUtils
26 ${AliRoot_SOURCE_DIR}/PHOS/PHOSsim
27 ${AliRoot_SOURCE_DIR}/RAW/RAWDatabase
28 ${AliRoot_SOURCE_DIR}/RAW/RAWDatarec
29 ${AliRoot_SOURCE_DIR}/STEER/AOD
30 ${AliRoot_SOURCE_DIR}/STEER/CDB
31 ${AliRoot_SOURCE_DIR}/STEER/ESD
32 ${AliRoot_SOURCE_DIR}/STEER/STEER
33 ${AliRoot_SOURCE_DIR}/STEER/STEERBase
97e8d2a8 34 )
35
36# Sources in alphabetical order
37set(SRCS
38 AliPHOSAodCluster.cxx
97e8d2a8 39 AliPHOSClusterizerv2.cxx
40 AliPHOSEsdCluster.cxx
41 AliPHOSEvalRecPoint.cxx
42 AliPHOSGridFile.cxx
43 AliPHOSIhepAnalyze.cxx
97e8d2a8 44 AliPHOSPIDv0.cxx
97e8d2a8 45 AliPHOSQADataMakerRec.cxx
46 AliPHOSRecCpvManager.cxx
47 AliPHOSRecEmcManager.cxx
48 AliPHOSRecManager.cxx
97e8d2a8 49 AliPHOSTrackSegmentMakerv2.cxx
97e8d2a8 50 )
51
52# Headers from sources
53string(REPLACE ".cxx" ".h" HDRS "${SRCS}")
54
55# Generate the dictionary
56# It will create G_ARG1.cxx and G_ARG1.h / ARG1 = function first argument
57get_directory_property(incdirs INCLUDE_DIRECTORIES)
58generate_dictionary("${MODULE}" "${MODULE}LinkDef.h" "${HDRS}" "${incdirs}")
59
6af91854 60set(ROOT_DEPENDENCIES Core EG Gpad Hist Net Physics RIO Tree)
61set(ALIROOT_DEPENDENCIES STEERBase STEER ESD AOD CDB RAWDatabase RAWDatarec PHOSbase PHOSUtils PHOSsim)
62
97e8d2a8 63# Generate the ROOT map
64# Dependecies
6af91854 65set(LIBDEPS ${ALIROOT_DEPENDENCIES} ${ROOT_DEPENDENCIES})
97e8d2a8 66generate_rootmap("${MODULE}" "${LIBDEPS}" "${CMAKE_CURRENT_SOURCE_DIR}/${MODULE}LinkDef.h")
67
6af91854 68# Create an object to be reused in case of static libraries
69# Otherwise the sources will be compiled twice
70add_library(${MODULE}-object OBJECT ${SRCS} G__${MODULE}.cxx)
139cbc46 71# Follow headers dependencies
72add_dependencies(${MODULE}-object ${ALIROOT_DEPENDENCIES})
6af91854 73# Add a library to the project using the object
74add_library(${MODULE} SHARED $<TARGET_OBJECTS:PHOSrec-object>)
97e8d2a8 75
6af91854 76# Linking
77target_link_libraries(${MODULE} ${ALIROOT_DEPENDENCIES} ${ALIROOT_DEPENDENCIES})
97e8d2a8 78
68aeb13b 79# Setting the correct headers for the object as gathered from the dependencies
80target_include_directories(${MODULE}-object PUBLIC $<TARGET_PROPERTY:${MODULE},INCLUDE_DIRECTORIES>)
81set_target_properties(${MODULE}-object PROPERTIES COMPILE_DEFINITIONS $<TARGET_PROPERTY:${MODULE},COMPILE_DEFINITIONS>)
82
97e8d2a8 83# Additional compilation flags
68aeb13b 84set_target_properties(${MODULE}-object PROPERTIES COMPILE_FLAGS " ")
97e8d2a8 85
86# System dependent: Modify the way the library is build
87if(${CMAKE_SYSTEM} MATCHES Darwin)
88 set_target_properties(${MODULE} PROPERTIES LINK_FLAGS "-undefined dynamic_lookup")
89endif(${CMAKE_SYSTEM} MATCHES Darwin)
90
91# Installation
92install(TARGETS ${MODULE}
93 ARCHIVE DESTINATION lib
94 LIBRARY DESTINATION lib)
95
6af91854 96install(FILES ${HDRS} DESTINATION include)
97
98# Static version if DA enabled
99if(ALIROOT_STATIC)
100 add_library(${MODULE}-static STATIC $<TARGET_OBJECTS:PHOSrec-object>)
101 set_target_properties(${MODULE}-static PROPERTIES OUTPUT_NAME ${MODULE})
102
103 # list of shared dependencies / the name of the variable containing the list of static ones
104 generate_static_dependencies("${ALIROOT_DEPENDENCIES}" "STATIC_ALIROOT_DEPENDENCIES")
105 target_link_libraries(${MODULE}-static ${STATIC_ALIROOT_DEPENDENCIES} Root)
68aeb13b 106
107 # Public include folders that will be propagated to the dependecies
108 target_include_directories(${MODULE}-static PUBLIC ${incdirs})
109
6af91854 110 set_target_properties(${MODULE}-static PROPERTIES LINK_FLAGS "-Wl,--whole-archive")
111
112 # Installation
113 install(TARGETS ${MODULE}-static
114 ARCHIVE DESTINATION lib
115 LIBRARY DESTINATION lib)
116endif(ALIROOT_STATIC)