]> git.uio.no Git - u/mrichter/AliRoot.git/blame - CMakeLists.txt
ATO-18, ATO-19, PWGPP-102, ALIROOT-5603 - Separate dNdx:bg MC parameterization and...
[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
8e186b29 63# ROOT configuration mandatory
64if(ROOTSYS)
65 find_package(ROOT REQUIRED)
66
67 # ROOT must be build with XML2 support
68 if(NOT ROOT_HASXML)
69 message(FATAL_ERROR "ROOT was not build with xml2 support. Please reinstall or rebuild ROOT with xml2 support")
70 endif(NOT ROOT_HASXML)
71else()
72 message(FATAL_ERROR "ROOT installation not found!\nPlease point to the ROOT installation using -DROOTSYS=ROOT_INSTALL_DIR")
73endif(ROOTSYS)
74
b22a7396 75# ROOT dictionaries and maps
d50827fc 76include(CMakeALICE)
6db31708 77
f82bfa66 78# Checking first for DIM, DATE, AMORE and daqDA
79# in case ROOT Extra static library needs to be enabled
80
81# DATE
ec8c8ea6 82# date-config needs DIMDIR and ODIR set
f82bfa66 83if(DATE_CONFIG)
ec8c8ea6 84 if(DIMDIR AND ODIR)
85 find_package(DATE)
86 else()
87 message(FATAL_ERROR "DATE enabled but no DIMDIR and ODIR set. Please set DIMDIR and ODIR")
88 endif()
89endif()
f82bfa66 90
91# daqDA
92if(daqDA)
93 find_package(daqDA)
94endif(daqDA)
95
96# AMORE
97if(AMORE_CONFIG)
ec8c8ea6 98 if(ROOTSYS)
99 find_package(AMORE)
100 else()
101 message(FATAL_ERROR "AMORE enabled but no ROOTSYS defined")
102 endif()
f82bfa66 103endif(AMORE_CONFIG)
104
168930f9 105# id DARPM we enable DA if it is not set
106if(DARPM)
107 if(NOT DA)
108 set(DA ON)
109 endif(NOT DA)
110endif(DARPM)
111
f82bfa66 112# DA is enabled
113if(DA)
114 if(NOT DIMDIR AND NOT ODIR)
115 set(DA FALSE)
116 message(FATAL_ERROR "Das enabled but no DIMDIR and ODIR set. Please set DIMDIR to DIM installation and ODIR to platform (default linux)")
117 endif()
118
119 if(NOT DATE_FOUND)
120 set(DA FALSE)
121 message(FATAL_ERROR "DAs enabled but no DATE support found. Please point to your date installation using \"DATE_CONFIG\" variable")
122 endif()
123
124 if(NOT daqDA_FOUND)
125 set(DA FALSE)
126 message(FATAL_ERROR "DAs enabled but no daqDA support found. Please point to your daqDA installation using \"daqDA\" variable")
127 endif()
128
129 if(NOT AMORE_FOUND)
130 set(DA FALSE)
131 message(FATAL_ERROR "DAs enabled but no AMORE support found. Please point to your AMORE installation using \"AMORE_CONFIG\" variable")
132 endif()
133
134 # Enable static libraries
135 set(ALIROOT_STATIC TRUE)
136 message(STATUS "DAs enabled")
137endif(DA)
138
fae85bcc 139# MDC rpm creation enables the static build
140if(MDCRPM)
141 set(ALIROOT_STATIC TRUE)
142 message(STATUS "AliMDC RPM enabled. AliRoot static build enabled")
143endif(MDCRPM)
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
fb0ae393 206# Generating the AliRoot-config.cmake file
207configure_file(${PROJECT_SOURCE_DIR}/cmake/AliRoot-config.cmake.in ${CMAKE_BINARY_DIR}/version/AliRoot-config.cmake @ONLY)
7187fc7f 208install(FILES ${PROJECT_BINARY_DIR}/version/AliRoot-config.cmake DESTINATION etc)
fb0ae393 209
4d31eb1c 210# General flags -> Should be moved into a configuration file
211set(CMAKE_POSITION_INDEPENDENT_CODE TRUE)
139cbc46 212set(CMAKE_NO_SYSTEM_FROM_IMPORTED TRUE)
d50827fc 213
63697604 214# AliRoot base modules
17f9c1f8 215add_subdirectory(STEER)
17f9c1f8 216add_subdirectory(RAW)
63697604 217add_subdirectory(ANALYSIS)
218
219# Include Vc own cmake
220include(Vc/Vc.cmake)
221add_subdirectory(Vc)
222
9815baac 223# AliRoot common macros
224add_subdirectory(macros)
225
63697604 226# AliRoot modules
227add_subdirectory(ACORDE)
228add_subdirectory(AD)
229add_subdirectory(BCM)
63697604 230add_subdirectory(EMCAL)
9d62600c 231add_subdirectory(EPOS)
63697604 232add_subdirectory(EVE)
233add_subdirectory(EVGEN)
234add_subdirectory(FASTSIM)
235add_subdirectory(FIT)
236add_subdirectory(FMD)
237add_subdirectory(HLT)
238add_subdirectory(HMPID)
17f9c1f8 239add_subdirectory(ITS)
80afaccc 240add_subdirectory(MFT)
63697604 241add_subdirectory(MONITOR)
242add_subdirectory(MUON)
63697604 243add_subdirectory(PHOS)
244add_subdirectory(PMD)
a31c2f7d 245add_subdirectory(PYTHIA8)
63697604 246add_subdirectory(STARLIGHT)
247add_subdirectory(STAT)
248add_subdirectory(STRUCT)
97e8d2a8 249add_subdirectory(T0)
72017ac8 250add_subdirectory(TDPMjet)
e706c082 251add_subdirectory(TEvtGen)
16765dcc 252add_subdirectory(THerwig)
97e8d2a8 253add_subdirectory(TOF)
63697604 254add_subdirectory(TPC)
97e8d2a8 255add_subdirectory(TRD)
25f88fb9 256add_subdirectory(TRIGGER)
63697604 257add_subdirectory(TTherminator)
258add_subdirectory(VZERO)
259add_subdirectory(ZDC)
a2a27b4c 260add_subdirectory(doxygen)
67018bf4 261
63697604 262# Fortran modules
1dbe1076 263if(CMAKE_Fortran_COMPILER)
c462af85 264 add_subdirectory(DIME)
265 add_subdirectory(DPMJET)
64609fcd 266 add_subdirectory(HERWIG)
63697604 267 add_subdirectory(HIJING)
116e4267 268 add_subdirectory(LHAPDF)
116e4267 269 add_subdirectory(MICROCERN)
63697604 270 add_subdirectory(PYTHIA6)
ba812042 271 add_subdirectory(TEPEMGEN)
27b08c46 272 add_subdirectory(THbtp)
a95d9137 273 add_subdirectory(THijing)
63697604 274 add_subdirectory(THydjet)
275 add_subdirectory(TPHIC)
276 add_subdirectory(TUHKMgen)
9b863d49 277 add_subdirectory(TAmpt)
1dbe1076 278endif(CMAKE_Fortran_COMPILER)
67018bf4 279
7c29eb0f 280add_subdirectory(data)
71f72706 281add_subdirectory(GRP)
807153f0 282add_subdirectory(OCDB)
283add_subdirectory(QAref)
808c7763 284
67018bf4 285# Enable SHUTTLE compilation
286# Check if DIMDIR and ODIR are set
287if(SHUTTLE)
101cc341 288 if(ROOT_HASALIEN STREQUAL "no")
289 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")
290 endif()
291
67018bf4 292 if(DIMDIR AND ODIR AND ALIEN)
293 add_subdirectory(SHUTTLE)
294 else()
295 message(FATAL_ERROR "SHUTTLE enabled! Please specify DIMDIR, ODIR and ALIEN")
296 endif()
297endif(SHUTTLE)
034aa4b3 298
34ab4e08 299add_subdirectory(ALIROOT)