]> git.uio.no Git - u/mrichter/AliRoot.git/blame - RAW/RAWDatabase/CMakeLists.txt
ZDC DAs
[u/mrichter/AliRoot.git] / RAW / RAWDatabase / CMakeLists.txt
CommitLineData
0224bae4 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 RAWDatabase)
18
19# Module include folder
427d561c 20include_directories(${AliRoot_SOURCE_DIR}/RAW/${MODULE})
0224bae4 21
22# Additional include folders in alphabetical order except ROOT
23include_directories(${ROOT_INCLUDE_DIRS}
427d561c 24 ${AliRoot_SOURCE_DIR}/STEER/ESD
25 ${AliRoot_SOURCE_DIR}/STEER/STEERBase
0224bae4 26 )
27
28# Sources in alphabetical order
29set(SRCS
30 AliAltroMapping.cxx
31 AliCaloAltroMapping.cxx
32 AliRawDataArray.cxx
33 AliRawDataArrayV2.cxx
34 AliRawData.cxx
35 AliRawEquipment.cxx
36 AliRawEquipmentHeader.cxx
37 AliRawEquipmentV2.cxx
38 AliRawEvent.cxx
39 AliRawEventHeaderBase.cxx
40 AliRawEventTag.cxx
41 AliRawEventV2.cxx
42 AliRawVEquipment.cxx
43 AliRawVEvent.cxx
44 AliStats.cxx
45 )
46
47# Headers from sources
48string(REPLACE ".cxx" ".h" HDRS "${SRCS}")
49
50# Extra headers in alphabetical order
ca331a9c 51set(HDRS ${HDRS}
52 AliRawDataHeader.h
53 AliRawDataHeaderV3.h
54 AliRawEventHeaderVersions.h
55 )
0224bae4 56
57# Generate the dictionary
58# It will create G_ARG1.cxx and G_ARG1.h / ARG1 = function first argument
59get_directory_property(incdirs INCLUDE_DIRECTORIES)
60generate_dictionary("${MODULE}" "${MODULE}LinkDef.h" "${HDRS}" "${incdirs}")
61
d1d7d34a 62set(ROOT_DEPENDENCIES Core Hist RIO)
63set(ALIROOT_DEPENDENCIES ESD STEERBase)
64
a0f34e87 65# Generate the ROOT map
66# Dependecies
d1d7d34a 67set(LIBDEPS ${ALIROOT_DEPENDENCIES} ${ROOT_DEPENDENCIES})
a0f34e87 68generate_rootmap("${MODULE}" "${LIBDEPS}" "${CMAKE_CURRENT_SOURCE_DIR}/${MODULE}LinkDef.h")
69
f82bfa66 70# Create an object to be reused in case of static libraries
71# Otherwise the sources will be compiled twice
d1d7d34a 72add_library(${MODULE}-object OBJECT ${SRCS} G__${MODULE}.cxx)
139cbc46 73# Follow headers dependencies
74add_dependencies(${MODULE}-object ${ALIROOT_DEPENDENCIES})
f82bfa66 75# Add a library to the project using the object
d1d7d34a 76add_library(${MODULE} SHARED $<TARGET_OBJECTS:RAWDatabase-object>)
77target_link_libraries(${MODULE} ${ALIROOT_DEPENDENCIES} ${ROOT_DEPENDENCIES})
78
79# Public include folders that will be propagated to the dependecies
80target_include_directories(${MODULE} PUBLIC ${incdirs})
0224bae4 81
ca331a9c 82set(MODULE_COMPILE_FLAGS)
83set(MODULE_LINK_FLAGS)
84
85if(DATE_FOUND)
86 set(MODULE_COMPILE_FLAGS "${DATE_CFLAGS}")
87 set(MODULE_LINK_FLAGS "${DATE_LDFLAGS} ${DATE_LIBS}")
88endif(DATE_FOUND)
89
90# Additional compilation and linking flags
d1d7d34a 91set(MODULE_COMPILE_FLAGS "-O -g ${MODULE_COMPILE_FLAGS}")
0224bae4 92
93# System dependent: Modify the way the library is build
94if(${CMAKE_SYSTEM} MATCHES Darwin)
ca331a9c 95 set(MODULE_LINK_FLAGS "-undefined dynamic_lookup ${MODULE_LINK_FLAGS}")
0224bae4 96endif(${CMAKE_SYSTEM} MATCHES Darwin)
97
f82bfa66 98# Setting compilation flags for the object
99set_target_properties(${MODULE}-object PROPERTIES COMPILE_FLAGS "${MODULE_COMPILE_FLAGS}")
100# Setting the linking flags for the library
ca331a9c 101set_target_properties(${MODULE} PROPERTIES LINK_FLAGS "${MODULE_LINK_FLAGS}")
102
0224bae4 103# Installation
104install(TARGETS ${MODULE}
105 ARCHIVE DESTINATION lib
106 LIBRARY DESTINATION lib)
107
f82bfa66 108install(FILES ${HDRS} DESTINATION include)
109
110# Static version if DA enabled
111if(ALIROOT_STATIC)
112 add_library(${MODULE}-static STATIC $<TARGET_OBJECTS:RAWDatabase-object>)
d1d7d34a 113
114 # list of shared dependencies / the name of the variable containing the list of static ones
115 generate_static_dependencies("${ALIROOT_DEPENDENCIES}" "STATIC_ALIROOT_DEPENDENCIES")
116 target_link_libraries(${MODULE}-static ${STATIC_ALIROOT_DEPENDENCIES} Root)
117
118 # Public include folders that will be propagated to the dependecies
119 target_include_directories(${MODULE}-static PUBLIC ${incdirs})
f82bfa66 120
121 set_target_properties(${MODULE}-static PROPERTIES OUTPUT_NAME ${MODULE})
122 set_target_properties(${MODULE}-static PROPERTIES LINK_FLAGS "-Wl,--whole-archive")
123
124 # Installation
125 install(TARGETS ${MODULE}-static
126 ARCHIVE DESTINATION lib
127 LIBRARY DESTINATION lib)
128endif(ALIROOT_STATIC)