12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- import os
- from numpy.distutils.fcompiler.gnu import GnuFCompiler
- compilers = ['VastFCompiler']
- class VastFCompiler(GnuFCompiler):
- compiler_type = 'vast'
- compiler_aliases = ()
- description = 'Pacific-Sierra Research Fortran 90 Compiler'
- version_pattern = (r'\s*Pacific-Sierra Research vf90 '
- r'(Personal|Professional)\s+(?P<version>[^\s]*)')
- # VAST f90 does not support -o with -c. So, object files are created
- # to the current directory and then moved to build directory
- object_switch = ' && function _mvfile { mv -v `basename $1` $1 ; } && _mvfile '
- executables = {
- 'version_cmd' : ["vf90", "-v"],
- 'compiler_f77' : ["g77"],
- 'compiler_fix' : ["f90", "-Wv,-ya"],
- 'compiler_f90' : ["f90"],
- 'linker_so' : ["<F90>"],
- 'archiver' : ["ar", "-cr"],
- 'ranlib' : ["ranlib"]
- }
- module_dir_switch = None #XXX Fix me
- module_include_switch = None #XXX Fix me
- def find_executables(self):
- pass
- def get_version_cmd(self):
- f90 = self.compiler_f90[0]
- d, b = os.path.split(f90)
- vf90 = os.path.join(d, 'v'+b)
- return vf90
- def get_flags_arch(self):
- vast_version = self.get_version()
- gnu = GnuFCompiler()
- gnu.customize(None)
- self.version = gnu.get_version()
- opt = GnuFCompiler.get_flags_arch(self)
- self.version = vast_version
- return opt
- if __name__ == '__main__':
- from distutils import log
- log.set_verbosity(2)
- from numpy.distutils import customized_fcompiler
- print(customized_fcompiler(compiler='vast').get_version())
|