<!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>VS_GLOBAL_SECTION_POST_&lt;section&gt; &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="VS_GLOBAL_SECTION_PRE_&lt;section&gt;" href="VS_GLOBAL_SECTION_PRE_section.html" />
    <link rel="prev" title="VARIABLES" href="VARIABLES.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="VS_GLOBAL_SECTION_PRE_section.html" title="VS_GLOBAL_SECTION_PRE_&lt;section&gt;"
             accesskey="N">next</a> |</li>
        <li class="right" >
          <a href="VARIABLES.html" title="VARIABLES"
             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-properties.7.html" accesskey="U">cmake-properties(7)</a> &#187;</li> 
      </ul>
    </div>  

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body" role="main">
            
  <div class="section" id="vs-global-section-post-section">
<span id="prop_dir:VS_GLOBAL_SECTION_POST_<section>"></span><h1>VS_GLOBAL_SECTION_POST_&lt;section&gt;<a class="headerlink" href="#vs-global-section-post-section" title="Permalink to this headline">¶</a></h1>
<p>Specify a postSolution global section in Visual Studio.</p>
<p>Setting a property like this generates an entry of the following form
in the solution file:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">GlobalSection</span><span class="p">(</span><span class="o">&lt;</span><span class="n">section</span><span class="o">&gt;</span><span class="p">)</span> <span class="o">=</span> <span class="n">postSolution</span>
  <span class="o">&lt;</span><span class="n">contents</span> <span class="n">based</span> <span class="n">on</span> <span class="nb">property</span> <span class="n">value</span><span class="o">&gt;</span>
<span class="n">EndGlobalSection</span>
</pre></div>
</div>
<p>The property must be set to a semicolon-separated list of key=value
pairs.  Each such pair will be transformed into an entry in the
solution global section.  Whitespace around key and value is ignored.
List elements which do not contain an equal sign are skipped.</p>
<p>This property only works for Visual Studio 7 and above; it is ignored
on other generators.  The property only applies when set on a
directory whose CMakeLists.txt contains a project() command.</p>
<p>Note that CMake generates postSolution sections ExtensibilityGlobals
and ExtensibilityAddIns by default.  If you set the corresponding
property, it will override the default section.  For example, setting
VS_GLOBAL_SECTION_POST_ExtensibilityGlobals will override the default
contents of the ExtensibilityGlobals section, while keeping
ExtensibilityAddIns on its default.</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="VARIABLES.html"
                        title="previous chapter">VARIABLES</a></p>
  <h4>Next topic</h4>
  <p class="topless"><a href="VS_GLOBAL_SECTION_PRE_section.html"
                        title="next chapter">VS_GLOBAL_SECTION_PRE_&lt;section&gt;</a></p>
  <div role="note" aria-label="source link">
    <h3>This Page</h3>
    <ul class="this-page-menu">
      <li><a href="../_sources/prop_dir/VS_GLOBAL_SECTION_POST_section.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="VS_GLOBAL_SECTION_PRE_section.html" title="VS_GLOBAL_SECTION_PRE_&lt;section&gt;"
             >next</a> |</li>
        <li class="right" >
          <a href="VARIABLES.html" title="VARIABLES"
             >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-properties.7.html" >cmake-properties(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>