VZERO DAs + Object target dependencies
[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
23include_directories(${ROOT_INCLUDE_DIRS}
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
79# Additional compilation flags
6af91854 80set_target_properties(${MODULE}-object PROPERTIES COMPILE_FLAGS "-O -g -fPIC")
97e8d2a8 81
82# System dependent: Modify the way the library is build
83if(${CMAKE_SYSTEM} MATCHES Darwin)
84 set_target_properties(${MODULE} PROPERTIES LINK_FLAGS "-undefined dynamic_lookup")
85endif(${CMAKE_SYSTEM} MATCHES Darwin)
86
87# Installation
88install(TARGETS ${MODULE}
89 ARCHIVE DESTINATION lib
90 LIBRARY DESTINATION lib)
91
6af91854 92install(FILES ${HDRS} DESTINATION include)
93
94# Static version if DA enabled
95if(ALIROOT_STATIC)
96 add_library(${MODULE}-static STATIC $<TARGET_OBJECTS:PHOSrec-object>)
97 set_target_properties(${MODULE}-static PROPERTIES OUTPUT_NAME ${MODULE})
98
99 # list of shared dependencies / the name of the variable containing the list of static ones
100 generate_static_dependencies("${ALIROOT_DEPENDENCIES}" "STATIC_ALIROOT_DEPENDENCIES")
101 target_link_libraries(${MODULE}-static ${STATIC_ALIROOT_DEPENDENCIES} Root)
102 set_target_properties(${MODULE}-static PROPERTIES LINK_FLAGS "-Wl,--whole-archive")
103
104 # Installation
105 install(TARGETS ${MODULE}-static
106 ARCHIVE DESTINATION lib
107 LIBRARY DESTINATION lib)
108endif(ALIROOT_STATIC)