diff options
Diffstat (limited to 'Modules/CMakeAddFortranSubdirectory.cmake')
-rw-r--r-- | Modules/CMakeAddFortranSubdirectory.cmake | 81 |
1 files changed, 41 insertions, 40 deletions
diff --git a/Modules/CMakeAddFortranSubdirectory.cmake b/Modules/CMakeAddFortranSubdirectory.cmake index 4649f35..2bb3128 100644 --- a/Modules/CMakeAddFortranSubdirectory.cmake +++ b/Modules/CMakeAddFortranSubdirectory.cmake @@ -1,46 +1,47 @@ # Distributed under the OSI-approved BSD 3-Clause License. See accompanying # file Copyright.txt or https://cmake.org/licensing for details. -#.rst: -# CMakeAddFortranSubdirectory -# --------------------------- -# -# Use MinGW gfortran from VS if a fortran compiler is not found. -# -# The 'add_fortran_subdirectory' function adds a subdirectory to a -# project that contains a fortran only sub-project. 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 the MS .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". +#[=======================================================================[.rst: +CMakeAddFortranSubdirectory +--------------------------- + +Use MinGW gfortran from VS if a fortran compiler is not found. + +The 'add_fortran_subdirectory' function adds a subdirectory to a +project that contains a fortran only sub-project. 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 the MS .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". +#]=======================================================================] set(_MS_MINGW_SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}) include(CheckLanguage) |