blob: 58b362d4e344a64d339fb41fbef77f3531345f1c [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>cmake_minimum_required &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="cmake_parse_arguments" href="cmake_parse_arguments.html" />
<link rel="prev" title="cmake_host_system_information" href="cmake_host_system_information.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="cmake_parse_arguments.html" title="cmake_parse_arguments"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="cmake_host_system_information.html" title="cmake_host_system_information"
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-commands.7.html" accesskey="U">cmake-commands(7)</a> &#187;</li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<div class="section" id="cmake-minimum-required">
<span id="command:cmake_minimum_required"></span><h1>cmake_minimum_required<a class="headerlink" href="#cmake-minimum-required" title="Permalink to this headline"></a></h1>
<p>Set the minimum required version of cmake for a project and
update <a class="reference internal" href="#policy-settings">Policy Settings</a> to match the version given:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">cmake_minimum_required</span><span class="p">(</span><span class="n">VERSION</span> <span class="n">major</span><span class="o">.</span><span class="n">minor</span><span class="p">[</span><span class="o">.</span><span class="n">patch</span><span class="p">[</span><span class="o">.</span><span class="n">tweak</span><span class="p">]]</span>
<span class="p">[</span><span class="n">FATAL_ERROR</span><span class="p">])</span>
</pre></div>
</div>
<p>If the current version of CMake is lower than that required it will
stop processing the project and report an error.</p>
<p>The <code class="docutils literal"><span class="pre">FATAL_ERROR</span></code> option is accepted but ignored by CMake 2.6 and
higher. It should be specified so CMake versions 2.4 and lower fail
with an error instead of just a warning.</p>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p>Call the <code class="docutils literal"><span class="pre">cmake_minimum_required()</span></code> command at the beginning of
the top-level <code class="docutils literal"><span class="pre">CMakeLists.txt</span></code> file even before calling the
<span class="target" id="index-0-command:project"></span><a class="reference internal" href="project.html#command:project" title="project"><code class="xref cmake cmake-command docutils literal"><span class="pre">project()</span></code></a> command. It is important to establish version
and policy settings before invoking other commands whose behavior
they may affect. See also policy <span class="target" id="index-0-policy:CMP0000"></span><a class="reference internal" href="../policy/CMP0000.html#policy:CMP0000" title="CMP0000"><code class="xref cmake cmake-policy docutils literal"><span class="pre">CMP0000</span></code></a>.</p>
<p class="last">Calling <code class="docutils literal"><span class="pre">cmake_minimum_required()</span></code> inside a <span class="target" id="index-0-command:function"></span><a class="reference internal" href="function.html#command:function" title="function"><code class="xref cmake cmake-command docutils literal"><span class="pre">function()</span></code></a>
limits some effects to the function scope when invoked. Such calls
should not be made with the intention of having global effects.</p>
</div>
<div class="section" id="policy-settings">
<h2>Policy Settings<a class="headerlink" href="#policy-settings" title="Permalink to this headline"></a></h2>
<p>The <code class="docutils literal"><span class="pre">cmake_minimum_required(VERSION)</span></code> command implicitly invokes the
<span class="target" id="index-0-command:cmake_policy"></span><a class="reference internal" href="cmake_policy.html#command:cmake_policy" title="cmake_policy"><code class="xref cmake cmake-command docutils literal"><span class="pre">cmake_policy(VERSION)</span></code></a> command to specify that the current
project code is written for the given version of CMake.
All policies introduced in the specified version or earlier will be
set to use NEW behavior. All policies introduced after the specified
version will be unset. This effectively requests behavior preferred
as of a given CMake version and tells newer CMake versions to warn
about their new policies.</p>
<p>When a version higher than 2.4 is specified the command implicitly
invokes:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">cmake_policy</span><span class="p">(</span><span class="n">VERSION</span> <span class="n">major</span><span class="p">[</span><span class="o">.</span><span class="n">minor</span><span class="p">[</span><span class="o">.</span><span class="n">patch</span><span class="p">[</span><span class="o">.</span><span class="n">tweak</span><span class="p">]]])</span>
</pre></div>
</div>
<p>which sets the cmake policy version level to the version specified.
When version 2.4 or lower is given the command implicitly invokes:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">cmake_policy</span><span class="p">(</span><span class="n">VERSION</span> <span class="mf">2.4</span><span class="p">)</span>
</pre></div>
</div>
<p>which enables compatibility features for CMake 2.4 and lower.</p>
</div>
</div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h3><a href="../index.html">Table Of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">cmake_minimum_required</a><ul>
<li><a class="reference internal" href="#policy-settings">Policy Settings</a></li>
</ul>
</li>
</ul>
<h4>Previous topic</h4>
<p class="topless"><a href="cmake_host_system_information.html"
title="previous chapter">cmake_host_system_information</a></p>
<h4>Next topic</h4>
<p class="topless"><a href="cmake_parse_arguments.html"
title="next chapter">cmake_parse_arguments</a></p>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../_sources/command/cmake_minimum_required.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="cmake_parse_arguments.html" title="cmake_parse_arguments"
>next</a> |</li>
<li class="right" >
<a href="cmake_host_system_information.html" title="cmake_host_system_information"
>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-commands.7.html" >cmake-commands(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>