]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGDQ/dielectron/CMakeLists.txt
482496da84b2d4354751303a72c6b1ead3fad93b
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / CMakeLists.txt
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
17 set(MODULE PWGDQdielectron)
18
19 # Module include folder
20 include_directories(${AliRoot_SOURCE_DIR}/PWGDQ/dielectron)
21
22 # Additional include folders in alphabetical order except ROOT
23 include_directories(${ROOT_INCLUDE_DIRS}
24                     ${AliRoot_SOURCE_DIR}/ANALYSIS/ANALYSIS
25                     ${AliRoot_SOURCE_DIR}/ANALYSIS/ANALYSISalice
26                     ${AliRoot_SOURCE_DIR}/CORRFW/
27                     ${AliRoot_SOURCE_DIR}/PWGCF/Correlations # what deps here?
28                     ${AliRoot_SOURCE_DIR}/PWG/FLOW/Base
29                     ${AliRoot_SOURCE_DIR}/PWG/FLOW/Tasks
30                     ${AliRoot_SOURCE_DIR}/PWGLF/FORWARD
31                     ${AliRoot_SOURCE_DIR}/STEER/AOD
32                     ${AliRoot_SOURCE_DIR}/STEER/ESD
33                     ${AliRoot_SOURCE_DIR}/STEER/STEERBase
34                     ${AliRoot_SOURCE_DIR}/TRD/TRDbase
35                    )
36
37 # Sources in alphabetical order
38 set(SRCS
39       AliAnalysisTaskDielectronEfficiency.cxx
40       AliAnalysisTaskDielectronFilter.cxx
41       AliAnalysisTaskDielectronME.cxx
42       AliAnalysisTaskDielectronReadAODBranch.cxx
43       AliAnalysisTaskDielectronSE.cxx
44       AliAnalysisTaskMultiDielectron.cxx
45       AliAnalysisTaskMultiDielectronTG.cxx
46       AliAnalysisTaskReducedTree.cxx
47       AliAnalysisTaskSingleParticle.cxx
48       AliDielectronBtoJPSItoEleCDFfitFCN.cxx
49       AliDielectronBtoJPSItoEleCDFfitFCNfitter.cxx
50       AliDielectronBtoJPSItoEleCDFfitHandler.cxx
51       AliDielectronBtoJPSItoEle.cxx
52       AliDielectronCF.cxx
53       AliDielectronCFdraw.cxx
54       AliDielectronCutGroup.cxx
55       AliDielectronCutQA.cxx
56       AliDielectron.cxx
57       AliDielectronDebugTree.cxx
58       AliDielectronEventCuts.cxx
59       AliDielectronEvent.cxx
60       AliDielectronHelper.cxx
61       AliDielectronHF.cxx
62       AliDielectronHFhelper.cxx
63       AliDielectronHistos.cxx
64       AliDielectronMC.cxx
65       AliDielectronMixingHandler.cxx
66       AliDielectronPair.cxx
67       AliDielectronPairLegCuts.cxx
68       AliDielectronPID.cxx
69       AliDielectronSignalBase.cxx
70       AliDielectronSignalExt.cxx
71       AliDielectronSignalFunc.cxx
72       AliDielectronSignalMC.cxx
73       AliDielectronSpectrum.cxx
74       AliDielectronTrackCuts.cxx
75       AliDielectronTrackRotator.cxx
76       AliDielectronTRDpidCut.cxx
77       AliDielectronV0Cuts.cxx
78       AliDielectronVarCuts.cxx
79       AliDielectronVarManager.cxx
80       AliReducedEvent.cxx
81    )
82
83 # Headers from sources
84 string(REPLACE ".cxx" ".h" HDRS "${SRCS}")
85
86 # Generate the dictionary
87 # It will create G_ARG1.cxx and G_ARG1.h / ARG1 = function first argument
88 get_directory_property(incdirs INCLUDE_DIRECTORIES)
89 generate_dictionary("${MODULE}" "${MODULE}LinkDef.h" "${HDRS}" "${incdirs}")
90
91 set(ROOT_DEPENDENCIES Core EG Gpad Graf Hist MathCore Matrix Minuit Net Physics RIO Tree)
92 set(ALIROOT_DEPENDENCIES ANALYSIS ANALYSISalice AOD ESD PWGflowTasks PWGflowBase STEERBase TRDbase PWGLFforward2)
93
94 # Generate the ROOT map
95 # Dependecies
96 set(LIBDEPS ${ALIROOT_DEPENDENCIES} ${ROOT_DEPENDENCIES})
97 generate_rootmap("${MODULE}" "${LIBDEPS}" "${CMAKE_CURRENT_SOURCE_DIR}/${MODULE}LinkDef.h")
98
99 # Create an object to be reused in case of static libraries 
100 # Otherwise the sources will be compiled twice
101 add_library(${MODULE}-object OBJECT ${SRCS} G__${MODULE}.cxx)
102 # Add a library to the project using the object
103 add_library(${MODULE} SHARED $<TARGET_OBJECTS:${MODULE}-object>)
104 target_link_libraries(${MODULE} ${ALIROOT_DEPENDENCIES} ${ROOT_DEPENDENCIES})
105
106 # Setting the correct headers for the object as gathered from the dependencies
107 target_include_directories(${MODULE}-object PUBLIC $<TARGET_PROPERTY:${MODULE},INCLUDE_DIRECTORIES>)
108 set_target_properties(${MODULE}-object PROPERTIES COMPILE_DEFINITIONS $<TARGET_PROPERTY:${MODULE},COMPILE_DEFINITIONS>)
109
110 # Public include folders that will be propagated to the dependecies
111 target_include_directories(${MODULE} PUBLIC ${incdirs})
112
113 set(MODULE_COMPILE_FLAGS)
114 set(MODULE_LINK_FLAGS)
115
116 if(DATE_FOUND)
117     set(MODULE_COMPILE_FLAGS "${DATE_CFLAGS}")
118     set(MODULE_LINK_FLAGS "${DATE_LDFLAGS} ${DATE_LIBS}")
119 endif(DATE_FOUND)
120
121 # Additional compilation and linking flags
122 set(MODULE_COMPILE_FLAGS " ${MODULE_COMPILE_FLAGS}")
123
124 # System dependent: Modify the way the library is build
125 if(${CMAKE_SYSTEM} MATCHES Darwin)
126     set(MODULE_LINK_FLAGS "-undefined dynamic_lookup ${MODULE_LINK_FLAGS}")
127 endif(${CMAKE_SYSTEM} MATCHES Darwin)
128
129 # Setting compilation flags for the object
130 set_target_properties(${MODULE}-object PROPERTIES COMPILE_FLAGS "${MODULE_COMPILE_FLAGS}")
131 # Setting the linking flags for the library
132 set_target_properties(${MODULE} PROPERTIES LINK_FLAGS "${MODULE_LINK_FLAGS}")
133
134 # Installation
135 install(TARGETS ${MODULE}
136         ARCHIVE DESTINATION lib
137         LIBRARY DESTINATION lib)
138
139 install(FILES ${HDRS} DESTINATION include)