# ------------------------------------------------------------------------------# # # Finds headers and libraries for CrayPAT instrumentation # # ------------------------------------------------------------------------------# include(FindPackageHandleStandardArgs) # ------------------------------------------------------------------------------# set(CrayPAT_HINTS "$ENV{CRAYPAT_ROOT}") # ------------------------------------------------------------------------------# find_path( CrayPAT_INCLUDE_DIR NAMES pat_api.h PATH_SUFFIXES include HINTS ${CrayPAT_ROOT_DIR} ${CrayPAT_HINTS} PATHS ${CrayPAT_ROOT_DIR} ${CrayPAT_HINTS}) # ------------------------------------------------------------------------------# find_library( CrayPAT_LIBRARY NAMES _pat_rt PATH_SUFFIXES lib64 lib lib32 HINTS ${CrayPAT_ROOT_DIR} ${CrayPAT_HINTS} PATHS ${CrayPAT_ROOT_DIR} ${CrayPAT_HINTS}) # ------------------------------------------------------------------------------# if(CrayPAT_INCLUDE_DIR) set(CrayPAT_INCLUDE_DIRS ${CrayPAT_INCLUDE_DIR}) endif() # ------------------------------------------------------------------------------# if(CrayPAT_LIBRARY) set(CrayPAT_LIBRARIES ${CrayPAT_LIBRARY}) get_filename_component(CrayPAT_LIBRARY_DIR "${CrayPAT_LIBRARY}" PATH CACHE) endif() # ------------------------------------------------------------------------------# if(CrayPAT_LIBRARY_DIR) set(CrayPAT_LIBRARY_DIRS ${CrayPAT_LIBRARY_DIR}) endif() # ------------------------------------------------------------------------------# set(CrayPAT_AVAILABLE_COMPONENTS adios2 aio ampi armci base blacs blas caf chapel charm comex converse craymem cuda curl dl dmapp fabric ffio fftw fftw_cl ga gmp gni hbw hdf5 heap hip hsa huge jemalloc lapack lustre math memkind memory mpfr mpi netcdf numa oacc omp opencl ovhd_null ovhd_null_dl ovhd_null_inner ovhd_null_inner_dl ovhd_null_outer ovhd_null_outer_dl pblas petsc pgas pnetcdf pthread rt scalapack shmem shmemx signal spawn stdio string stubs_acc stubs_api stubs_omp stubs_tps syscall sysfs sysio upc xpmem zmq) # ------------------------------------------------------------------------------# foreach(_COMP ${CrayPAT_FIND_COMPONENTS}) if(NOT "${_COMP}" IN_LIST CrayPAT_AVAILABLE_COMPONENTS) message(AUTHOR_WARNING "Non-standard CrayPAT component: '${_COMP}'") endif() find_library( CrayPAT_${_COMP}_LIBRARY NAMES _pat_${_COMP} PATH_SUFFIXES lib64 lib lib32 HINTS ${CrayPAT_ROOT_DIR} ${CrayPAT_LIBRARY_DIR} ${CrayPAT_HINTS} PATHS ${CrayPAT_ROOT_DIR} ${CrayPAT_LIBRARY_DIR} ${CrayPAT_HINTS}) if(CrayPAT_${_COMP}_LIBRARY) list(APPEND CrayPAT_LIBRARIES ${CrayPAT_${_COMP}_LIBRARY}) get_filename_component(_COMP_DIR "${CrayPAT_${_COMP}_LIBRARY}" PATH) list(APPEND CrayPAT_LIBRARY_DIRS ${_COMP_DIR}) else() if(CrayPAT_FIND_REQUIRED_${_COMP}) list(APPEND _CrayPAT_MISSING_COMPONENTS CrayPAT_${_COMP}_LIBRARY) endif() endif() mark_as_advanced(CrayPAT_${_COMP}_LIBRARY) endforeach() # ------------------------------------------------------------------------------# mark_as_advanced(CrayPAT_INCLUDE_DIR CrayPAT_LIBRARY CrayPAT_LIBRARY_DIR) find_package_handle_standard_args( CrayPAT REQUIRED_VARS CrayPAT_INCLUDE_DIR CrayPAT_LIBRARY CrayPAT_LIBRARY_DIR ${_CrayPAT_MISSING_COMPONENTS}) # ------------------------------------------------------------------------------#