CMakeAddFortran 子目录

添加一个仅限 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 中的相对路径根据与调用函数的源目录相对应的构建目录进行解释。

限制:

NO_EXTERNAL_INSTALL 是为了与支持在``make install`` 期间安装外部项目二进制文件的未来版本向前兼容所必需的。