fc¶
Fortran support
-
waflib.Tools.fc.fc_hook(self, node)[source]¶ Binds the Fortran file extensions create
waflib.Tools.fc.fcinstances
-
waflib.Tools.fc.modfile(conf, name)[source]¶ Configuration Method bound to
waflib.Configure.ConfigurationContextTurns a module name into the right module file name. Defaults to all lower case.
-
waflib.Tools.fc.get_fortran_tasks(tsk)[source]¶ Obtains all fortran tasks from the same build group. Those tasks must not have the attribute ‘nomod’ or ‘mod_fortran_done’
Returns: a list of waflib.Tools.fc.fcinstances
-
class
waflib.Tools.fc.fc(*k, **kw)[source]¶ Bases:
waflib.Task.TaskFortran tasks can only run when all fortran tasks in a current task group are ready to be executed This may cause a deadlock if some fortran task is waiting for something that cannot happen (circular dependency) Should this ever happen, set the ‘nomod=True’ on those tasks instances to break the loop
-
color= 'GREEN'¶
-
vars= ['DEFINES', 'FC', 'FCDEFINES_ST', 'FCFLAGS', 'FCINCPATH_ST', 'FCPPFLAGS', 'FC_SRC_F', 'FC_TGT_F', 'FORTRANMODPATHFLAG', 'INCPATHS', '_FCMODOUTFLAGS']¶
-
runnable_status()[source]¶ Sets the mod file outputs and the dependencies on the mod files over all Fortran tasks executed by the main thread so there are no concurrency issues
-
hcode= b'${FC} ${FCFLAGS} ${FCINCPATH_ST:INCPATHS} ${FCDEFINES_ST:DEFINES} ${_FCMODOUTFLAGS} ${FC_TGT_F}${TGT[0].abspath()} ${FC_SRC_F}${SRC[0].abspath()} ${FCPPFLAGS}'¶
-
orig_run_str= '${FC} ${FCFLAGS} ${FCINCPATH_ST:INCPATHS} ${FCDEFINES_ST:DEFINES} ${_FCMODOUTFLAGS} ${FC_TGT_F}${TGT[0].abspath()} ${FC_SRC_F}${SRC[0].abspath()} ${FCPPFLAGS}'¶
-
-
class
waflib.Tools.fc.fcprogram(*k, **kw)[source]¶ Bases:
waflib.Tools.ccroot.link_taskLinks Fortran programs
-
color= 'YELLOW'¶
-
inst_to= '${BINDIR}'¶
-
hcode= b'${FC} ${LINKFLAGS} ${FCLNK_SRC_F}${SRC} ${FCLNK_TGT_F}${TGT[0].abspath()} ${RPATH_ST:RPATH} ${FCSTLIB_MARKER} ${FCSTLIBPATH_ST:STLIBPATH} ${FCSTLIB_ST:STLIB} ${FCSHLIB_MARKER} ${FCLIBPATH_ST:LIBPATH} ${FCLIB_ST:LIB} ${LDFLAGS}'¶
-
orig_run_str= '${FC} ${LINKFLAGS} ${FCLNK_SRC_F}${SRC} ${FCLNK_TGT_F}${TGT[0].abspath()} ${RPATH_ST:RPATH} ${FCSTLIB_MARKER} ${FCSTLIBPATH_ST:STLIBPATH} ${FCSTLIB_ST:STLIB} ${FCSHLIB_MARKER} ${FCLIBPATH_ST:LIBPATH} ${FCLIB_ST:LIB} ${LDFLAGS}'¶
-
vars= ['FC', 'FCLIBPATH_ST', 'FCLIB_ST', 'FCLNK_SRC_F', 'FCLNK_TGT_F', 'FCSHLIB_MARKER', 'FCSTLIBPATH_ST', 'FCSTLIB_MARKER', 'FCSTLIB_ST', 'LDFLAGS', 'LIB', 'LIBPATH', 'LINKFLAGS', 'RPATH', 'RPATH_ST', 'STLIB', 'STLIBPATH']¶
-
-
class
waflib.Tools.fc.fcshlib(*k, **kw)[source]¶ Bases:
waflib.Tools.fc.fcprogramLinks Fortran libraries
-
inst_to= '${LIBDIR}'¶
-
hcode= b'nocode'¶
-
-
class
waflib.Tools.fc.fcstlib(*k, **kw)[source]¶ Bases:
waflib.Tools.ccroot.stlink_taskLinks Fortran static libraries (uses ar by default)
-
hcode= b'\tdef wrap(self):\n\t\ttry:\n\t\t\tos.remove(self.outputs[0].abspath())\n\t\texcept OSError:\n\t\t\tpass\n\t\treturn old(self)\n'¶
-
-
class
waflib.Tools.fc.fcprogram_test(*k, **kw)[source]¶ Bases:
waflib.Tools.fc.fcprogramCustom link task to obtain compiler outputs for Fortran configuration tests
-
exec_command(cmd, **kw)[source]¶ Stores the compiler std our/err onto the build context, to bld.out + bld.err
-
hcode= b'nocode'¶
-
-
waflib.Tools.fc.extension(*k)¶ Decorator that registers a task generator method which will be invoked during the processing of source files for the extension given:
from waflib import Task class mytask(Task): run_str = 'cp ${SRC} ${TGT}' @extension('.moo') def create_maa_file(self, node): self.create_task('mytask', node, node.change_ext('.maa')) def build(bld): bld(source='foo.moo')
-
waflib.Tools.fc.conf(f)¶ Decorator: attach new configuration functions to
waflib.Build.BuildContextandwaflib.Configure.ConfigurationContext. The methods bound will accept a parameter named ‘mandatory’ to disable the configuration errors:def configure(conf): conf.find_program('abc', mandatory=False)
Parameters: f (function) – method to bind