Geant4 Cross Reference |
1 #[============================================ 2 FindPythia8 3 --------- 4 5 Find the Pythia8 event generator headers and l 6 7 Imported Targets 8 ^^^^^^^^^^^^^^^^ 9 10 This module defines the following :prop_tgt:`I 11 12 ``Pythia8::Pythia8`` 13 The Pythia8 ``pythia8`` library, if found. 14 15 Result Variables 16 ^^^^^^^^^^^^^^^^ 17 18 This module will set the following variables i 19 20 ``Pythia8_FOUND`` 21 true if the Pythia8 headers and libraries we 22 23 Hints 24 ^^^^^ 25 26 A user may set ``Pythia8_ROOT`` to a Pythia8 i 27 module where to look. 28 29 #]============================================ 30 31 # WE ONLY ALLOW USE OF THIS MODULE IN GEANT4 O 32 if(NOT PROJECT_NAME MATCHES "Geant4|py8decayer 33 message(FATAL_ERROR "This FindPythia8.cmake 34 "extended example. No support or extension 35 "will be provided.") 36 endif() 37 38 # Look for the header file 39 find_path(Pythia8_INCLUDE_DIR 40 NAMES Pythia8/Pythia.h 41 HINTS ${Pythia8_ROOT}/include) 42 43 if(NOT Pythia8_LIBRARY) 44 find_library(Pythia8_LIBRARY 45 NAMES pythia8 Pythia8 46 HINTS ${Pythia8_ROOT}/lib ${Pythia8_ROOT}/ 47 endif() 48 49 # Determine the version 50 if(Pythia8_INCLUDE_DIR AND EXISTS "${Pythia8_I 51 file(STRINGS "${Pythia8_INCLUDE_DIR}/Pythia8 52 if(PYTHIA8_H MATCHES "PYTHIA_VERSION ([0-9]\ 53 set(Pythia8_VERSION "${CMAKE_MATCH_1}") 54 else() 55 set(Pythia8_VERSION "") 56 endif() 57 endif() 58 59 # handle the QUIETLY and REQUIRED arguments an 60 # all listed variables are TRUE 61 include(FindPackageHandleStandardArgs) 62 find_package_handle_standard_args(Pythia8 63 REQUIRED_VARS Pythia8_INCLUDE_DIR Pythia8_LI 64 VERSION_VAR Pythia8_VERSION) 65 66 mark_as_advanced(Pythia8_INCLUDE_DIR Pythia8_L 67 68 # Create imported target 69 if(Pythia8_FOUND) 70 if(NOT TARGET Pythia8::Pythia8) 71 add_library(Pythia8::Pythia8 UNKNOWN IMPOR 72 set_target_properties(Pythia8::Pythia8 PRO 73 INTERFACE_INCLUDE_DIRECTORIES "${Pythia8 74 IMPORTED_LOCATION ${Pythia8_LIBRARY}) 75 endif() 76 endif()