MUON DAs
[u/mrichter/AliRoot.git] / MUON / MUONshuttle / CMakeLists.txt
CommitLineData
b22a7396 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 MUONshuttle)
18
19# Module include folder
427d561c 20include_directories(${AliRoot_SOURCE_DIR}/MUON/${MODULE})
b22a7396 21
22# Additional include folders in alphabetical order except ROOT
23include_directories(${ROOT_INCLUDE_DIRS}
df9719ef 24 ${AliRoot_SOURCE_DIR}/MUON/MUONbase
427d561c 25 ${AliRoot_SOURCE_DIR}/MUON/MUONcalib
26 ${AliRoot_SOURCE_DIR}/MUON/MUONcore
27 ${AliRoot_SOURCE_DIR}/MUON/MUONgeometry
28 ${AliRoot_SOURCE_DIR}/MUON/MUONmapping
29 ${AliRoot_SOURCE_DIR}/STEER/CDB
30 ${AliRoot_SOURCE_DIR}/STEER/STEER
31 ${AliRoot_SOURCE_DIR}/STEER/STEERBase
b22a7396 32 )
33
34# Sources in alphabetical order
35set(SRCS
df9719ef 36 AliMUONGainSubprocessor.cxx
b22a7396 37 AliMUONGMSSubprocessor.cxx
38 AliMUONHVSubprocessor.cxx
39 AliMUONOccupancySubprocessor.cxx
40 AliMUONPedestalSubprocessor.cxx
41 AliMUONPreprocessor.cxx
42 AliMUONTrackerPreprocessor.cxx
43 AliMUONTriggerDCSSubprocessor.cxx
44 AliMUONTriggerPreprocessor.cxx
45 AliMUONTriggerSubprocessor.cxx
46 AliMUONVSubprocessor.cxx
47 )
48
49# Headers from sources
50string(REPLACE ".cxx" ".h" HDRS "${SRCS}")
51
52# Generate the dictionary
53# It will create G_ARG1.cxx and G_ARG1.h / ARG1 = function first argument
54get_directory_property(incdirs INCLUDE_DIRECTORIES)
55generate_dictionary("${MODULE}" "${MODULE}LinkDef.h" "${HDRS}" "${incdirs}")
56
c55bd1a6 57# Dependencies
58set(ROOT_DEPENDENCIES Core Geom RIO)
59set(ALIROOT_DEPENDENCIES STEERBase STEER CDB MUONcore MUONgeometry MUONcalib MUONmapping)
60
b22a7396 61# Generate the ROOT map
62# Dependecies
c55bd1a6 63set(LIBDEPS ${ALIROOT_DEPENDENCIES} ${ROOT_DEPENDENCIES})
b22a7396 64generate_rootmap("${MODULE}" "${LIBDEPS}" "${CMAKE_CURRENT_SOURCE_DIR}/${MODULE}LinkDef.h")
65
c55bd1a6 66# Create an object to be reused in case of static libraries
67# Otherwise the sources will be compiled twice
68add_library(${MODULE}-object OBJECT ${SRCS} G__${MODULE}.cxx)
69# Add a library to the project using the object
70add_library(${MODULE} SHARED $<TARGET_OBJECTS:MUONshuttle-object>)
b22a7396 71
c55bd1a6 72# linking
73target_link_libraries(${MODULE} ${ALIROOT_DEPENDENCIES} ${ROOT_DEPENDENCIES})
b22a7396 74
75# Additional compilation flags
c55bd1a6 76set_target_properties(${MODULE}-object PROPERTIES COMPILE_FLAGS "-O -g -fPIC")
b22a7396 77
78# System dependent: Modify the way the library is build
79if(${CMAKE_SYSTEM} MATCHES Darwin)
80 set_target_properties(${MODULE} PROPERTIES LINK_FLAGS "-undefined dynamic_lookup")
81endif(${CMAKE_SYSTEM} MATCHES Darwin)
82
83# Installation
84install(TARGETS ${MODULE}
85 ARCHIVE DESTINATION lib
86 LIBRARY DESTINATION lib)
87
c55bd1a6 88install(FILES ${HDRS} DESTINATION include)
89
90# Static version if DA enabled
91if(ALIROOT_STATIC)
92 add_library(${MODULE}-static STATIC $<TARGET_OBJECTS:MUONshuttle-object>)
93 set_target_properties(${MODULE}-static PROPERTIES OUTPUT_NAME ${MODULE})
94
95 # list of shared dependencies / the name of the variable containing the list of static ones
96 generate_static_dependencies("${ALIROOT_DEPENDENCIES}" "STATIC_ALIROOT_DEPENDENCIES")
97 target_link_libraries(${MODULE}-static ${STATIC_ALIROOT_DEPENDENCIES} Root)
98 set_target_properties(${MODULE}-static PROPERTIES LINK_FLAGS "-Wl,--whole-archive")
99
100 # Installation
101 install(TARGETS ${MODULE}-static
102 ARCHIVE DESTINATION lib
103 LIBRARY DESTINATION lib)
104endif(ALIROOT_STATIC)