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