1 | import PETSc.package
|
---|
2 |
|
---|
3 | class Configure(PETSc.package.NewPackage):
|
---|
4 | def __init__(self, framework):
|
---|
5 | import os
|
---|
6 | PETSc.package.NewPackage.__init__(self, framework)
|
---|
7 | self.include = [os.path.abspath(os.path.join('include', 'sieve'))]
|
---|
8 | self.libdir = ''
|
---|
9 | self.archIndependent = 1
|
---|
10 | self.cxx = 1
|
---|
11 | self.complex = 1
|
---|
12 | self.worksonWindows = 1
|
---|
13 | self.double = 0
|
---|
14 | return
|
---|
15 |
|
---|
16 | def setupDependencies(self, framework):
|
---|
17 | PETSc.package.NewPackage.setupDependencies(self, framework)
|
---|
18 | self.boost = self.framework.require('config.packages.boost',self)
|
---|
19 | self.mpi = self.framework.require('config.packages.MPI',self)
|
---|
20 | #self.triangle = self.framework.require('PETSc.packages.Triangle',self)
|
---|
21 | #self.tetgen = self.framework.require('PETSc.packages.TetGen',self)
|
---|
22 | self.deps = [self.boost, self.mpi]
|
---|
23 | return
|
---|
24 |
|
---|
25 | def getSearchDirectories(self):
|
---|
26 | return [self.petscdir.dir]
|
---|
27 |
|
---|
28 | def setupHelp(self, help):
|
---|
29 | PETSc.package.NewPackage.setupHelp(self, help)
|
---|
30 | import nargs
|
---|
31 | help.addArgument('Sieve', '-with-opt-sieve=<bool>', nargs.ArgBool(None, 1, 'Use IMesh which are optimized for interval point sets'))
|
---|
32 | help.addArgument('Sieve', '-with-sieve-memory-logging=<bool>', nargs.ArgBool(None, 0, 'Turn on memory logging for Sieve objects'))
|
---|
33 | return
|
---|
34 |
|
---|
35 | def Install(self):
|
---|
36 | import sys
|
---|
37 | sieveDir = self.getDir()
|
---|
38 | self.framework.actions.addArgument('Sieve', 'Install', 'Installed Sieve into '+sieveDir)
|
---|
39 | return sieveDir
|
---|
40 |
|
---|
41 | def consistencyChecks(self):
|
---|
42 | PETSc.package.NewPackage.consistencyChecks(self)
|
---|
43 | if self.framework.argDB['with-'+self.package]:
|
---|
44 | if not self.languages.clanguage == 'Cxx':
|
---|
45 | raise RuntimeError('Sieve requires C++. Suggest using --with-clanguage=cxx')
|
---|
46 | if not self.boost.found:
|
---|
47 | raise RuntimeError('Sieve requires boost, and configure could not locate it. Suggest using --download-boost=1')
|
---|
48 | if 'with-opt-sieve' in self.argDB and self.argDB['with-opt-sieve']:
|
---|
49 | self.addDefine('OPT_SIEVE', 1)
|
---|
50 | self.addDefine('MESH_TYPE', 'ALE::IMesh<PetscInt, PetscScalar>')
|
---|
51 | else:
|
---|
52 | self.addDefine('MESH_TYPE', 'ALE::Mesh<PetscInt, PetscScalar>')
|
---|
53 | if 'with-sieve-memory-logging' in self.argDB and self.argDB['with-sieve-memory-logging']:
|
---|
54 | self.framework.addDefine('ALE_MEM_LOGGING', 1)
|
---|
55 | return
|
---|