1import config.package 2 3class Configure(config.package.CMakePackage): 4 def __init__(self, framework): 5 import os 6 config.package.CMakePackage.__init__(self, framework) 7 self.download = ['GitOnly'] 8 self.gitcommit = '134468543d3c6052803c69fca3a714f6e2ce0275' 9 self.giturls = ['https://github.com/meshadaptation/pragmatic.git'] 10 self.functions = ['pragmatic_2d_init'] 11 self.includes = ['pragmatic.h'] 12 self.liblist = [['libpragmatic.a']] 13 self.needsMath = 1 14 self.includedir = os.path.join('include', 'pragmatic') 15 return 16 17 def setupDependencies(self, framework): 18 config.package.CMakePackage.setupDependencies(self, framework) 19 self.compilerFlags = framework.require('config.compilerFlags', self) 20 self.sharedLibraries = framework.require('PETSc.options.sharedLibraries', self) 21 self.scalartypes = framework.require('PETSc.options.scalarTypes',self) 22 self.indexTypes = framework.require('PETSc.options.indexTypes', self) 23 self.metis = framework.require('config.packages.metis', self) 24 return 25 26 def formCMakeConfigureArgs(self): 27 if not self.cmake.found: 28 raise RuntimeError('CMake > 2.5 is needed to build Pragmatic') 29 30 args = config.package.CMakePackage.formCMakeConfigureArgs(self) 31 args.append('-DMETIS_DIR='+self.metis.getInstallDir()) 32 args.append('-DENABLE_VTK=OFF') 33 args.append('-DENABLE_OPENMP=OFF') 34 if self.indexTypes.integerSize == 64: 35 raise RuntimeError('Pragmatic cannot be built with 64-bit integers') 36 if self.scalartypes.precision == 'single': 37 raise RuntimeError('Pragmatic cannot be built with single precision') 38 elif self.scalartypes.precision == 'quad': 39 raise RuntimeError('Pragmatic cannot be built with quad precision') 40 return args 41