Installing the content of data folder
[u/mrichter/AliRoot.git] / CMakeLists.txt
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(ROOT_HASALIEN STREQUAL "no")
267         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")
268     endif()
269     
270     if(DIMDIR AND ODIR AND ALIEN)
271         add_subdirectory(SHUTTLE)
272     else()
273         message(FATAL_ERROR "SHUTTLE enabled! Please specify DIMDIR, ODIR and ALIEN")
274     endif()
275 endif(SHUTTLE)
276
277 add_subdirectory(ALIROOT)