diff options
author | Michael Hirsch, Ph.D <scivision@users.noreply.github.com> | 2019-01-23 03:24:03 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2019-01-23 13:28:13 (GMT) |
commit | 3d63d3ce2fd6064433e2cff9469260aec9deb116 (patch) | |
tree | 8cead359163e831fbb90d0c90a79978e1f6158d4 | |
parent | fa5bf870df1ce5d9cbcf61be736beb0b1e87b85b (diff) | |
download | CMake-3d63d3ce2fd6064433e2cff9469260aec9deb116.zip CMake-3d63d3ce2fd6064433e2cff9469260aec9deb116.tar.gz CMake-3d63d3ce2fd6064433e2cff9469260aec9deb116.tar.bz2 |
Help: Add examples to CheckFortranSource{Runs,Compiles}
-rw-r--r-- | Modules/CheckFortranSourceCompiles.cmake | 16 | ||||
-rw-r--r-- | Modules/CheckFortranSourceRuns.cmake | 16 |
2 files changed, 28 insertions, 4 deletions
diff --git a/Modules/CheckFortranSourceCompiles.cmake b/Modules/CheckFortranSourceCompiles.cmake index 1820407..f94b254 100644 --- a/Modules/CheckFortranSourceCompiles.cmake +++ b/Modules/CheckFortranSourceCompiles.cmake @@ -17,8 +17,20 @@ Check if given Fortran source compiles and links into an executable. ) Checks that the source supplied in ``<code>`` can be compiled as a Fortran - source file and linked as an executable (so it must contain at least a - ``PROGRAM`` entry point). The result will be stored in the internal cache + source file and linked as an executable. The ``<code>`` must be a Fortran program + containing at least an ``end`` statement--for example: + + .. code-block:: cmake + + check_fortran_source_compiles("character :: b; error stop b; end" F2018ESTOPOK SRC_EXT F90) + + This command can help avoid costly build processes when a compiler lacks support + for a necessary feature, or a particular vendor library is not compatible with + the Fortran compiler version being used. This generate-time check may advise the + user of such before the main build process. See also the + :command:`check_fortran_source_runs` command to actually run the compiled code. + + The result will be stored in the internal cache variable ``<resultVar>``, with a boolean true value for success and boolean false for failure. diff --git a/Modules/CheckFortranSourceRuns.cmake b/Modules/CheckFortranSourceRuns.cmake index 58d90d7..13fdb0b 100644 --- a/Modules/CheckFortranSourceRuns.cmake +++ b/Modules/CheckFortranSourceRuns.cmake @@ -16,8 +16,20 @@ subsequently be run. [SRC_EXT <extension>]) Check that the source supplied in ``<code>`` can be compiled as a Fortran source - file, linked as an executable and then run. The ``<code>`` must contain at - least ``program; end program`` statements. If the ``<code>`` could be built and run + file, linked as an executable and then run. The ``<code>`` must be a Fortran program + containing at least an ``end`` statement--for example: + + .. code-block:: cmake + + check_fortran_source_runs("real :: x[*]; call co_sum(x); end" F2018coarrayOK) + + This command can help avoid costly build processes when a compiler lacks support + for a necessary feature, or a particular vendor library is not compatible with + the Fortran compiler version being used. Some of these failures only occur at runtime + instead of linktime, and a trivial runtime example can catch the issue before the + main build process. + + If the ``<code>`` could be built and run successfully, the internal cache variable specified by ``<resultVar>`` will be set to 1, otherwise it will be set to an value that evaluates to boolean false (e.g. an empty string or an error message). |