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.gitcommit = 'ef941eddf50a6de307a5d6b54b5d44504dd3ce89' #joe/old-no-debug Sep 15, 2021 - with fixes for 1dfe81f in master Sep 21, 2018 8 self.download = ['git://https://github.com/meshadaptation/pragmatic.git','https://github.com/meshadaptation/pragmatic/archive/'+self.gitcommit+'.tar.gz'] 9 self.functions = ['pragmatic_2d_init'] 10 self.includes = ['pragmatic/pragmatic.h'] 11 self.liblist = [['libpragmatic.a']] 12 self.need35policy = True 13 return 14 15 def setupDependencies(self, framework): 16 config.package.CMakePackage.setupDependencies(self, framework) 17 self.compilerFlags = framework.require('config.compilerFlags', self) 18 self.sharedLibraries = framework.require('PETSc.options.sharedLibraries', self) 19 self.scalartypes = framework.require('PETSc.options.scalarTypes',self) 20 self.indexTypes = framework.require('PETSc.options.indexTypes', self) 21 self.mpi = framework.require('config.packages.MPI',self) 22 self.metis = framework.require('config.packages.METIS', self) 23 self.eigen = framework.require('config.packages.Eigen', self) 24 self.mathlib = framework.require('config.packages.mathlib',self) 25 self.deps = [self.mpi, self.metis, self.eigen, self.mathlib] 26 return 27 28 def formCMakeConfigureArgs(self): 29 args = config.package.CMakePackage.formCMakeConfigureArgs(self) 30 args.append('-DMETIS_DIR='+self.metis.directory) 31 args.append('-DENABLE_VTK=OFF') 32 args.append('-DENABLE_OPENMP=OFF') 33 args.append('-DEIGEN_INCLUDE_DIR='+self.eigen.include[0]) 34 35 args.append('-DMPI_C_INCLUDE_PATH:STRING=""') 36 args.append('-DMPI_C_COMPILE_FLAGS:STRING=""') 37 args.append('-DMPI_C_LINK_FLAGS:STRING=""') 38 args.append('-DMPI_C_LIBRARIES:STRING=""') 39 args.append('-DMPI_CXX_INCLUDE_PATH:STRING=""') 40 args.append('-DMPI_CXX_COMPILE_FLAGS:STRING=""') 41 args.append('-DMPI_CXX_LINK_FLAGS:STRING=""') 42 args.append('-DMPI_CXX_LIBRARIES:STRING=""') 43 44 if self.indexTypes.integerSize == 64: 45 raise RuntimeError('Pragmatic cannot be built with 64-bit integers') 46 if self.scalartypes.precision == 'single': 47 raise RuntimeError('Pragmatic cannot be built with single precision') 48 elif self.scalartypes.precision == '__float128': 49 raise RuntimeError('Pragmatic cannot be built with quad precision') 50 return args 51