1 # **************************************************************************
2 # * Copyright(c) 1998-2014, ALICE Experiment at CERN, All rights reserved. *
4 # * Author: The ALICE Off-line Project. *
5 # * Contributors are mentioned in the code where appropriate. *
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 # **************************************************************************
16 #--------------------------------------------------------------------------#
17 # Set Basic CMake Configuration #
18 #--------------------------------------------------------------------------#
20 cmake_minimum_required(VERSION 2.8.11 FATAL_ERROR)
22 project(AliRoot CXX C)
24 # Path to additonal modules
25 set(CMAKE_MODULE_PATH "${AliRoot_SOURCE_DIR}/cmake")
27 # AliRoot version extracted from Git repository
28 # Sets 4 git variables
29 # - GIT_REFSPEC - complete name of the current reference
30 # - ALIROOT_BRANCH - name of the branch or tag extracted from the current reference
31 # - GIT_SHA1 - current hash in the long format
32 # - GIT_SHORT_SHA1 - current hash in the short format
33 # - ALIROOT_VERSION = ALIROOT_BRANCH
34 # - ALIROOT_REVISION = GIT_SHORT_SHA1
35 include(CheckGitVersion)
37 # - CLANG_MAJOR.CLANG_MINOR or
38 # - GCC_MAJOR.GCC_MINOR.GCC_PATCH
39 include(CheckCompiler)
41 # You can change the build type using
42 # cmake -DCMAKE_BUILD_TYPE=DEBUG|RELEASE|RELWITHDEBINFO|MINSIZEREL...
43 if (NOT CMAKE_BUILD_TYPE)
44 set(CMAKE_BUILD_TYPE RELWITHDEBINFO)
45 endif(NOT CMAKE_BUILD_TYPE)
47 # ROOT dictionaries and maps
50 # Checking first for DIM, DATE, AMORE and daqDA
51 # in case ROOT Extra static library needs to be enabled
54 # date-config needs DIMDIR and ODIR set
59 message(FATAL_ERROR "DATE enabled but no DIMDIR and ODIR set. Please set DIMDIR and ODIR")
73 message(FATAL_ERROR "AMORE enabled but no ROOTSYS defined")
79 if(NOT DIMDIR AND NOT ODIR)
81 message(FATAL_ERROR "Das enabled but no DIMDIR and ODIR set. Please set DIMDIR to DIM installation and ODIR to platform (default linux)")
86 message(FATAL_ERROR "DAs enabled but no DATE support found. Please point to your date installation using \"DATE_CONFIG\" variable")
91 message(FATAL_ERROR "DAs enabled but no daqDA support found. Please point to your daqDA installation using \"daqDA\" variable")
96 message(FATAL_ERROR "DAs enabled but no AMORE support found. Please point to your AMORE installation using \"AMORE_CONFIG\" variable")
99 # Enable static libraries
100 set(ALIROOT_STATIC TRUE)
101 message(STATUS "DAs enabled")
104 # ROOT configuration mandatory
106 find_package(ROOT REQUIRED)
108 # ROOT must be build with XML2 support
110 message(FATAL_ERROR "ROOT was not build with xml2 support. Please reinstall or rebuild ROOT with xml2 support")
111 endif(NOT ROOT_HASXML)
113 message(FATAL_ERROR "ROOT installation not found!\nPlease point to the ROOT installation using -DROOTSYS=ROOT_INSTALL_DIR")
116 # If no Fortran, i.e on Windows
117 # We need to specify ROOT fortran
118 # (f95 comes before gfortran in default module)
119 include(CheckLanguage)
122 message(STATUS "Using the Fortran compiler defined by ROOT configuration: ${ROOT_FORTRAN}")
123 set(CMAKE_Fortran_COMPILER ${ROOT_FORTRAN})
125 message(STATUS "Using default system Fortran compiler")
128 check_language(Fortran)
129 if(CMAKE_Fortran_COMPILER)
130 enable_language(Fortran OPTIONAL)
132 message(STATUS "No Fortran support. Disabling LHAPDF, PHYTIA6, MICROCERN, etc.")
150 message(FATAL_ERROR "DAs enabled but no DATE support found. Please point to your date installation using \"DATE_CONFIG\"")
155 message(FATAL_ERROR "DAs enabled but no daqDA support found. Please point to your daqDA installation using \"daqDA\" variable")
158 # Enable static libraries
159 set(ALIROOT_STATIC TRUE)
160 message(STATUS "DAs enabled")
164 find_package(FASTJET)
169 message(STATUS "CMake platform: ${CMAKE_SYSTEM}")
170 message(STATUS "Build folder: ${AliRoot_BINARY_DIR}")
171 message(STATUS "Source folder: ${AliRoot_SOURCE_DIR}")
172 message(STATUS "Installation folder: ${CMAKE_INSTALL_PREFIX}")
174 # General flags -> Should be moved into a configuration file
175 set(CMAKE_POSITION_INDEPENDENT_CODE TRUE)
176 set(CMAKE_NO_SYSTEM_FROM_IMPORTED TRUE)
178 # AliRoot base modules
179 add_subdirectory(STEER)
180 add_subdirectory(RAW)
181 add_subdirectory(ANALYSIS)
183 # Include Vc own cmake
188 add_subdirectory(ACORDE)
190 add_subdirectory(BCM)
191 add_subdirectory(CORRFW)
192 add_subdirectory(EMCAL)
193 add_subdirectory(EPOS)
194 add_subdirectory(EVE)
195 add_subdirectory(EVGEN)
196 add_subdirectory(FASTSIM)
197 add_subdirectory(FIT)
198 add_subdirectory(FMD)
199 add_subdirectory(HLT)
200 add_subdirectory(HMPID)
201 add_subdirectory(ITS)
202 add_subdirectory(JETAN)
203 add_subdirectory(MFT)
204 add_subdirectory(MONITOR)
205 add_subdirectory(MUON)
206 add_subdirectory(OADB)
207 add_subdirectory(PHOS)
208 add_subdirectory(PMD)
209 add_subdirectory(PYTHIA8)
210 add_subdirectory(STARLIGHT)
211 add_subdirectory(STAT)
212 add_subdirectory(STRUCT)
214 add_subdirectory(TDPMjet)
215 add_subdirectory(TEvtGen)
216 add_subdirectory(THerwig)
217 add_subdirectory(TOF)
218 add_subdirectory(TPC)
219 add_subdirectory(TRD)
220 add_subdirectory(TRIGGER)
221 add_subdirectory(TTherminator)
222 add_subdirectory(VZERO)
223 add_subdirectory(ZDC)
226 if(CMAKE_Fortran_COMPILER)
227 add_subdirectory(DIME)
228 add_subdirectory(DPMJET)
229 add_subdirectory(HERWIG)
230 add_subdirectory(HIJING)
231 add_subdirectory(LHAPDF)
232 add_subdirectory(MICROCERN)
233 add_subdirectory(PYTHIA6)
234 add_subdirectory(TEPEMGEN)
235 add_subdirectory(THbtp)
236 add_subdirectory(THijing)
237 add_subdirectory(THydjet)
238 add_subdirectory(TPHIC)
239 add_subdirectory(TUHKMgen)
240 add_subdirectory(TAmpt)
241 endif(CMAKE_Fortran_COMPILER)
244 add_subdirectory(PWG)
246 # Enable SHUTTLE compilation
247 # Check if DIMDIR and ODIR are set
249 if(DIMDIR AND ODIR AND ALIEN)
250 add_subdirectory(SHUTTLE)
252 message(FATAL_ERROR "SHUTTLE enabled! Please specify DIMDIR, ODIR and ALIEN")
256 add_subdirectory(ALIROOT)