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