blob: 5f99814690b567983fbd0548bcddd7d7ade2fddc [file] [log] [blame]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>CMP0112 &mdash; CMake 3.23.1 Documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="../_static/cmake.css" />
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script>
<script src="../_static/jquery.js"></script>
<script src="../_static/underscore.js"></script>
<script 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="CMP0111" href="CMP0111.html" />
<link rel="prev" title="CMP0113" href="CMP0113.html" />
</head><body>
<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="CMP0111.html" title="CMP0111"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="CMP0113.html" title="CMP0113"
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.23.1 Documentation</a> &#187;
</li>
<li class="nav-item nav-item-1"><a href="../manual/cmake-policies.7.html" accesskey="U">cmake-policies(7)</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">CMP0112</a></li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<div class="section" id="cmp0112">
<span id="policy:CMP0112"></span><h1>CMP0112<a class="headerlink" href="#cmp0112" title="Permalink to this headline">ΒΆ</a></h1>
<div class="versionadded">
<p><span class="versionmodified added">New in version 3.19.</span></p>
</div>
<p>Target file component generator expressions do not add target dependencies.</p>
<p>The following target-based generator expressions that query for directory or
file name components no longer add a dependency on the evaluated target.</p>
<blockquote>
<div><ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">TARGET_FILE_NAME</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">TARGET_FILE_DIR</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">TARGET_LINKER_FILE_BASE_NAME</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">TARGET_LINKER_FILE_NAME</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">TARGET_LINKER_FILE_DIR</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">TARGET_SONAME_FILE_NAME</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">TARGET_SONAME_FILE_DIR</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">TARGET_PDB_FILE_NAME</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">TARGET_PDB_FILE_DIR</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">TARGET_BUNDLE_DIR</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">TARGET_BUNDLE_CONTENT_DIR</span></code></p></li>
</ul>
</div></blockquote>
<p>In CMake 3.18 and lower a dependency on the evaluated target of the above
generator expressions would always be added. CMake 3.19 and above prefer
to not add this dependency. This policy provides compatibility for projects
that have not been updated to expect the new behavior. The policy setting
is recorded on each target when it is created, and decides whether generator
expressions referencing that target imply a dependency on it.</p>
<p>The <code class="docutils literal notranslate"><span class="pre">OLD</span></code> behavior for this policy is to add a dependency on the evaluated
target for the above generator expressions. The <code class="docutils literal notranslate"><span class="pre">NEW</span></code> behavior of
this policy is to not add a dependency on the evaluated target for the
above generator expressions.</p>
<p>This policy was introduced in CMake version 3.19. Unlike many policies,
CMake version 3.23.1 does <em>not</em> warn by default when this policy
is not set and simply uses <code class="docutils literal notranslate"><span class="pre">OLD</span></code> behavior. See documentation of the
<span class="target" id="index-0-variable:CMAKE_POLICY_WARNING_CMP&lt;NNNN&gt;"></span><a class="reference internal" href="../variable/CMAKE_POLICY_WARNING_CMPNNNN.html#variable:CMAKE_POLICY_WARNING_CMP&lt;NNNN&gt;" title="CMAKE_POLICY_WARNING_CMP&lt;NNNN&gt;"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_POLICY_WARNING_CMP0112</span></code></a>
variable to control the warning.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>The <code class="docutils literal notranslate"><span class="pre">OLD</span></code> behavior of a policy is
<span class="target" id="index-0-manual:cmake-policies(7)"></span><a class="reference internal" href="../manual/cmake-policies.7.html#manual:cmake-policies(7)" title="cmake-policies(7)"><code class="xref cmake cmake-manual docutils literal notranslate"><span class="pre">deprecated</span> <span class="pre">by</span> <span class="pre">definition</span></code></a>
and may be removed in a future version of CMake.</p>
</div>
</div>
<div class="clearer"></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="CMP0113.html"
title="previous chapter">CMP0113</a></p>
<h4>Next topic</h4>
<p class="topless"><a href="CMP0111.html"
title="next chapter">CMP0111</a></p>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../_sources/policy/CMP0112.rst.txt"
rel="nofollow">Show Source</a></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</div>
<script>$('#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="CMP0111.html" title="CMP0111"
>next</a> |</li>
<li class="right" >
<a href="CMP0113.html" title="CMP0113"
>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.23.1 Documentation</a> &#187;
</li>
<li class="nav-item nav-item-1"><a href="../manual/cmake-policies.7.html" >cmake-policies(7)</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">CMP0112</a></li>
</ul>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2000-2022 Kitware, Inc. and Contributors.
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 4.1.2.
</div>
</body>
</html>