Help: Add examples to CheckFortranSource{Runs,Compiles}

This commit is contained in:
Michael Hirsch, Ph.D
2019-01-22 22:24:03 -05:00
committed by Brad King
parent fa5bf870df
commit 3d63d3ce2f
2 changed files with 28 additions and 4 deletions

View File

@@ -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 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 source file and linked as an executable. The ``<code>`` must be a Fortran program
``PROGRAM`` entry point). The result will be stored in the internal cache 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 variable ``<resultVar>``, with a boolean true value for success and boolean
false for failure. false for failure.

View File

@@ -16,8 +16,20 @@ subsequently be run.
[SRC_EXT <extension>]) [SRC_EXT <extension>])
Check that the source supplied in ``<code>`` can be compiled as a Fortran source 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 file, linked as an executable and then run. The ``<code>`` must be a Fortran program
least ``program; end program`` statements. If the ``<code>`` could be built and run 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 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 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). false (e.g. an empty string or an error message).