]> git.uio.no Git - u/mrichter/AliRoot.git/blame - RAW/RAWDatarec/CMakeLists.txt
ACORDE and EMCAL DAs
[u/mrichter/AliRoot.git] / RAW / RAWDatarec / 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 RAWDatarec)
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}/RAW/dateStream
25 ${AliRoot_SOURCE_DIR}/RAW/RAWDatabase
26 ${AliRoot_SOURCE_DIR}/STEER/ESD
27 ${AliRoot_SOURCE_DIR}/STEER/STEERBase
0224bae4 28 )
29# Sources in alphabetical order
30set(SRCS
31 AliAltroRawStream.cxx
32 AliAltroRawStreamV3.cxx
33 AliCaloRawStream.cxx
34 AliCaloRawStreamV3.cxx
35 AliFilter.cxx
36 AliRawHLTManager.cxx
37 AliRawReaderChain.cxx
38 AliRawReader.cxx
39 AliRawReaderDate.cxx
40 AliRawReaderFile.cxx
41 AliRawReaderMemory.cxx
42 AliRawReaderRoot.cxx
43 AliVMERawStream.cxx
44 )
45
46# Headers from sources
47string(REPLACE ".cxx" ".h" HDRS "${SRCS}")
48
49# Generate the dictionary
50# It will create G_ARG1.cxx and G_ARG1.h / ARG1 = function first argument
51get_directory_property(incdirs INCLUDE_DIRECTORIES)
52generate_dictionary("${MODULE}" "${MODULE}LinkDef.h" "${HDRS}" "${incdirs}")
53
a0f34e87 54# Generate the ROOT map
55# Dependecies
27d54f3d 56set(LIBDEPS ESD RAWDatabase STEERBase Core Net RIO TreePlayer Tree)
a0f34e87 57generate_rootmap("${MODULE}" "${LIBDEPS}" "${CMAKE_CURRENT_SOURCE_DIR}/${MODULE}LinkDef.h")
58
f82bfa66 59# Create an object to be reused in case of static libraries
60# Otherwise the sources will be compiled twice
61add_library(RAWDatarec-object OBJECT ${SRCS} G__${MODULE}.cxx)
62# Add a library to the project using the object
63add_library(RAWDatarec SHARED $<TARGET_OBJECTS:RAWDatarec-object>)
64target_link_libraries(RAWDatarec ESD RAWDatabase STEERBase Core Net RIO TreePlayer Tree)
0224bae4 65
ca331a9c 66# Compile and link flags
67set(MODULE_COMPILE_FLAGS)
68set(MODULE_LINK_FLAGS)
69
70if(DATE_FOUND)
71 set(MODULE_COMPILE_FLAGS "${DATE_CFLAGS}")
72 set(MODULE_LINK_FLAGS "${DATE_LDFLAGS} ${DATE_LIBS}")
73endif(DATE_FOUND)
74
75# Additional compilation and linking flags
f82bfa66 76set(MODULE_COMPILE_FLAGS "-fPIC -O -g ${MODULE_COMPILE_FLAGS}")
0224bae4 77
78# System dependent: Modify the way the library is build
79if(${CMAKE_SYSTEM} MATCHES Darwin)
ca331a9c 80 set(MODULE_LINK_FLAGS "-undefined dynamic_lookup ${MODULE_LINK_FLAGS}")
0224bae4 81endif(${CMAKE_SYSTEM} MATCHES Darwin)
82
f82bfa66 83# Setting compile flags for the object
84set_target_properties(${MODULE}-object PROPERTIES COMPILE_FLAGS "${MODULE_COMPILE_FLAGS}")
85
86# Setting linking flags for the library
ca331a9c 87set_target_properties(${MODULE} PROPERTIES LINK_FLAGS "${MODULE_LINK_FLAGS}")
88
0224bae4 89# Installation
90install(TARGETS ${MODULE}
91 ARCHIVE DESTINATION lib
92 LIBRARY DESTINATION lib)
93
f82bfa66 94install(FILES ${HDRS} DESTINATION include)
95
96# Static version if DA enabled
97if(ALIROOT_STATIC)
98 add_library(${MODULE}-static STATIC $<TARGET_OBJECTS:RAWDatarec-object>)
99 target_link_libraries(${MODULE}-static STEERBase-static RAWDatabase-static ESD-static Root)
100
101 set_target_properties(${MODULE}-static PROPERTIES OUTPUT_NAME ${MODULE})
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)