ALIROOT-3799 - DAs documentation
[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
93# DA is enabled
94if(DA)
95 if(NOT DIMDIR AND NOT ODIR)
96 set(DA FALSE)
97 message(FATAL_ERROR "Das enabled but no DIMDIR and ODIR set. Please set DIMDIR to DIM installation and ODIR to platform (default linux)")
98 endif()
99
100 if(NOT DATE_FOUND)
101 set(DA FALSE)
102 message(FATAL_ERROR "DAs enabled but no DATE support found. Please point to your date installation using \"DATE_CONFIG\" variable")
103 endif()
104
105 if(NOT daqDA_FOUND)
106 set(DA FALSE)
107 message(FATAL_ERROR "DAs enabled but no daqDA support found. Please point to your daqDA installation using \"daqDA\" variable")
108 endif()
109
110 if(NOT AMORE_FOUND)
111 set(DA FALSE)
112 message(FATAL_ERROR "DAs enabled but no AMORE support found. Please point to your AMORE installation using \"AMORE_CONFIG\" variable")
113 endif()
114
115 # Enable static libraries
116 set(ALIROOT_STATIC TRUE)
117 message(STATUS "DAs enabled")
118endif(DA)
119
fae85bcc 120# MDC rpm creation enables the static build
121if(MDCRPM)
122 set(ALIROOT_STATIC TRUE)
123 message(STATUS "AliMDC RPM enabled. AliRoot static build enabled")
124endif(MDCRPM)
125
d50827fc 126# ROOT configuration mandatory
127if(ROOTSYS)
128 find_package(ROOT REQUIRED)
234c484d 129
130 # ROOT must be build with XML2 support
4d31eb1c 131 if(NOT ROOT_HASXML)
234c484d 132 message(FATAL_ERROR "ROOT was not build with xml2 support. Please reinstall or rebuild ROOT with xml2 support")
7d1be1d5 133 endif(NOT ROOT_HASXML)
d50827fc 134else()
135 message(FATAL_ERROR "ROOT installation not found!\nPlease point to the ROOT installation using -DROOTSYS=ROOT_INSTALL_DIR")
136endif(ROOTSYS)
6db31708 137
1dbe1076 138# If no Fortran, i.e on Windows
139# We need to specify ROOT fortran
140# (f95 comes before gfortran in default module)
141include(CheckLanguage)
142
143if(ROOT_FORTRAN)
144 message(STATUS "Using the Fortran compiler defined by ROOT configuration: ${ROOT_FORTRAN}")
145 set(CMAKE_Fortran_COMPILER ${ROOT_FORTRAN})
146else()
147 message(STATUS "Using default system Fortran compiler")
148endif(ROOT_FORTRAN)
149
150check_language(Fortran)
151if(CMAKE_Fortran_COMPILER)
152 enable_language(Fortran OPTIONAL)
153else()
f82bfa66 154 message(STATUS "No Fortran support. Disabling LHAPDF, PHYTIA6, MICROCERN, etc.")
1dbe1076 155endif()
156
56966a5e 157# DATE
f82bfa66 158if(DATE_CONFIG)
159 find_package(DATE)
160endif(DATE_CONFIG)
161
162# daqDA
163if(daqDA)
164 find_package(daqDA)
165endif(daqDA)
166
167# DA is enabled
168if(DA)
169 if(NOT DATE_FOUND)
170 set(DA FALSE)
171 message(FATAL_ERROR "DAs enabled but no DATE support found. Please point to your date installation using \"DATE_CONFIG\"")
172 endif()
173
174 if(NOT daqDA_FOUND)
175 set(DA FALSE)
176 message(FATAL_ERROR "DAs enabled but no daqDA support found. Please point to your daqDA installation using \"daqDA\" variable")
177 endif()
178
179 # Enable static libraries
180 set(ALIROOT_STATIC TRUE)
181 message(STATUS "DAs enabled")
182endif(DA)
56966a5e 183
b5576c4e 184# FastJet
185find_package(FASTJET)
186
3c77e1ef 187# ZEROMQ
188find_package(ZeroMQ)
189
4d31eb1c 190# General flags -> Should be moved into a configuration file
191set(CMAKE_POSITION_INDEPENDENT_CODE TRUE)
139cbc46 192set(CMAKE_NO_SYSTEM_FROM_IMPORTED TRUE)
d50827fc 193
63697604 194# AliRoot base modules
17f9c1f8 195add_subdirectory(STEER)
17f9c1f8 196add_subdirectory(RAW)
63697604 197add_subdirectory(ANALYSIS)
198
199# Include Vc own cmake
200include(Vc/Vc.cmake)
201add_subdirectory(Vc)
202
203# AliRoot modules
204add_subdirectory(ACORDE)
205add_subdirectory(AD)
206add_subdirectory(BCM)
207add_subdirectory(CORRFW)
208add_subdirectory(EMCAL)
9d62600c 209add_subdirectory(EPOS)
63697604 210add_subdirectory(EVE)
211add_subdirectory(EVGEN)
212add_subdirectory(FASTSIM)
213add_subdirectory(FIT)
214add_subdirectory(FMD)
215add_subdirectory(HLT)
216add_subdirectory(HMPID)
17f9c1f8 217add_subdirectory(ITS)
63697604 218add_subdirectory(JETAN)
80afaccc 219add_subdirectory(MFT)
63697604 220add_subdirectory(MONITOR)
221add_subdirectory(MUON)
222add_subdirectory(OADB)
223add_subdirectory(PHOS)
224add_subdirectory(PMD)
a31c2f7d 225add_subdirectory(PYTHIA8)
63697604 226add_subdirectory(STARLIGHT)
227add_subdirectory(STAT)
228add_subdirectory(STRUCT)
97e8d2a8 229add_subdirectory(T0)
72017ac8 230add_subdirectory(TDPMjet)
e706c082 231add_subdirectory(TEvtGen)
16765dcc 232add_subdirectory(THerwig)
97e8d2a8 233add_subdirectory(TOF)
63697604 234add_subdirectory(TPC)
97e8d2a8 235add_subdirectory(TRD)
25f88fb9 236add_subdirectory(TRIGGER)
63697604 237add_subdirectory(TTherminator)
238add_subdirectory(VZERO)
239add_subdirectory(ZDC)
67018bf4 240
63697604 241# Fortran modules
1dbe1076 242if(CMAKE_Fortran_COMPILER)
c462af85 243 add_subdirectory(DIME)
244 add_subdirectory(DPMJET)
64609fcd 245 add_subdirectory(HERWIG)
63697604 246 add_subdirectory(HIJING)
116e4267 247 add_subdirectory(LHAPDF)
116e4267 248 add_subdirectory(MICROCERN)
63697604 249 add_subdirectory(PYTHIA6)
ba812042 250 add_subdirectory(TEPEMGEN)
27b08c46 251 add_subdirectory(THbtp)
a95d9137 252 add_subdirectory(THijing)
63697604 253 add_subdirectory(THydjet)
254 add_subdirectory(TPHIC)
255 add_subdirectory(TUHKMgen)
9b863d49 256 add_subdirectory(TAmpt)
1dbe1076 257endif(CMAKE_Fortran_COMPILER)
67018bf4 258
808c7763 259# PWG libraries
260add_subdirectory(PWG)
dd871bd4 261add_subdirectory(PWGCF)
7d9133a4 262# Depends on PWGCF - To fix dependencies
263add_subdirectory(PWGGA)
f1b16b21 264# Depends on CF - To fix the dependencies
dc36458f 265add_subdirectory(PWGDQ)
a39671d1 266add_subdirectory(PWGHF)
f1b16b21 267# Depends on CF
5c548d2a 268add_subdirectory(PWGJE)
4b2ba9c7 269add_subdirectory(PWGLF)
ea1e04c4 270add_subdirectory(PWGPP)
16a875b0 271add_subdirectory(PWGUD)
7c29eb0f 272add_subdirectory(data)
71f72706 273add_subdirectory(GRP)
808c7763 274
67018bf4 275# Enable SHUTTLE compilation
276# Check if DIMDIR and ODIR are set
277if(SHUTTLE)
101cc341 278 if(ROOT_HASALIEN STREQUAL "no")
279 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")
280 endif()
281
67018bf4 282 if(DIMDIR AND ODIR AND ALIEN)
283 add_subdirectory(SHUTTLE)
284 else()
285 message(FATAL_ERROR "SHUTTLE enabled! Please specify DIMDIR, ODIR and ALIEN")
286 endif()
287endif(SHUTTLE)
034aa4b3 288
34ab4e08 289add_subdirectory(ALIROOT)