1 # **************************************************************************
2 # * Copyright(c) 1998-2014, ALICE Experiment at CERN, All rights reserved. *
4 # * Author: The ALICE Off-line Project. *
5 # * Contributors are mentioned in the code where appropriate. *
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 # **************************************************************************
16 # HLTbase + subfolders (end of the cmake file)
17 # Subfolders have to be includes at the begining otherwise
18 # they will inherit properties from the parent
19 add_subdirectory(HOMER)
20 add_subdirectory(interface)
21 add_subdirectory(util)
26 # Module include folder
27 include_directories(${AliRoot_SOURCE_DIR}/HLT/BASE
30 # Additional include folders in alphabetical order except ROOT
32 ${AliRoot_SOURCE_DIR}/HLT/BASE/HOMER
33 ${AliRoot_SOURCE_DIR}/RAW/RAWDatabase
34 ${AliRoot_SOURCE_DIR}/STEER/STEERBase
37 # Sources in alphabetical order
39 AliHLTBlockDataCollection.cxx
40 AliHLTCalibrationProcessor.cxx
41 AliHLT_C_Component_WrapperInterface.cxx
42 AliHLT_C_Component_WrapperInterface.cxx
43 AliHLTComponentBenchmark.cxx
44 AliHLTComponentConfiguration.cxx
46 AliHLTComponentHandler.cxx
47 AliHLTConfiguration.cxx
48 AliHLTConfigurationHandler.cxx
49 AliHLTConsumerDescriptor.cxx
54 AliHLTDataDeflater.cxx
55 AliHLTDataDeflaterHuffman.cxx
56 AliHLTDataDeflaterSimple.cxx
57 AliHLTDataInflater.cxx
58 AliHLTDataInflaterHuffman.cxx
59 AliHLTDataInflaterSimple.cxx
69 AliHLTEventStatistics.cxx
70 AliHLTGlobalTriggerDecision.cxx
71 AliHLTHOMERBlockDesc.cxx
72 AliHLTHOMERLibManager.cxx
73 AliHLTHOMERManager.cxx
74 AliHLTHOMERProxyHandler.cxx
75 AliHLTHOMERSourceDesc.cxx
82 AliHLTModulePreprocessor.cxx
83 AliHLTOfflineDataSource.cxx
84 AliHLTOfflineInterface.cxx
85 AliHLTOnlineConfiguration.cxx
87 AliHLTOUTComponent.cxx
88 AliHLTOUTHandlerChain.cxx
89 AliHLTOUTHandlerDetectorDDL.cxx
90 AliHLTOUTHandlerEquId.cxx
91 AliHLTOUTHandlerEsdBranch.cxx
93 AliHLTOUTHandlerIgnore.cxx
94 AliHLTOUTHomerBuffer.cxx
99 AliHLTReconstructorBase.cxx
100 AliHLTRunStatistics.cxx
102 AliHLTShuttleInterface.cxx
103 AliHLTSpacePointContainer.cxx
106 AliHLTTrackGeometry.cxx
107 AliHLTTriggerDecision.cxx
108 AliHLTTriggerDomain.cxx
109 AliHLTTriggerMenu.cxx
110 AliHLTTriggerMenuItem.cxx
111 AliHLTTriggerMenuSymbol.cxx
112 AliHLTTTreeProcessor.cxx
115 # Headers from sources
116 string(REPLACE ".cxx" ".h" HDRS "${SRCS}")
118 AliHLTCommonCDBEntries.h
120 AliHLTExternalTrackParam.h
121 AliHLTLoggingVariadicFree.h
125 # Generate the dictionary
126 # It will create G_ARG1.cxx and G_ARG1.h / ARG1 = function first argument
127 get_directory_property(incdirs INCLUDE_DIRECTORIES)
128 generate_dictionary("${MODULE}" "${MODULE}LinkDef.h" "${HDRS}" "${incdirs}")
130 set(ROOT_DEPENDENCIES Core Geom Graf Hist MathCore Net RIO Tree XMLParser)
131 set(ALIROOT_DEPENDENCIES STEERBase RAWDatabase AliHLTHOMER)
132 # Generate the ROOT map
134 set(LIBDEPS ${ALIROOT_DEPENDENCIES} ${ROOT_DEPENDENCIES})
135 generate_rootmap("${MODULE}" "${LIBDEPS}" "${CMAKE_CURRENT_SOURCE_DIR}/${MODULE}LinkDef.h")
137 # Create an object to be reused in case of static libraries
138 # Otherwise the sources will be compiled twice
139 add_library(${MODULE}-object OBJECT ${SRCS} G__${MODULE}.cxx)
140 # Follow headers dependencies
141 add_dependencies(${MODULE}-object ${ALIROOT_DEPENDENCIES})
142 # Add a library to the project using the object
143 add_library(${MODULE} SHARED $<TARGET_OBJECTS:HLTbase-object>)
144 target_link_libraries(${MODULE} ${ALIROOT_DEPENDENCIES} ${ROOT_DEPENDENCIES})
146 # Additional compilation flags
147 set_target_properties(${MODULE}-object PROPERTIES COMPILE_FLAGS " ")
149 # System dependent: Modify the way the library is build
150 if(${CMAKE_SYSTEM} MATCHES Darwin)
151 set_target_properties(${MODULE} PROPERTIES LINK_FLAGS "-undefined dynamic_lookup")
152 endif(${CMAKE_SYSTEM} MATCHES Darwin)
155 install(TARGETS ${MODULE}
156 ARCHIVE DESTINATION lib
157 LIBRARY DESTINATION lib)
159 install(FILES ${HDRS} DESTINATION include)
161 # Static version if DA enabled
163 add_library(${MODULE}-static STATIC $<TARGET_OBJECTS:HLTbase-object>)
164 set_target_properties(${MODULE}-static PROPERTIES OUTPUT_NAME ${MODULE})
165 target_link_libraries(${MODULE}-static STEERBase-static RAWDatabase-static AliHLTHOMER-static Root RootExtra)
166 set_target_properties(${MODULE}-static PROPERTIES LINK_FLAGS "-Wl,--whole-archive")
169 install(TARGETS ${MODULE}-static
170 ARCHIVE DESTINATION lib
171 LIBRARY DESTINATION lib)
172 endif(ALIROOT_STATIC)