19d310bb7SBarry Smithimport config.base 29d310bb7SBarry Smithimport os 39d310bb7SBarry Smithimport re 49d310bb7SBarry Smith 59d310bb7SBarry Smithclass Configure(config.base.Configure): 69d310bb7SBarry Smith def __init__(self, framework): 79d310bb7SBarry Smith config.base.Configure.__init__(self, framework) 89d310bb7SBarry Smith return 99d310bb7SBarry Smith 109d310bb7SBarry Smith def setupDependencies(self, framework): 119d310bb7SBarry Smith self.installdir = framework.require('PETSc.options.installDir',self) 129d310bb7SBarry Smith self.arch = framework.require('PETSc.options.arch',self) 139d310bb7SBarry Smith return 149d310bb7SBarry Smith 159d310bb7SBarry Smith def setExternalPackagesDir(self): 16*7b65ca21SBarry Smith '''Set location where external packages will be downloaded to''' 179d310bb7SBarry Smith if self.framework.externalPackagesDir is None: 189d310bb7SBarry Smith self.dir = os.path.join(os.path.abspath(os.path.join(self.arch.arch)), 'externalpackages') 199d310bb7SBarry Smith else: 209d310bb7SBarry Smith self.dir = os.path.join(self.framework.externalPackagesDir,self.arch.arch) 219d310bb7SBarry Smith return 229d310bb7SBarry Smith 239d310bb7SBarry Smith def cleanExternalpackagesDir(self): 24*7b65ca21SBarry Smith '''Remove all downloaded external packages, from --with-clean''' 259d310bb7SBarry Smith import shutil 269d310bb7SBarry Smith if self.framework.argDB['with-clean'] and os.path.isdir(self.dir): 27d1b3ee28SJacob Faibussowitsch self.logPrintWarning('"with-clean" is specified. Removing all externalpackage files from '+ self.dir) 289d310bb7SBarry Smith shutil.rmtree(self.dir) 299d310bb7SBarry Smith return 309d310bb7SBarry Smith 319d310bb7SBarry Smith def configure(self): 329d310bb7SBarry Smith self.executeTest(self.setExternalPackagesDir) 339d310bb7SBarry Smith self.executeTest(self.cleanExternalpackagesDir) 349d310bb7SBarry Smith return 35