spack:
  include:
      - compiler_definitions.yaml

      - packages_stack.yaml
      - packages_env.yaml

      - modules_stack.yaml

      - definitions_env.yaml

      - config_stack.yaml

  definitions:
    # -------------------------------------------------------------------------
    # PE definition
    # -------------------------------------------------------------------------
    - mpi_gcc:
        - openmpi

    - mpi_oneapi:
        - intel-oneapi-mpi

    - blas_gcc:
        - openblas

    - blas_oneapi:
        - intel-oneapi-mkl

    # -------------------------------------------------------------------------
    # Core packages
    # -------------------------------------------------------------------------
    - core_codes:
        - bzip2
        - cmake
        - emacs +tls
        - fastqc
        - fio
        - git
        - git-lfs
        - gmp
        - gnuplot
        - gzip
        - imagemagick +ghostscript
        - intel-oneapi-advisor
        - intel-oneapi-inspector
        - intel-oneapi-vtune
        - libarchive
        - libjpeg-turbo
        - libpng
        - libtiff
        - libxml2
        - lmod
        - mpfr
        - neovim
        - parallel
        - picard
        - rclone
        - sbt
        - sratoolkit
        - subversion
        - tar
        - tcl
        - tk
        - tmux
        - trimmomatic
        - valgrind
        - xclip
        - zlib

    # -------------------------------------------------------------------------
    # Serial codes
    # -------------------------------------------------------------------------
    - serial_codes:
        - bwa
        - fftw +openmp ~mpi
        - fftw ~openmp ~mpi
        - gsl
        #- hdf5 ~mpi
        - hisat2
        - htslib
        - hwloc
        - intel-oneapi-tbb
        - jasper
        - libxc
        - mafft
        - metis
        - muscle
        - nfft
        - python
        - scotch
        - stacks
        - star
        - subread
        - superlu
        - voropp

    # -------------------------------------------------------------------------
    # Empty to specialize in environments
    # -------------------------------------------------------------------------
    - cuda_system_codes: []

    # -------------------------------------------------------------------------
    # Parallel codes
    # -------------------------------------------------------------------------
    - mpi_codes:
        - osu-micro-benchmarks +graphing
        - hdf5 +mpi
        - hypre
        - parmetis
        - mumps
        - superlu-dist

    - blas_mpi_python_codes:
        - petsc +mpi

    # -------------------------------------------------------------------------
    # Generic definitions
    # -------------------------------------------------------------------------
    - mpis:
        - $mpi_oneapi
        - $mpi_gcc


  specs:
    - matrix:
        - [$compilers_specs]

    - matrix:
        - [$blas_oneapi]
        - [$%compiler_oneapi]

    - matrix:
        - [$blas_gcc]
        - [$%compiler_gcc]

    - matrix:
        - [$mpi_oneapi]
        - [$%compiler_oneapi]

    - matrix:
        - [$mpi_gcc]
        - [$%compiler_gcc]

    - matrix:
        - [$core_codes]
        - [$%system_compiler]

    - matrix:
        - [$cuda_system_codes]
        - [$%system_compiler]

    - matrix:
        - [$serial_codes]
        - [$%compilers]

    - matrix:
        - [$mpi_codes]
        - [$^mpi_oneapi]
        - [$%compiler_oneapi]

    - matrix:
        - [$mpi_codes]
        - [$^mpi_gcc]
        - [$%compiler_gcc]

    - matrix:
        - [$blas_mpi_python_codes]
        - [$^blas_oneapi]
        - [$^mpi_oneapi]
        - [^python]
        - [$%compiler_oneapi]

    - matrix:
        - [$blas_mpi_python_codes]
        - [$^blas_gcc]
        - [$^mpi_gcc]
        - [^python]
        - [$%compiler_gcc]

  view: false
#    default:
#      root: /stack/packages/
