Scons:“FORTRAN*”变量在构建FORTRAN时的用途是什么?
SCON中Scons:“FORTRAN*”变量在构建FORTRAN时的用途是什么?,fortran,scons,Fortran,Scons,SCON中FORTRAN*变量的用途是什么?手册页将其描述为所有Fortran版本的默认设置。但据我所知,在实践中,它们从未被使用,因为不同Fortran方言的特定变量总是优先(F77*,F90*,F95*) 是否有办法将文件扩展名映射更改为Fortran方言,以便将某些文件映射为默认文件?查看SCons源代码(尤其是工具/fortrancomon.py),似乎Fortran与F77,F90一起被视为方言,F95和F03而不是它们的父对象。看起来变量的FORTRAN变量将用于名为.f,.for,
FORTRAN*
变量的用途是什么?手册页将其描述为所有Fortran版本的默认设置。但据我所知,在实践中,它们从未被使用,因为不同Fortran方言的特定变量总是优先(F77*
,F90*
,F95*
)
是否有办法将文件扩展名映射更改为Fortran方言,以便将某些文件映射为默认文件?查看SCons源代码(尤其是工具/fortrancomon.py),似乎
Fortran
与F77
,F90
一起被视为方言,F95
和F03
而不是它们的父对象。看起来变量的FORTRAN
变量将用于名为.f
,.for
,.ftn
,.fpp
和.fpp
的源文件,尽管它们可以从变量fortranfilesuffix
和fortranpfilesuffix
中重写
设置此设置的代码是:
def add_fortran_to_env(env):
"""Add Builders and construction variables for Fortran to an Environment."""
try:
FortranSuffixes = env['FORTRANFILESUFFIXES']
except KeyError:
FortranSuffixes = ['.f', '.for', '.ftn']
#print "Adding %s to fortran suffixes" % FortranSuffixes
try:
FortranPPSuffixes = env['FORTRANPPFILESUFFIXES']
except KeyError:
FortranPPSuffixes = ['.fpp', '.FPP']
DialectAddToEnv(env, "FORTRAN", FortranSuffixes,
FortranPPSuffixes, support_module = 1)
其中方言addtoenv
为Fortran构建变量提供值,例如(方言
是传递给函数的第二个变量):
设置F77
、F90
、F95
等的代码非常相似,例如:
def add_f90_to_env(env):
"""Add Builders and construction variables for f90 to an Environment."""
try:
F90Suffixes = env['F90FILESUFFIXES']
except KeyError:
F90Suffixes = ['.f90']
#print "Adding %s to f90 suffixes" % F90Suffixes
try:
F90PPSuffixes = env['F90PPFILESUFFIXES']
except KeyError:
F90PPSuffixes = []
DialectAddToEnv(env, "F90", F90Suffixes, F90PPSuffixes,
support_module = 1)
没有任何机制可以从一种方言退回到
FORTRAN
。每个方言(包括FORTRAN
)都是独立的,并与文件名结尾进行映射,文件名结尾是可配置的。我必须确认您的观察,它们也不适用于我。我必须使用F90*即使手册上有不同的说明。我不知道如何改变这种行为。如何配置后缀到方言的映射?在scons 2.3.4中,只有一个Fortransuffix变量包含所有方言的后缀。
def add_f90_to_env(env):
"""Add Builders and construction variables for f90 to an Environment."""
try:
F90Suffixes = env['F90FILESUFFIXES']
except KeyError:
F90Suffixes = ['.f90']
#print "Adding %s to f90 suffixes" % F90Suffixes
try:
F90PPSuffixes = env['F90PPFILESUFFIXES']
except KeyError:
F90PPSuffixes = []
DialectAddToEnv(env, "F90", F90Suffixes, F90PPSuffixes,
support_module = 1)