TENDER becomes Tender, removing .so
[u/mrichter/AliRoot.git] / CMakeLists.txt
CommitLineData
d50827fc 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#--------------------------------------------------------------------------#
e969a926 19
139cbc46 20cmake_minimum_required(VERSION 2.8.11 FATAL_ERROR)
e969a926 21
d50827fc 22project(AliRoot CXX C)
bf4c2121 23
04484146 24message(STATUS "CMake platform: ${CMAKE_SYSTEM}")
25message(STATUS "Build folder: ${AliRoot_BINARY_DIR}")
26message(STATUS "Source folder: ${AliRoot_SOURCE_DIR}")
27message(STATUS "Installation folder: ${CMAKE_INSTALL_PREFIX}")
28
29if(CMAKE_INSTALL_PREFIX STREQUAL "${AliRoot_SOURCE_DIR}")
30 message(FATAL_ERROR "Please choose a different installation point than the source tree!")
31endif()
32
d50827fc 33# Path to additonal modules
c2f9135f 34set(CMAKE_MODULE_PATH "${AliRoot_SOURCE_DIR}/cmake")
35
36# AliRoot version extracted from Git repository
37# Sets 4 git variables
38# - GIT_REFSPEC - complete name of the current reference
39# - ALIROOT_BRANCH - name of the branch or tag extracted from the current reference
40# - GIT_SHA1 - current hash in the long format
41# - GIT_SHORT_SHA1 - current hash in the short format
42# - ALIROOT_VERSION = ALIROOT_BRANCH
43# - ALIROOT_REVISION = GIT_SHORT_SHA1
44include(CheckGitVersion)
b22a7396 45
46# - CLANG_MAJOR.CLANG_MINOR or
47# - GCC_MAJOR.GCC_MINOR.GCC_PATCH
48include(CheckCompiler)
49
c4faffc2 50# You can change the build type using
51# cmake -DCMAKE_BUILD_TYPE=DEBUG|RELEASE|RELWITHDEBINFO|MINSIZEREL...
52if (NOT CMAKE_BUILD_TYPE)
53 set(CMAKE_BUILD_TYPE RELWITHDEBINFO)
54endif(NOT CMAKE_BUILD_TYPE)
55
b22a7396 56# ROOT dictionaries and maps
d50827fc 57include(CMakeALICE)
6db31708 58
f82bfa66 59# Checking first for DIM, DATE, AMORE and daqDA
60# in case ROOT Extra static library needs to be enabled
61
62# DATE
ec8c8ea6 63# date-config needs DIMDIR and ODIR set
f82bfa66 64if(DATE_CONFIG)
ec8c8ea6 65 if(DIMDIR AND ODIR)
66 find_package(DATE)
67 else()
68 message(FATAL_ERROR "DATE enabled but no DIMDIR and ODIR set. Please set DIMDIR and ODIR")
69 endif()
70endif()
f82bfa66 71
72# daqDA
73if(daqDA)
74 find_package(daqDA)
75endif(daqDA)
76
77# AMORE
78if(AMORE_CONFIG)
ec8c8ea6 79 if(ROOTSYS)
80 find_package(AMORE)
81 else()
82 message(FATAL_ERROR "AMORE enabled but no ROOTSYS defined")
83 endif()
f82bfa66 84endif(AMORE_CONFIG)
85
86# DA is enabled
87if(DA)
88 if(NOT DIMDIR AND NOT ODIR)
89 set(DA FALSE)
90 message(FATAL_ERROR "Das enabled but no DIMDIR and ODIR set. Please set DIMDIR to DIM installation and ODIR to platform (default linux)")
91 endif()
92
93 if(NOT DATE_FOUND)
94 set(DA FALSE)
95 message(FATAL_ERROR "DAs enabled but no DATE support found. Please point to your date installation using \"DATE_CONFIG\" variable")
96 endif()
97
98 if(NOT daqDA_FOUND)
99 set(DA FALSE)
100 message(FATAL_ERROR "DAs enabled but no daqDA support found. Please point to your daqDA installation using \"daqDA\" variable")
101 endif()
102
103 if(NOT AMORE_FOUND)
104 set(DA FALSE)
105 message(FATAL_ERROR "DAs enabled but no AMORE support found. Please point to your AMORE installation using \"AMORE_CONFIG\" variable")
106 endif()
107
108 # Enable static libraries
109 set(ALIROOT_STATIC TRUE)
110 message(STATUS "DAs enabled")
111endif(DA)
112
fae85bcc 113# MDC rpm creation enables the static build
114if(MDCRPM)
115 set(ALIROOT_STATIC TRUE)
116 message(STATUS "AliMDC RPM enabled. AliRoot static build enabled")
117endif(MDCRPM)
118
d50827fc 119# ROOT configuration mandatory
120if(ROOTSYS)
121 find_package(ROOT REQUIRED)
234c484d 122
123 # ROOT must be build with XML2 support
4d31eb1c 124 if(NOT ROOT_HASXML)
234c484d 125 message(FATAL_ERROR "ROOT was not build with xml2 support. Please reinstall or rebuild ROOT with xml2 support")
7d1be1d5 126 endif(NOT ROOT_HASXML)
d50827fc 127else()
128 message(FATAL_ERROR "ROOT installation not found!\nPlease point to the ROOT installation using -DROOTSYS=ROOT_INSTALL_DIR")
129endif(ROOTSYS)
6db31708 130
1dbe1076 131# If no Fortran, i.e on Windows
132# We need to specify ROOT fortran
133# (f95 comes before gfortran in default module)
134include(CheckLanguage)
135
136if(ROOT_FORTRAN)
137 message(STATUS "Using the Fortran compiler defined by ROOT configuration: ${ROOT_FORTRAN}")
138 set(CMAKE_Fortran_COMPILER ${ROOT_FORTRAN})
139else()
140 message(STATUS "Using default system Fortran compiler")
141endif(ROOT_FORTRAN)
142
143check_language(Fortran)
144if(CMAKE_Fortran_COMPILER)
145 enable_language(Fortran OPTIONAL)
146else()
f82bfa66 147 message(STATUS "No Fortran support. Disabling LHAPDF, PHYTIA6, MICROCERN, etc.")
1dbe1076 148endif()
149
56966a5e 150# DATE
f82bfa66 151if(DATE_CONFIG)
152 find_package(DATE)
153endif(DATE_CONFIG)
154
155# daqDA
156if(daqDA)
157 find_package(daqDA)
158endif(daqDA)
159
160# DA is enabled
161if(DA)
162 if(NOT DATE_FOUND)
163 set(DA FALSE)
164 message(FATAL_ERROR "DAs enabled but no DATE support found. Please point to your date installation using \"DATE_CONFIG\"")
165 endif()
166
167 if(NOT daqDA_FOUND)
168 set(DA FALSE)
169 message(FATAL_ERROR "DAs enabled but no daqDA support found. Please point to your daqDA installation using \"daqDA\" variable")
170 endif()
171
172 # Enable static libraries
173 set(ALIROOT_STATIC TRUE)
174 message(STATUS "DAs enabled")
175endif(DA)
56966a5e 176
b5576c4e 177# FastJet
178find_package(FASTJET)
179
3c77e1ef 180# ZEROMQ
181find_package(ZeroMQ)
182
4d31eb1c 183# General flags -> Should be moved into a configuration file
184set(CMAKE_POSITION_INDEPENDENT_CODE TRUE)
139cbc46 185set(CMAKE_NO_SYSTEM_FROM_IMPORTED TRUE)
d50827fc 186
63697604 187# AliRoot base modules
17f9c1f8 188add_subdirectory(STEER)
17f9c1f8 189add_subdirectory(RAW)
63697604 190add_subdirectory(ANALYSIS)
191
192# Include Vc own cmake
193include(Vc/Vc.cmake)
194add_subdirectory(Vc)
195
196# AliRoot modules
197add_subdirectory(ACORDE)
198add_subdirectory(AD)
199add_subdirectory(BCM)
200add_subdirectory(CORRFW)
201add_subdirectory(EMCAL)
9d62600c 202add_subdirectory(EPOS)
63697604 203add_subdirectory(EVE)
204add_subdirectory(EVGEN)
205add_subdirectory(FASTSIM)
206add_subdirectory(FIT)
207add_subdirectory(FMD)
208add_subdirectory(HLT)
209add_subdirectory(HMPID)
17f9c1f8 210add_subdirectory(ITS)
63697604 211add_subdirectory(JETAN)
80afaccc 212add_subdirectory(MFT)
63697604 213add_subdirectory(MONITOR)
214add_subdirectory(MUON)
215add_subdirectory(OADB)
216add_subdirectory(PHOS)
217add_subdirectory(PMD)
a31c2f7d 218add_subdirectory(PYTHIA8)
63697604 219add_subdirectory(STARLIGHT)
220add_subdirectory(STAT)
221add_subdirectory(STRUCT)
97e8d2a8 222add_subdirectory(T0)
72017ac8 223add_subdirectory(TDPMjet)
e706c082 224add_subdirectory(TEvtGen)
16765dcc 225add_subdirectory(THerwig)
97e8d2a8 226add_subdirectory(TOF)
63697604 227add_subdirectory(TPC)
97e8d2a8 228add_subdirectory(TRD)
25f88fb9 229add_subdirectory(TRIGGER)
63697604 230add_subdirectory(TTherminator)
231add_subdirectory(VZERO)
232add_subdirectory(ZDC)
67018bf4 233
63697604 234# Fortran modules
1dbe1076 235if(CMAKE_Fortran_COMPILER)
c462af85 236 add_subdirectory(DIME)
237 add_subdirectory(DPMJET)
64609fcd 238 add_subdirectory(HERWIG)
63697604 239 add_subdirectory(HIJING)
116e4267 240 add_subdirectory(LHAPDF)
116e4267 241 add_subdirectory(MICROCERN)
63697604 242 add_subdirectory(PYTHIA6)
ba812042 243 add_subdirectory(TEPEMGEN)
27b08c46 244 add_subdirectory(THbtp)
a95d9137 245 add_subdirectory(THijing)
63697604 246 add_subdirectory(THydjet)
247 add_subdirectory(TPHIC)
248 add_subdirectory(TUHKMgen)
9b863d49 249 add_subdirectory(TAmpt)
1dbe1076 250endif(CMAKE_Fortran_COMPILER)
67018bf4 251
808c7763 252# PWG libraries
253add_subdirectory(PWG)
dd871bd4 254add_subdirectory(PWGCF)
7d9133a4 255# Depends on PWGCF - To fix dependencies
256add_subdirectory(PWGGA)
f1b16b21 257# Depends on CF - To fix the dependencies
dc36458f 258add_subdirectory(PWGDQ)
a39671d1 259add_subdirectory(PWGHF)
f1b16b21 260# Depends on CF
5c548d2a 261add_subdirectory(PWGJE)
4b2ba9c7 262add_subdirectory(PWGLF)
ea1e04c4 263add_subdirectory(PWGPP)
16a875b0 264add_subdirectory(PWGUD)
7c29eb0f 265add_subdirectory(data)
808c7763 266
67018bf4 267# Enable SHUTTLE compilation
268# Check if DIMDIR and ODIR are set
269if(SHUTTLE)
101cc341 270 if(ROOT_HASALIEN STREQUAL "no")
271 message(FATAL_ERROR "Shuttle needs ROOT build with AliEn support. Please build ROOT with AliEn support. Do not forget to set ALIEN to your AliEn installation")
272 endif()
273
67018bf4 274 if(DIMDIR AND ODIR AND ALIEN)
275 add_subdirectory(SHUTTLE)
276 else()
277 message(FATAL_ERROR "SHUTTLE enabled! Please specify DIMDIR, ODIR and ALIEN")
278 endif()
279endif(SHUTTLE)
034aa4b3 280
101cc341 281add_subdirectory(ALIROOT)