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