Fixes for object target dependencies
[u/mrichter/AliRoot.git] / HLT / MUON / CMakeLists.txt
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
17 set(MODULE AliHLTMUON)
18
19 # Module include folder
20 include_directories(${AliRoot_SOURCE_DIR}/HLT/MUON
21                     ${AliRoot_SOURCE_DIR}/HLT/MUON/OnlineAnalysis
22                     ${AliRoot_SOURCE_DIR}/HLT/MUON/utils
23                    )
24
25 # Additional include folders in alphabetical order except ROOT
26 include_directories(${ROOT_INCLUDE_DIRS}
27                     ${AliRoot_SOURCE_DIR}/HLT/BASE
28                     ${AliRoot_SOURCE_DIR}/MUON/MUONbase
29                     ${AliRoot_SOURCE_DIR}/MUON/MUONcalib
30                     ${AliRoot_SOURCE_DIR}/MUON/MUONcore
31                     ${AliRoot_SOURCE_DIR}/MUON//MUONevaluation
32                     ${AliRoot_SOURCE_DIR}/MUON//MUONgeometry
33                     ${AliRoot_SOURCE_DIR}/MUON/MUONmapping
34                     ${AliRoot_SOURCE_DIR}/MUON/MUONraw
35                     ${AliRoot_SOURCE_DIR}/MUON/MUONrec
36                     ${AliRoot_SOURCE_DIR}/MUON/MUONsim
37                     ${AliRoot_SOURCE_DIR}/MUON/MUONtrigger
38                     ${AliRoot_SOURCE_DIR}/RAW/RAWDatabase
39                     ${AliRoot_SOURCE_DIR}/RAW/RAWDatarec
40                     ${AliRoot_SOURCE_DIR}/RAW/RAWDatasim
41                     ${AliRoot_SOURCE_DIR}/STEER/CDB
42                     ${AliRoot_SOURCE_DIR}/STEER/ESD
43                     ${AliRoot_SOURCE_DIR}/STEER/STEER
44                     ${AliRoot_SOURCE_DIR}/STEER/STEERBase
45                    )
46
47 # Sources in alphabetical order
48 set(SRCS
49     AliHLTMUONChannelsBlockStruct.cxx
50     AliHLTMUONClustersBlockStruct.cxx
51     AliHLTMUONConstants.cxx
52     AliHLTMUONDecision.cxx
53     AliHLTMUONEvent.cxx
54     AliHLTMUONMansoCandidatesBlockStruct.cxx
55     AliHLTMUONMansoTrack.cxx
56     AliHLTMUONMansoTracksBlockStruct.cxx
57     AliHLTMUONPairsDecisionBlockStruct.cxx
58     AliHLTMUONProcessor.cxx
59     AliHLTMUONRecHit.cxx
60     AliHLTMUONRecHitsBlockStruct.cxx
61     AliHLTMUONSinglesDecisionBlockStruct.cxx
62     AliHLTMUONTrack.cxx
63     AliHLTMUONTracksBlockStruct.cxx
64     AliHLTMUONTriggerRecord.cxx
65     AliHLTMUONTriggerRecordsBlockStruct.cxx
66     AliHLTMUONTrigRecsDebugBlockStruct.cxx
67     AliHLTMUONUtils.cxx
68     OfflineInterface/AliHLTMUONAgent.cxx
69     OfflineInterface/AliHLTMUONDigitPublisherComponent.cxx
70     OfflineInterface/AliHLTMUONESDMaker.cxx
71     OfflineInterface/AliHLTMUONRecHitsSource.cxx
72     OfflineInterface/AliHLTMUONRootifierComponent.cxx
73     OfflineInterface/AliHLTMUONTriggerRecordsSource.cxx
74     OnlineAnalysis/AliHLTMUONCalculations.cxx
75     OnlineAnalysis/AliHLTMUONClusterFinderComponent.cxx
76     OnlineAnalysis/AliHLTMUONDecisionComponent.cxx
77     OnlineAnalysis/AliHLTMUONFullTrackerComponent.cxx
78     OnlineAnalysis/AliHLTMUONFullTracker.cxx
79     OnlineAnalysis/AliHLTMUONHitReconstructorComponent.cxx
80     OnlineAnalysis/AliHLTMUONHitReconstructor.cxx
81     OnlineAnalysis/AliHLTMUONMansoTrackerFSMComponent.cxx
82     OnlineAnalysis/AliHLTMUONMansoTrackerFSM.cxx
83     OnlineAnalysis/AliHLTMUONTriggerReconstructorComponent.cxx
84     OnlineAnalysis/AliHLTMUONTriggerReconstructor.cxx
85     utils/AliHLTMUONClusterHistoComponent.cxx
86     utils/AliHLTMUONDataCheckerComponent.cxx
87     utils/AliHLTMUONEmptyEventFilterComponent.cxx
88     utils/AliHLTMUONRawDataHistoComponent.cxx
89    )
90
91 # Headers from sources
92 string(REPLACE ".cxx" ".h" HDRS "${SRCS}")
93 set(HDRS ${HDRS}
94     AliHLTMUONDataBlockReader.h
95     AliHLTMUONDataBlockWriter.h
96     AliHLTMUONDataTypes.h
97     AliHLTMUONList.h
98     AliHLTMUONCountedList.h
99     OnlineAnalysis/AliHLTMUONMansoTrackerFSMCallback.h
100   )
101
102 # Generate the dictionary
103 # It will create G_ARG1.cxx and G_ARG1.h / ARG1 = function first argument
104 get_directory_property(incdirs INCLUDE_DIRECTORIES)
105 generate_dictionary("${MODULE}" "${MODULE}LinkDef.h" "${HDRS}" "${incdirs}")
106
107 # Generate the ROOT map
108 # Dependecies
109 set(LIBDEPS STEERBase STEER CDB ESD RAWDatabase RAWDatarec RAWDatasim HLTbase MUONraw MUONcore MUONcalib MUONmapping MUONsim MUONevaluation MUONtrigger MUONgeometry MUONrec)
110 generate_rootmap("${MODULE}" "${LIBDEPS}" "${CMAKE_CURRENT_SOURCE_DIR}/${MODULE}LinkDef.h")
111
112 # Add a library to the project using the specified source files
113 add_library(${MODULE} SHARED ${SRCS} G__${MODULE}.cxx)
114 target_link_libraries(${MODULE} STEERBase STEER CDB ESD RAWDatabase RAWDatarec RAWDatasim HLTbase MUONraw MUONcore MUONcalib MUONmapping MUONsim MUONevaluation MUONtrigger MUONgeometry MUONrec)
115
116 # Additional compilation flags
117 set_target_properties(${MODULE} PROPERTIES COMPILE_FLAGS "")
118
119 # System dependent: Modify the way the library is build
120 if(${CMAKE_SYSTEM} MATCHES Darwin)
121     set_target_properties(${MODULE} PROPERTIES LINK_FLAGS "-undefined dynamic_lookup")
122 endif(${CMAKE_SYSTEM} MATCHES Darwin)
123
124 # Installation
125 install(TARGETS ${MODULE}
126         ARCHIVE DESTINATION lib
127         LIBRARY DESTINATION lib)
128
129 install(FILES ${HDRS} DESTINATION include)
130
131 # Compilation of some executables
132 add_subdirectory(utils)
133