diff --git a/GaudiExamples/src/PartProp/PartPropExa.h b/GaudiExamples/src/PartProp/PartPropExa.h index fa337283a3af5b96d68ae883f314635e8905fd88..18fbd9b6877706342c924f6f0811f2f74b8c5778 100644 --- a/GaudiExamples/src/PartProp/PartPropExa.h +++ b/GaudiExamples/src/PartProp/PartPropExa.h @@ -12,7 +12,15 @@ #define GAUDIEXAMPLES_PARTPROPEXA_H 1 #include "GaudiKernel/Algorithm.h" -#include "HepPDT/CommonParticleData.hh" +#if HEPPDT_VERSION_MAJOR == 2 +# include "HepPDT/CommonParticleData.hh" +#endif +#if HEPPDT_VERSION_MAJOR == 3 +# include "HepPDT/ParticleData.hh" +namespace HepPDT { + using CommonParticleData = ParticleData; +} +#endif #include "HepPDT/ProcessUnknownID.hh" class IPartPropSvc; diff --git a/cmake/modules/FindHepPDT.cmake b/cmake/modules/FindHepPDT.cmake index 90e54f520247b0423625dabd84d7c790e14b5632..8f9f69e27110c31b1e8ab09ac1584f910bb7b149 100644 --- a/cmake/modules/FindHepPDT.cmake +++ b/cmake/modules/FindHepPDT.cmake @@ -31,10 +31,20 @@ endif() find_path(HEPPDT_INCLUDE_DIR HepPDT/ParticleData.hh HINTS $ENV{HEPPDT_ROOT_DIR}/include ${HEPPDT_ROOT_DIR}/include) +set(HEPPDT_VERSION 0.0.0) +if (HEPPDT_INCLUDE_DIR) + if (EXISTS ${HEPPDT_INCLUDE_DIR}/HepPDT/defs.h) + file(STRINGS ${HEPPDT_INCLUDE_DIR}/HepPDT/defs.h HEPPDT_VERSION_STRING_CONTENT REGEX "^#define[ ]+PACKAGE_VERSION[ ]+\"" ) + if (HEPPDT_VERSION_STRING_CONTENT) + string(REGEX MATCH "[1234567890\.]+[a-zA-Z]*" HEPPDT_VERSION ${HEPPDT_VERSION_STRING_CONTENT}) + endif() + endif() +endif() + find_library(HEPPDT_PDT_LIBRARY NAMES HepPDT - HINTS $ENV{HEPPDT_ROOT_DIR}/lib ${HEPPDT_ROOT_DIR}/lib) + HINTS $ENV{HEPPDT_ROOT_DIR}/lib HINTS $ENV{HEPPDT_ROOT_DIR}/lib64 ${HEPPDT_ROOT_DIR}/lib ${HEPPDT_ROOT_DIR}/lib64) find_library(HEPPDT_PID_LIBRARY NAMES HepPID - HINTS $ENV{HEPPDT_ROOT_DIR}/lib ${HEPPDT_ROOT_DIR}/lib) + HINTS $ENV{HEPPDT_ROOT_DIR}/lib $ENV{HEPPDT_ROOT_DIR}/lib64 ${HEPPDT_ROOT_DIR}/lib ${HEPPDT_ROOT_DIR}/lib64) set(HEPPDT_LIBRARIES ${HEPPDT_PDT_LIBRARY} ${HEPPDT_PID_LIBRARY}) @@ -43,10 +53,11 @@ set(HEPPDT_INCLUDE_DIRS ${HEPPDT_INCLUDE_DIR}) # handle the QUIETLY and REQUIRED arguments and set HEPPDT_FOUND to TRUE if # all listed variables are TRUE INCLUDE(FindPackageHandleStandardArgs) -FIND_PACKAGE_HANDLE_STANDARD_ARGS(HepPDT DEFAULT_MSG HEPPDT_INCLUDE_DIR HEPPDT_LIBRARIES) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(HepPDT REQUIRED_VARS HEPPDT_INCLUDE_DIR HEPPDT_LIBRARIES + VERSION_VAR HEPPDT_VERSION) mark_as_advanced(HEPPDT_FOUND HEPPDT_INCLUDE_DIR HEPPDT_LIBRARIES - HEPPDT_PDT_LIBRARY HEPPDT_PID_LIBRARY) + HEPPDT_PDT_LIBRARY HEPPDT_PID_LIBRARY HEPPDT_VERSION) # Modernisation: create an interface target to link against if(TARGET HepPDT::heppdt) @@ -56,6 +67,11 @@ if(HEPPDT_FOUND) add_library(HepPDT::heppdt IMPORTED INTERFACE) target_include_directories(HepPDT::heppdt SYSTEM INTERFACE "${HEPPDT_INCLUDE_DIRS}") target_link_libraries(HepPDT::heppdt INTERFACE "${HEPPDT_LIBRARIES}") + if (${HEPPDT_VERSION} VERSION_GREATER_EQUAL "3") + set_property(TARGET HepPDT::heppdt APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS HEPPDT_VERSION_MAJOR=3) + else() + set_property(TARGET HepPDT::heppdt APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS HEPPDT_VERSION_MAJOR=2) + endif() # Display the imported target for the user to know if(NOT ${CMAKE_FIND_PACKAGE_NAME}_FIND_QUIETLY) message(STATUS " Import target: HepPDT::heppdt")