如何获取doxygen以查看.F90文件中的预处理器宏的文档?

时间:2019-05-20 18:32:31

标签: fortran doxygen

我正在使用ParallelIO库,这是一个免费的软件库,用于通过类似于netCDF的API进行高性能计算(HPC)I / O。

在某些fortran代码中,我有一个名为piolib_mod.F90的文件开始:

!>
!! @file
!! @brief Initialization Routines for PIO
#define __PIO_FILE__ "piolib_mod.F90"

这会产生脱氧警告:

/home/ed/tmp/ParallelIO/src/flib/piolib_mod.F90:4: warning: Member __PIO_FILE__ (macro definition) of file piolib_mod.F90 is not documented.

但是无论我做什么,我都无法接受我对该宏文档的定义。我尝试过:

!> for debugging
#define __PIO_FILE__ "piolib_mod.f90"

还:

!> @def __PIO_FILE__ for debugging
#define __PIO_FILE__ "piolib_mod.f90"

我试图将这一行排除在脱氧处理之外:

!> @cond exclude
#define __PIO_FILE__ 'piodarray'
!> @endcond

但这也不起作用。

Doxygen可能与Fortran文件中的预处理器宏概念混淆了,但这对您来说只是21世纪,昂贵的超级计算机和1960年代的编程语言。

如何记录该预处理器与doxygen的定义?

1 个答案:

答案 0 :(得分:1)

我完成此操作的方法是将* .F90文件预处理为* .f90文件,然后将* .f90文件用于Doxygen。

这是Makefile.am中的窍门:

id

在我的configure.ac中,我设置了Doxygen来读取我需要的Fortran文件:

# Doxygen does not cope well with pre-processor use in Fortran. So
# create .f90 files from .F90 files by running the C
# pre-processor. These will only be used by doxygen when --enable-docs
# is used at configure.
if BUILD_DOCS
BUILT_SOURCES += piodarray.f90 piolib_mod.f90 pionfatt_mod.f90 pionfget_mod.f90 pionfput_mod.f90 pionfatt_mod_2.f90 pionfget_mod_2.f90
piodarray.f90: piodarray.F90
    $(CC) -E $< > $@
piolib_mod.f90: piolib_mod.F90
    $(CC) -E $< > $@
pionfatt_mod.f90: pionfatt_mod.F90
    $(CC) -E $< > $@
pionfget_mod.f90: pionfget_mod.F90
    $(CC) -E $< > $@
pionfput_mod.f90: pionfput_mod.F90
    $(CC) -E $< > $@

这一切都有效,现在我拥有了干净的双氧水,没有任何警告。 ;-)