1#!/usr/bin/env python 2from __future__ import generators 3import user 4import config.base 5 6class Configure(config.base.Configure): 7 def __init__(self, framework): 8 config.base.Configure.__init__(self, framework) 9 self.headerPrefix = '' 10 self.substPrefix = '' 11 return 12 13 def __str1__(self): 14 if not hasattr(self, 'clanguage'): 15 return '' 16 return ' Clanguage: ' + self.clanguage +'\n' 17 18 def setupHelp(self, help): 19 import nargs 20 help.addArgument('PETSc', '-with-clanguage=<C or C++>', nargs.Arg(None, 'C', 'Specify C (recommended) or C++ to compile PETSc. You can use C++ in either case.')) 21 return 22 23 def setupDependencies(self, framework): 24 config.base.Configure.setupDependencies(self, framework) 25 return 26 27 def configureCLanguage(self): 28 '''Choose whether to compile the PETSc library using a C or C++ compiler''' 29 self.clanguage = self.framework.argDB['with-clanguage'].upper().replace('+','x').replace('X','x') 30 if not self.clanguage in ['C', 'Cxx']: 31 raise RuntimeError('Invalid C language specified: '+str(self.clanguage)) 32 self.framework.logPrint('C language is '+str(self.clanguage)) 33 self.addDefine('CLANGUAGE_'+self.clanguage.upper(),'1') 34 self.framework.require('config.setCompilers', None).mainLanguage = self.clanguage 35 36 def configure(self): 37 self.executeTest(self.configureCLanguage) 38 return 39