]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - CMakeLists.txt
Extracting proper libraries, include and library path from fastjet-config
[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# You can change the build type using
42# cmake -DCMAKE_BUILD_TYPE=DEBUG|RELEASE|RELWITHDEBINFO|MINSIZEREL...
43if (NOT CMAKE_BUILD_TYPE)
44 set(CMAKE_BUILD_TYPE RELWITHDEBINFO)
45endif(NOT CMAKE_BUILD_TYPE)
46
47# ROOT dictionaries and maps
48include(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
55if(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()
61endif()
62
63# daqDA
64if(daqDA)
65 find_package(daqDA)
66endif(daqDA)
67
68# AMORE
69if(AMORE_CONFIG)
70 if(ROOTSYS)
71 find_package(AMORE)
72 else()
73 message(FATAL_ERROR "AMORE enabled but no ROOTSYS defined")
74 endif()
75endif(AMORE_CONFIG)
76
77# DA is enabled
78if(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")
102endif(DA)
103
104# MDC rpm creation enables the static build
105if(MDCRPM)
106 set(ALIROOT_STATIC TRUE)
107 message(STATUS "AliMDC RPM enabled. AliRoot static build enabled")
108endif(MDCRPM)
109
110# ROOT configuration mandatory
111if(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)
118else()
119 message(FATAL_ERROR "ROOT installation not found!\nPlease point to the ROOT installation using -DROOTSYS=ROOT_INSTALL_DIR")
120endif(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)
125include(CheckLanguage)
126
127if(ROOT_FORTRAN)
128 message(STATUS "Using the Fortran compiler defined by ROOT configuration: ${ROOT_FORTRAN}")
129 set(CMAKE_Fortran_COMPILER ${ROOT_FORTRAN})
130else()
131 message(STATUS "Using default system Fortran compiler")
132endif(ROOT_FORTRAN)
133
134check_language(Fortran)
135if(CMAKE_Fortran_COMPILER)
136 enable_language(Fortran OPTIONAL)
137else()
138 message(STATUS "No Fortran support. Disabling LHAPDF, PHYTIA6, MICROCERN, etc.")
139endif()
140
141# DATE
142if(DATE_CONFIG)
143 find_package(DATE)
144endif(DATE_CONFIG)
145
146# daqDA
147if(daqDA)
148 find_package(daqDA)
149endif(daqDA)
150
151# DA is enabled
152if(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")
166endif(DA)
167
168# FastJet
169find_package(FASTJET)
170
171# ZEROMQ
172find_package(ZeroMQ)
173
174message(STATUS "CMake platform: ${CMAKE_SYSTEM}")
175message(STATUS "Build folder: ${AliRoot_BINARY_DIR}")
176message(STATUS "Source folder: ${AliRoot_SOURCE_DIR}")
177message(STATUS "Installation folder: ${CMAKE_INSTALL_PREFIX}")
178
179# General flags -> Should be moved into a configuration file
180set(CMAKE_POSITION_INDEPENDENT_CODE TRUE)
181set(CMAKE_NO_SYSTEM_FROM_IMPORTED TRUE)
182
183# AliRoot base modules
184add_subdirectory(STEER)
185add_subdirectory(RAW)
186add_subdirectory(ANALYSIS)
187
188# Include Vc own cmake
189include(Vc/Vc.cmake)
190add_subdirectory(Vc)
191
192# AliRoot modules
193add_subdirectory(ACORDE)
194add_subdirectory(AD)
195add_subdirectory(BCM)
196add_subdirectory(CORRFW)
197add_subdirectory(EMCAL)
198add_subdirectory(EPOS)
199add_subdirectory(EVE)
200add_subdirectory(EVGEN)
201add_subdirectory(FASTSIM)
202add_subdirectory(FIT)
203add_subdirectory(FMD)
204add_subdirectory(HLT)
205add_subdirectory(HMPID)
206add_subdirectory(ITS)
207add_subdirectory(JETAN)
208add_subdirectory(MFT)
209add_subdirectory(MONITOR)
210add_subdirectory(MUON)
211add_subdirectory(OADB)
212add_subdirectory(PHOS)
213add_subdirectory(PMD)
214add_subdirectory(PYTHIA8)
215add_subdirectory(STARLIGHT)
216add_subdirectory(STAT)
217add_subdirectory(STRUCT)
218add_subdirectory(T0)
219add_subdirectory(TDPMjet)
220add_subdirectory(TEvtGen)
221add_subdirectory(THerwig)
222add_subdirectory(TOF)
223add_subdirectory(TPC)
224add_subdirectory(TRD)
225add_subdirectory(TRIGGER)
226add_subdirectory(TTherminator)
227add_subdirectory(VZERO)
228add_subdirectory(ZDC)
229
230# Fortran modules
231if(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)
246endif(CMAKE_Fortran_COMPILER)
247
248# PWG libraries
249add_subdirectory(PWG)
250add_subdirectory(PWGCF)
251# Depends on PWGCF - To fix dependencies
252add_subdirectory(PWGGA)
253# Depends on CF - To fix the dependencies
254add_subdirectory(PWGDQ)
255add_subdirectory(PWGHF)
256# Depends on CF
257add_subdirectory(PWGJE)
258add_subdirectory(PWGLF)
259add_subdirectory(PWGPP)
260add_subdirectory(PWGUD)
261add_subdirectory(data)
262
263# Enable SHUTTLE compilation
264# Check if DIMDIR and ODIR are set
265if(SHUTTLE)
266 if(DIMDIR AND ODIR AND ALIEN)
267 add_subdirectory(SHUTTLE)
268 else()
269 message(FATAL_ERROR "SHUTTLE enabled! Please specify DIMDIR, ODIR and ALIEN")
270 endif()
271endif(SHUTTLE)
272
273add_subdirectory(ALIROOT)
274
275# Data
276add_subdirectory(data)