Fixes for object target dependencies
[u/mrichter/AliRoot.git] / EVGEN / CMakeLists.txt
CommitLineData
e9912df8 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# **************************************************************************
6d839a5c 15
e9912df8 16# Module
17set(MODULE EVGEN)
6d839a5c 18
e9912df8 19# Module include folder
427d561c 20include_directories(${AliRoot_SOURCE_DIR}/${MODULE})
6d839a5c 21
e9912df8 22# Additional include folders in alphabetical order except ROOT
23include_directories(${ROOT_INCLUDE_DIRS}
427d561c 24 ${AliRoot_SOURCE_DIR}/FASTSIM
25 ${AliRoot_SOURCE_DIR}/LHAPDF
26 ${AliRoot_SOURCE_DIR}/PYTHIA6/AliPythia6
27 ${AliRoot_SOURCE_DIR}/STEER/ESD
28 ${AliRoot_SOURCE_DIR}/STEER/STEER
29 ${AliRoot_SOURCE_DIR}/STEER/STEERBase
30 ${AliRoot_SOURCE_DIR}/TEvtGen
e706c082 31 ${AliRoot_SOURCE_DIR}/TEvtGen/THepMCParser
e9912df8 32 )
33
34# Sources
35set(SRCS
36 AliDecayerExodus.cxx
37 AliDecayerPolarized.cxx
38 AliDimuCombinator.cxx
39 AliGenAfterBurnerFlow.cxx
40 AliGenBeamGas.cxx
41 AliGenBox.cxx
42 AliGenCocktailAfterBurner.cxx
43 AliGenCocktail.cxx
44 AliGenCocktailEntry.cxx
45 AliGenCorrHF.cxx
46 AliGenCosmicsParam.cxx
47 AliGenDeuteron.cxx
48 AliGenDoubleScan.cxx
49 AliGenEMCocktail.cxx
50 AliGenEMlib.cxx
51 AliGenExtFile.cxx
52 AliGenFixed.cxx
53 AliGenFunction.cxx
54 AliGenGeVSim.cxx
55 AliGenGSIlib.cxx
56 AliGenHalo.cxx
57 AliGenHaloProtvino.cxx
58 AliGenHBTosl.cxx
59 AliGenHIJINGparaBa.cxx
60 AliGenHIJINGpara.cxx
61 AliGenHMPIDlib.cxx
62 AliGenITSULib.cxx
63 AliGenKrypton.cxx
64 AliGenLcLib.cxx
65 AliGenLib.cxx
66 AliGenLightNuclei.cxx
67 AliGenMC.cxx
68 AliGenMUONCocktail.cxx
69 AliGenMUONCocktailpp.cxx
70 AliGenMUONlib.cxx
71 AliGenMUONLMR.cxx
72 AliGenPairFlat.cxx
73 AliGenParam.cxx
74 AliGenPHOSlib.cxx
75 AliGenPileup.cxx
76 AliGenPMDlib.cxx
77 AliGenPromptPhotons.cxx
78 AliGenReaderCwn.cxx
79 AliGenReader.cxx
80 AliGenReaderEcalHijing.cxx
81 AliGenReaderEcalJets.cxx
82 AliGenReaderEMD.cxx
83 AliGenReaderHepMC.cxx
84 AliGenReaderSL.cxx
85 AliGenReaderTreeK.cxx
86 AliGenScan.cxx
87 AliGenSlowNucleons.cxx
88 AliGenSTRANGElib.cxx
89 AliGenThermalPhotons.cxx
90 AliGenThetaSlice.cxx
91 AliGenTHnSparse.cxx
92 AliGenTunedOnPbPb.cxx
93 AliGeVSimParticle.cxx
94 AliOmegaDalitz.cxx
95 AliSlowNucleonModel.cxx
96 AliSlowNucleonModelExp.cxx
97)
98
99# Headers from sources
100string(REPLACE ".cxx" ".h" HDRS "${SRCS}")
101
102# Generate the dictionary
103# It will create G_ARG1.cxx and G_ARG1.h / ARG1 = function first argument
104get_directory_property(incdirs INCLUDE_DIRECTORIES)
105generate_dictionary("${MODULE}" "${MODULE}LinkDef.h" "${HDRS}" "${incdirs}")
106
107# Generate the ROOT map
108# Dependecies
109set(LIBDEPS STEERbase STEER ESD AliPythia6 lhapdf TEvtGen FASTSIM)
110generate_rootmap("${MODULE}" "${LIBDEPS}" "${CMAKE_CURRENT_SOURCE_DIR}/${MODULE}LinkDef.h")
111
112# Add a library to the project using the specified source files
113add_library(${MODULE} SHARED ${SRCS} G__${MODULE}.cxx)
114
115# Additional compilation flags
68aeb13b 116set_target_properties(${MODULE} PROPERTIES COMPILE_FLAGS "")
e9912df8 117
118# System dependent: Modify the way the library is build
119if(${CMAKE_SYSTEM} MATCHES Darwin)
120 set_target_properties(${MODULE} PROPERTIES LINK_FLAGS "-undefined dynamic_lookup")
121endif(${CMAKE_SYSTEM} MATCHES Darwin)
122
123# Installation
124install(TARGETS ${MODULE}
125 ARCHIVE DESTINATION lib
126 LIBRARY DESTINATION lib)
127install(FILES ${HDRS} DESTINATION include)
128
129message(STATUS "${MODULE} enabled")