summaryrefslogtreecommitdiffstats
path: root/Modules/CheckCXXSourceCompiles.cmake
diff options
context:
space:
mode:
authorscivision <scivision@users.noreply.github.com>2024-07-04 20:34:42 (GMT)
committerBrad King <brad.king@kitware.com>2024-07-17 15:56:26 (GMT)
commit4b9ed914246adeb1c461797f496ec00ea6492f3c (patch)
treeb37e4a313bd256c62095fcc4db0e66365a4ed6dd /Modules/CheckCXXSourceCompiles.cmake
parent9c330283d664a6535c4cc283b1f53ab3bba5a392 (diff)
downloadCMake-4b9ed914246adeb1c461797f496ec00ea6492f3c.zip
CMake-4b9ed914246adeb1c461797f496ec00ea6492f3c.tar.gz
CMake-4b9ed914246adeb1c461797f496ec00ea6492f3c.tar.bz2
Help: check_*source_compiles and CMAKE_TRY_COMPILE_TARGET_TYPE
Ref: #26103
Diffstat (limited to 'Modules/CheckCXXSourceCompiles.cmake')
-rw-r--r--Modules/CheckCXXSourceCompiles.cmake26
1 files changed, 14 insertions, 12 deletions
diff --git a/Modules/CheckCXXSourceCompiles.cmake b/Modules/CheckCXXSourceCompiles.cmake
index 7531236..7c03c4a 100644
--- a/Modules/CheckCXXSourceCompiles.cmake
+++ b/Modules/CheckCXXSourceCompiles.cmake
@@ -5,7 +5,7 @@
CheckCXXSourceCompiles
----------------------
-Check if given C++ source compiles and links into an executable.
+Check once if C++ source code can be built.
.. command:: check_cxx_source_compiles
@@ -14,19 +14,21 @@ Check if given C++ source compiles and links into an executable.
check_cxx_source_compiles(<code> <resultVar>
[FAIL_REGEX <regex1> [<regex2>...]])
- Check that the source supplied in ``<code>`` can be compiled as a C++ source
- file and linked as an executable (so it must contain at least a ``main()``
- function). The result will be stored in the internal cache variable specified
- by ``<resultVar>``, with a boolean true value for success and boolean false
- for failure. If ``FAIL_REGEX`` is provided, then failure is determined by
- checking if anything in the output matches any of the specified regular
+ Check once that the source supplied in ``<code>`` can be built. The result is
+ stored in the internal cache variable specified by ``<resultVar>``, with
+ boolean ``true`` for success and boolean ``false`` for failure.
+
+ If ``FAIL_REGEX`` is provided, then failure is determined by checking
+ if anything in the compiler output matches any of the specified regular
expressions.
- The check is only performed once, with the result cached in the variable named
- by ``<resultVar>``. Every subsequent CMake run will reuse this cached value
- rather than performing the check again, even if the ``<code>`` changes. In
- order to force the check to be re-evaluated, the variable named by
- ``<resultVar>`` must be manually removed from the cache.
+ Internally, :command:`try_compile` is used to compile the source. If
+ :variable:`CMAKE_TRY_COMPILE_TARGET_TYPE` is set to ``EXECUTABLE`` (default),
+ the source is compiled and linked as an executable program. If set to
+ ``STATIC_LIBRARY``, the source is compiled but not linked. In any case, all
+ functions must be declared as usual.
+
+ See also :command:`check_source_runs` to run compiled source.
The compile and link commands can be influenced by setting any of the
following variables prior to calling ``check_cxx_source_compiles()``: