summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/revocap-refiner/package.py
blob: 4c563a91d830edaed0ee1df899064196b8cb3e27 (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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# Copyright 2013-2020 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 RevocapRefiner(MakefilePackage):
    """The University of Tokyo, CISS Project:
        Geometric processing, mesh processing, mesh generation"""

    homepage = "https://github.com/FrontISTR/REVOCAP_Refiner"
    git      = "https://github.com/FrontISTR/REVOCAP_Refiner.git"

    version('master', branch='master')

    depends_on('ruby', type='build')
    depends_on('mpi')
    depends_on('doxygen', type='build')
    depends_on('swig', type='build')

    parallel = False

    # add space between literal and identifier.
    patch('add_space.patch')
    # remove unused function getIndices.
    patch('delete_getIndices.patch')

    def edit(self, spec, prefix):
        cflags = ['-O']
        cxxflags = ['-O',  self.compiler.cxx_pic_flag]
        fflags = ['']
        ldshare = ['']
        libs = ['-lstdc++']
        if spec.satisfies('%gcc'):
            ldshare.append('g++ -shared -s')

        m = FileFilter('MakefileConfig.in')
        m.filter(r'CC\s=.*$', 'CC={0}'.format(spec['mpi'].mpicc))
        m.filter(r'CFLAGS\s=.*$', 'CFLAGS={0}'.format(' '.join(cflags)))
        m.filter(r'CXX\s*=.*$',  'CXX={0}'.format(spec['mpi'].mpicxx))
        m.filter(r'CXXFLAGS\s*=.*$',
                 'CXXFLAGS={0}'.format(' '.join(cxxflags)))
        m.filter(r'AR\s*=.*$', 'AR=ar')
        m.filter(r'ARFLAGS\s*=.*$', 'ARFLAGS=rsv')
        m.filter(r'LD\s*=.*$', 'LD={0}'.format(spack_fc))
        m.filter(r'LDFLAGS\s*=.*$',
                 'LDFLAGS={0}'.format(' '.join(fflags)))
        m.filter(r'LDSHARE\s*=.*$',
                 'LDSHARE={0}'.format(' '.join(ldshare)))
        m.filter(r'LIBS\s*=.*$', 'LIBS={0}'.format(' '.join(libs)))
        m.filter(r'LIBPATH\s*=.*$', 'LIBPATH= ')
        m.filter(r'RM\s*=.*$', 'RM=rm -f')
        m.filter(r'DOXYGEN\s*=.*$', 'DOXYGEN=doxygen')
        m.filter(r'TAR\s*=.*$', 'TAR=tar')
        m.filter(r'SWIG\s*=.*$', 'SWIG=swig')

    def install(self, spec, prefix):
        install_tree('bin', prefix.bin)
        install_tree('lib', prefix.lib)
        install_tree('Refiner',  prefix.include.refine)