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_DIR 和 RUNTIME_DIR 中的相对路径根据与调用函数的源目录相对应的构建目录进行解释。
限制:
NO_EXTERNAL_INSTALL 是为了与支持在``make install`` 期间安装外部项目二进制文件的未来版本向前兼容所必需的。