Add a fortran-only subdirectory, find a fortran compiler, and build.
The cmake_add_fortran_subdirectory
function adds a subdirectory to a project that contains a fortran-only subproject. The module will check the current compiler and see if it can support fortran. If no fortran compiler is found and the compiler is MSVC, then this module will find the MinGW gfortran. It will then use an external project to build with the MinGW tools. It will also create imported targets for the libraries created. This will only work if the fortran code is built into a dll, so BUILD_SHARED_LIBS
is turned on in the project. In addition the CMAKE_GNUtoMS
option is set to on, so that Microsoft .lib
files are created. Usage is as follows:
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 )
Relative paths in ARCHIVE_DIR
and RUNTIME_DIR
are interpreted with respect to the build directory corresponding to the source directory in which the function is invoked.
Limitations:
NO_EXTERNAL_INSTALL
is required for forward compatibility with a future version that supports installation of the external project binaries during make install
.
© 2000–2020 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.19/module/CMakeAddFortranSubdirectory.html