CMakeAddFortranSubdirectory

添加仅 Fortran 的子目录、查找 Fortran 编译器并进行构建。

cmake_add_fortran_subdirectory 函数将包含仅 Fortran 的子项目的子目录添加到项目中。该模块将检查当前编译器并查看它是否可以支持 Fortran。如果未找到 Fortran 编译器且编译器为 MSVC,那么此模块将查找 MinGW gfortran。然后,它将使用外部项目来使用 MinGW 工具进行构建。它还将为创建的库创建导入的目标。这仅在将 Fortran 代码构建到 dll 中时才有效,因此 BUILD_SHARED_LIBS 在项目中已启用。此外,CMAKE_GNUtoMS 选项也已启用,以便创建 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