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)
|