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 # **************************************************************************
17 set(MODULE MUONmapping)
19 # Module include folder
20 include_directories(${AliRoot_SOURCE_DIR}/MUON/${MODULE})
22 # Additional include folders in alphabetical order except ROOT
23 include_directories(${ROOT_INCLUDE_DIRS}
24 ${AliRoot_SOURCE_DIR}/MUON/MUONcore
25 ${AliRoot_SOURCE_DIR}/STEER/CDB
26 ${AliRoot_SOURCE_DIR}/STEER/STEERBase
29 # Sources in alphabetical order
38 AliMpDataProcessor.cxx
48 AliMpFastSegmentation.cxx
50 AliMpFrtCrocusConstants.cxx
59 AliMpMotifPosition.cxx
60 AliMpMotifPositionPadIterator.cxx
64 AliMpMotifTypePadIterator.cxx
67 AliMpPadRowLSegment.cxx
68 AliMpPadRowRSegment.cxx
71 AliMpPCBPadIterator.cxx
73 AliMpRegionalTrigger.cxx
76 AliMpRowSegmentLSpecial.cxx
77 AliMpRowSegmentRSpecial.cxx
78 AliMpSectorAreaHPadIterator.cxx
79 AliMpSectorAreaVPadIterator.cxx
81 AliMpSectorPadIterator.cxx
83 AliMpSectorSegmentation.cxx
87 AliMpSlatPadIterator.cxx
88 AliMpSlatSegmentation.cxx
90 AliMpStation12Type.cxx
95 AliMpTriggerReader.cxx
96 AliMpTriggerSegmentation.cxx
100 AliMpVPadIterator.cxx
101 AliMpVPadRowSegment.cxx
103 AliMpVRowSegmentSpecial.cxx
104 AliMpVSegmentation.cxx
108 # Headers from sources
109 string(REPLACE ".cxx" ".h" HDRS "${SRCS}")
111 # Generate the dictionary
112 # It will create G_ARG1.cxx and G_ARG1.h / ARG1 = function first argument
113 get_directory_property(incdirs INCLUDE_DIRECTORIES)
114 generate_dictionary("${MODULE}" "${MODULE}LinkDef.h" "${HDRS}" "${incdirs}")
118 set(ROOT_DEPENDENCIES Core Physics RIO)
119 set(ALIROOT_DEPENDENCIES STEERBase CDB MUONcore)
121 # Generate the ROOT map
123 set(LIBDEPS ${ALIROOT_DEPENDENCIES} ${ROOT_DEPENDENCIES})
124 generate_rootmap("${MODULE}" "${LIBDEPS}" "${CMAKE_CURRENT_SOURCE_DIR}/${MODULE}LinkDef.h")
126 # Create an object to be reused in case of static libraries
127 # Otherwise the sources will be compiled twice
128 add_library(${MODULE}-object OBJECT ${SRCS} G__${MODULE}.cxx)
129 # Follow headers dependencies
130 add_dependencies(${MODULE}-object ${ALIROOT_DEPENDENCIES})
131 # Add a library to the project using the object
132 add_library(${MODULE} SHARED $<TARGET_OBJECTS:MUONmapping-object>)
135 target_link_libraries(${MODULE} ${ALIROOT_DEPENDENCIES} ${ROOT_DEPENDENCIES})
137 # Additional compilation flags
138 set_target_properties(${MODULE}-object PROPERTIES COMPILE_FLAGS "-O -g -fPIC")
140 # System dependent: Modify the way the library is build
141 if(${CMAKE_SYSTEM} MATCHES Darwin)
142 set_target_properties(${MODULE} PROPERTIES LINK_FLAGS "-undefined dynamic_lookup")
143 endif(${CMAKE_SYSTEM} MATCHES Darwin)
146 install(TARGETS ${MODULE}
147 ARCHIVE DESTINATION lib
148 LIBRARY DESTINATION lib)
150 install(FILES ${HDRS} DESTINATION include)
152 # Static version if DA enabled
154 add_library(${MODULE}-static STATIC $<TARGET_OBJECTS:MUONmapping-object>)
155 set_target_properties(${MODULE}-static PROPERTIES OUTPUT_NAME ${MODULE})
157 # list of shared dependencies / the name of the variable containing the list of static ones
158 generate_static_dependencies("${ALIROOT_DEPENDENCIES}" "STATIC_ALIROOT_DEPENDENCIES")
159 target_link_libraries(${MODULE}-static ${STATIC_ALIROOT_DEPENDENCIES} Root)
160 set_target_properties(${MODULE}-static PROPERTIES LINK_FLAGS "-Wl,--whole-archive")
163 install(TARGETS ${MODULE}-static
164 ARCHIVE DESTINATION lib
165 LIBRARY DESTINATION lib)
166 endif(ALIROOT_STATIC)