1 | cmake_minimum_required(VERSION 2.8)
|
---|
2 |
|
---|
3 | project(Delphes)
|
---|
4 |
|
---|
5 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -DDROP_CGAL")
|
---|
6 | set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
|
---|
7 |
|
---|
8 | # Set the runtime path of the libraries by default but allow to switch it off:
|
---|
9 | option(SET_RPATH "Set runtime path of the ${project} libraries?" ON)
|
---|
10 | IF(SET_RPATH)
|
---|
11 | # Set up the RPATH so executables find the libraries even when installed in non-default location
|
---|
12 | SET(CMAKE_MACOSX_RPATH 1)
|
---|
13 | SET(CMAKE_SKIP_BUILD_RPATH FALSE)
|
---|
14 | SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
|
---|
15 | SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
|
---|
16 |
|
---|
17 | # Add the automatically determined parts of the RPATH which point to directories outside
|
---|
18 | # the build tree to the install RPATH
|
---|
19 | SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
|
---|
20 |
|
---|
21 | # the RPATH to be used when installing, but only if it's not a system directory
|
---|
22 | LIST(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_PREFIX}/lib" isSystemDir)
|
---|
23 | IF(${isSystemDir} EQUAL -1)
|
---|
24 | SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
|
---|
25 | ENDIF(${isSystemDir} EQUAL -1)
|
---|
26 | ENDIF(SET_RPATH)
|
---|
27 |
|
---|
28 | set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
|
---|
29 |
|
---|
30 | # Declare ROOT dependency
|
---|
31 | find_package(ROOT COMPONENTS EG Eve Geom Gui GuiHtml GenVector Hist Physics Matrix Graf RIO Tree Gpad RGL MathCore)
|
---|
32 | include(${ROOT_USE_FILE})
|
---|
33 |
|
---|
34 |
|
---|
35 | # Declare Pythia8 dependancy
|
---|
36 | find_package(Pythia8)
|
---|
37 | if(PYTHIA8_FOUND)
|
---|
38 | message(STATUS "Pythia8 found")
|
---|
39 | include_directories(${PYTHIA8_INCLUDE_DIRS})
|
---|
40 | set(LIBS ${LIBS} ${PYTHIA8_LIBRARIES})
|
---|
41 | endif(PYTHIA8_FOUND)
|
---|
42 |
|
---|
43 |
|
---|
44 | if(NOT DEFINED CMAKE_INSTALL_LIBDIR)
|
---|
45 | set(CMAKE_INSTALL_LIBDIR "lib")
|
---|
46 | endif()
|
---|
47 |
|
---|
48 | function(DELPHES_GENERATE_DICTIONARY dictionary)
|
---|
49 | if(${ROOT_VERSION} LESS 6.0)
|
---|
50 | ROOT_GENERATE_DICTIONARY(${dictionary} ${ARGN})
|
---|
51 | else()
|
---|
52 | ROOT_GENERATE_DICTIONARY(${dictionary} MODULE ${dictionary} ${ARGN})
|
---|
53 | endif()
|
---|
54 | endfunction()
|
---|
55 |
|
---|
56 |
|
---|
57 |
|
---|
58 | # Declare position of all other externals needed
|
---|
59 | set(DelphesExternals_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/external)
|
---|
60 |
|
---|
61 | add_subdirectory(classes)
|
---|
62 | add_subdirectory(converters)
|
---|
63 | add_subdirectory(display)
|
---|
64 | add_subdirectory(examples)
|
---|
65 | add_subdirectory(external)
|
---|
66 | add_subdirectory(modules)
|
---|
67 | add_subdirectory(readers)
|
---|
68 | add_subdirectory(cards)
|
---|
69 |
|
---|
70 | add_library(Delphes SHARED
|
---|
71 | $<TARGET_OBJECTS:classes>
|
---|
72 | $<TARGET_OBJECTS:modules>
|
---|
73 | $<TARGET_OBJECTS:ExRootAnalysis>
|
---|
74 | $<TARGET_OBJECTS:fastjet>
|
---|
75 | $<TARGET_OBJECTS:tcl>
|
---|
76 | $<TARGET_OBJECTS:Hector>
|
---|
77 | $<TARGET_OBJECTS:PUPPI>
|
---|
78 | )
|
---|
79 |
|
---|
80 | add_library(DelphesDisplay SHARED
|
---|
81 | $<TARGET_OBJECTS:classes>
|
---|
82 | $<TARGET_OBJECTS:display>
|
---|
83 | $<TARGET_OBJECTS:modules>
|
---|
84 | $<TARGET_OBJECTS:ExRootAnalysis>
|
---|
85 | $<TARGET_OBJECTS:fastjet>
|
---|
86 | $<TARGET_OBJECTS:tcl>
|
---|
87 | $<TARGET_OBJECTS:Hector>
|
---|
88 | $<TARGET_OBJECTS:PUPPI>
|
---|
89 | )
|
---|
90 |
|
---|
91 | target_link_Libraries(Delphes ${ROOT_LIBRARIES} ${ROOT_COMPONENT_LIBRARIES})
|
---|
92 | target_link_Libraries(DelphesDisplay ${ROOT_LIBRARIES} ${ROOT_COMPONENT_LIBRARIES})
|
---|
93 | if(PYTHIA8_FOUND)
|
---|
94 | target_link_libraries(Delphes ${LIBS}) # needed for DelphesPythia8
|
---|
95 | endif(PYTHIA8_FOUND)
|
---|
96 |
|
---|
97 |
|
---|
98 | install(TARGETS Delphes DelphesDisplay DESTINATION lib)
|
---|