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