CMakeAddFortranSubdirectory

添加一个仅限 Fortran 的子目录,查找 Fortran 编译器并进行构建。

cmake_add_fortran_subdirectory 函数向项目中添加一个包含仅限 Fortran 子项目的子目录。该模块将检查当前编译器,看其是否支持 Fortran。如果没有找到 Fortran 编译器且编译器是 MSVC,则此模块将查找 MinGW gfortran。然后,它将使用一个外部项目与 MinGW 工具一起构建。它还将为创建的库创建导入的目标。这仅在 Fortran 代码被构建到 dll 中时才有效,因此项目需要启用 BUILD_SHARED_LIBS。此外,CMAKE_GNUtoMS 选项设置为 on,以便创建 Microsoft .lib 文件。用法如下

cmake_add_fortran_subdirectory(
 <subdir>                # name of subdirectory
 PROJECT <project_name>  # project name in subdir top CMakeLists.txt
 ARCHIVE_DIR <dir>       # dir where project places .lib files
 RUNTIME_DIR <dir>       # dir where project places .dll files
 LIBRARIES <lib>...      # names of library targets to import
 LINK_LIBRARIES          # link interface libraries for LIBRARIES
  [LINK_LIBS <lib> <dep>...]...
 CMAKE_COMMAND_LINE ...  # extra command line flags to pass to cmake
 NO_EXTERNAL_INSTALL     # skip installation of external project
 )

ARCHIVE_DIRRUNTIME_DIR 中的相对路径是相对于调用该函数的源目录对应的构建目录来解释的。

局限性

为了与未来版本向前兼容,需要在 make install 期间支持安装外部项目二进制文件,因此需要 NO_EXTERNAL_INSTALL