xref: /petsc/config/BuildSystem/config/utilities/fortranCommandLine.py (revision e681106f87e250f307cfa6ce2996706de0d4f19a)
19d310bb7SBarry Smithfrom __future__ import generators
29d310bb7SBarry Smithimport config.base
39d310bb7SBarry Smith
49d310bb7SBarry Smithclass Configure(config.base.Configure):
59d310bb7SBarry Smith  def __init__(self, framework):
69d310bb7SBarry Smith    config.base.Configure.__init__(self, framework)
79d310bb7SBarry Smith    self.headerPrefix = ''
89d310bb7SBarry Smith    self.substPrefix  = ''
98d35c829SSatish Balay    self.have_command_argument = False
109d310bb7SBarry Smith    return
119d310bb7SBarry Smith
129d310bb7SBarry Smith  def __str__(self):
139d310bb7SBarry Smith    return ''
149d310bb7SBarry Smith
159d310bb7SBarry Smith  def setupHelp(self, help):
169d310bb7SBarry Smith    import nargs
179d310bb7SBarry Smith    return
189d310bb7SBarry Smith
199d310bb7SBarry Smith  def setupDependencies(self, framework):
209d310bb7SBarry Smith    config.base.Configure.setupDependencies(self, framework)
219d310bb7SBarry Smith    self.compilers    = self.framework.require('config.compilers', self)
220542e31aSBarry Smith    self.setCompilers = self.framework.require('config.setCompilers', self)
239d310bb7SBarry Smith    self.functions    = self.framework.require('config.functions', self)
249d310bb7SBarry Smith    self.libraries    = framework.require('config.libraries',  self)
259d310bb7SBarry Smith    return
269d310bb7SBarry Smith
279d310bb7SBarry Smith  def configureFortranCommandLine(self):
289d310bb7SBarry Smith    '''Check for the mechanism to retrieve command line arguments in Fortran'''
299d310bb7SBarry Smith
309d310bb7SBarry Smith    # These are for when the routines are called from Fortran
31d1fb55d9SBarry Smith
32d1fb55d9SBarry Smith    self.libraries.pushLanguage('FC')
33d1fb55d9SBarry Smith    self.libraries.saveLog()
34*9c9d773aSMartin Diehl    if self.libraries.check('','', call = '      integer i\n      character(len=80) arg\n      i = command_argument_count()\n      call get_command_argument(i,arg)'):
35d1fb55d9SBarry Smith      self.logWrite(self.libraries.restoreLog())
36d1fb55d9SBarry Smith      self.libraries.popLanguage()
378d35c829SSatish Balay      self.have_command_argument = True
388d35c829SSatish Balay    else:
398d35c829SSatish Balay      self.logPrint("Missing GET_COMMAND_ARGUMENT() support in Fortran!")
409d310bb7SBarry Smith    return
419d310bb7SBarry Smith
429d310bb7SBarry Smith  def configure(self):
430542e31aSBarry Smith    if hasattr(self.setCompilers, 'FC'):
449d310bb7SBarry Smith      self.executeTest(self.configureFortranCommandLine)
459d310bb7SBarry Smith    return
46