Browse Source

Merge topic 'fortran-docs'

3d63d3ce2f Help: Add examples to CheckFortranSource{Runs,Compiles}

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2843
pull/325/head
Brad King 7 years ago
committed by Kitware Robot
parent
commit
378473f9f1
  1. 16
      Modules/CheckFortranSourceCompiles.cmake
  2. 16
      Modules/CheckFortranSourceRuns.cmake

16
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 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 variable ``<resultVar>``, with a boolean true value for success and boolean
false for failure. false for failure.

16
Modules/CheckFortranSourceRuns.cmake

@ -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
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 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).

Loading…
Cancel
Save