blob: 305d6907b028a32abbb8170638a0356977116cb7 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>CheckCXXSourceCompiles &mdash; CMake 3.8.2 Documentation</title>
<link rel="stylesheet" href="../_static/cmake.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '3.8.2',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true,
SOURCELINK_SUFFIX: '.txt'
};
</script>
<script type="text/javascript" src="../_static/jquery.js"></script>
<script type="text/javascript" src="../_static/underscore.js"></script>
<script type="text/javascript" src="../_static/doctools.js"></script>
<link rel="shortcut icon" href="../_static/cmake-favicon.ico"/>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="CheckCXXSourceRuns" href="CheckCXXSourceRuns.html" />
<link rel="prev" title="CheckCXXCompilerFlag" href="CheckCXXCompilerFlag.html" />
</head>
<body role="document">
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="CheckCXXSourceRuns.html" title="CheckCXXSourceRuns"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="CheckCXXCompilerFlag.html" title="CheckCXXCompilerFlag"
accesskey="P">previous</a> |</li>
<li>
<img src="../_static/cmake-logo-16.png" alt=""
style="vertical-align: middle; margin-top: -2px" />
</li>
<li>
<a href="https://cmake.org/">CMake</a> &#187;
</li>
<li>
<a href="../index.html">3.8.2 Documentation</a> &#187;
</li>
<li class="nav-item nav-item-1"><a href="../manual/cmake-modules.7.html" accesskey="U">cmake-modules(7)</a> &#187;</li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<div class="section" id="checkcxxsourcecompiles">
<span id="module:CheckCXXSourceCompiles"></span><h1>CheckCXXSourceCompiles<a class="headerlink" href="#checkcxxsourcecompiles" title="Permalink to this headline">ΒΆ</a></h1>
<p>Check if given C++ source compiles and links into an executable</p>
<p>CHECK_CXX_SOURCE_COMPILES(&lt;code&gt; &lt;var&gt; [FAIL_REGEX &lt;fail-regex&gt;])</p>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="o">&lt;</span><span class="n">code</span><span class="o">&gt;</span> <span class="o">-</span> <span class="n">source</span> <span class="n">code</span> <span class="n">to</span> <span class="k">try</span> <span class="n">to</span> <span class="nb">compile</span><span class="p">,</span> <span class="n">must</span> <span class="n">define</span> <span class="s1">&#39;main&#39;</span>
<span class="o">&lt;</span><span class="n">var</span><span class="o">&gt;</span> <span class="o">-</span> <span class="n">variable</span> <span class="n">to</span> <span class="n">store</span> <span class="n">whether</span> <span class="n">the</span> <span class="n">source</span> <span class="n">code</span> <span class="n">compiled</span>
<span class="n">Will</span> <span class="n">be</span> <span class="n">created</span> <span class="k">as</span> <span class="n">an</span> <span class="n">internal</span> <span class="n">cache</span> <span class="n">variable</span><span class="o">.</span>
<span class="o">&lt;</span><span class="n">fail</span><span class="o">-</span><span class="n">regex</span><span class="o">&gt;</span> <span class="o">-</span> <span class="n">fail</span> <span class="k">if</span> <span class="n">test</span> <span class="n">output</span> <span class="n">matches</span> <span class="n">this</span> <span class="n">regex</span>
</pre></div>
</div>
<p>The following variables may be set before calling this macro to modify
the way the check is run:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">CMAKE_REQUIRED_FLAGS</span> <span class="o">=</span> <span class="n">string</span> <span class="n">of</span> <span class="nb">compile</span> <span class="n">command</span> <span class="n">line</span> <span class="n">flags</span>
<span class="n">CMAKE_REQUIRED_DEFINITIONS</span> <span class="o">=</span> <span class="nb">list</span> <span class="n">of</span> <span class="n">macros</span> <span class="n">to</span> <span class="n">define</span> <span class="p">(</span><span class="o">-</span><span class="n">DFOO</span><span class="o">=</span><span class="n">bar</span><span class="p">)</span>
<span class="n">CMAKE_REQUIRED_INCLUDES</span> <span class="o">=</span> <span class="nb">list</span> <span class="n">of</span> <span class="n">include</span> <span class="n">directories</span>
<span class="n">CMAKE_REQUIRED_LIBRARIES</span> <span class="o">=</span> <span class="nb">list</span> <span class="n">of</span> <span class="n">libraries</span> <span class="n">to</span> <span class="n">link</span>
<span class="n">CMAKE_REQUIRED_QUIET</span> <span class="o">=</span> <span class="n">execute</span> <span class="n">quietly</span> <span class="n">without</span> <span class="n">messages</span>
</pre></div>
</div>
</div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h4>Previous topic</h4>
<p class="topless"><a href="CheckCXXCompilerFlag.html"
title="previous chapter">CheckCXXCompilerFlag</a></p>
<h4>Next topic</h4>
<p class="topless"><a href="CheckCXXSourceRuns.html"
title="next chapter">CheckCXXSourceRuns</a></p>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../_sources/module/CheckCXXSourceCompiles.rst.txt"
rel="nofollow">Show Source</a></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3>Quick search</h3>
<form class="search" action="../search.html" method="get">
<div><input type="text" name="q" /></div>
<div><input type="submit" value="Go" /></div>
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="CheckCXXSourceRuns.html" title="CheckCXXSourceRuns"
>next</a> |</li>
<li class="right" >
<a href="CheckCXXCompilerFlag.html" title="CheckCXXCompilerFlag"
>previous</a> |</li>
<li>
<img src="../_static/cmake-logo-16.png" alt=""
style="vertical-align: middle; margin-top: -2px" />
</li>
<li>
<a href="https://cmake.org/">CMake</a> &#187;
</li>
<li>
<a href="../index.html">3.8.2 Documentation</a> &#187;
</li>
<li class="nav-item nav-item-1"><a href="../manual/cmake-modules.7.html" >cmake-modules(7)</a> &#187;</li>
</ul>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2000-2017 Kitware, Inc. and Contributors.
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.5.2.
</div>
</body>
</html>