]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - CMakeLists.txt
Add class with PHOS trigger utils
[u/mrichter/AliRoot.git] / CMakeLists.txt
... / ...
CommitLineData
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#--------------------------------------------------------------------------#
19
20cmake_minimum_required(VERSION 2.8.11 FATAL_ERROR)
21
22project(AliRoot CXX C)
23
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}")
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
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
41# Path to additonal modules
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)
53
54# - CLANG_MAJOR.CLANG_MINOR or
55# - GCC_MAJOR.GCC_MINOR.GCC_PATCH
56include(CheckCompiler)
57
58# Shared library suffix
59if (NOT CMAKE_SYSTEM_NAME STREQUAL Windows)
60 set(CMAKE_SHARED_LIBRARY_SUFFIX .so)
61endif (NOT CMAKE_SYSTEM_NAME STREQUAL Windows)
62
63# ROOT dictionaries and maps
64include(CMakeALICE)
65
66# Checking first for DIM, DATE, AMORE and daqDA
67# in case ROOT Extra static library needs to be enabled
68
69# DATE
70# date-config needs DIMDIR and ODIR set
71if(DATE_CONFIG)
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()
78
79# daqDA
80if(daqDA)
81 find_package(daqDA)
82endif(daqDA)
83
84# AMORE
85if(AMORE_CONFIG)
86 if(ROOTSYS)
87 find_package(AMORE)
88 else()
89 message(FATAL_ERROR "AMORE enabled but no ROOTSYS defined")
90 endif()
91endif(AMORE_CONFIG)
92
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
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
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
133# ROOT configuration mandatory
134if(ROOTSYS)
135 find_package(ROOT REQUIRED)
136
137 # ROOT must be build with XML2 support
138 if(NOT ROOT_HASXML)
139 message(FATAL_ERROR "ROOT was not build with xml2 support. Please reinstall or rebuild ROOT with xml2 support")
140 endif(NOT ROOT_HASXML)
141else()
142 message(FATAL_ERROR "ROOT installation not found!\nPlease point to the ROOT installation using -DROOTSYS=ROOT_INSTALL_DIR")
143endif(ROOTSYS)
144
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()
161 message(STATUS "No Fortran support. Disabling LHAPDF, PHYTIA6, MICROCERN, etc.")
162endif()
163
164# DATE
165if(DATE_CONFIG)
166 find_package(DATE)
167endif(DATE_CONFIG)
168
169# daqDA
170if(daqDA)
171 find_package(daqDA)
172endif(daqDA)
173
174# DA is enabled
175if(DA)
176 if(NOT DATE_FOUND)
177 set(DA FALSE)
178 message(FATAL_ERROR "DAs enabled but no DATE support found. Please point to your date installation using \"DATE_CONFIG\"")
179 endif()
180
181 if(NOT daqDA_FOUND)
182 set(DA FALSE)
183 message(FATAL_ERROR "DAs enabled but no daqDA support found. Please point to your daqDA installation using \"daqDA\" variable")
184 endif()
185
186 # Enable static libraries
187 set(ALIROOT_STATIC TRUE)
188 message(STATUS "DAs enabled")
189endif(DA)
190
191# FastJet
192find_package(FASTJET)
193
194# ZEROMQ
195find_package(ZeroMQ)
196
197# General flags -> Should be moved into a configuration file
198set(CMAKE_POSITION_INDEPENDENT_CODE TRUE)
199set(CMAKE_NO_SYSTEM_FROM_IMPORTED TRUE)
200
201# AliRoot base modules
202add_subdirectory(STEER)
203add_subdirectory(RAW)
204add_subdirectory(ANALYSIS)
205
206# Include Vc own cmake
207include(Vc/Vc.cmake)
208add_subdirectory(Vc)
209
210# AliRoot common macros
211add_subdirectory(macros)
212
213# AliRoot modules
214add_subdirectory(ACORDE)
215add_subdirectory(AD)
216add_subdirectory(BCM)
217add_subdirectory(CORRFW)
218add_subdirectory(EMCAL)
219add_subdirectory(EPOS)
220add_subdirectory(EVE)
221add_subdirectory(EVGEN)
222add_subdirectory(FASTSIM)
223add_subdirectory(FIT)
224add_subdirectory(FMD)
225add_subdirectory(HLT)
226add_subdirectory(HMPID)
227add_subdirectory(ITS)
228add_subdirectory(JETAN)
229add_subdirectory(MFT)
230add_subdirectory(MONITOR)
231add_subdirectory(MUON)
232add_subdirectory(OADB)
233add_subdirectory(PHOS)
234add_subdirectory(PMD)
235add_subdirectory(PYTHIA8)
236add_subdirectory(STARLIGHT)
237add_subdirectory(STAT)
238add_subdirectory(STRUCT)
239add_subdirectory(T0)
240add_subdirectory(TDPMjet)
241add_subdirectory(TEvtGen)
242add_subdirectory(THerwig)
243add_subdirectory(TOF)
244add_subdirectory(TPC)
245add_subdirectory(TRD)
246add_subdirectory(TRIGGER)
247add_subdirectory(TTherminator)
248add_subdirectory(VZERO)
249add_subdirectory(ZDC)
250
251# Fortran modules
252if(CMAKE_Fortran_COMPILER)
253 add_subdirectory(DIME)
254 add_subdirectory(DPMJET)
255 add_subdirectory(HERWIG)
256 add_subdirectory(HIJING)
257 add_subdirectory(LHAPDF)
258 add_subdirectory(MICROCERN)
259 add_subdirectory(PYTHIA6)
260 add_subdirectory(TEPEMGEN)
261 add_subdirectory(THbtp)
262 add_subdirectory(THijing)
263 add_subdirectory(THydjet)
264 add_subdirectory(TPHIC)
265 add_subdirectory(TUHKMgen)
266 add_subdirectory(TAmpt)
267endif(CMAKE_Fortran_COMPILER)
268
269# PWG libraries
270add_subdirectory(PWG)
271add_subdirectory(PWGCF)
272# Depends on PWGCF - To fix dependencies
273add_subdirectory(PWGGA)
274# Depends on CF - To fix the dependencies
275add_subdirectory(PWGDQ)
276add_subdirectory(PWGHF)
277# Depends on CF
278add_subdirectory(PWGJE)
279add_subdirectory(PWGLF)
280add_subdirectory(PWGPP)
281add_subdirectory(PWGUD)
282add_subdirectory(data)
283add_subdirectory(GRP)
284add_subdirectory(OCDB)
285add_subdirectory(QAref)
286
287# Enable SHUTTLE compilation
288# Check if DIMDIR and ODIR are set
289if(SHUTTLE)
290 if(ROOT_HASALIEN STREQUAL "no")
291 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")
292 endif()
293
294 if(DIMDIR AND ODIR AND ALIEN)
295 add_subdirectory(SHUTTLE)
296 else()
297 message(FATAL_ERROR "SHUTTLE enabled! Please specify DIMDIR, ODIR and ALIEN")
298 endif()
299endif(SHUTTLE)
300
301add_subdirectory(ALIROOT)