spack:
  include:
      - compiler_definitions.yaml

      - packages_stack.yaml
      - packages_accel.yaml
      - packages_env.yaml

      - modules_stack.yaml
      - modules_env.yaml
      - modules_accel.yaml

      - definitions_stack.yaml
      - definitions_accel.yaml
      - definitions_env.yaml

  modules:
    default:
      lmod:
        hierarchy: ['mpi']

  packages:
    blas:
      require: ['openblas']

    lapack:
      require: ['openblas']

    mpi:
      require: ['openmpi']

    scalapack:
      require: ['netlib-scalapack']

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

    - blas_gcc:
        - openblas@0.3.27

    - python_gcc:
        - python@3.11.7

  specs:
    - matrix:
        - [$compilers_specs]

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

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

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

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

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

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

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

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

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

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

    - matrix:
        - [$python_codes]
        - [$^python_gcc]
        - [$%compiler_gcc]

    - matrix:
        - [$gcc_python_codes]
        - [$^python_gcc]
        - [$%compiler_gcc]

    - matrix:
        - [$python_blas_codes]
        - [$^python_gcc]
        - [$^blas_gcc]
        - [$%compiler_gcc]

    - matrix:
        - [$gcc_python_blas_codes]
        - [$^python_gcc]
        - [$^blas_gcc]
        - [$%compiler_gcc]

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

    - matrix:
        - [$mpi_python_codes]
        - [$^python_gcc]
        - [$^mpi_gcc]
        - [$%compiler_gcc]

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

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

    - matrix:
        - [$mpi_blas_codes]
        - [$^blas_gcc]
        - [$^mpi_gcc]
        - [$%compiler_gcc]

    - matrix:
        - [$gcc_mpi_blas_codes]
        - [$^blas_gcc]
        - [$^mpi_gcc]
        - [$%compiler_gcc]

    - matrix:
        - [$mpi_blas_python_codes]
        - [$^python_gcc]
        - [$^blas_gcc]
        - [$^mpi_gcc]
        - [$%compiler_gcc]

    - matrix:
        - [$gcc_mpi_blas_python_codes]
        - [$^python_gcc]
        - [$^blas_gcc]
        - [$^mpi_gcc]
        - [$%compiler_gcc]

  view: false