1 # **************************************************************************
2 # * Copyright(c) 1998-2014, ALICE Experiment at CERN, All rights reserved. *
4 # * Author: The ALICE Off-line Project. *
5 # * Contributors are mentioned in the code where appropriate. *
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 # **************************************************************************
17 set(MODULE PWGDQdielectron)
19 # Module include folder
20 include_directories(${AliRoot_SOURCE_DIR}/PWGDQ/dielectron)
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
37 # Sources in alphabetical order
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
53 AliDielectronCFdraw.cxx
54 AliDielectronCutGroup.cxx
55 AliDielectronCutQA.cxx
57 AliDielectronDebugTree.cxx
58 AliDielectronEventCuts.cxx
59 AliDielectronEvent.cxx
60 AliDielectronHelper.cxx
62 AliDielectronHFhelper.cxx
63 AliDielectronHistos.cxx
65 AliDielectronMixingHandler.cxx
67 AliDielectronPairLegCuts.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
83 # Headers from sources
84 string(REPLACE ".cxx" ".h" HDRS "${SRCS}")
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}")
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)
94 # Generate the ROOT map
96 set(LIBDEPS ${ALIROOT_DEPENDENCIES} ${ROOT_DEPENDENCIES})
97 generate_rootmap("${MODULE}" "${LIBDEPS}" "${CMAKE_CURRENT_SOURCE_DIR}/${MODULE}LinkDef.h")
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})
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>)
110 # Public include folders that will be propagated to the dependecies
111 target_include_directories(${MODULE} PUBLIC ${incdirs})
113 set(MODULE_COMPILE_FLAGS)
114 set(MODULE_LINK_FLAGS)
117 set(MODULE_COMPILE_FLAGS "${DATE_CFLAGS}")
118 set(MODULE_LINK_FLAGS "${DATE_LDFLAGS} ${DATE_LIBS}")
121 # Additional compilation and linking flags
122 set(MODULE_COMPILE_FLAGS " ${MODULE_COMPILE_FLAGS}")
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)
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}")
135 install(TARGETS ${MODULE}
136 ARCHIVE DESTINATION lib
137 LIBRARY DESTINATION lib)
139 install(FILES ${HDRS} DESTINATION include)