Correct value for ROOT_HAS*
[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.8 FATAL_ERROR)
21
22 project(AliRoot CXX C)
23
24 # Path to additonal modules
25 set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")
26
27 #       - CLANG_MAJOR.CLANG_MINOR or
28 #       - GCC_MAJOR.GCC_MINOR.GCC_PATCH
29 include(CheckCompiler)
30
31 # ROOT dictionaries and maps
32 include(CMakeALICE)
33
34 # Checking first for DIM, DATE, AMORE and daqDA 
35 # in case ROOT Extra static library needs to be enabled
36
37 # DATE
38 if(DATE_CONFIG)
39     find_package(DATE)
40 endif(DATE_CONFIG)
41
42 # daqDA
43 if(daqDA)
44     find_package(daqDA)
45 endif(daqDA)
46
47 # AMORE
48 if(AMORE_CONFIG)
49     find_package(AMORE)
50 endif(AMORE_CONFIG)
51
52 # DA is enabled
53 if(DA)
54     if(NOT DIMDIR AND NOT ODIR)
55         set(DA FALSE)
56         message(FATAL_ERROR "Das enabled but no DIMDIR and ODIR set. Please set DIMDIR to DIM installation and ODIR to platform (default linux)")
57     endif()
58
59     if(NOT DATE_FOUND)
60         set(DA FALSE)
61         message(FATAL_ERROR "DAs enabled but no DATE support found. Please point to your date installation using \"DATE_CONFIG\" variable")
62     endif()
63
64     if(NOT daqDA_FOUND)
65         set(DA FALSE)
66         message(FATAL_ERROR "DAs enabled but no daqDA support found. Please point to your daqDA installation using \"daqDA\" variable")
67     endif()
68
69     if(NOT AMORE_FOUND)
70         set(DA FALSE)
71         message(FATAL_ERROR "DAs enabled but no AMORE support found. Please point to your AMORE installation using \"AMORE_CONFIG\" variable")
72     endif()
73     
74     # Enable static libraries
75     set(ALIROOT_STATIC TRUE)
76     message(STATUS "DAs enabled")
77 endif(DA)
78
79 # ROOT configuration mandatory
80 if(ROOTSYS)
81     find_package(ROOT REQUIRED)
82
83     # ROOT must be build with XML2 support
84     if(NOT ROOT_HASXML)
85         message(FATAL_ERROR "ROOT was not build with xml2 support. Please reinstall or rebuild ROOT with xml2 support")
86     endif(ROOT_HASXML)
87 else()
88     message(FATAL_ERROR "ROOT installation not found!\nPlease point to the ROOT installation using -DROOTSYS=ROOT_INSTALL_DIR")
89 endif(ROOTSYS)
90
91 # If no Fortran, i.e on Windows
92 # We need to specify ROOT fortran
93 # (f95 comes before gfortran in default module)
94 include(CheckLanguage)
95
96 if(ROOT_FORTRAN)
97     message(STATUS "Using the Fortran compiler defined by ROOT configuration: ${ROOT_FORTRAN}")
98     set(CMAKE_Fortran_COMPILER ${ROOT_FORTRAN})
99 else()
100     message(STATUS "Using default system Fortran compiler")
101 endif(ROOT_FORTRAN)
102
103 check_language(Fortran)
104 if(CMAKE_Fortran_COMPILER)
105     enable_language(Fortran OPTIONAL)
106 else()
107     message(STATUS "No Fortran support. Disabling LHAPDF, PHYTIA6, MICROCERN, etc.")
108 endif()
109
110
111 # DATE
112 if(DATE_CONFIG)
113     find_package(DATE)
114 endif(DATE_CONFIG)
115
116 # daqDA
117 if(daqDA)
118     find_package(daqDA)
119 endif(daqDA)
120
121 # DA is enabled
122 if(DA)
123     if(NOT DATE_FOUND)
124         set(DA FALSE)
125         message(FATAL_ERROR "DAs enabled but no DATE support found. Please point to your date installation using \"DATE_CONFIG\"")
126     endif()
127     
128     if(NOT daqDA_FOUND)
129         set(DA FALSE)
130         message(FATAL_ERROR "DAs enabled but no daqDA support found. Please point to your daqDA installation using \"daqDA\" variable")
131     endif()
132     
133     # Enable static libraries
134     set(ALIROOT_STATIC TRUE)
135     message(STATUS "DAs enabled")
136 endif(DA)
137
138 # FastJet
139 find_package(FASTJET)
140
141 # ZEROMQ
142 find_package(ZeroMQ)
143
144 # AliRoot version extracted from Git repository
145 # Sets 4 git variables
146 #  - GIT_REFSPEC - complete name of the current reference
147 #  - ALIROOT_BRANCH - name of the branch or tag extracted from the current reference
148 #  - GIT_SHA1 - current hash in the long format
149 #  - GIT_SHORT_SHA1 - current hash in the short format
150 include(CheckGitVersion)
151
152 message(STATUS "CMake platform: ${CMAKE_SYSTEM}")
153 message(STATUS "Build folder: ${AliRoot_BINARY_DIR}")
154 message(STATUS "Source folder: ${AliRoot_SOURCE_DIR}")
155 message(STATUS "Installation folder: ${CMAKE_INSTALL_PREFIX}")
156
157 # General flags -> Should be moved into a configuration file
158 set(CMAKE_POSITION_INDEPENDENT_CODE TRUE)
159
160 # AliRoot base modules
161 add_subdirectory(STEER)
162 add_subdirectory(RAW)
163 add_subdirectory(ANALYSIS)
164
165 # Include Vc own cmake
166 include(Vc/Vc.cmake)
167 add_subdirectory(Vc)
168
169 # AliRoot modules
170 add_subdirectory(ACORDE)
171 add_subdirectory(AD)
172 add_subdirectory(BCM)
173 add_subdirectory(CORRFW)
174 add_subdirectory(EMCAL)
175 add_subdirectory(EPOS)
176 add_subdirectory(EVE)
177 add_subdirectory(EVGEN)
178 add_subdirectory(FASTSIM)
179 add_subdirectory(FIT)
180 add_subdirectory(FMD)
181 add_subdirectory(HLT)
182 add_subdirectory(HMPID)
183 add_subdirectory(ITS)
184 add_subdirectory(JETAN)
185 add_subdirectory(MFT)
186 add_subdirectory(MONITOR)
187 add_subdirectory(MUON)
188 add_subdirectory(OADB)
189 add_subdirectory(PHOS)
190 add_subdirectory(PMD)
191 add_subdirectory(PYTHIA8)
192 add_subdirectory(STARLIGHT)
193 add_subdirectory(STAT)
194 add_subdirectory(STRUCT)
195 add_subdirectory(T0)
196 add_subdirectory(TDPMjet)
197 add_subdirectory(TEvtGen)
198 add_subdirectory(THerwig)
199 add_subdirectory(TOF)
200 add_subdirectory(TPC)
201 add_subdirectory(TRD)
202 add_subdirectory(TRIGGER)
203 add_subdirectory(TTherminator)
204 add_subdirectory(VZERO)
205 add_subdirectory(ZDC)
206
207 # Fortran modules
208 if(CMAKE_Fortran_COMPILER)
209   add_subdirectory(DIME)
210   add_subdirectory(DPMJET)
211   add_subdirectory(HERWIG)
212   add_subdirectory(HIJING)
213   add_subdirectory(LHAPDF)
214   add_subdirectory(MICROCERN)
215   add_subdirectory(PYTHIA6)
216   add_subdirectory(TEPEMGEN)
217   add_subdirectory(THbtp)
218   add_subdirectory(THijing)
219   add_subdirectory(THydjet)
220   add_subdirectory(TPHIC)
221   add_subdirectory(TUHKMgen)
222   add_subdirectory(TAmpt)
223 endif(CMAKE_Fortran_COMPILER)
224
225 # Enable SHUTTLE compilation
226 # Check if DIMDIR and ODIR are set
227 if(SHUTTLE)
228     if(DIMDIR AND ODIR AND ALIEN)
229         add_subdirectory(SHUTTLE)
230     else()
231         message(FATAL_ERROR "SHUTTLE enabled! Please specify DIMDIR, ODIR and ALIEN")
232     endif()
233 endif(SHUTTLE)
234
235 add_subdirectory(ALIROOT)