<!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_WINRT_COMPONENT &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_WINRT_EXTENSIONS" href="VS_WINRT_EXTENSIONS.html" />
    <link rel="prev" title="VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION" href="VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION.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_WINRT_EXTENSIONS.html" title="VS_WINRT_EXTENSIONS"
             accesskey="N">next</a> |</li>
        <li class="right" >
          <a href="VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION.html" title="VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION"
             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-winrt-component">
<span id="prop_tgt:VS_WINRT_COMPONENT"></span><h1>VS_WINRT_COMPONENT<a class="headerlink" href="#vs-winrt-component" title="Permalink to this headline">¶</a></h1>
<p>Mark a target as a Windows Runtime component for the Visual Studio generator.
Compile the target with <code class="docutils literal"><span class="pre">C++/CX</span></code> language extensions for Windows Runtime.
For <code class="docutils literal"><span class="pre">SHARED</span></code> and <code class="docutils literal"><span class="pre">MODULE</span></code> libraries, this also defines the
<code class="docutils literal"><span class="pre">_WINRT_DLL</span></code> preprocessor macro.</p>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">Currently this is implemented only by Visual Studio generators.
Support may be added to other generators in the future.</p>
</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="VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION.html"
                        title="previous chapter">VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION</a></p>
  <h4>Next topic</h4>
  <p class="topless"><a href="VS_WINRT_EXTENSIONS.html"
                        title="next chapter">VS_WINRT_EXTENSIONS</a></p>
  <div role="note" aria-label="source link">
    <h3>This Page</h3>
    <ul class="this-page-menu">
      <li><a href="../_sources/prop_tgt/VS_WINRT_COMPONENT.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_WINRT_EXTENSIONS.html" title="VS_WINRT_EXTENSIONS"
             >next</a> |</li>
        <li class="right" >
          <a href="VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION.html" title="VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION"
             >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>