Installation of additional header
[u/mrichter/AliRoot.git] / HLT / BASE / CMakeLists.txt
CommitLineData
8bb711ff 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
728a6467 16# HLTbase + subfolders (end of the cmake file)
f82bfa66 17# Subfolders have to be includes at the begining otherwise
b5a0ad8b 18# they will inherit properties from the parent
19add_subdirectory(HOMER)
7af7e653 20add_subdirectory(interface)
b5a0ad8b 21add_subdirectory(util)
728a6467 22
8bb711ff 23# Module
24set(MODULE HLTbase)
25
26# Module include folder
f0315837 27include_directories(${ROOT_INCLUDE_DIR}
28 ${AliRoot_SOURCE_DIR}/HLT/BASE
8bb711ff 29 )
30
31# Additional include folders in alphabetical order except ROOT
27d54f3d 32include_directories(
7a78a624 33 ${AliRoot_SOURCE_DIR}/HLT/BASE/HOMER
b5a0ad8b 34 ${AliRoot_SOURCE_DIR}/RAW/RAWDatabase
27d54f3d 35 ${AliRoot_SOURCE_DIR}/STEER/STEERBase
8bb711ff 36 )
37
0552c2fe 38option(USE_DLOPEN "Use \"dlopen()\" in favor of \"gSystem->Load()\" to load HLT component libraries." OFF)
39
40if(USE_DLOPEN)
41 add_definitions(-DHAVE_DLFCN_H)
42 message(STATUS "Using dlopen() for HLT component libs.")
43endif(USE_DLOPEN)
44
8bb711ff 45# Sources in alphabetical order
46set(SRCS
47 AliHLTBlockDataCollection.cxx
48 AliHLTCalibrationProcessor.cxx
49 AliHLT_C_Component_WrapperInterface.cxx
50 AliHLT_C_Component_WrapperInterface.cxx
51 AliHLTComponentBenchmark.cxx
52 AliHLTComponentConfiguration.cxx
53 AliHLTComponent.cxx
54 AliHLTComponentHandler.cxx
55 AliHLTConfiguration.cxx
56 AliHLTConfigurationHandler.cxx
57 AliHLTConsumerDescriptor.cxx
58 AliHLTControlTask.cxx
59 AliHLTCTPData.cxx
60 AliHLTDAQ.cxx
61 AliHLTDataBuffer.cxx
62 AliHLTDataDeflater.cxx
63 AliHLTDataDeflaterHuffman.cxx
64 AliHLTDataDeflaterSimple.cxx
65 AliHLTDataInflater.cxx
66 AliHLTDataInflaterHuffman.cxx
67 AliHLTDataInflaterSimple.cxx
68 AliHLTDataSink.cxx
69 AliHLTDataSource.cxx
70 AliHLTDataTypes.cxx
71 AliHLTDataTypes.cxx
72 AliHLTDimServer.cxx
73 AliHLTDomainEntry.cxx
74 AliHLTDumpTask.cxx
75 AliHLTErrorGuard.cxx
76 AliHLTEsdManager.cxx
77 AliHLTEventStatistics.cxx
78 AliHLTGlobalTriggerDecision.cxx
79 AliHLTHOMERBlockDesc.cxx
80 AliHLTHOMERLibManager.cxx
81 AliHLTHOMERManager.cxx
82 AliHLTHOMERProxyHandler.cxx
83 AliHLTHOMERSourceDesc.cxx
84 AliHLTHuffman.cxx
85 AliHLTLogging.cxx
86 AliHLTMemoryFile.cxx
87 AliHLTMessage.cxx
88 AliHLTMisc.cxx
89 AliHLTModuleAgent.cxx
90 AliHLTModulePreprocessor.cxx
91 AliHLTOfflineDataSource.cxx
92 AliHLTOfflineInterface.cxx
93 AliHLTOnlineConfiguration.cxx
94 AliHLTOUT.cxx
27d54f3d 95 AliHLTOUTComponent.cxx
8bb711ff 96 AliHLTOUTHandlerChain.cxx
97 AliHLTOUTHandlerDetectorDDL.cxx
98 AliHLTOUTHandlerEquId.cxx
99 AliHLTOUTHandlerEsdBranch.cxx
100 AliHLTOUTHandler.cxx
101 AliHLTOUTHandlerIgnore.cxx
102 AliHLTOUTHomerBuffer.cxx
103 AliHLTOUTTask.cxx
104 AliHLTPluginBase.cxx
105 AliHLTProcessor.cxx
106 AliHLTReadoutList.cxx
107 AliHLTReconstructorBase.cxx
108 AliHLTRunStatistics.cxx
109 AliHLTScalars.cxx
110 AliHLTShuttleInterface.cxx
111 AliHLTSpacePointContainer.cxx
8bb711ff 112 AliHLTSystem.cxx
113 AliHLTTask.cxx
114 AliHLTTrackGeometry.cxx
115 AliHLTTriggerDecision.cxx
116 AliHLTTriggerDomain.cxx
117 AliHLTTriggerMenu.cxx
118 AliHLTTriggerMenuItem.cxx
119 AliHLTTriggerMenuSymbol.cxx
120 AliHLTTTreeProcessor.cxx
121 )
122
123# Headers from sources
124string(REPLACE ".cxx" ".h" HDRS "${SRCS}")
125set(HDRS ${HDRS}
126 AliHLTCommonCDBEntries.h
127 AliHLTDefinitions.h
128 AliHLTExternalTrackParam.h
129 AliHLTLoggingVariadicFree.h
130 AliHLTStdIncludes.h
131 )
132
133# Generate the dictionary
134# It will create G_ARG1.cxx and G_ARG1.h / ARG1 = function first argument
135get_directory_property(incdirs INCLUDE_DIRECTORIES)
136generate_dictionary("${MODULE}" "${MODULE}LinkDef.h" "${HDRS}" "${incdirs}")
137
7a78a624 138set(ROOT_DEPENDENCIES Core Geom Graf Hist MathCore Net RIO Tree XMLParser)
139set(ALIROOT_DEPENDENCIES STEERBase RAWDatabase AliHLTHOMER)
8bb711ff 140# Generate the ROOT map
141# Dependecies
7a78a624 142set(LIBDEPS ${ALIROOT_DEPENDENCIES} ${ROOT_DEPENDENCIES})
8bb711ff 143generate_rootmap("${MODULE}" "${LIBDEPS}" "${CMAKE_CURRENT_SOURCE_DIR}/${MODULE}LinkDef.h")
144
f82bfa66 145# Create an object to be reused in case of static libraries
146# Otherwise the sources will be compiled twice
7a78a624 147add_library(${MODULE}-object OBJECT ${SRCS} G__${MODULE}.cxx)
139cbc46 148# Follow headers dependencies
149add_dependencies(${MODULE}-object ${ALIROOT_DEPENDENCIES})
f82bfa66 150# Add a library to the project using the object
7a78a624 151add_library(${MODULE} SHARED $<TARGET_OBJECTS:HLTbase-object>)
152target_link_libraries(${MODULE} ${ALIROOT_DEPENDENCIES} ${ROOT_DEPENDENCIES})
8bb711ff 153
154# Additional compilation flags
68aeb13b 155set_target_properties(${MODULE}-object PROPERTIES COMPILE_FLAGS " ")
8bb711ff 156
157# System dependent: Modify the way the library is build
158if(${CMAKE_SYSTEM} MATCHES Darwin)
159 set_target_properties(${MODULE} PROPERTIES LINK_FLAGS "-undefined dynamic_lookup")
160endif(${CMAKE_SYSTEM} MATCHES Darwin)
161
162# Installation
163install(TARGETS ${MODULE}
164 ARCHIVE DESTINATION lib
165 LIBRARY DESTINATION lib)
166
3a76c635 167install(FILES ${HDRS} AliHLTIndexGrid.h DESTINATION include)
f82bfa66 168
169# Static version if DA enabled
170if(ALIROOT_STATIC)
171 add_library(${MODULE}-static STATIC $<TARGET_OBJECTS:HLTbase-object>)
172 set_target_properties(${MODULE}-static PROPERTIES OUTPUT_NAME ${MODULE})
139cbc46 173 target_link_libraries(${MODULE}-static STEERBase-static RAWDatabase-static AliHLTHOMER-static Root RootExtra)
f82bfa66 174 set_target_properties(${MODULE}-static PROPERTIES LINK_FLAGS "-Wl,--whole-archive")
175
176 # Installation
177 install(TARGETS ${MODULE}-static
178 ARCHIVE DESTINATION lib
179 LIBRARY DESTINATION lib)
180endif(ALIROOT_STATIC)