blob: 58ffcf8ff20e13a918212dc1428b3ff94d9ff97e [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>set &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="set_source_files_properties" href="set_source_files_properties.html" />
<link rel="prev" title="set_property" href="set_property.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="set_source_files_properties.html" title="set_source_files_properties"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="set_property.html" title="set_property"
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="set">
<span id="command:set"></span><h1>set<a class="headerlink" href="#set" title="Permalink to this headline"></a></h1>
<p>Set a normal, cache, or environment variable to a given value.
See the <a class="reference internal" href="../manual/cmake-language.7.html#cmake-language-variables"><span class="std std-ref">cmake-language(7) variables</span></a>
documentation for the scopes and interaction of normal variables
and cache entries.</p>
<p>Signatures of this command that specify a <code class="docutils literal"><span class="pre">&lt;value&gt;...</span></code> placeholder
expect zero or more arguments. Multiple arguments will be joined as
a <a class="reference internal" href="../manual/cmake-language.7.html#cmake-language-lists"><span class="std std-ref">;-list</span></a> to form the actual variable
value to be set. Zero arguments will cause normal variables to be
unset. See the <span class="target" id="index-0-command:unset"></span><a class="reference internal" href="unset.html#command:unset" title="unset"><code class="xref cmake cmake-command docutils literal"><span class="pre">unset()</span></code></a> command to unset variables explicitly.</p>
<div class="section" id="set-normal-variable">
<h2>Set Normal Variable<a class="headerlink" href="#set-normal-variable" title="Permalink to this headline"></a></h2>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="nb">set</span><span class="p">(</span><span class="o">&lt;</span><span class="n">variable</span><span class="o">&gt;</span> <span class="o">&lt;</span><span class="n">value</span><span class="o">&gt;...</span> <span class="p">[</span><span class="n">PARENT_SCOPE</span><span class="p">])</span>
</pre></div>
</div>
<p>Set the given <code class="docutils literal"><span class="pre">&lt;variable&gt;</span></code> in the current function or directory scope.</p>
<p>If the <code class="docutils literal"><span class="pre">PARENT_SCOPE</span></code> option is given the variable will be set in
the scope above the current scope. Each new directory or function
creates a new scope. This command will set the value of a variable
into the parent directory or calling function (whichever is applicable
to the case at hand). The previous state of the variable&#8217;s value stays the
same in the current scope (e.g., if it was undefined before, it is still
undefined and if it had a value, it is still that value).</p>
</div>
<div class="section" id="set-cache-entry">
<h2>Set Cache Entry<a class="headerlink" href="#set-cache-entry" title="Permalink to this headline"></a></h2>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="nb">set</span><span class="p">(</span><span class="o">&lt;</span><span class="n">variable</span><span class="o">&gt;</span> <span class="o">&lt;</span><span class="n">value</span><span class="o">&gt;...</span> <span class="n">CACHE</span> <span class="o">&lt;</span><span class="nb">type</span><span class="o">&gt;</span> <span class="o">&lt;</span><span class="n">docstring</span><span class="o">&gt;</span> <span class="p">[</span><span class="n">FORCE</span><span class="p">])</span>
</pre></div>
</div>
<p>Set the given cache <code class="docutils literal"><span class="pre">&lt;variable&gt;</span></code> (cache entry). Since cache entries
are meant to provide user-settable values this does not overwrite
existing cache entries by default. Use the <code class="docutils literal"><span class="pre">FORCE</span></code> option to
overwrite existing entries.</p>
<p>The <code class="docutils literal"><span class="pre">&lt;type&gt;</span></code> must be specified as one of:</p>
<dl class="docutils">
<dt><code class="docutils literal"><span class="pre">BOOL</span></code></dt>
<dd>Boolean <code class="docutils literal"><span class="pre">ON/OFF</span></code> value. <span class="target" id="index-0-manual:cmake-gui(1)"></span><a class="reference internal" href="../manual/cmake-gui.1.html#manual:cmake-gui(1)" title="cmake-gui(1)"><code class="xref cmake cmake-manual docutils literal"><span class="pre">cmake-gui(1)</span></code></a> offers a checkbox.</dd>
<dt><code class="docutils literal"><span class="pre">FILEPATH</span></code></dt>
<dd>Path to a file on disk. <span class="target" id="index-1-manual:cmake-gui(1)"></span><a class="reference internal" href="../manual/cmake-gui.1.html#manual:cmake-gui(1)" title="cmake-gui(1)"><code class="xref cmake cmake-manual docutils literal"><span class="pre">cmake-gui(1)</span></code></a> offers a file dialog.</dd>
<dt><code class="docutils literal"><span class="pre">PATH</span></code></dt>
<dd>Path to a directory on disk. <span class="target" id="index-2-manual:cmake-gui(1)"></span><a class="reference internal" href="../manual/cmake-gui.1.html#manual:cmake-gui(1)" title="cmake-gui(1)"><code class="xref cmake cmake-manual docutils literal"><span class="pre">cmake-gui(1)</span></code></a> offers a file dialog.</dd>
<dt><code class="docutils literal"><span class="pre">STRING</span></code></dt>
<dd>A line of text. <span class="target" id="index-3-manual:cmake-gui(1)"></span><a class="reference internal" href="../manual/cmake-gui.1.html#manual:cmake-gui(1)" title="cmake-gui(1)"><code class="xref cmake cmake-manual docutils literal"><span class="pre">cmake-gui(1)</span></code></a> offers a text field or a
drop-down selection if the <span class="target" id="index-0-prop_cache:STRINGS"></span><a class="reference internal" href="../prop_cache/STRINGS.html#prop_cache:STRINGS" title="STRINGS"><code class="xref cmake cmake-prop_cache docutils literal"><span class="pre">STRINGS</span></code></a> cache entry
property is set.</dd>
<dt><code class="docutils literal"><span class="pre">INTERNAL</span></code></dt>
<dd>A line of text. <span class="target" id="index-4-manual:cmake-gui(1)"></span><a class="reference internal" href="../manual/cmake-gui.1.html#manual:cmake-gui(1)" title="cmake-gui(1)"><code class="xref cmake cmake-manual docutils literal"><span class="pre">cmake-gui(1)</span></code></a> does not show internal entries.
They may be used to store variables persistently across runs.
Use of this type implies <code class="docutils literal"><span class="pre">FORCE</span></code>.</dd>
</dl>
<p>The <code class="docutils literal"><span class="pre">&lt;docstring&gt;</span></code> must be specified as a line of text providing
a quick summary of the option for presentation to <span class="target" id="index-5-manual:cmake-gui(1)"></span><a class="reference internal" href="../manual/cmake-gui.1.html#manual:cmake-gui(1)" title="cmake-gui(1)"><code class="xref cmake cmake-manual docutils literal"><span class="pre">cmake-gui(1)</span></code></a>
users.</p>
<p>If the cache entry does not exist prior to the call or the <code class="docutils literal"><span class="pre">FORCE</span></code>
option is given then the cache entry will be set to the given value.
Furthermore, any normal variable binding in the current scope will
be removed to expose the newly cached value to any immediately
following evaluation.</p>
<p>It is possible for the cache entry to exist prior to the call but
have no type set if it was created on the <span class="target" id="index-0-manual:cmake(1)"></span><a class="reference internal" href="../manual/cmake.1.html#manual:cmake(1)" title="cmake(1)"><code class="xref cmake cmake-manual docutils literal"><span class="pre">cmake(1)</span></code></a> command
line by a user through the <code class="docutils literal"><span class="pre">-D&lt;var&gt;=&lt;value&gt;</span></code> option without
specifying a type. In this case the <code class="docutils literal"><span class="pre">set</span></code> command will add the
type. Furthermore, if the <code class="docutils literal"><span class="pre">&lt;type&gt;</span></code> is <code class="docutils literal"><span class="pre">PATH</span></code> or <code class="docutils literal"><span class="pre">FILEPATH</span></code>
and the <code class="docutils literal"><span class="pre">&lt;value&gt;</span></code> provided on the command line is a relative path,
then the <code class="docutils literal"><span class="pre">set</span></code> command will treat the path as relative to the
current working directory and convert it to an absolute path.</p>
</div>
<div class="section" id="set-environment-variable">
<h2>Set Environment Variable<a class="headerlink" href="#set-environment-variable" title="Permalink to this headline"></a></h2>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="nb">set</span><span class="p">(</span><span class="n">ENV</span><span class="p">{</span><span class="o">&lt;</span><span class="n">variable</span><span class="o">&gt;</span><span class="p">}</span> <span class="o">&lt;</span><span class="n">value</span><span class="o">&gt;...</span><span class="p">)</span>
</pre></div>
</div>
<p>Set the current process environment <code class="docutils literal"><span class="pre">&lt;variable&gt;</span></code> to the given value.</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="#">set</a><ul>
<li><a class="reference internal" href="#set-normal-variable">Set Normal Variable</a></li>
<li><a class="reference internal" href="#set-cache-entry">Set Cache Entry</a></li>
<li><a class="reference internal" href="#set-environment-variable">Set Environment Variable</a></li>
</ul>
</li>
</ul>
<h4>Previous topic</h4>
<p class="topless"><a href="set_property.html"
title="previous chapter">set_property</a></p>
<h4>Next topic</h4>
<p class="topless"><a href="set_source_files_properties.html"
title="next chapter">set_source_files_properties</a></p>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../_sources/command/set.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="set_source_files_properties.html" title="set_source_files_properties"
>next</a> |</li>
<li class="right" >
<a href="set_property.html" title="set_property"
>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>