spack:
  include:
      - compiler_definitions.yaml

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

      - modules_stack.yaml
      - modules_env.yaml

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

      - config_stack.yaml

  packages:
    blas:
      require: ['nvhpc +blas']

    lapack:
      require: ['nvhpc +lapack']

    mpi:
      require: ['nvhpc +mpi']

    scalapack:
      require: ['netlib-scalapack']

    nvhpc:
      require: ['@24.7', '+mpi', '+blas', '+lapack', 'default_cuda=12.5',
                '%gcc@11.2.1', 'target=x86_64_v3']

    icu4c:
      require: ['%gcc']

  definitions:
    # -------------------------------------------------------------------------
    # PE definition
    # -------------------------------------------------------------------------
    - mpi_nvhpc:
        - "[virtuals=mpi] nvhpc+mpi"

    - blas_nvhpc:
        - "[virtuals=blas,lapack] nvhpc +blas +lapack"

    - python_nvhpc:
        - python@3.11.7 %gcc@11.2.1

  specs:
    - matrix:
        - [$compilers_specs]

    # --------------------------------------------------------------------------
    - matrix:
        - [$serial_codes]
        - [$%compiler_nvhpc]

    - matrix:
        - [$mpi_codes]
        - [$^mpi_nvhpc]
        - [$%compiler_nvhpc]

    - matrix:
        - [$nvhpc_mpi_codes]
        - [$^mpi_nvhpc]
        - [$%compiler_nvhpc]

    - matrix:
        - [$mpi_blas_codes]
        - [$^blas_nvhpc]
        - [$^mpi_nvhpc]
        - [$%compiler_nvhpc]

    - matrix:
        - [$mpi_blas_python_codes]
        - [$^blas_nvhpc]
        - [$^mpi_nvhpc]
        - [$%compiler_nvhpc]

  view: false
