packages:
  all:
    providers:
      mpi: [openmpi, intel-oneapi-mpi]
      jpeg: [libjpeg]

  # System dependencies  # ----------------------------------------------------------------------------
  rdma-core:
    buildable: false
    externals:
    - spec: rdma-core@44.1
      prefix: /usr

  slurm:
    buildable: false
    externals:
    - spec: slurm@23-11-0-1
      prefix: /usr

  pmix:
    buildable: false
    externals:
    - spec: pmix@5.0.1
      prefix: /usr


  # ----------------------------------------------------------------------------
  # Requirements
  # ----------------------------------------------------------------------------
  cmake:
    require:
    - spec: +ownlibs

  cuda:
    require:
    - spec: '@12.4.0'

  hdf5:
    variants: +hl +threadsafe +szip +cxx +fortran

  libfabric:
    require:
    - spec: fabrics=mlx,tcp,udp,verbs,sockets,shm

  intel-oneapi-mpi:
    require:
    - any_of: ['%oneapi', '%intel']

  openmpi:
    require:
    - any_of: ['%gcc']
    - spec: fabrics=ofi,ucx,verbs schedulers=slurm ~rsh +gpfs
    - spec: cuda_arch=70 ^ucx +cuda
      when: +cuda

  ucx:
    require:
    - spec: +rdmacm +rc +dc +ud +cma +mlx5_dv +parameter_checking +thread_multiple
        +verbs
    - spec: +gdrcopy
      when: +cuda
