VZERO DAs + Object target dependencies
[u/mrichter/AliRoot.git] / TPC / TPCrec / CMakeLists.txt
CommitLineData
73ba6874 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# Module
17set(MODULE TPCrec)
18
19# Module include folder
427d561c 20include_directories(${AliRoot_SOURCE_DIR}/TPC/${MODULE})
73ba6874 21
22# Additional include folders in alphabetical order except ROOT
23include_directories(${ROOT_INCLUDE_DIRS}
427d561c 24 ${AliRoot_SOURCE_DIR}/ANALYSIS/ANALYSIS
25 ${AliRoot_SOURCE_DIR}/ANALYSIS/ANALYSISalice
26 ${AliRoot_SOURCE_DIR}/RAW/RAWDatabase
27 ${AliRoot_SOURCE_DIR}/RAW/RAWDatarec
28 ${AliRoot_SOURCE_DIR}/STEER/CDB
29 ${AliRoot_SOURCE_DIR}/STEER/ESD
30 ${AliRoot_SOURCE_DIR}/STEER/STEER
31 ${AliRoot_SOURCE_DIR}/STEER/STEERBase
32 ${AliRoot_SOURCE_DIR}/TPC/TPCbase
73ba6874 33 )
34
35# Sources in alphabetical order
36set(SRCS
73ba6874 37 AliCosmicTracker.cxx
38 AliPadMax.cxx
39 AliTPCclusterer.cxx
40 AliTPCclustererKr.cxx
73ba6874 41 AliTPCclusterKr.cxx
73ba6874 42 AliTPCCosmicTrackfit.cxx
43 AliTPCCosmicUtils.cxx
44 AliTPCpolyTrack.cxx
73ba6874 45 AliTPCReconstructor.cxx
73ba6874 46 AliTPCseed.cxx
47 AliTPCtrack.cxx
48 AliTPCtracker.cxx
49 AliTPCtrackerSector.cxx
50 AliTPCTracklet.cxx
51 AliTPCvtpr.cxx
52 )
53
54# Headers from sources
55string(REPLACE ".cxx" ".h" HDRS "${SRCS}")
56
57# Generate the dictionary
58# It will create G_ARG1.cxx and G_ARG1.h / ARG1 = function first argument
59get_directory_property(incdirs INCLUDE_DIRECTORIES)
60generate_dictionary("${MODULE}" "${MODULE}LinkDef.h" "${HDRS}" "${incdirs}")
61
f2bce741 62set(ROOT_DEPENDENCIES Core Gpad Graf Hist MathCore Matrix Minuit Physics RIO Tree)
63set(ALIROOT_DEPENDENCIES STEERBase STEER CDB ESD RAWDatabase RAWDatarec ANALYSIS ANALYSISalice TPCbase)
64
73ba6874 65# Generate the ROOT map
66# Dependecies
f2bce741 67set(LIBDEPS ${ALIROOT_DEPENDENCIES} ${ROOT_DEPENDENCIES})
73ba6874 68generate_rootmap("${MODULE}" "${LIBDEPS}" "${CMAKE_CURRENT_SOURCE_DIR}/${MODULE}LinkDef.h")
69
f2bce741 70# Create an object to be reused in case of static libraries
71# Otherwise the sources will be compiled twice
72add_library(${MODULE}-object OBJECT ${SRCS} G__${MODULE}.cxx)
139cbc46 73# Follow headers dependencies
74add_dependencies(${MODULE}-object ${ALIROOT_DEPENDENCIES})
f2bce741 75# Add a library to the project using the object
76add_library(${MODULE} SHARED $<TARGET_OBJECTS:TPCrec-object>)
77
78# Linking
79target_link_libraries(${MODULE} ${ALIROOT_DEPENDENCIES} ${ROOT_DEPENDENCIES})
73ba6874 80
f2bce741 81# Public include folders that will be propagated to the dependecies
82target_include_directories(${MODULE} PUBLIC ${incdirs})
73ba6874 83
84# Additional compilation flags
f2bce741 85set_target_properties(${MODULE}-object PROPERTIES COMPILE_FLAGS "-O -g")
73ba6874 86
87# System dependent: Modify the way the library is build
88if(${CMAKE_SYSTEM} MATCHES Darwin)
89 set_target_properties(${MODULE} PROPERTIES LINK_FLAGS "-undefined dynamic_lookup")
90endif(${CMAKE_SYSTEM} MATCHES Darwin)
91
92# Installation
93install(TARGETS ${MODULE}
94 ARCHIVE DESTINATION lib
95 LIBRARY DESTINATION lib)
96