xref: /petsc/config/PETSc/options/externalpackagesdir.py (revision d1b3ee289116af54fe925b17aa1669dfbeedfe1b)
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