summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/flexi/package.py
blob: 886400ae44c257941989d2783ba169bc0637ed7b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)

from spack import *


class Flexi(CMakePackage):
    """Open Source High-Order Unstructured Discontinuous Galerkin Fluid
    Dynamics Solver"""

    homepage = "https://www.flexi-project.org/"
    git      = "https://github.com/flexi-framework/flexi.git"

    version('master')

    variant('mpi', default=True, description='Enable MPI')

    depends_on('mpi', when='+mpi')
    depends_on('hdf5+fortran+mpi', when='+mpi')
    depends_on('hdf5+fortran~mpi', when='~mpi')
    depends_on('lapack')
    depends_on('zlib')

    def flag_handler(self, name, flags):
        if name == 'fflags':
            if self.spec.satisfies('%gcc@10:'):
                if flags is None:
                    flags = []
                flags.append('-fallow-argument-mismatch')

        return (flags, None, None)

    def cmake_args(self):
        args = [
            '-DFLEXI_BUILD_HDF5:BOOL=OFF',
            self.define_from_variant('FLEXI_MPI', 'mpi')
        ]

        return args