Geant4 Cross Reference |
1 # - G4HDF5Shim 2 # 3 # Geant4's Geant4Config.cmake file aims to sup 4 # The HDF5 dependency is located through CMake 5 # module, but this does not supply imported ta 6 # It may use HDF5's hdf5-config.cmake file if 7 # custom imported target hdf5::hdf5 to allow b 8 # without interference with either. 9 10 if(HDF5_FOUND) 11 # If we're in MT mode, found HDF5 must also s 12 if(GEANT4_BUILD_MULTITHREADED OR Geant4_multi 13 include(CheckCXXSymbolExists) 14 set(CMAKE_REQUIRED_INCLUDES "${HDF5_INCLUDE 15 check_cxx_symbol_exists(H5_HAVE_THREADSAFE 16 unset(CMAKE_REQUIRED_INCLUDES) 17 18 if(NOT GEANT4_HAVE_H5_HAVE_THREADSAFE) 19 message(FATAL_ERROR 20 "Found an install of HDF5, but it was n 21 "Either build Geant4 in single threaded 22 "thread safety enabled. See HDF5's inst 23 ) 24 endif() 25 endif() 26 27 # If FindHDF5 does not yet supply imported ta 28 # create an internal INTERFACE target to wrap 29 # This still hard-codes include/library paths 30 # to one place. Later, we'll create proper im 31 # with re-finds but for now this is the best 32 if(NOT TARGET hdf5::hdf5) 33 add_library(hdf5::hdf5 IMPORTED UNKNOWN) 34 set_target_properties(hdf5::hdf5 PROPERTIES 35 IMPORTED_LINK_INTERFACE_LANGUAGES "C" 36 IMPORTED_LOCATION "${HDF5_C_LIBRARY_hdf5} 37 INTERFACE_INCLUDE_DIRECTORIES "${HDF5_C_I 38 INTERFACE_LINK_LIBRARIES "${HDF5_C_LIBRAR 39 ) 40 endif() 41 endif()