---  # Icelake packages
packages:
  cpio:
    require:
      - one_of: ['cflags=-std=c18', '%gcc']
  gcc:
    require:
      - one_of: ["gcc@12 %gcc +binutils ^binutils@2.37 target=x86_64_v3"]
  gromacs:
    require:
      - one_of: ["gromacs@2020.1 +blas +intel_provided_gcc +lapack %intel ^intel-oneapi-mkl"]
  intel-mpi:
    variants: +external-libfabric
  intel-oneapi-compilers:
    require:
      - one_of: ["intel-oneapi-compilers %gcc target=x86_64_v3"]
  intel-oneapi-mpi:
    variants: +external-libfabric generic-names=True
  lammps:
    require:
      - one_of: ["lammps@develop lammps_sizes=bigbig +molecule +kspace +rigid +asphere +opt +openmp +openmp-package +intel %intel ^intel-oneapi-mkl"]
  libidn2:
    require:
      - one_of: ['cflags=-std=c18', '%gcc']
  libfabric:
    buildable: false
    externals:
      - modules:
          - ${LIBFABRIC_MODULE}
        spec: libfabric@${LIBFABRIC_VERSION} fabrics=efa
  libunistring:
    require:
      - one_of: ['cflags=-std=c18', '%gcc']
  mpas-model:
    require:
      - one_of: ["precision=single %intel ^parallelio+pnetcdf"]
  mpich:
    require:
      - one_of: ["mpich pmi=pmi2 device=ch4 netmod=ofi +slurm"]
  openfoam:
    require:
      - one_of: ["openfoam %gcc ^scotch@6.0.9"]
  openmpi:
    variants: ~atomics ~cuda ~cxx ~cxx_exceptions ~internal-hwloc ~java +legacylaunchers ~lustre ~memchecker +pmi +romio ~singularity +vt +wrapper-rpath fabrics=ofi schedulers=slurm
  palace:
    require:
      - one_of: ["palace ^fmt@9.1.0"]
  pmix:
    require: ["pmix@3"]
  py-devito:
    require:
      - one_of: ["+mpi %intel"]
  quantum-espresso:
    require:
      - one_of: ["quantum-espresso@6.6 %intel ^intel-oneapi-mkl+cluster"]
  slurm:
    buildable: false
    externals:
      - prefix: /opt/slurm/
        spec: slurm@${SLURM_VERSION} +pmix
  wrf:
    require:
      - one_of: ["wrf@4 build_type=dm+sm %intel"]
  all:
    compiler: [intel, gcc, clang]
    permissions:
      read: world
      write: user
    providers:
      blas: [intel-oneapi-mkl, intel-mkl]
      daal: [intel-oneapi-dal, intel-daal]
      fftw-api: [intel-oneapi-mkl, intel-mkl]
      ipp: [intel-oneapi-ipp, intel-ipp]
      lapack: [intel-oneapi-mkl, intel-mkl]
      mkl: [intel-oneapi-mkl, intel-mkl]
      mpi: [intel-oneapi-mpi, openmpi, mpich]
      tbb: [intel-oneapi-tbb, intel-tbb]
      scalapack: [intel-oneapi-mkl, intel-mkl]