PMD module
[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
cbd58b9c 20cmake_minimum_required(VERSION 2.8.8 FATAL_ERROR)
e969a926 21
d50827fc 22project(AliRoot CXX C)
bf4c2121 23
d50827fc 24# If no Fortran, i.e on Windows
25include(CheckLanguage)
26check_language(Fortran)
27if(CMAKE_Fortran_COMPILER)
28 enable_language(Fortran OPTIONAL)
29else()
30 message("No Fortran support. Disabling LHAPDF, PHYTIA6, MICROCERN")
6a8ffaaa 31endif()
6db31708 32
d50827fc 33# Path to additonal modules
f72dcc4f 34set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")
d50827fc 35include(CMakeALICE)
6db31708 36
d50827fc 37# ROOT configuration mandatory
38if(ROOTSYS)
39 find_package(ROOT REQUIRED)
234c484d 40
41 # ROOT must be build with XML2 support
42 if(ROOT_HASXML STREQUAL "no")
43 message(FATAL_ERROR "ROOT was not build with xml2 support. Please reinstall or rebuild ROOT with xml2 support")
44 endif(ROOT_HASXML STREQUAL "no")
d50827fc 45else()
46 message(FATAL_ERROR "ROOT installation not found!\nPlease point to the ROOT installation using -DROOTSYS=ROOT_INSTALL_DIR")
47endif(ROOTSYS)
6db31708 48
56966a5e 49# DATE
50find_package(DATE)
51
d50827fc 52# Configure ARVerion.h using Git informatiion
d37e8011 53# Sets 3 git variables
54# - GIT_REFSPEC - complete name of the current reference
55# - ALIROOT_BRANCH - name of the branch or tag extracted from the current reference
56# - GIT_SHA1 - current hash in the long format
57# - GIT_SHORT_SHA1 - current hash in the short format
0492edf5 58if(EXISTS ${PROJECT_SOURCE_DIR}/.git/)
d50827fc 59 include(GetGitRevisionDescription)
60
61 find_package(Git)
62
63 if(GIT_FOUND)
64 get_git_head_revision(GIT_REFSPEC GIT_SHA1)
65
66 # GIT_REFSPEC is empty for detached mode = tags in detached mode or checkout to specific hash
67
68 # returns the closest reference to the current hash
69 # name of the current tag or heads/branch in the case of branches
70 git_describe(ALIROOT_GIT_TAG "--all" "--abbrev=0")
71
72 STRING(REGEX REPLACE "^(.+/)(.+)/(.*)$" "\\2" BRANCH_TYPE "${GIT_REFSPEC}" )
73
74 # the revision is not set in the case of a branch, it means we are doing development
75 # and the revision will trigger a reconfiguration
76 if(BRANCH_TYPE STREQUAL "heads")
77 set(ALIROOT_REVISION "ThisIsaBranchNoRevisionProvided")
78 STRING(REGEX REPLACE "^(.+/)(.+/)(.*)$" "\\3" SHORT_BRANCH "${GIT_REFSPEC}" )
79 else()
80 set(SHORT_BRANCH ${ALIROOT_GIT_TAG})
81 set(ALIROOT_REVISION ${GIT_SHA1})
82 endif()
83
84 set(ALIROOT_BRANCH ${SHORT_BRANCH})
d37e8011 85
d50827fc 86 # generate the short version of the revision hash
87 execute_process(COMMAND git rev-parse --short ${GIT_SHA1}
d37e8011 88 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
89 OUTPUT_STRIP_TRAILING_WHITESPACE
90 RESULT_VARIABLE res
91 OUTPUT_VARIABLE GIT_SHORT_SHA1)
92
d50827fc 93 # if the rev-parse fails we set the short sha to the long initial one
94 if(NOT res EQUAL 0)
95 set(GIT_SHORT_SHA1 ${GIT_SHA1})
96 endif()
d37e8011 97
d50827fc 98 message(STATUS "Aliroot branch/tag: \"${ALIROOT_BRANCH}\" - Revision: \"${GIT_SHORT_SHA1}\" ")
0492edf5 99
d50827fc 100 else()
101 message(STATUS "Git not installed. I can't tell you which revision you are using!")
102 endif(GIT_FOUND)
0492edf5 103else()
d50827fc 104 message("AliRoot sources not downloaded from a Version Control System. I can't tell which revision you are using!")
0492edf5
A
105endif(EXISTS ${PROJECT_SOURCE_DIR}/.git/)
106
d50827fc 107configure_file(${PROJECT_SOURCE_DIR}/cmake/ARVersion.h.tmp ${CMAKE_BINARY_DIR}/version/ARVersion.h @ONLY)
108install(FILES ${PROJECT_BINARY_DIR}/version/ARVersion.h DESTINATION include)
0492edf5
A
109
110string (REPLACE "-" "." ALIROOT_BRANCH_SPEC "${ALIROOT_BRANCH}")
6db31708 111
d50827fc 112message(STATUS "CMake platform: ${CMAKE_SYSTEM}")
113message(STATUS "Build folder: ${AliRoot_BINARY_DIR}")
114message(STATUS "Source folder: ${AliRoot_SOURCE_DIR}")
115message(STATUS "Installation folder: ${CMAKE_INSTALL_PREFIX}")
116
117
118# AliRoot modules
17f9c1f8 119add_subdirectory(STEER)
120add_subdirectory(STAT)
121add_subdirectory(OADB)
122add_subdirectory(ANALYSIS)
123add_subdirectory(RAW)
124add_subdirectory(ITS)
125add_subdirectory(TPC)
126add_subdirectory(VZERO)
93cad35e 127add_subdirectory (T0)
6cc87626 128add_subdirectory (TOF)
464611d8 129add_subdirectory (TRD)
b81ada2f 130add_subdirectory (ZDC)
73230f04 131add_subdirectory (STRUCT)
58c271b6 132add_subdirectory (HMPID)
82795f89 133add_subdirectory (PMD)
d50827fc 134#add_subdirectory (MUON)
135#add_subdirectory (FMD)
136#add_subdirectory (ACORDE)
137#add_subdirectory (EMCAL)
138#add_subdirectory (PHOS)
139#add_subdirectory (TRIGGER)
140#add_subdirectory (BCM)
141#add_subdirectory (CORRFW)
142#add_subdirectory (FASTSIM)
143#if(CMAKE_Fortran_COMPILER_WORKS)
144# add_subdirectory (LHAPDF)
145# add_subdirectory (PYTHIA6)
146# add_subdirectory (MICROCERN)
147#endif(CMAKE_Fortran_COMPILER_WORKS)
148#add_subdirectory (EVGEN)
149#add_subdirectory (TUHKMgen)
150#add_subdirectory (TTherminator)
151#add_subdirectory (TPHIC)
152#add_subdirectory (THydjet)
153#add_subdirectory (PWG)
154#add_subdirectory (Vc)
155#add_subdirectory (HLT)