From f57129de32fa8836fd093b94984c2d1f0367e390 Mon Sep 17 00:00:00 2001 From: Pere Mato <pere.mato@cern.ch> Date: Wed, 9 Apr 2014 16:50:54 +0200 Subject: [PATCH] Fix for ROOT-6208 --- cmake/modules/FindPythia8.cmake | 76 +++++++++++++++++++------------ montecarlo/pythia8/CMakeLists.txt | 2 +- 2 files changed, 47 insertions(+), 31 deletions(-) diff --git a/cmake/modules/FindPythia8.cmake b/cmake/modules/FindPythia8.cmake index 1a464cc23cc..f028b157057 100644 --- a/cmake/modules/FindPythia8.cmake +++ b/cmake/modules/FindPythia8.cmake @@ -1,36 +1,52 @@ # Find the Pythia8 includes and library. # # This module defines -# PYTHIA8_INCLUDE_DIR, where to locate Pythia.h file -# PYTHIA8_LIBRARIES, the libraries to link against to use Pythia6 -# PYTHIA8_FOUND. If false, you cannot build anything that requires Pythia6. -# PYTHIA8_LIBRARY, where to find the libpythia8 library. - -set(PYTHIA8_FOUND 0) - -find_path(PYTHIA8_INCLUDE_DIR Pythia.h - $ENV{PYTHIA8_DIR}/include - /opt/pythia8/include - /usr/local/include - /usr/include - /usr/include/pythia - DOC "Specify the directory containing Pythia.h." -) - -find_library(PYTHIA8_LIBRARY NAMES Pythia8 pythia8 PATHS - $ENV{PYTHIA8_DIR}/lib - /opt/pythia8/lib - /usr/local/lib - /usr/lib - DOC "Specify the Pythia8 library here." -) - -if(PYTHIA8_INCLUDE_DIR AND PYTHIA8_LIBRARY) - set(PYTHIA8_FOUND 1 ) - message(STATUS "Found Pythia8 library at ${PYTHIA8_LIBRARY}") -endif() +# PYTHIA8_INCLUDE_DIR where to locate Pythia.h file +# PYTHIA8_LIBRARY where to find the libpythia8 library +# PYTHIA8_<lib>_LIBRARY Addicional libraries +# PYTHIA8_LIBRARIES (not cached) the libraries to link against to use Pythia8 +# PYTHIA8_FOUND if false, you cannot build anything that requires Pythia8 +# PYTHIA8_VERSION version of Pythia8 if found + +set(_pythia8dirs ${PYTHIA8_DIR} $ENV{PYTHIA8_DIR} /usr /opt/pythia8) + +find_path(PYTHIA8_INCLUDE_DIR + NAMES Pythia.h Pythia8/Pythia.h + PATHS ${_pythia8dirs} + PATH_SUFFIXES include + DOC "Specify the directory containing Pythia.h.") + +find_library(PYTHIA8_LIBRARY + NAMES pythia8 Pythia8 + PATHS ${_pythia8dirs} + PATH_SUFFIXES lib + DOC "Specify the Pythia8 library here.") + +find_library(PYTHIA8_hepmcinterface_LIBRARY + NAMES hepmcinterface pythia8tohepmc + PATHS ${_pythia8dirs} + PATH_SUFFIXES lib) +find_library(PYTHIA8_lhapdfdummy_LIBRARY + NAMES lhapdfdummy + PATHS ${_pythia8dirs} + PATH_SUFFIXES lib) -set(PYTHIA8_LIBRARIES ${PYTHIA8_LIBRARY}) +foreach(_lib PYTHIA8_LIBRARY PYTHIA8_hepmcinterface_LIBRARY PYTHIA8_lhapdfdummy_LIBRARY) + if(${_lib}) + set(PYTHIA8_LIBRARIES ${PYTHIA8_LIBRARIES} ${${_lib}}) + endif() +endforeach() + +# handle the QUIETLY and REQUIRED arguments and set PYTHIA8_FOUND to TRUE if +# all listed variables are TRUE + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(Pythia8 DEFAULT_MSG PYTHIA8_INCLUDE_DIR PYTHIA8_LIBRARY) +mark_as_advanced(PYTHIA8_INCLUDE_DIR PYTHIA8_LIBRARY PYTHIA8_hepmcinterface_LIBRARY PYTHIA8_lhapdfdummy_LIBRARY) + +if(PYTHIA8_FOUND) + file(READ ${PYTHIA8_INCLUDE_DIR}/../xmldoc/Version.xml versionstr) + string(REGEX REPLACE ".*Pythia:versionNumber.*default.*[0-9][.]([0-9]+).*" "\\1" PYTHIA8_VERSION "${versionstr}") +endif() -MARK_AS_ADVANCED( PYTHIA8_FOUND PYTHIA8_LIBRARY PYTHIA8_INCLUDE_DIR) diff --git a/montecarlo/pythia8/CMakeLists.txt b/montecarlo/pythia8/CMakeLists.txt index 718dbe68578..68c1d228c0a 100644 --- a/montecarlo/pythia8/CMakeLists.txt +++ b/montecarlo/pythia8/CMakeLists.txt @@ -7,7 +7,7 @@ ROOT_USE_PACKAGE(montecarlo/eg) ROOT_USE_PACKAGE(math/physics) include_directories(${PYTHIA8_INCLUDE_DIR}) -ROOT_GENERATE_DICTIONARY(G__Pythia8 *.h module EGPythia8 LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__Pythia8 *.h MODULE EGPythia8 LINKDEF LinkDef.h) ROOT_LINKER_LIBRARY(EGPythia8 *.cxx G__Pythia8.cxx LIBRARIES Core ${PYTHIA8_LIBRARIES} DEPENDENCIES EG Graf VMC Physics) ROOT_INSTALL_HEADERS() -- GitLab