Fork me on GitHub

source: git/CMakeLists.txt@ e5ea42e

Last change on this file since e5ea42e was 9c2ce8b, checked in by Simon Spannagel <simon.spannagel@…>, 8 years ago

Make RPTAH setting optional, default is ON

  • Property mode set to 100644
File size: 2.5 KB
Line 
1cmake_minimum_required(VERSION 2.8)
2
3project(Delphes)
4
5set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -DDROP_CGAL")
6set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
7
8# Set the runtime path of the libraries by default but allow to switch it off:
9option(SET_RPATH "Set runtime path of the ${project} libraries?" ON)
10IF(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)
26ENDIF(SET_RPATH)
27
28# Declare ROOT dependency
29find_package(ROOT COMPONENTS EG Eve Geom Gui GuiHtml GenVector Hist Physics Matrix Graf RIO Tree Gpad RGL MathCore)
30include(${ROOT_USE_FILE})
31
32if(NOT DEFINED CMAKE_INSTALL_LIBDIR)
33 set(CMAKE_INSTALL_LIBDIR "lib")
34endif()
35
36function(DELPHES_GENERATE_DICTIONARY dictionary)
37 if(${ROOT_VERSION} LESS 6.0)
38 ROOT_GENERATE_DICTIONARY(${dictionary} ${ARGN})
39 else()
40 ROOT_GENERATE_DICTIONARY(${dictionary} MODULE ${dictionary} ${ARGN})
41 endif()
42endfunction()
43
44# Declare position of all other externals needed
45set(DelphesExternals_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/external)
46
47add_subdirectory(classes)
48add_subdirectory(converters)
49add_subdirectory(display)
50add_subdirectory(examples)
51add_subdirectory(external)
52add_subdirectory(modules)
53add_subdirectory(readers)
54add_subdirectory(cards)
55
56add_library(Delphes SHARED
57 $<TARGET_OBJECTS:classes>
58 $<TARGET_OBJECTS:modules>
59 $<TARGET_OBJECTS:ExRootAnalysis>
60 $<TARGET_OBJECTS:fastjet>
61 $<TARGET_OBJECTS:tcl>
62 $<TARGET_OBJECTS:Hector>
63 $<TARGET_OBJECTS:PUPPI>
64)
65
66add_library(DelphesDisplay SHARED
67 $<TARGET_OBJECTS:classes>
68 $<TARGET_OBJECTS:display>
69 $<TARGET_OBJECTS:modules>
70 $<TARGET_OBJECTS:ExRootAnalysis>
71 $<TARGET_OBJECTS:fastjet>
72 $<TARGET_OBJECTS:tcl>
73 $<TARGET_OBJECTS:Hector>
74 $<TARGET_OBJECTS:PUPPI>
75)
76
77target_link_Libraries(Delphes ${ROOT_LIBRARIES} ${ROOT_COMPONENT_LIBRARIES})
78target_link_Libraries(DelphesDisplay ${ROOT_LIBRARIES} ${ROOT_COMPONENT_LIBRARIES})
79
80install(TARGETS Delphes DelphesDisplay DESTINATION lib)
Note: See TracBrowser for help on using the repository browser.