]> git.uio.no Git - u/mrichter/AliRoot.git/blame - cmake/ALICE_CMake.cmake
Set of fixes for the DA + updated documentation (Johny)
[u/mrichter/AliRoot.git] / cmake / ALICE_CMake.cmake
CommitLineData
6db31708 1# AliRoot Build System Utility Macro and Function definitions
2#
3# Author: Johny Jose (johny.jose@cern.ch)
4# Port of previous Makefile build to cmake
5
6cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
7
8macro(ALICE_DevFlagsOutput)
9
10 if(ALICEDEV STREQUAL "YES")
11 message(STATUS "FFLAGS : ${FFLAGS}")
12 message(STATUS "CXXFLAGS : ${CXXFLAGS}")
13 message(STATUS "CFLAGS : ${CFLAGS}")
14 message(STATUS "SOFLAGS : ${SOFLAGS}")
15 message(STATUS "LDFLAGS : ${LDFLAGS}")
16 message(STATUS "SHLIB : ${SHLIB}")
17 message(STATUS "SYSLIBS : ${SYSLIBS}")
18 message(STATUS "CINTFLAGS : ${CINTFLAGS}")
19 endif(ALICEDEV STREQUAL "YES")
20
21endmacro(ALICE_DevFlagsOutput)
22
23function(ALICE_CleanOutput _output input)
24
25 string(REGEX REPLACE "\n" " " clean ${input})
26 set(${_output} ${clean} PARENT_SCOPE)
27
28endfunction(ALICE_CleanOutput)
29
30function(ALICE_CorrectPaths _output value )
31
32 set(corrected)
33 foreach(path ${value})
34 set(external)
35 string(REGEX MATCH "^/" external ${path})
36 if(NOT external)
37 list(APPEND corrected "${CMAKE_SOURCE_DIR}/${path}" )
38 else()
39 list(APPEND corrected ${path})
40 endif(NOT external)
41 endforeach(path)
42 set(${_output} ${corrected} PARENT_SCOPE)
43
44endfunction(ALICE_CorrectPaths)
45
46function(ALICE_Format _output prefix suffix input)
47
48# DevNotes - input should be put in quotes or the complete list does not get passed to the function
49 set(format)
50 foreach(arg ${input})
51 set(item ${arg})
52 if(prefix)
53 string(REGEX MATCH "^${prefix}" pre ${arg})
54 endif(prefix)
55 if(suffix)
56 string(REGEX MATCH "${suffix}$" suf ${arg})
57 endif(suffix)
58 if(NOT pre)
59 set(item "${prefix}${item}")
60 endif(NOT pre)
61 if(NOT suf)
62 set(item "${item}${suffix}")
63 endif(NOT suf)
64 list(APPEND format ${item})
65 endforeach(arg)
66 set(${_output} ${format} PARENT_SCOPE)
67
68endfunction(ALICE_Format)
69
70function(ALICE_CheckLibraries _output input)
71
72 set(format)
73 foreach(arg ${input})
74 set(item ${arg})
75 string(REGEX MATCH "^(/|-)" preformatted ${item})
76 if(NOT preformatted)
77 set(item "-l${item}")
78 endif(NOT preformatted)
79 list(APPEND format ${item})
80 endforeach(arg)
81 set(${_output} ${format} PARENT_SCOPE)
82
83endfunction(ALICE_CheckLibraries)
84
85function(ALICE_RootConfig _output parameters)
86
87 if(ROOT_CONFIG)
88 execute_process(COMMAND ${ROOT_CONFIG} ${parameters} OUTPUT_VARIABLE result ERROR_VARIABLE error OUTPUT_STRIP_TRAILING_WHITESPACE )
89 if(error)
90 message(FATAL_ERROR "root-config ERROR : ${error}")
91 endif(error)
92 ALICE_CleanOutput(result "${result}")
93 set(${_output} "${result}" PARENT_SCOPE)
94 else()
95 message(FATAL_ERROR "root-config not found")
96 endif(ROOT_CONFIG)
97
98endfunction(ALICE_RootConfig)
99
100macro(ALICE_CheckOutOfSourceBuild)
101
102 #Check if previous in-source build failed
103 if(EXISTS ${CMAKE_SOURCE_DIR}/CMakeCache.txt OR EXISTS ${CMAKE_SOURCE_DIR}/CMakeFiles)
104 message(FATAL_ERROR "CMakeCache.txt or CMakeFiles exists in source directory! Please remove them before running cmake $ALICE_ROOT")
105 endif(EXISTS ${CMAKE_SOURCE_DIR}/CMakeCache.txt OR EXISTS ${CMAKE_SOURCE_DIR}/CMakeFiles)
106
107 #Get Real Paths of the source and binary directories
108 get_filename_component(srcdir "${CMAKE_SOURCE_DIR}" REALPATH)
109 get_filename_component(bindir "${CMAKE_BINARY_DIR}" REALPATH)
110
111 #Check for in-source builds
112 if(${srcdir} STREQUAL ${bindir})
113 message(FATAL_ERROR "AliRoot cannot be built in-source! Please run cmake $ALICE_ROOT outside the source directory")
114 endif(${srcdir} STREQUAL ${bindir})
115
116endmacro(ALICE_CheckOutOfSourceBuild)
117
118macro(ALICE_ConfigureCompiler)
119
120 if(ALIDEBUG STREQUAL "YES")
121 set(ALICE_TARGET ${ALICE_TARGET}DEBUG)
122 message("Befor ${CXXFLAGS}")
123 string(REGEX MATCHALL "-O[^ ]*" FFLAGS ${FFLAGS})
124 string(REGEX MATCHALL "-O[^ ]*" CXXFLAGS ${CXXFLAGS})
125 message("After ${CXXFLAGS}")
126 string(REGEX MATCHALL "-O[^ ]*" CFLAGS ${CFLAGS})
127 string(REGEX MATCHALL "-O[^ ]*" SOFLAGS ${SOFLAGS})
128 string(REGEX MATCHALL "-O[^ ]*" LDFLAGS ${LDFLAGS})
129 set(FFLAGS "-g ${FFLAGS}")
130 set(CXXFLAGS "-g ${CXXFLAGS}")
131 set(CFLAGS "-g ${CFLAGS}")
132 set(SOFLAGS "-g ${SOFLAGS}")
133 set(LDFLAGS "-g ${LDFLAGS}")
134 endif(ALIDEBUG STREQUAL "YES")
135
136 if(ALIPROFILE STREQUAL "YES")
137 set(ALICE_TARGET ${ALICE_TARGET}PROF)
138 set(FFLAGS "-pg ${FFLAGS}")
139 set(CXXFLAGS "-pg ${CXXFLAGS}")
140 set(CFLAGS "-pg ${CFLAGS}")
141 set(SOFLAGS "-pg ${SOFLAGS}")
142 set(LDFLAGS "-pg ${LDFLAGS}")
143 endif(ALIPROFILE STREQUAL "YES")
144
145 ALICE_RootConfig(RCFLAGS --auxcflags)
146 ALICE_RootConfig(RLFLAGS --ldflags)
147
148 set(CXXFLAGS "${CXXFLAGS} ${RCFLAGS}")
149 set(CFLAGS "${CFLAGS} ${RCFLAGS}")
150 set(SOFLAGS "${SOFLAGS} ${RLFLAGS}")
151 set(LDFLAGS "${LDFLAGS} ${RLFLAGS}")
152
153 if(NOT ALICXXWARN STREQUAL "NO")
154 set(CXXFLAGS "${CXXFLAGS} ${CXXWARN}")
155 endif(NOT ALICXXWARN STREQUAL "NO")
156
157 set(CXXFLAGS "${DATEFLAGS} ${CXXFLAGS}")
158 set(CFLAGS "${DATEFLAGS} ${CFLAGS}")
159 set(CINTFLAGS "${DATEFLAGS}")
160
161endmacro(ALICE_ConfigureCompiler)
162
163macro(ALICE_ConfigurePlatform)
164
165 ALICE_GetTarget()
166 include("CMake${ALICE_TARGET}")
167
168endmacro(ALICE_ConfigurePlatform)
169
170macro(ALICE_GetTarget)
171
172 #Set ALICE_TARGET if it has not been set yet
173 if(NOT ALICE_TARGET)
174 set(ALICE_TARGET $ENV{ALICE_TARGET})
175 #If ALICE_TARGET is not defined assign default values
176 if(NOT ALICE_TARGET)
177 message(WARNING "Environment variable ALICE_TARGET is not set ! Setting to default value.")
178 ALICE_RootConfig(ALICE_TARGET --arch)
179 message("ALICE_TARGET set to ${ALICE_TARGET}")
180 endif(NOT ALICE_TARGET)
181 endif(NOT ALICE_TARGET)
182
183endmacro(ALICE_GetTarget)
184
185macro(ALICE_ResetPackage)
186
187 set(MODDIR ${MODULE})
188 set(MODDIRI ${PROJECT_SOURCE_DIR}/${MODULE})
189
190 set(SRCS)
191 set(HDRS)
192 set(FSRCS)
193 set(DHDR)
194 set(CSRCS)
195 set(CHDRS)
196 set(EINCLUDE)
197 set(EDEFINE)
198 set(ELIBS)
199 set(ELIBSDIR)
200 set(PACKFFLAGS)
201 set(PACKCXXFLAGS)
202 set(PACKCFLAGS)
203 set(PACKDYFLAGS)
204 set(PACKSOFLAGS)
205 set(PACKLDFLAGS)
206 set(PACKBLIBS)
207 set(EXPORT)
208 set(EHDRS)
209 set(CINTHDRS)
210 set(CINTAUTOLINK)
211 set(ARLIBS)
212 set(SHLIBS)
213
214 #HLT Variables
215 set(MODULE_HDRS)
216 set(MODULE_SRCS)
217 set(MODULE_DHDR)
218 set(CLASS_HDRS)
219 set(LIBRARY_DEP)
220 set(HLTDEFS)
221 set(HLTSOFLAGS)
222
223
224 set(PSRCS)
225 set(PHDRS)
226 set(PFSRCS)
227 set(PDHDR)
228 set(PCSRCS)
229 set(PCHDRS)
230 set(PEINCLUDE)
231 set(PEDEFINE)
232 set(PELIBS)
233 set(PELIBSDIR)
234 set(PPACKFFLAGS)
235 set(PPACKCXXFLAGS)
236 set(PPACKCFLAGS)
237 set(PPACKDYFLAGS)
238 set(PPACKSOFLAGS)
239 set(PPACKLDFLAGS)
240 set(PPACKBLIBS)
241 set(PEXPORT)
242 set(PEHDRS)
243 set(PCINTHDRS)
244 set(PCINTAUTOLINK)
245 set(PARLIBS)
246 set(PSHLIBS)
247 set(PDS)
248
249endmacro(ALICE_ResetPackage)
250
251function(ALICE_SetPackageVariable _var ext setvalue unsetvalue )
252
253#DevNotes - setvalue and unsetcalue should both be put in quotes or cmake throws an error if they have undefined values
254 if(setvalue)
255 set(${_var} ${setvalue} PARENT_SCOPE)
256 set(${PACKAGE}${ext} ${setvalue} PARENT_SCOPE)
257 else()
258 set(${_var} ${unsetvalue} PARENT_SCOPE)
259 set(${PACKAGE}${ext} ${unsetvalue} PARENT_SCOPE)
260 endif(setvalue)
261
262endfunction(ALICE_SetPackageVariable)
263
264macro(ALICE_BuildPackage)
265
266 list(APPEND EINCLUDE STEER)
267
268 ALICE_SetPackageVariable(PFFLAGS "FFLAGS" "${PACKFFLAGS}" "${FFLAGS}")
269 ALICE_SetPackageVariable(PCFLAGS "CFLAGS" "${PACKCFLAGS}" "${CFLAGS}")
270 ALICE_SetPackageVariable(PCXXFLAGS "CXXFLAGS" "${PACKCXXFLAGS}" "${CXXFLAGS}")
271 ALICE_SetPackageVariable(PSOFLAGS "SOFLAGS" "${PACKSOFLAGS}" "${SOFLAGS}")
272 ALICE_SetPackageVariable(PLDFLAGS "LDFLAGS" "${PACKLDFLAGS}" "${LDFLAGS}")
273 ALICE_SetPackageVariable(PDCXXFLAGS "DCXXFLAGS" "${PACKDCXXFLAGS}" "${CXXFLAGSNO}")
274 ALICE_SetPackageVariable(PBLIBS "BLIBS" "${PACKBLIBS}" "${LIBS}")
275
276 set(WITHDICT)
277 if(DHDR OR CINTAUTOLINK)
278 set(WITHDICT TRUE)
279 endif(DHDR OR CINTAUTOLINK)
280
281 ALICE_SetPackageVariable(PEDEFINE "EDEFINE" "${EDEFINE}" "${EDEFINE}")
282 ALICE_SetPackageVariable(PEXPORT "EXPORT" "${EXPORT}" "${EXPORT}")
283 ALICE_SetPackageVariable(PEXPORTDEST "EXPORTDEST" "${CMAKE_INCLUDE_EXPORT_DIRECTORY}" "${CMAKE_INCLUDE_EXPORT_DIRECTORY}")
284 ALICE_SetPackageVariable(PINC "INC" "${EINCLUDE};${MODULE}" "${EINCLUDE};${MODULE}")
285 ALICE_SetPackageVariable(PELIBS "ELIBS" "${ELIBS}" "${ELIBS}")
286 ALICE_SetPackageVariable(PELIBSDIR "ELIBSDIR" "${ELIBSDIR}" "${ELIBSDIR}")
287
288 ALICE_SetPackageVariable(PCS "CS" "${CSRCS}" "${CSRCS}")
289 ALICE_SetPackageVariable(PCH "CH" "${CHDRS}" "${CHDRS}")
290
291 ALICE_SetPackageVariable(PFS "FS" "${FSRCS}" "${FSRCS}")
292
293 ALICE_SetPackageVariable(PS "S" "${SRCS}" "${SRCS}")
294 ALICE_SetPackageVariable(PH "H" "${HDRS} ${EHDRS}" "${HDRS} ${EHDRS}")
295 ALICE_SetPackageVariable(PCINTHDRS "CINTHDRS" "${CINTHDRS}" "${PH}")
296
297 string( REPLACE ".h" "" PCINTCLASSES "${PCINTHDRS}")
298 set ( ${PACKAGE}CINTCLASSES ${PCINTCLASSES})
299
300 ALICE_SetPackageVariable(PDH "DH" "${DHDR}" "")
301
302 if(CINTAUTOLINK)
303 ALICE_SetPackageVariable(PDAL "DAL" "${CMAKE_CURRENT_BINARY_DIR}/G__${PACKAGE}AutoLinkDef.h" "${CMAKE_CURRENT_BINARY_DIR}/G__${PACKAGE}AutoLinkDef.h")
304 ALICE_SetPackageVariable(PDH "DH" "${PDAL}" "${PDAL}")
305 ALICE_GenerateLinkDef()
306 endif(CINTAUTOLINK)
307
308 if(lib)
45526b5e 309 list(APPEND PMLIBS ${PACKAGE})
6db31708 310 list(APPEND ALLLIBS ${PACKAGE})
45526b5e 311 list(APPEND PMALIBS ${PACKAGE}_a)
6db31708 312 list(APPEND ALLALIBS ${PACKAGE}_a)
313 list(APPEND BINLIBS ${PACKAGE})
314 else()
315 list(APPEND ALLEXECS ${PACKAGE})
316 endif(lib)
45526b5e 317 set(${MODULE}ALIBS "${PMALIBS}" PARENT_SCOPE)
318 set(${MODULE}LIBS "${PMLIBS}" PARENT_SCOPE)
319 set(${MODULE}INC "${EINCLUDE}" PARENT_SCOPE)
6db31708 320 list(APPEND INCLUDEFILES ${PEXPORTDEST})
321 ALICE_CopyHeaders()
322 if(WITHDICT)
323 ALICE_SetPackageVariable(PDS "DS" "G__${PACKAGE}.cxx" "G__${PACKAGE}.cxx")
324 ALICE_GenerateDictionary()
325 else()
326 if(lib)
327 message(STATUS "No dictionary generated for ${PACKAGE}")
328 endif(lib)
329 endif(WITHDICT)
330
331 if(PS OR PCS OR PFS)
332 if(lib)
333 ALICE_BuildLibrary()
334 elseif(bin)
335 ALICE_BuildExecutable()
336 endif(lib)
337 endif(PS OR PCS OR PFS)
338
339endmacro(ALICE_BuildPackage)
340
341
342macro(ALICE_BuildModule)
343
344 add_definitions(-D_MODULE="${MODULE}")
345 foreach(PACKAGEFILE ${PACKAGES})
346 set(lib)
347 set(bin)
348 string(REGEX MATCH "CMakelib" lib ${PACKAGEFILE})
349 string(REGEX MATCH "CMakebin" bin ${PACKAGEFILE})
350 get_filename_component(PACKAGE ${PACKAGEFILE} NAME)
351 string(REGEX REPLACE "^CMake(lib|bin)(.*)\\.pkg" "\\2" PACKAGE ${PACKAGE})
352 if(ALICEDEV)
353 message("Adding package ${PACKAGE} in ${MODULE}")
354 endif(ALICEDEV)
355 ALICE_ResetPackage()
356 include(${PACKAGEFILE})
357 ALICE_BuildPackage()
358
359 get_property(EXCLUDEPACKAGE TARGET ${PACKAGE} PROPERTY EXCLUDE_FROM_ALL)
360 if(NOT EXCLUDEPACKAGE)
361 install(TARGETS ${PACKAGE}
362 RUNTIME DESTINATION bin
363 LIBRARY DESTINATION lib
364 ARCHIVE DESTINATION bin)
365 endif(NOT EXCLUDEPACKAGE)
366 endforeach(PACKAGEFILE)
367
368endmacro(ALICE_BuildModule)
369
370macro(ALICE_GenerateDictionary)
371
372 if(ALICEDEV STREQUAL "YES")
373 message("Generating Dictionary rule for ${PACKAGE}")
374 message("${ROOTCINT} -f ${PDS} -c ${PEDEFINE} ${CINTFLAGS} ${PINC} ${PCINTHDRS} ${PDH}")
375 endif(ALICEDEV STREQUAL "YES")
376
377 # Split up all arguments
378
379 set(DEDEFINE ${PEDEFINE})
380 set(DCINTFLAGS ${CINTFLAGS})
381 set(DINC ${PINC})
382 set(DCINTHDRS ${PCINTHDRS})
383 set(DDH ${PDH})
384 separate_arguments(DEDEFINE)
385 separate_arguments(DCINTFLAGS)
386 separate_arguments(DINC)
387 separate_arguments(DCINTHDRS)
388 separate_arguments(DDH)
389 # Format neccesary arguments
390 ALICE_Format(DINC "-I" "" "${DINC};${CMAKE_INCLUDE_EXPORT_DIRECTORY}")
391 set_source_files_properties(${PDS} PROPERTIES GENERATED TRUE)
392 add_custom_command(OUTPUT ${PDS}
393 COMMAND cd ${PROJECT_SOURCE_DIR} && ${ROOTCINT} -f ${CMAKE_CURRENT_BINARY_DIR}/${PDS} -c -D_MODULE=\\\"${MODULE}\\\" ${DEDEFINE} ${DCINTFLAGS} ${DINC} ${DCINTHDRS} ${DDH}
394 WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
395 DEPENDS ${DCINTHDRS} ${DDH}
396 )
397 add_custom_target(G${PACKAGE})
398 add_dependencies(G${PACKAGE} ${PDS})
399
400endmacro(ALICE_GenerateDictionary)
401
402macro(ALICE_BuildLibrary)
403
404 ALICE_DevFlagsOutput()
405 set(CMAKE_CXX_FLAGS "${PEDEFINE} ${PCXXFLAGS}")
406 set(CMAKE_C_FLAGS "${PEDEFINE} ${PCFLAGS}")
407 set(CMAKE_Fortran_FLAGS ${PEDEFINE} ${PFFLAGS})
408 set(CMAKE_SHARED_LINKER_FLAGS ${PSOFLAGS})
409 set(CMAKE_MODULE_LINKER_FLAGS ${PLDFLAGS})
410
411
412 separate_arguments(PINC)
413 separate_arguments(EINCLUDE)
414 separate_arguments(PELIBSDIR)
415 separate_arguments(PBLIBS)
416 separate_arguments(PELIBS)
417 separate_arguments(SHLIB)
418
419 ALICE_Format(PELIBSDIR "-L" "" "${PELIBSDIR}")
420 ALICE_CheckLibraries(PBLIBS "${PBLIBS}")
421 ALICE_CheckLibraries(PELIBS "${PELIBS}")
422
423 ALICE_CorrectPaths(EINCLUDE "${EINCLUDE}")
424 ALICE_CorrectPaths(PINC "${PINC}")
425
426 include_directories(SYSTEM ${ROOTINCDIR})
427 include_directories(${PINC})
428 include_directories(${EINCLUDE})
429 include_directories(${CMAKE_INCLUDE_EXPORT_DIRECTORY})
430
431 add_library(${PACKAGE} SHARED ${PCS} ${PFS} ${PS} ${PDS})
432
433
434 if(PELIBS OR SHLIB)
435 target_link_libraries(${PACKAGE} ${PELIBSDIR} ${PELIBS} ${SHLIB})
436 endif(PELIBS OR SHLIB)
437
438 add_dependencies(${MODULE}-all ${PACKAGE})
439
440 add_library(${PACKAGE}_a STATIC EXCLUDE_FROM_ALL ${PCS} ${PFS} ${PS} ${PDS})
441 if(PELIBS OR ALLIB)
442 target_link_libraries(${PACKAGE}_a ${PELIBSDIR} ${PELIBS} ${ALLIB})
443 endif(PELIBS OR ALLIB)
444
445 add_dependencies(${MODULE}-static ${PACKAGE}_a)
446 if(ALIPROFILE STREQUAL "YES")
447 add_dependencies(${MODULE}-all ${MODULE}-static)
448 endif(ALIPROFILE STREQUAL "YES")
449
450 list(FIND EXCLUDEMODULES ${MODULE} RESULT)
451 if(NOT RESULT STREQUAL "-1")
452 message(STATUS "${MODULE} will not be built by default. Type make ${MODULE}-all to build.")
453 set_property(TARGET ${PACKAGE} PROPERTY EXCLUDE_FROM_ALL TRUE)
454 endif(NOT RESULT STREQUAL "-1")
455
456endmacro(ALICE_BuildLibrary)
457
458macro(ALICE_BuildExecutable)
459
460 ALICE_DevFlagsOutput()
461 set(CMAKE_CXX_FLAGS "${PEDEFINE} ${PCXXFLAGS} ${EXEFLAGS}")
462 set(CMAKE_C_FLAGS "${PEDEFINE} ${PCFLAGS} ${EXEFLAGS}")
463 set(CMAKE_Fortran_FLAGS "${PEDEFINE} ${PFFLAGS} ${EXEFLAGS}")
464 set(CMAKE_SHARED_LINKER_FLAGS ${PSOFLAGS})
465 set(CMAKE_MODULE_LINKER_FLAGS ${PLDFLAGS})
466
467 separate_arguments(PINC)
468 separate_arguments(EINCLUDE)
469 separate_arguments(PELIBSDIR)
470 separate_arguments(PBLIBS)
471 separate_arguments(PELIBS)
472 separate_arguments(SHLIB)
473
474 ALICE_Format(PELIBSDIR "-L" "" "${PELIBSDIR}")
475 ALICE_CheckLibraries(PBLIBS "${PBLIBS}")
476 #ALICE_CheckLibraries(PELIBS "${PELIBS}")
477
478 ALICE_CorrectPaths(EINCLUDE "${EINCLUDE}")
479 ALICE_CorrectPaths(PINC "${PINC}")
480
481 include_directories(SYSTEM ${ROOTINCDIR})
482 include_directories(${PINC})
483 include_directories(${EINCLUDE})
484 include_directories(${CMAKE_INCLUDE_EXPORT_DIRECTORY})
485
486 if(ALIPROFILE STREQUAL "YES")
487 add_executable(${PACKAGE} ${PFS} ${PCS} ${PS} ${PDS})
488 if(ARLIBS OR SHLIBS OR PBLIBS OR EXEFLAGS)
489 target_link_libraries(${PACKAGE} ${ARLIBS} ${SHLIBS} ${PBLIBS} ${EXEFLAGS})
490 endif(ARLIBS OR SHLIBS OR PBLIBS OR EXEFLAGS)
491 add_dependencies(${MODULE}-all ${PACKAGE})
492 else()
493 add_executable(${PACKAGE} ${PFS} ${PCS} ${PS} ${PDS})
494 if(PELIBS OR PBLIBS OR EXEFLAGS)
495 target_link_libraries(${PACKAGE} ${BINLIBDIRS} ${PELIBSDIR} ${PELIBS} ${PBLIBS} ${EXEFLAGS})
496 endif(PELIBS OR PBLIBS OR EXEFLAGS)
497 add_dependencies(${MODULE}-all ${PACKAGE})
498 endif(ALIPROFILE STREQUAL "YES")
499
500 list(FIND EXCLUDEMODULES ${MODULE} RESULT)
501 if(NOT RESULT STREQUAL "-1")
502 set_property(TARGET ${PACKAGE} PROPERTY EXCLUDE_FROM_ALL TRUE)
503 endif(NOT RESULT STREQUAL "-1")
504
505endmacro(ALICE_BuildExecutable)
506
507macro(ALICE_CopyHeaders)
508
509 if(NOT EXPORT )
510 set(HEADERS)
511 else()
512 set(HEADERS ${EXPORT})
513 endif(NOT EXPORT)
514 foreach(header ${HEADERS})
515 configure_file(${header} ${PEXPORTDEST} COPYONLY)
516 install(FILES ${header} DESTINATION include)
517 endforeach(header)
518
519endmacro(ALICE_CopyHeaders)
520
521macro(ALICE_GenerateLinkDef)
522
523 file (WRITE ${PDAL} "//--------------------------------------------------------------------------------\n")
524 file (APPEND ${PDAL} "// This is an automatically generated Root Dictionary Linkdef file for ${PACKAGE}\n")
525 file (APPEND ${PDAL} "// !!! DO NOT EDIT THIS FILE !!!\n")
526 file (APPEND ${PDAL} "#ifdef __CINT__\n")
527 file (APPEND ${PDAL} "#pragma link off all globals;\n")
528 file (APPEND ${PDAL} "#pragma link off all classes;\n")
529 file (APPEND ${PDAL} "#pragma link off all functions;\n")
530 foreach (class ${PCINTCLASSES})
531 get_filename_component(classname ${class} NAME)
532 file(APPEND ${PDAL} "#pragma link C++ class ${classname}+;\n")
533 endforeach(class)
534 file (APPEND ${PDAL} "#endif\n")
535endmacro(ALICE_GenerateLinkDef)