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): 169d310bb7SBarry Smith if self.framework.externalPackagesDir is None: 179d310bb7SBarry Smith self.dir = os.path.join(os.path.abspath(os.path.join(self.arch.arch)), 'externalpackages') 189d310bb7SBarry Smith else: 199d310bb7SBarry Smith self.dir = os.path.join(self.framework.externalPackagesDir,self.arch.arch) 209d310bb7SBarry Smith return 219d310bb7SBarry Smith 229d310bb7SBarry Smith def cleanExternalpackagesDir(self): 239d310bb7SBarry Smith import shutil 249d310bb7SBarry Smith if self.framework.argDB['with-clean'] and os.path.isdir(self.dir): 25*d1b3ee28SJacob Faibussowitsch self.logPrintWarning('"with-clean" is specified. Removing all externalpackage files from '+ self.dir) 269d310bb7SBarry Smith shutil.rmtree(self.dir) 279d310bb7SBarry Smith return 289d310bb7SBarry Smith 299d310bb7SBarry Smith def configure(self): 309d310bb7SBarry Smith self.executeTest(self.setExternalPackagesDir) 319d310bb7SBarry Smith self.executeTest(self.cleanExternalpackagesDir) 329d310bb7SBarry Smith 339d310bb7SBarry Smith return 34