PMD DAs
[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(ROOT_HASXML STREQUAL "no")
85         message(FATAL_ERROR "ROOT was not build with xml2 support. Please reinstall or rebuild ROOT with xml2 support")
86     endif(ROOT_HASXML STREQUAL "no")
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
158 # AliRoot base modules
159 add_subdirectory(STEER)
160 add_subdirectory(RAW)
161 add_subdirectory(ANALYSIS)
162
163 # Include Vc own cmake
164 include(Vc/Vc.cmake)
165 add_subdirectory(Vc)
166
167 # AliRoot modules
168 add_subdirectory(ACORDE)
169 add_subdirectory(AD)
170 add_subdirectory(BCM)
171 add_subdirectory(CORRFW)
172 add_subdirectory(EMCAL)
173 add_subdirectory(EPOS)
174 add_subdirectory(EVE)
175 add_subdirectory(EVGEN)
176 add_subdirectory(FASTSIM)
177 add_subdirectory(FIT)
178 add_subdirectory(FMD)
179 add_subdirectory(HLT)
180 add_subdirectory(HMPID)
181 add_subdirectory(ITS)
182 add_subdirectory(JETAN)
183 add_subdirectory(MFT)
184 add_subdirectory(MONITOR)
185 add_subdirectory(MUON)
186 add_subdirectory(OADB)
187 add_subdirectory(PHOS)
188 add_subdirectory(PMD)
189 add_subdirectory(PYTHIA8)
190 add_subdirectory(STARLIGHT)
191 add_subdirectory(STAT)
192 add_subdirectory(STRUCT)
193 add_subdirectory(T0)
194 add_subdirectory(TDPMjet)
195 add_subdirectory(TEvtGen)
196 add_subdirectory(THerwig)
197 add_subdirectory(TOF)
198 add_subdirectory(TPC)
199 add_subdirectory(TRD)
200 add_subdirectory(TRIGGER)
201 add_subdirectory(TTherminator)
202 add_subdirectory(VZERO)
203 add_subdirectory(ZDC)
204
205 # Fortran modules
206 if(CMAKE_Fortran_COMPILER)
207   add_subdirectory(DIME)
208   add_subdirectory(DPMJET)
209   add_subdirectory(HERWIG)
210   add_subdirectory(HIJING)
211   add_subdirectory(LHAPDF)
212   add_subdirectory(MICROCERN)
213   add_subdirectory(PYTHIA6)
214   add_subdirectory(TEPEMGEN)
215   add_subdirectory(THbtp)
216   add_subdirectory(THijing)
217   add_subdirectory(THydjet)
218   add_subdirectory(TPHIC)
219   add_subdirectory(TUHKMgen)
220   add_subdirectory(TAmpt)
221 endif(CMAKE_Fortran_COMPILER)
222
223 # Enable SHUTTLE compilation
224 # Check if DIMDIR and ODIR are set
225 if(SHUTTLE)
226     if(DIMDIR AND ODIR AND ALIEN)
227         add_subdirectory(SHUTTLE)
228     else()
229         message(FATAL_ERROR "SHUTTLE enabled! Please specify DIMDIR, ODIR and ALIEN")
230     endif()
231 endif(SHUTTLE)
232
233 add_subdirectory(ALIROOT)