<!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>define_property &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="elseif" href="elseif.html" />
    <link rel="prev" title="create_test_sourcelist" href="create_test_sourcelist.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="elseif.html" title="elseif"
             accesskey="N">next</a> |</li>
        <li class="right" >
          <a href="create_test_sourcelist.html" title="create_test_sourcelist"
             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="define-property">
<span id="command:define_property"></span><h1>define_property<a class="headerlink" href="#define-property" title="Permalink to this headline">¶</a></h1>
<p>Define and document custom properties.</p>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">define_property</span><span class="p">(</span><span class="o">&lt;</span><span class="n">GLOBAL</span> <span class="o">|</span> <span class="n">DIRECTORY</span> <span class="o">|</span> <span class="n">TARGET</span> <span class="o">|</span> <span class="n">SOURCE</span> <span class="o">|</span>
                 <span class="n">TEST</span> <span class="o">|</span> <span class="n">VARIABLE</span> <span class="o">|</span> <span class="n">CACHED_VARIABLE</span><span class="o">&gt;</span>
                 <span class="n">PROPERTY</span> <span class="o">&lt;</span><span class="n">name</span><span class="o">&gt;</span> <span class="p">[</span><span class="n">INHERITED</span><span class="p">]</span>
                 <span class="n">BRIEF_DOCS</span> <span class="o">&lt;</span><span class="n">brief</span><span class="o">-</span><span class="n">doc</span><span class="o">&gt;</span> <span class="p">[</span><span class="n">docs</span><span class="o">...</span><span class="p">]</span>
                 <span class="n">FULL_DOCS</span> <span class="o">&lt;</span><span class="n">full</span><span class="o">-</span><span class="n">doc</span><span class="o">&gt;</span> <span class="p">[</span><span class="n">docs</span><span class="o">...</span><span class="p">])</span>
</pre></div>
</div>
<p>Define one property in a scope for use with the <span class="target" id="index-0-command:set_property"></span><a class="reference internal" href="set_property.html#command:set_property" title="set_property"><code class="xref cmake cmake-command docutils literal"><span class="pre">set_property()</span></code></a> and
<span class="target" id="index-0-command:get_property"></span><a class="reference internal" href="get_property.html#command:get_property" title="get_property"><code class="xref cmake cmake-command docutils literal"><span class="pre">get_property()</span></code></a> commands.  This is primarily useful to associate
documentation with property names that may be retrieved with the
<span class="target" id="index-1-command:get_property"></span><a class="reference internal" href="get_property.html#command:get_property" title="get_property"><code class="xref cmake cmake-command docutils literal"><span class="pre">get_property()</span></code></a> command. The first argument determines the kind of
scope in which the property should be used.  It must be one of the
following:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">GLOBAL</span>    <span class="o">=</span> <span class="n">associated</span> <span class="k">with</span> <span class="n">the</span> <span class="k">global</span> <span class="n">namespace</span>
<span class="n">DIRECTORY</span> <span class="o">=</span> <span class="n">associated</span> <span class="k">with</span> <span class="n">one</span> <span class="n">directory</span>
<span class="n">TARGET</span>    <span class="o">=</span> <span class="n">associated</span> <span class="k">with</span> <span class="n">one</span> <span class="n">target</span>
<span class="n">SOURCE</span>    <span class="o">=</span> <span class="n">associated</span> <span class="k">with</span> <span class="n">one</span> <span class="n">source</span> <span class="n">file</span>
<span class="n">TEST</span>      <span class="o">=</span> <span class="n">associated</span> <span class="k">with</span> <span class="n">a</span> <span class="n">test</span> <span class="n">named</span> <span class="k">with</span> <span class="n">add_test</span>
<span class="n">VARIABLE</span>  <span class="o">=</span> <span class="n">documents</span> <span class="n">a</span> <span class="n">CMake</span> <span class="n">language</span> <span class="n">variable</span>
<span class="n">CACHED_VARIABLE</span> <span class="o">=</span> <span class="n">documents</span> <span class="n">a</span> <span class="n">CMake</span> <span class="n">cache</span> <span class="n">variable</span>
</pre></div>
</div>
<p>Note that unlike <span class="target" id="index-1-command:set_property"></span><a class="reference internal" href="set_property.html#command:set_property" title="set_property"><code class="xref cmake cmake-command docutils literal"><span class="pre">set_property()</span></code></a> and <span class="target" id="index-2-command:get_property"></span><a class="reference internal" href="get_property.html#command:get_property" title="get_property"><code class="xref cmake cmake-command docutils literal"><span class="pre">get_property()</span></code></a> no
actual scope needs to be given; only the kind of scope is important.</p>
<p>The required <code class="docutils literal"><span class="pre">PROPERTY</span></code> option is immediately followed by the name of
the property being defined.</p>
<p>If the <code class="docutils literal"><span class="pre">INHERITED</span></code> option then the <span class="target" id="index-3-command:get_property"></span><a class="reference internal" href="get_property.html#command:get_property" title="get_property"><code class="xref cmake cmake-command docutils literal"><span class="pre">get_property()</span></code></a> command will
chain up to the next higher scope when the requested property is not set
in the scope given to the command. <code class="docutils literal"><span class="pre">DIRECTORY</span></code> scope chains to
<code class="docutils literal"><span class="pre">GLOBAL</span></code>. <code class="docutils literal"><span class="pre">TARGET</span></code>, <code class="docutils literal"><span class="pre">SOURCE</span></code>, and <code class="docutils literal"><span class="pre">TEST</span></code> chain to <code class="docutils literal"><span class="pre">DIRECTORY</span></code>.</p>
<p>The <code class="docutils literal"><span class="pre">BRIEF_DOCS</span></code> and <code class="docutils literal"><span class="pre">FULL_DOCS</span></code> options are followed by strings to be
associated with the property as its brief and full documentation.
Corresponding options to the <span class="target" id="index-4-command:get_property"></span><a class="reference internal" href="get_property.html#command:get_property" title="get_property"><code class="xref cmake cmake-command docutils literal"><span class="pre">get_property()</span></code></a> command will retrieve
the documentation.</p>
</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="create_test_sourcelist.html"
                        title="previous chapter">create_test_sourcelist</a></p>
  <h4>Next topic</h4>
  <p class="topless"><a href="elseif.html"
                        title="next chapter">elseif</a></p>
  <div role="note" aria-label="source link">
    <h3>This Page</h3>
    <ul class="this-page-menu">
      <li><a href="../_sources/command/define_property.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="elseif.html" title="elseif"
             >next</a> |</li>
        <li class="right" >
          <a href="create_test_sourcelist.html" title="create_test_sourcelist"
             >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>