Create DA RPM
[u/mrichter/AliRoot.git] / CMakeLists.txt
... / ...
CommitLineData
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
20cmake_minimum_required(VERSION 2.8.11 FATAL_ERROR)
21
22project(AliRoot CXX C)
23
24# Path to additonal modules
25set(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
35include(CheckGitVersion)
36
37# - CLANG_MAJOR.CLANG_MINOR or
38# - GCC_MAJOR.GCC_MINOR.GCC_PATCH
39include(CheckCompiler)
40
41# ROOT dictionaries and maps
42include(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
49if(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()
55endif()
56
57# daqDA
58if(daqDA)
59 find_package(daqDA)
60endif(daqDA)
61
62# AMORE
63if(AMORE_CONFIG)
64 if(ROOTSYS)
65 find_package(AMORE)
66 else()
67 message(FATAL_ERROR "AMORE enabled but no ROOTSYS defined")
68 endif()
69endif(AMORE_CONFIG)
70
71# DA is enabled
72if(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")
96endif(DA)
97
98# ROOT configuration mandatory
99if(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)
106else()
107 message(FATAL_ERROR "ROOT installation not found!\nPlease point to the ROOT installation using -DROOTSYS=ROOT_INSTALL_DIR")
108endif(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)
113include(CheckLanguage)
114
115if(ROOT_FORTRAN)
116 message(STATUS "Using the Fortran compiler defined by ROOT configuration: ${ROOT_FORTRAN}")
117 set(CMAKE_Fortran_COMPILER ${ROOT_FORTRAN})
118else()
119 message(STATUS "Using default system Fortran compiler")
120endif(ROOT_FORTRAN)
121
122check_language(Fortran)
123if(CMAKE_Fortran_COMPILER)
124 enable_language(Fortran OPTIONAL)
125else()
126 message(STATUS "No Fortran support. Disabling LHAPDF, PHYTIA6, MICROCERN, etc.")
127endif()
128
129
130# DATE
131if(DATE_CONFIG)
132 find_package(DATE)
133endif(DATE_CONFIG)
134
135# daqDA
136if(daqDA)
137 find_package(daqDA)
138endif(daqDA)
139
140# DA is enabled
141if(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")
155endif(DA)
156
157# FastJet
158find_package(FASTJET)
159
160# ZEROMQ
161find_package(ZeroMQ)
162
163message(STATUS "CMake platform: ${CMAKE_SYSTEM}")
164message(STATUS "Build folder: ${AliRoot_BINARY_DIR}")
165message(STATUS "Source folder: ${AliRoot_SOURCE_DIR}")
166message(STATUS "Installation folder: ${CMAKE_INSTALL_PREFIX}")
167
168# General flags -> Should be moved into a configuration file
169set(CMAKE_POSITION_INDEPENDENT_CODE TRUE)
170set(CMAKE_NO_SYSTEM_FROM_IMPORTED TRUE)
171
172# AliRoot base modules
173add_subdirectory(STEER)
174add_subdirectory(RAW)
175add_subdirectory(ANALYSIS)
176
177# Include Vc own cmake
178include(Vc/Vc.cmake)
179add_subdirectory(Vc)
180
181# AliRoot modules
182add_subdirectory(ACORDE)
183add_subdirectory(AD)
184add_subdirectory(BCM)
185add_subdirectory(CORRFW)
186add_subdirectory(EMCAL)
187add_subdirectory(EPOS)
188add_subdirectory(EVE)
189add_subdirectory(EVGEN)
190add_subdirectory(FASTSIM)
191add_subdirectory(FIT)
192add_subdirectory(FMD)
193add_subdirectory(HLT)
194add_subdirectory(HMPID)
195add_subdirectory(ITS)
196add_subdirectory(JETAN)
197add_subdirectory(MFT)
198add_subdirectory(MONITOR)
199add_subdirectory(MUON)
200add_subdirectory(OADB)
201add_subdirectory(PHOS)
202add_subdirectory(PMD)
203add_subdirectory(PYTHIA8)
204add_subdirectory(STARLIGHT)
205add_subdirectory(STAT)
206add_subdirectory(STRUCT)
207add_subdirectory(T0)
208add_subdirectory(TDPMjet)
209add_subdirectory(TEvtGen)
210add_subdirectory(THerwig)
211add_subdirectory(TOF)
212add_subdirectory(TPC)
213add_subdirectory(TRD)
214add_subdirectory(TRIGGER)
215add_subdirectory(TTherminator)
216add_subdirectory(VZERO)
217add_subdirectory(ZDC)
218
219# Fortran modules
220if(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)
235endif(CMAKE_Fortran_COMPILER)
236
237# Enable SHUTTLE compilation
238# Check if DIMDIR and ODIR are set
239if(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()
245endif(SHUTTLE)
246
247add_subdirectory(ALIROOT)