summaryrefslogblamecommitdiff
path: root/var/spack/repos/builtin/packages/fujitsu-frontistr/package.py
blob: 111647849981e415a5d44b8da9346ec8374120f8 (plain) (tree)
1
2
3
4
5
6
7





                                                                         
                           









































                                                                                             
# Copyright 2013-2022 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.package import *
from spack.pkg.builtin.frontistr import FrontistrBase


class FujitsuFrontistr(FrontistrBase):
    """This is a fork repository of the FrontISTR tuned for A64FX."""

    _name = 'fujitsu-frontistr'
    homepage = "https://www.frontistr.com/"
    url = "https://github.com/fujitsu/FrontISTR/archive/refs/tags/v5.2_tuned.tar.gz"
    git      = "https://github.com/fujitsu/FrontISTR"
    maintainers = ['kinagaki-fj', 'kinagaki', 'm-shunji']

    version('master', branch='fj-master')
    version('5.2', sha256='ebf73a96c33ae7c9e616c99f9ce07ec90d802764dbf6abf627b0083c3bbd2b2e')
    version('5.0', sha256='7a3a2dd0f834048fb71cc254c9da6c2637fb23110e79b5efaf208d6f69a5b30a')

    variant('static', default=True, description='Build with static linkage')
    depends_on('metis ~shared', when='+static')
    depends_on('mumps ~shared', when='+static')
    depends_on('trilinos ~shared', when='+static')

    def url_for_version(self, version):
        url = "https://github.com/fujitsu/FrontISTR/archive/refs/tags/v{0}_tuned.tar.gz"
        return url.format(version)

    def cmake_args(self):
        define = CMakePackage.define
        args = super(FujitsuFrontistr, self).cmake_args()
        if self.spec.satisfies('%fj'):
            args.extend([
                define('CMAKE_C_FLAGS',
                       '-Kcmodel=large -Nlst=t -Kocl -Kfast -Kzfill -Koptmsg=2'),
                define('CMAKE_CXX_FLAGS',
                       '-Kcmodel=large -Nlst=t -Kocl -Kfast -Kzfill -Koptmsg=2'),
                define('CMAKE_Fortran_FLAGS',
                       '-Kcmodel=large -Nlst=t -Kocl -Kfast -Kzfill -Koptmsg=2'),
                define('CMAKE_Fortran_MODDIR_FLAG', 'M'),
                define('OpenMP_C_FLAGS', '-Kopenmp'),
                define('OpenMP_CXX_FLAGS', '-Kopenmp'),
                define('OpenMP_Fortran_FLAGS', '-Kopenmp')
            ])
        return args