]>
Commit | Line | Data |
---|---|---|
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 | ||
20 | cmake_minimum_required(VERSION 2.8.11 FATAL_ERROR) | |
21 | ||
22 | project(AliRoot CXX C) | |
23 | ||
24 | # Path to additonal modules | |
25 | set(CMAKE_MODULE_PATH "${AliRoot_SOURCE_DIR}/cmake") | |
26 | ||
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) | |
36 | ||
37 | # - CLANG_MAJOR.CLANG_MINOR or | |
38 | # - GCC_MAJOR.GCC_MINOR.GCC_PATCH | |
39 | include(CheckCompiler) | |
40 | ||
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) | |
46 | ||
47 | # ROOT dictionaries and maps | |
48 | include(CMakeALICE) | |
49 | ||
50 | # Checking first for DIM, DATE, AMORE and daqDA | |
51 | # in case ROOT Extra static library needs to be enabled | |
52 | ||
53 | # DATE | |
54 | # date-config needs DIMDIR and ODIR set | |
55 | if(DATE_CONFIG) | |
56 | if(DIMDIR AND ODIR) | |
57 | find_package(DATE) | |
58 | else() | |
59 | message(FATAL_ERROR "DATE enabled but no DIMDIR and ODIR set. Please set DIMDIR and ODIR") | |
60 | endif() | |
61 | endif() | |
62 | ||
63 | # daqDA | |
64 | if(daqDA) | |
65 | find_package(daqDA) | |
66 | endif(daqDA) | |
67 | ||
68 | # AMORE | |
69 | if(AMORE_CONFIG) | |
70 | if(ROOTSYS) | |
71 | find_package(AMORE) | |
72 | else() | |
73 | message(FATAL_ERROR "AMORE enabled but no ROOTSYS defined") | |
74 | endif() | |
75 | endif(AMORE_CONFIG) | |
76 | ||
77 | # DA is enabled | |
78 | if(DA) | |
79 | if(NOT DIMDIR AND NOT ODIR) | |
80 | set(DA FALSE) | |
81 | message(FATAL_ERROR "Das enabled but no DIMDIR and ODIR set. Please set DIMDIR to DIM installation and ODIR to platform (default linux)") | |
82 | endif() | |
83 | ||
84 | if(NOT DATE_FOUND) | |
85 | set(DA FALSE) | |
86 | message(FATAL_ERROR "DAs enabled but no DATE support found. Please point to your date installation using \"DATE_CONFIG\" variable") | |
87 | endif() | |
88 | ||
89 | if(NOT daqDA_FOUND) | |
90 | set(DA FALSE) | |
91 | message(FATAL_ERROR "DAs enabled but no daqDA support found. Please point to your daqDA installation using \"daqDA\" variable") | |
92 | endif() | |
93 | ||
94 | if(NOT AMORE_FOUND) | |
95 | set(DA FALSE) | |
96 | message(FATAL_ERROR "DAs enabled but no AMORE support found. Please point to your AMORE installation using \"AMORE_CONFIG\" variable") | |
97 | endif() | |
98 | ||
99 | # Enable static libraries | |
100 | set(ALIROOT_STATIC TRUE) | |
101 | message(STATUS "DAs enabled") | |
102 | endif(DA) | |
103 | ||
104 | # MDC rpm creation enables the static build | |
105 | if(MDCRPM) | |
106 | set(ALIROOT_STATIC TRUE) | |
107 | message(STATUS "AliMDC RPM enabled. AliRoot static build enabled") | |
108 | endif(MDCRPM) | |
109 | ||
110 | # ROOT configuration mandatory | |
111 | if(ROOTSYS) | |
112 | find_package(ROOT REQUIRED) | |
113 | ||
114 | # ROOT must be build with XML2 support | |
115 | if(NOT ROOT_HASXML) | |
116 | message(FATAL_ERROR "ROOT was not build with xml2 support. Please reinstall or rebuild ROOT with xml2 support") | |
117 | endif(NOT ROOT_HASXML) | |
118 | else() | |
119 | message(FATAL_ERROR "ROOT installation not found!\nPlease point to the ROOT installation using -DROOTSYS=ROOT_INSTALL_DIR") | |
120 | endif(ROOTSYS) | |
121 | ||
122 | # If no Fortran, i.e on Windows | |
123 | # We need to specify ROOT fortran | |
124 | # (f95 comes before gfortran in default module) | |
125 | include(CheckLanguage) | |
126 | ||
127 | if(ROOT_FORTRAN) | |
128 | message(STATUS "Using the Fortran compiler defined by ROOT configuration: ${ROOT_FORTRAN}") | |
129 | set(CMAKE_Fortran_COMPILER ${ROOT_FORTRAN}) | |
130 | else() | |
131 | message(STATUS "Using default system Fortran compiler") | |
132 | endif(ROOT_FORTRAN) | |
133 | ||
134 | check_language(Fortran) | |
135 | if(CMAKE_Fortran_COMPILER) | |
136 | enable_language(Fortran OPTIONAL) | |
137 | else() | |
138 | message(STATUS "No Fortran support. Disabling LHAPDF, PHYTIA6, MICROCERN, etc.") | |
139 | endif() | |
140 | ||
141 | # DATE | |
142 | if(DATE_CONFIG) | |
143 | find_package(DATE) | |
144 | endif(DATE_CONFIG) | |
145 | ||
146 | # daqDA | |
147 | if(daqDA) | |
148 | find_package(daqDA) | |
149 | endif(daqDA) | |
150 | ||
151 | # DA is enabled | |
152 | if(DA) | |
153 | if(NOT DATE_FOUND) | |
154 | set(DA FALSE) | |
155 | message(FATAL_ERROR "DAs enabled but no DATE support found. Please point to your date installation using \"DATE_CONFIG\"") | |
156 | endif() | |
157 | ||
158 | if(NOT daqDA_FOUND) | |
159 | set(DA FALSE) | |
160 | message(FATAL_ERROR "DAs enabled but no daqDA support found. Please point to your daqDA installation using \"daqDA\" variable") | |
161 | endif() | |
162 | ||
163 | # Enable static libraries | |
164 | set(ALIROOT_STATIC TRUE) | |
165 | message(STATUS "DAs enabled") | |
166 | endif(DA) | |
167 | ||
168 | # FastJet | |
169 | find_package(FASTJET) | |
170 | ||
171 | # ZEROMQ | |
172 | find_package(ZeroMQ) | |
173 | ||
174 | message(STATUS "CMake platform: ${CMAKE_SYSTEM}") | |
175 | message(STATUS "Build folder: ${AliRoot_BINARY_DIR}") | |
176 | message(STATUS "Source folder: ${AliRoot_SOURCE_DIR}") | |
177 | message(STATUS "Installation folder: ${CMAKE_INSTALL_PREFIX}") | |
178 | ||
179 | # General flags -> Should be moved into a configuration file | |
180 | set(CMAKE_POSITION_INDEPENDENT_CODE TRUE) | |
181 | set(CMAKE_NO_SYSTEM_FROM_IMPORTED TRUE) | |
182 | ||
183 | # AliRoot base modules | |
184 | add_subdirectory(STEER) | |
185 | add_subdirectory(RAW) | |
186 | add_subdirectory(ANALYSIS) | |
187 | ||
188 | # Include Vc own cmake | |
189 | include(Vc/Vc.cmake) | |
190 | add_subdirectory(Vc) | |
191 | ||
192 | # AliRoot modules | |
193 | add_subdirectory(ACORDE) | |
194 | add_subdirectory(AD) | |
195 | add_subdirectory(BCM) | |
196 | add_subdirectory(CORRFW) | |
197 | add_subdirectory(EMCAL) | |
198 | add_subdirectory(EPOS) | |
199 | add_subdirectory(EVE) | |
200 | add_subdirectory(EVGEN) | |
201 | add_subdirectory(FASTSIM) | |
202 | add_subdirectory(FIT) | |
203 | add_subdirectory(FMD) | |
204 | add_subdirectory(HLT) | |
205 | add_subdirectory(HMPID) | |
206 | add_subdirectory(ITS) | |
207 | add_subdirectory(JETAN) | |
208 | add_subdirectory(MFT) | |
209 | add_subdirectory(MONITOR) | |
210 | add_subdirectory(MUON) | |
211 | add_subdirectory(OADB) | |
212 | add_subdirectory(PHOS) | |
213 | add_subdirectory(PMD) | |
214 | add_subdirectory(PYTHIA8) | |
215 | add_subdirectory(STARLIGHT) | |
216 | add_subdirectory(STAT) | |
217 | add_subdirectory(STRUCT) | |
218 | add_subdirectory(T0) | |
219 | add_subdirectory(TDPMjet) | |
220 | add_subdirectory(TEvtGen) | |
221 | add_subdirectory(THerwig) | |
222 | add_subdirectory(TOF) | |
223 | add_subdirectory(TPC) | |
224 | add_subdirectory(TRD) | |
225 | add_subdirectory(TRIGGER) | |
226 | add_subdirectory(TTherminator) | |
227 | add_subdirectory(VZERO) | |
228 | add_subdirectory(ZDC) | |
229 | ||
230 | # Fortran modules | |
231 | if(CMAKE_Fortran_COMPILER) | |
232 | add_subdirectory(DIME) | |
233 | add_subdirectory(DPMJET) | |
234 | add_subdirectory(HERWIG) | |
235 | add_subdirectory(HIJING) | |
236 | add_subdirectory(LHAPDF) | |
237 | add_subdirectory(MICROCERN) | |
238 | add_subdirectory(PYTHIA6) | |
239 | add_subdirectory(TEPEMGEN) | |
240 | add_subdirectory(THbtp) | |
241 | add_subdirectory(THijing) | |
242 | add_subdirectory(THydjet) | |
243 | add_subdirectory(TPHIC) | |
244 | add_subdirectory(TUHKMgen) | |
245 | add_subdirectory(TAmpt) | |
246 | endif(CMAKE_Fortran_COMPILER) | |
247 | ||
248 | # PWG libraries | |
249 | add_subdirectory(PWG) | |
250 | add_subdirectory(PWGCF) | |
251 | # Depends on PWGCF - To fix dependencies | |
252 | add_subdirectory(PWGGA) | |
253 | # Depends on CF - To fix the dependencies | |
254 | add_subdirectory(PWGDQ) | |
255 | add_subdirectory(PWGHF) | |
256 | # Depends on CF | |
257 | add_subdirectory(PWGJE) | |
258 | add_subdirectory(PWGLF) | |
259 | add_subdirectory(PWGPP) | |
260 | add_subdirectory(PWGUD) | |
261 | add_subdirectory(data) | |
262 | ||
263 | # Enable SHUTTLE compilation | |
264 | # Check if DIMDIR and ODIR are set | |
265 | if(SHUTTLE) | |
266 | if(DIMDIR AND ODIR AND ALIEN) | |
267 | add_subdirectory(SHUTTLE) | |
268 | else() | |
269 | message(FATAL_ERROR "SHUTTLE enabled! Please specify DIMDIR, ODIR and ALIEN") | |
270 | endif() | |
271 | endif(SHUTTLE) | |
272 | ||
273 | add_subdirectory(ALIROOT) | |
274 | ||
275 | # Data | |
276 | add_subdirectory(data) |