]>
Commit | Line | Data |
---|---|---|
e969a926 | 1 | # -*- mode: cmake -*- |
e969a926 | 2 | |
3 | # Check if cmake has the required version | |
4 | Cmake_Minimum_Required(VERSION 2.6 FATAL_ERROR) | |
5 | ||
6 | # Set name of our project to AliRoot. To be done after check of cmake version | |
f7d3fd75 | 7 | Project(AliRoot NONE) |
e969a926 | 8 | |
9 | # Set AliRoot variables | |
10 | Set(ALICE_ROOT $ENV{ALICE_ROOT}) | |
11 | Set(ALICE $ENV{ALICE}) | |
96c0c856 | 12 | Set(ALICE_STATIC_BUILD OFF CACHE BOOL "Build also statics libs") |
e969a926 | 13 | |
96c0c856 | 14 | MESSAGE("ALICE_ROOT: ${ALICE_ROOT}") |
15 | Set(CMAKE_VERBOSE_MAKEFILE ON) | |
e969a926 | 16 | |
17 | # where to look first for cmake modules, before ${CMAKE_ROOT}/Modules/ | |
96c0c856 | 18 | SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin) |
19 | SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib) | |
e969a926 | 20 | Set(CMAKE_MODULE_PATH "${ALICE_ROOT}/cmake/modules") |
21 | ||
f7d3fd75 | 22 | # To fix a hack that has been introduced for the Mac |
23 | If(APPLE) | |
24 | Set(CMAKE_INSTALL_NAME_TOOL CMAKE_INSTALL_NAME_TOOL-NOTFOUND) | |
25 | Endif(APPLE) | |
26 | ||
f7d3fd75 | 27 | # Setup ROOT |
28 | Find_package(ROOT 5.0.0 REQUIRED) | |
29 | ||
30 | Set(CMAKE_C_COMPILER $ENV{CC}) | |
31 | Enable_Language(C) | |
32 | ||
33 | Set(CMAKE_CXX_COMPILER $ENV{CXX}) | |
34 | Enable_Language(CXX) | |
35 | ||
36 | Set(CMAKE_Fortran_COMPILER $ENV{F77}) | |
37 | Enable_Language(Fortran) | |
38 | ||
e969a926 | 39 | # Load some basic macros which are needed later on |
40 | #Include(WriteConfigFile) | |
41 | Include(Dart) | |
42 | Include(ALICEMacros) | |
43 | ||
44 | # Check if the user wants to build the project in the source directory | |
45 | Check_out_of_Source_Build() | |
46 | ||
47 | # searches for needed packages | |
48 | ||
e969a926 | 49 | Set(ALIROOT_INSTALL_DIR ${ALICE_ROOT}/${ALICE_TARGET}) |
50 | ||
51 | # Setup GEANT3 | |
52 | Find_package(GEANT3 REQUIRED) | |
53 | ||
54 | # Setup RuleChecker | |
55 | Find_Package(RuleChecker) | |
56 | ||
57 | # Check if DATE is installed | |
58 | Find_Package(DATE) | |
59 | ||
60 | # Setup system dependent flags | |
61 | SetupSystem() | |
62 | ||
96c0c856 | 63 | |
64 | Option(GENERATE_FILES "Generate CMake input files from package files" OFF) | |
65 | if(GENERATE_FILES) | |
66 | Include(CreateSubCMakeFiles) | |
67 | CreateSubCMakeFiles() | |
68 | endif(GENERATE_FILES) | |
69 | ||
e969a926 | 70 | # Set the library version in the main CMakeLists.txt |
71 | SET(ALIROOT_MAJOR_VERSION 0) | |
72 | SET(ALIROOT_MINOR_VERSION 0) | |
73 | SET(ALIROOT_PATCH_VERSION 0) | |
74 | SET(ALIROOT_VERSION "${ALIROOT_MAJOR_VERSION}.${ALIROOT_MINOR_VERSION}.${ALIROOT_PATCH_VERSION}") | |
75 | SET(ALIROOT_LIBRARY_PROPERTIES ${ALIROOT_LIBRARY_PROPERTIES} | |
76 | VERSION "${ALIROOT_VERSION}" | |
77 | SOVERSION "${ALIROOT_MAJOR_VERSION}" | |
78 | SUFFIX ".so" | |
79 | ) | |
80 | ||
81 | # Set version variables | |
6455495f | 82 | Find_program( READLINK_PROGRAM readlink) |
83 | ||
84 | If(READLINK_PROGRAM) | |
85 | Execute_process(COMMAND readlink -f ${ALICE_ROOT} | |
86 | COMMAND xargs svn info | |
87 | OUTPUT_VARIABLE _svn_out) | |
88 | Else(READLINK_PROGRAM) | |
89 | Execute_process(COMMAND svn info ${ALICE_ROOT} | |
90 | OUTPUT_VARIABLE _svn_out) | |
91 | Endif(READLINK_PROGRAM) | |
e969a926 | 92 | |
93 | String(REGEX REPLACE "^.*Revision: ([^\n]*).*$" "\\1" | |
94 | ALIROOT_SVN_REVISION ${_svn_out}) | |
95 | String(REGEX REPLACE "^.*URL: https://alisoft.cern.ch/AliRoot/([^\n]*).*$" "w \\1" | |
96 | ALIROOT_SVN_BRANCH ${_svn_out}) | |
249caf77 | 97 | String(REPLACE "/" "\\\\/" |
98 | ALIROOT_SVN_BRANCH ${ALIROOT_SVN_BRANCH}) | |
e969a926 | 99 | |
100 | # Additional targets | |
101 | Add_Custom_Target(check-all COMMENT "Checking coding conventions") | |
102 | ||
103 | # Configure special include file | |
96c0c856 | 104 | # Only if there is a change in the file |
e969a926 | 105 | If(UNIX) |
106 | Set(_in ${CMAKE_CURRENT_SOURCE_DIR}/STEER/ARVersion.h.in) | |
107 | Set(_out ${CMAKE_CURRENT_BINARY_DIR}/STEER/ARVersion.h) | |
96c0c856 | 108 | If(NOT EXISTS ${_out}) |
109 | Add_custom_target(ARversion ALL | |
110 | COMMAND sed < ${_in} | |
111 | -e "s/\\@ALIROOT_SVN_REVISION\\@/${ALIROOT_SVN_REVISION}/" | |
112 | -e "s/\\@ALIROOT_SVN_BRANCH\\@/${ALIROOT_SVN_BRANCH}/" | |
113 | -e "s/\\@ALIROOT_VERSION\\@/${ALIROOT_VERSION}/" > ${_out}) | |
114 | Install(FILES ${_out} DESTINATION ${ALIROOT_INSTALL_DIR}/include) | |
115 | Else(NOT EXISTS ${_out}) | |
116 | FILE(READ "${_out}" contents) | |
117 | STRING(REGEX REPLACE ";" "\\\\;" contents "${contents}") | |
118 | STRING(REGEX REPLACE "\n" ";" contents "${contents}") | |
119 | Foreach(line ${contents}) | |
120 | If(line MATCHES "^.*ALIROOT_SVN_REVISION.*$") | |
121 | STRING(REGEX REPLACE "^.*ALIROOT_SVN_REVISION[ ](.*)$" "\\1" _result_svn_rev "${line}") | |
122 | EndIf(line MATCHES "^.*ALIROOT_SVN_REVISION.*$") | |
123 | If(line MATCHES "^.*ALIROOT_SVN_BRANCH.*$") | |
124 | STRING(REGEX REPLACE "^.*ALIROOT_SVN_BRANCH[ ]\"(.*)\"$" "\\1" _result_svn_branch "${line}") | |
125 | EndIf(line MATCHES "^.*ALIROOT_SVN_BRANCH.*$") | |
126 | If(line MATCHES "^.*ALIROOT_VERSION.*$") | |
127 | STRING(REGEX REPLACE "^.*ALIROOT_VERSION[ ](.*)$" "\\1" _result_aliroot_version "${line}") | |
128 | EndIf(line MATCHES "^.*ALIROOT_VERSION.*$") | |
129 | EndForeach(line ${contents}) | |
130 | If(_result_aliroot_version STREQUAL ${ALIROOT_VERSION} AND _result_svn_rev STREQUAL ${ALIROOT_SVN_REVISION} AND _result_svn_branch STREQUAL ${ALIROOT_SVN_BRANCH}) | |
131 | # MESSAGE("VERSION: ${_result_aliroot_version}") | |
132 | # MESSAGE("VERSION: ${ALIROOT_VERSION}") | |
133 | # MESSAGE("REVISION: ${_result_svn_rev}") | |
134 | # MESSAGE("REVISION: ${ALIROOT_SVN_REVISION}") | |
135 | # MESSAGE("BRANCH: ${_result_svn_branch}") | |
136 | # MESSAGE("BRANCH: ${ALIROOT_SVN_BRANCH}") | |
137 | Else(_result_aliroot_version STREQUAL ${ALIROOT_VERSION} AND _result_svn_rev STREQUAL ${ALIROOT_SVN_REVISION} AND _result_svn_branch STREQUAL ${ALIROOT_SVN_BRANCH}) | |
138 | Add_custom_target(ARversion ALL | |
139 | COMMAND sed < ${_in} | |
e969a926 | 140 | -e "s/\\@ALIROOT_SVN_REVISION\\@/${ALIROOT_SVN_REVISION}/" |
141 | -e "s/\\@ALIROOT_SVN_BRANCH\\@/${ALIROOT_SVN_BRANCH}/" | |
142 | -e "s/\\@ALIROOT_VERSION\\@/${ALIROOT_VERSION}/" > ${_out}) | |
96c0c856 | 143 | Install(FILES ${_out} DESTINATION ${ALIROOT_INSTALL_DIR}/include) |
144 | EndIf(_result_aliroot_version STREQUAL ${ALIROOT_VERSION} AND _result_svn_rev STREQUAL ${ALIROOT_SVN_REVISION} AND _result_svn_branch STREQUAL ${ALIROOT_SVN_BRANCH}) | |
145 | EndIf(NOT EXISTS ${_out}) | |
146 | ||
e969a926 | 147 | Endif(UNIX) |
148 | ||
149 | # This would work, but just once... we want this to happen at every make | |
150 | # Configure_file(${CMAKE_CURRENT_SOURCE_DIR}/STEER/ARVersion.h.in | |
151 | #${CMAKE_CURRENT_BINARY_DIR}/STEER/ARVersion.h @ONLY) | |
152 | ||
153 | # Recurse into the given subdirectories. This does not actually | |
154 | # cause another cmake executable to run. The same process will walk through | |
155 | # the project's entire directory structure. | |
156 | ||
157 | #Add_subdirectory(PYTHIA8) | |
158 | #Add_subdirectory(TFluka) | |
159 | #Add_subdirectory(THydjet) | |
160 | ||
161 | Add_subdirectory(ACORDE) | |
162 | Add_subdirectory(ANALYSIS) | |
163 | Add_subdirectory(BCM) | |
164 | Add_subdirectory(CORRFW) | |
165 | Add_subdirectory(DPMJET) | |
166 | Add_subdirectory(EMCAL) | |
fe9fbf07 | 167 | Add_subdirectory(EPOS) |
e969a926 | 168 | Add_subdirectory(ESDCheck) |
169 | Add_subdirectory(EVE) | |
170 | Add_subdirectory(EVGEN) | |
171 | Add_subdirectory(FASTSIM) | |
172 | Add_subdirectory(FMD) | |
e969a926 | 173 | Add_subdirectory(HERWIG) |
174 | Add_subdirectory(HIJING) | |
175 | Add_subdirectory(HLT) | |
176 | Add_subdirectory(HMPID) | |
177 | Add_subdirectory(ITS) | |
178 | Add_subdirectory(JETAN) | |
179 | Add_subdirectory(LHAPDF) | |
180 | Add_subdirectory(LHC) | |
181 | Add_subdirectory(MICROCERN) | |
182 | Add_subdirectory(MONITOR) | |
183 | Add_subdirectory(MUON) | |
184 | Add_subdirectory(PHOS) | |
185 | Add_subdirectory(PMD) | |
186 | Add_subdirectory(PWG0) | |
187 | Add_subdirectory(PWG1) | |
188 | Add_subdirectory(PWG2) | |
189 | Add_subdirectory(PWG3) | |
190 | Add_subdirectory(PWG4) | |
191 | Add_subdirectory(PYTHIA6) | |
192 | Add_subdirectory(RALICE) | |
193 | Add_subdirectory(RAW) | |
194 | Add_subdirectory(STAT) | |
195 | Add_subdirectory(STEER) | |
196 | Add_subdirectory(STRUCT) | |
197 | Add_subdirectory(T0) | |
198 | Add_subdirectory(TDPMjet) | |
199 | Add_subdirectory(TEPEMGEN) | |
200 | Add_subdirectory(THbtp) | |
201 | Add_subdirectory(THerwig) | |
202 | Add_subdirectory(THijing) | |
ddd9c299 | 203 | #Add_subdirectory(TIsajet) |
e969a926 | 204 | Add_subdirectory(TOF) |
205 | Add_subdirectory(TPC) | |
206 | Add_subdirectory(TPHIC) | |
207 | Add_subdirectory(TRD) | |
96c0c856 | 208 | Add_subdirectory(TRIGGER) |
e969a926 | 209 | Add_subdirectory(TTherminator) |
fe9fbf07 | 210 | Add_subdirectory(TUHKMgen) |
e969a926 | 211 | Add_subdirectory(VZERO) |
212 | Add_subdirectory(ZDC) | |
96c0c856 | 213 | # |
e969a926 | 214 | Add_subdirectory(ALIROOT) |
215 |