EMCAL/DCAL Trigger Mapping for Run 2
[u/mrichter/AliRoot.git] / CMakeLists.txt
CommitLineData
d50827fc 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#--------------------------------------------------------------------------#
17# Set Basic CMake Configuration #
18#--------------------------------------------------------------------------#
e969a926 19
139cbc46 20cmake_minimum_required(VERSION 2.8.11 FATAL_ERROR)
e969a926 21
d50827fc 22project(AliRoot CXX C)
bf4c2121 23
04484146 24message(STATUS "CMake platform: ${CMAKE_SYSTEM}")
25message(STATUS "Build folder: ${AliRoot_BINARY_DIR}")
26message(STATUS "Source folder: ${AliRoot_SOURCE_DIR}")
27message(STATUS "Installation folder: ${CMAKE_INSTALL_PREFIX}")
34ab4e08 28
29# You can change the build type using
30# cmake -DCMAKE_BUILD_TYPE=DEBUG | RELEASE | RELWITHDEBINFO | MINSIZEREL ...
31if (NOT CMAKE_BUILD_TYPE)
32 set(CMAKE_BUILD_TYPE RELWITHDEBINFO)
33endif(NOT CMAKE_BUILD_TYPE)
34message(STATUS "Build type: ${CMAKE_BUILD_TYPE}")
35
04484146 36
37if(CMAKE_INSTALL_PREFIX STREQUAL "${AliRoot_SOURCE_DIR}")
38 message(FATAL_ERROR "Please choose a different installation point than the source tree!")
39endif()
40
d50827fc 41# Path to additonal modules
c2f9135f 42set(CMAKE_MODULE_PATH "${AliRoot_SOURCE_DIR}/cmake")
43
44# AliRoot version extracted from Git repository
45# Sets 4 git variables
46# - GIT_REFSPEC - complete name of the current reference
47# - ALIROOT_BRANCH - name of the branch or tag extracted from the current reference
48# - GIT_SHA1 - current hash in the long format
49# - GIT_SHORT_SHA1 - current hash in the short format
50# - ALIROOT_VERSION = ALIROOT_BRANCH
51# - ALIROOT_REVISION = GIT_SHORT_SHA1
52include(CheckGitVersion)
b22a7396 53
54# - CLANG_MAJOR.CLANG_MINOR or
55# - GCC_MAJOR.GCC_MINOR.GCC_PATCH
56include(CheckCompiler)
57
34ab4e08 58# Shared library suffix
0e5d2ccd 59if (NOT CMAKE_SYSTEM_NAME STREQUAL Windows)
34ab4e08 60 set(CMAKE_SHARED_LIBRARY_SUFFIX .so)
0e5d2ccd 61endif (NOT CMAKE_SYSTEM_NAME STREQUAL Windows)
c4faffc2 62
b22a7396 63# ROOT dictionaries and maps
d50827fc 64include(CMakeALICE)
6db31708 65
f82bfa66 66# Checking first for DIM, DATE, AMORE and daqDA
67# in case ROOT Extra static library needs to be enabled
68
69# DATE
ec8c8ea6 70# date-config needs DIMDIR and ODIR set
f82bfa66 71if(DATE_CONFIG)
ec8c8ea6 72 if(DIMDIR AND ODIR)
73 find_package(DATE)
74 else()
75 message(FATAL_ERROR "DATE enabled but no DIMDIR and ODIR set. Please set DIMDIR and ODIR")
76 endif()
77endif()
f82bfa66 78
79# daqDA
80if(daqDA)
81 find_package(daqDA)
82endif(daqDA)
83
84# AMORE
85if(AMORE_CONFIG)
ec8c8ea6 86 if(ROOTSYS)
87 find_package(AMORE)
88 else()
89 message(FATAL_ERROR "AMORE enabled but no ROOTSYS defined")
90 endif()
f82bfa66 91endif(AMORE_CONFIG)
92
168930f9 93# id DARPM we enable DA if it is not set
94if(DARPM)
95 if(NOT DA)
96 set(DA ON)
97 endif(NOT DA)
98endif(DARPM)
99
f82bfa66 100# DA is enabled
101if(DA)
102 if(NOT DIMDIR AND NOT ODIR)
103 set(DA FALSE)
104 message(FATAL_ERROR "Das enabled but no DIMDIR and ODIR set. Please set DIMDIR to DIM installation and ODIR to platform (default linux)")
105 endif()
106
107 if(NOT DATE_FOUND)
108 set(DA FALSE)
109 message(FATAL_ERROR "DAs enabled but no DATE support found. Please point to your date installation using \"DATE_CONFIG\" variable")
110 endif()
111
112 if(NOT daqDA_FOUND)
113 set(DA FALSE)
114 message(FATAL_ERROR "DAs enabled but no daqDA support found. Please point to your daqDA installation using \"daqDA\" variable")
115 endif()
116
117 if(NOT AMORE_FOUND)
118 set(DA FALSE)
119 message(FATAL_ERROR "DAs enabled but no AMORE support found. Please point to your AMORE installation using \"AMORE_CONFIG\" variable")
120 endif()
121
122 # Enable static libraries
123 set(ALIROOT_STATIC TRUE)
124 message(STATUS "DAs enabled")
125endif(DA)
126
fae85bcc 127# MDC rpm creation enables the static build
128if(MDCRPM)
129 set(ALIROOT_STATIC TRUE)
130 message(STATUS "AliMDC RPM enabled. AliRoot static build enabled")
131endif(MDCRPM)
132
d50827fc 133# ROOT configuration mandatory
134if(ROOTSYS)
135 find_package(ROOT REQUIRED)
234c484d 136
137 # ROOT must be build with XML2 support
4d31eb1c 138 if(NOT ROOT_HASXML)
234c484d 139 message(FATAL_ERROR "ROOT was not build with xml2 support. Please reinstall or rebuild ROOT with xml2 support")
7d1be1d5 140 endif(NOT ROOT_HASXML)
d50827fc 141else()
142 message(FATAL_ERROR "ROOT installation not found!\nPlease point to the ROOT installation using -DROOTSYS=ROOT_INSTALL_DIR")
143endif(ROOTSYS)
6db31708 144
1dbe1076 145# If no Fortran, i.e on Windows
146# We need to specify ROOT fortran
147# (f95 comes before gfortran in default module)
148include(CheckLanguage)
149
150if(ROOT_FORTRAN)
151 message(STATUS "Using the Fortran compiler defined by ROOT configuration: ${ROOT_FORTRAN}")
152 set(CMAKE_Fortran_COMPILER ${ROOT_FORTRAN})
153else()
154 message(STATUS "Using default system Fortran compiler")
155endif(ROOT_FORTRAN)
156
157check_language(Fortran)
158if(CMAKE_Fortran_COMPILER)
159 enable_language(Fortran OPTIONAL)
160else()
f82bfa66 161 message(STATUS "No Fortran support. Disabling LHAPDF, PHYTIA6, MICROCERN, etc.")
1dbe1076 162endif()
163
a2a27b4c 164# Optional: Doxygen for reference doc generation
165find_package(Doxygen)
166if(DOXYGEN_FOUND AND DOXYGEN_DOT_FOUND)
167 message(STATUS "Doxygen ${DOXYGEN_VERSION} and Graphviz found: ${DOXYGEN_EXECUTABLE}, ${DOXYGEN_DOT_EXECUTABLE}")
168 set(CAN_GENERATE_DOC TRUE)
169else()
170 message(STATUS "Doxygen and Graphviz not found. Disabling support for documentation generation")
171endif(DOXYGEN_FOUND AND DOXYGEN_DOT_FOUND)
172
56966a5e 173# DATE
f82bfa66 174if(DATE_CONFIG)
175 find_package(DATE)
176endif(DATE_CONFIG)
177
178# daqDA
179if(daqDA)
180 find_package(daqDA)
181endif(daqDA)
182
183# DA is enabled
184if(DA)
185 if(NOT DATE_FOUND)
186 set(DA FALSE)
187 message(FATAL_ERROR "DAs enabled but no DATE support found. Please point to your date installation using \"DATE_CONFIG\"")
188 endif()
189
190 if(NOT daqDA_FOUND)
191 set(DA FALSE)
192 message(FATAL_ERROR "DAs enabled but no daqDA support found. Please point to your daqDA installation using \"daqDA\" variable")
193 endif()
194
195 # Enable static libraries
196 set(ALIROOT_STATIC TRUE)
197 message(STATUS "DAs enabled")
198endif(DA)
56966a5e 199
b5576c4e 200# FastJet
201find_package(FASTJET)
202
3c77e1ef 203# ZEROMQ
204find_package(ZeroMQ)
205
4d31eb1c 206# General flags -> Should be moved into a configuration file
207set(CMAKE_POSITION_INDEPENDENT_CODE TRUE)
139cbc46 208set(CMAKE_NO_SYSTEM_FROM_IMPORTED TRUE)
d50827fc 209
63697604 210# AliRoot base modules
17f9c1f8 211add_subdirectory(STEER)
17f9c1f8 212add_subdirectory(RAW)
63697604 213add_subdirectory(ANALYSIS)
214
215# Include Vc own cmake
216include(Vc/Vc.cmake)
217add_subdirectory(Vc)
218
9815baac 219# AliRoot common macros
220add_subdirectory(macros)
221
63697604 222# AliRoot modules
223add_subdirectory(ACORDE)
224add_subdirectory(AD)
225add_subdirectory(BCM)
226add_subdirectory(CORRFW)
227add_subdirectory(EMCAL)
9d62600c 228add_subdirectory(EPOS)
63697604 229add_subdirectory(EVE)
230add_subdirectory(EVGEN)
231add_subdirectory(FASTSIM)
232add_subdirectory(FIT)
233add_subdirectory(FMD)
234add_subdirectory(HLT)
235add_subdirectory(HMPID)
17f9c1f8 236add_subdirectory(ITS)
63697604 237add_subdirectory(JETAN)
80afaccc 238add_subdirectory(MFT)
63697604 239add_subdirectory(MONITOR)
240add_subdirectory(MUON)
241add_subdirectory(OADB)
242add_subdirectory(PHOS)
243add_subdirectory(PMD)
a31c2f7d 244add_subdirectory(PYTHIA8)
63697604 245add_subdirectory(STARLIGHT)
246add_subdirectory(STAT)
247add_subdirectory(STRUCT)
97e8d2a8 248add_subdirectory(T0)
72017ac8 249add_subdirectory(TDPMjet)
e706c082 250add_subdirectory(TEvtGen)
16765dcc 251add_subdirectory(THerwig)
97e8d2a8 252add_subdirectory(TOF)
63697604 253add_subdirectory(TPC)
97e8d2a8 254add_subdirectory(TRD)
25f88fb9 255add_subdirectory(TRIGGER)
63697604 256add_subdirectory(TTherminator)
257add_subdirectory(VZERO)
258add_subdirectory(ZDC)
a2a27b4c 259add_subdirectory(doxygen)
67018bf4 260
63697604 261# Fortran modules
1dbe1076 262if(CMAKE_Fortran_COMPILER)
c462af85 263 add_subdirectory(DIME)
264 add_subdirectory(DPMJET)
64609fcd 265 add_subdirectory(HERWIG)
63697604 266 add_subdirectory(HIJING)
116e4267 267 add_subdirectory(LHAPDF)
116e4267 268 add_subdirectory(MICROCERN)
63697604 269 add_subdirectory(PYTHIA6)
ba812042 270 add_subdirectory(TEPEMGEN)
27b08c46 271 add_subdirectory(THbtp)
a95d9137 272 add_subdirectory(THijing)
63697604 273 add_subdirectory(THydjet)
274 add_subdirectory(TPHIC)
275 add_subdirectory(TUHKMgen)
9b863d49 276 add_subdirectory(TAmpt)
1dbe1076 277endif(CMAKE_Fortran_COMPILER)
67018bf4 278
808c7763 279# PWG libraries
280add_subdirectory(PWG)
dd871bd4 281add_subdirectory(PWGCF)
7d9133a4 282# Depends on PWGCF - To fix dependencies
283add_subdirectory(PWGGA)
f1b16b21 284# Depends on CF - To fix the dependencies
dc36458f 285add_subdirectory(PWGDQ)
a39671d1 286add_subdirectory(PWGHF)
f1b16b21 287# Depends on CF
5c548d2a 288add_subdirectory(PWGJE)
4b2ba9c7 289add_subdirectory(PWGLF)
ea1e04c4 290add_subdirectory(PWGPP)
16a875b0 291add_subdirectory(PWGUD)
7c29eb0f 292add_subdirectory(data)
71f72706 293add_subdirectory(GRP)
807153f0 294add_subdirectory(OCDB)
295add_subdirectory(QAref)
808c7763 296
67018bf4 297# Enable SHUTTLE compilation
298# Check if DIMDIR and ODIR are set
299if(SHUTTLE)
101cc341 300 if(ROOT_HASALIEN STREQUAL "no")
301 message(FATAL_ERROR "Shuttle needs ROOT build with AliEn support. Please build ROOT with AliEn support. Do not forget to set ALIEN to your AliEn installation")
302 endif()
303
67018bf4 304 if(DIMDIR AND ODIR AND ALIEN)
305 add_subdirectory(SHUTTLE)
306 else()
307 message(FATAL_ERROR "SHUTTLE enabled! Please specify DIMDIR, ODIR and ALIEN")
308 endif()
309endif(SHUTTLE)
034aa4b3 310
34ab4e08 311add_subdirectory(ALIROOT)