blob: 553f93167e7c389fbc1dc5a440b9265f33f1fd22 [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>CMake 3.23 Release Notes &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="CMake 3.22 Release Notes" href="3.22.html" />
<link rel="prev" title="CMake Release Notes" href="index.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="3.22.html" title="CMake 3.22 Release Notes"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="index.html" title="CMake Release Notes"
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="index.html" accesskey="U">CMake Release Notes</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">CMake 3.23 Release Notes</a></li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<div class="section" id="cmake-3-23-release-notes">
<h1><a class="toc-backref" href="#id2">CMake 3.23 Release Notes</a><a class="headerlink" href="#cmake-3-23-release-notes" title="Permalink to this headline"></a></h1>
<div class="contents topic" id="contents">
<p class="topic-title">Contents</p>
<ul class="simple">
<li><p><a class="reference internal" href="#cmake-3-23-release-notes" id="id2">CMake 3.23 Release Notes</a></p>
<ul>
<li><p><a class="reference internal" href="#new-features" id="id3">New Features</a></p>
<ul>
<li><p><a class="reference internal" href="#presets" id="id4">Presets</a></p></li>
<li><p><a class="reference internal" href="#generators" id="id5">Generators</a></p></li>
<li><p><a class="reference internal" href="#command-line" id="id6">Command-Line</a></p></li>
<li><p><a class="reference internal" href="#compilers" id="id7">Compilers</a></p></li>
<li><p><a class="reference internal" href="#file-based-api" id="id8">File-Based API</a></p></li>
<li><p><a class="reference internal" href="#commands" id="id9">Commands</a></p></li>
<li><p><a class="reference internal" href="#variables" id="id10">Variables</a></p></li>
<li><p><a class="reference internal" href="#properties" id="id11">Properties</a></p></li>
<li><p><a class="reference internal" href="#modules" id="id12">Modules</a></p></li>
<li><p><a class="reference internal" href="#ctest" id="id13">CTest</a></p></li>
<li><p><a class="reference internal" href="#cpack" id="id14">CPack</a></p></li>
</ul>
</li>
<li><p><a class="reference internal" href="#deprecated-and-removed-features" id="id15">Deprecated and Removed Features</a></p></li>
<li><p><a class="reference internal" href="#other-changes" id="id16">Other Changes</a></p></li>
<li><p><a class="reference internal" href="#updates" id="id17">Updates</a></p>
<ul>
<li><p><a class="reference internal" href="#id1" id="id18">3.23.1</a></p></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<p>Changes made since CMake 3.22 include the following.</p>
<div class="section" id="new-features">
<h2><a class="toc-backref" href="#id3">New Features</a><a class="headerlink" href="#new-features" title="Permalink to this headline"></a></h2>
<div class="section" id="presets">
<h3><a class="toc-backref" href="#id4">Presets</a><a class="headerlink" href="#presets" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li><p><span class="target" id="index-0-manual:cmake-presets(7)"></span><a class="reference internal" href="../manual/cmake-presets.7.html#manual:cmake-presets(7)" title="cmake-presets(7)"><code class="xref cmake cmake-manual docutils literal notranslate"><span class="pre">cmake-presets(7)</span></code></a> files now support schema version <code class="docutils literal notranslate"><span class="pre">4</span></code>.</p></li>
<li><p><span class="target" id="index-1-manual:cmake-presets(7)"></span><a class="reference internal" href="../manual/cmake-presets.7.html#manual:cmake-presets(7)" title="cmake-presets(7)"><code class="xref cmake cmake-manual docutils literal notranslate"><span class="pre">cmake-presets(7)</span></code></a> files now have an optional <code class="docutils literal notranslate"><span class="pre">include</span></code> field,
which allows the files to include other files.</p></li>
<li><p><span class="target" id="index-2-manual:cmake-presets(7)"></span><a class="reference internal" href="../manual/cmake-presets.7.html#manual:cmake-presets(7)" title="cmake-presets(7)"><code class="xref cmake cmake-manual docutils literal notranslate"><span class="pre">cmake-presets(7)</span></code></a> files now support a <code class="docutils literal notranslate"><span class="pre">${fileDir}</span></code> macro, which
contains the directory containing the preset file.</p></li>
<li><p><span class="target" id="index-3-manual:cmake-presets(7)"></span><a class="reference internal" href="../manual/cmake-presets.7.html#manual:cmake-presets(7)" title="cmake-presets(7)"><code class="xref cmake cmake-manual docutils literal notranslate"><span class="pre">cmake-presets(7)</span></code></a> gained support for specifying the
<code class="docutils literal notranslate"><span class="pre">resolvePackageReferences</span></code> command line option in a build preset to control
restoration behavior of package references from external package managers.
Currently this is only supported by the Visual Studio generator to support
restoring packages from NuGet. Other generators ignore this option.</p></li>
</ul>
</div>
<div class="section" id="generators">
<h3><a class="toc-backref" href="#id5">Generators</a><a class="headerlink" href="#generators" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li><p>The <a class="reference internal" href="../manual/cmake-generators.7.html#visual-studio-generators"><span class="std std-ref">Visual Studio Generators</span></a> for VS 2019 and above learned to
support .NET SDK-style project files (<code class="docutils literal notranslate"><span class="pre">.csproj</span></code>) for C# projects.
See the <span class="target" id="index-0-prop_tgt:DOTNET_SDK"></span><a class="reference internal" href="../prop_tgt/DOTNET_SDK.html#prop_tgt:DOTNET_SDK" title="DOTNET_SDK"><code class="xref cmake cmake-prop_tgt docutils literal notranslate"><span class="pre">DOTNET_SDK</span></code></a> target property and corresponding
<span class="target" id="index-0-variable:CMAKE_DOTNET_SDK"></span><a class="reference internal" href="../variable/CMAKE_DOTNET_SDK.html#variable:CMAKE_DOTNET_SDK" title="CMAKE_DOTNET_SDK"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_DOTNET_SDK</span></code></a> variable. <span class="target" id="index-0-command:add_custom_command"></span><a class="reference internal" href="../command/add_custom_command.html#command:add_custom_command" title="add_custom_command"><code class="xref cmake cmake-command docutils literal notranslate"><span class="pre">add_custom_command()</span></code></a>
is not yet supported in .NET SDK-style projects.</p></li>
<li><p>The <a class="reference internal" href="../manual/cmake-generators.7.html#visual-studio-generators"><span class="std std-ref">Visual Studio Generators</span></a> for VS 2017 and above learned to
use portable instances of Visual Studio not known to the VS installer.
See the <span class="target" id="index-0-variable:CMAKE_GENERATOR_INSTANCE"></span><a class="reference internal" href="../variable/CMAKE_GENERATOR_INSTANCE.html#variable:CMAKE_GENERATOR_INSTANCE" title="CMAKE_GENERATOR_INSTANCE"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_GENERATOR_INSTANCE</span></code></a> variable.</p></li>
</ul>
</div>
<div class="section" id="command-line">
<h3><a class="toc-backref" href="#id6">Command-Line</a><a class="headerlink" href="#command-line" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li><p>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 notranslate"><span class="pre">cmake(1)</span></code></a> <code class="docutils literal notranslate"><span class="pre">--build</span></code> command, when used with
<a class="reference internal" href="../manual/cmake-generators.7.html#visual-studio-generators"><span class="std std-ref">Visual Studio Generators</span></a> on projects that set the
<span class="target" id="index-0-prop_tgt:VS_PACKAGE_REFERENCES"></span><a class="reference internal" href="../prop_tgt/VS_PACKAGE_REFERENCES.html#prop_tgt:VS_PACKAGE_REFERENCES" title="VS_PACKAGE_REFERENCES"><code class="xref cmake cmake-prop_tgt docutils literal notranslate"><span class="pre">VS_PACKAGE_REFERENCES</span></code></a> target property, now automatically
restores package references from NuGet. The cache variable
<span class="target" id="index-0-variable:CMAKE_VS_NUGET_PACKAGE_RESTORE"></span><a class="reference internal" href="../variable/CMAKE_VS_NUGET_PACKAGE_RESTORE.html#variable:CMAKE_VS_NUGET_PACKAGE_RESTORE" title="CMAKE_VS_NUGET_PACKAGE_RESTORE"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_VS_NUGET_PACKAGE_RESTORE</span></code></a> may be set to toggle this behavior
in a build tree. Use the <code class="docutils literal notranslate"><span class="pre">--resolve-package-references=&lt;on|off|only&gt;</span></code>
command-line option to control the behavior on one invocation.</p></li>
<li><p>The <span class="target" id="index-1-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 notranslate"><span class="pre">cmake(1)</span></code></a> command line tool gained a <code class="docutils literal notranslate"><span class="pre">--debug-find-pkg=</span></code>
option to enable debug messages under specific <span class="target" id="index-0-command:find_package"></span><a class="reference internal" href="../command/find_package.html#command:find_package" title="find_package"><code class="xref cmake cmake-command docutils literal notranslate"><span class="pre">find_package()</span></code></a>
calls.</p></li>
<li><p>The <span class="target" id="index-2-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 notranslate"><span class="pre">cmake(1)</span></code></a> command line tool gained a <code class="docutils literal notranslate"><span class="pre">--debug-find-var=</span></code>
option to enable debug messages for <code class="docutils literal notranslate"><span class="pre">find_*</span></code> calls that use specific
result variables.</p></li>
</ul>
</div>
<div class="section" id="compilers">
<h3><a class="toc-backref" href="#id7">Compilers</a><a class="headerlink" href="#compilers" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li><p>The IBM Open XL C/C++ compiler, based on LLVM, is now supported with
compiler id <code class="docutils literal notranslate"><span class="pre">IBMClang</span></code>.</p></li>
<li><p>The MCST LCC compiler is now supported with compiler id <code class="docutils literal notranslate"><span class="pre">LCC</span></code>.
See policy <span class="target" id="index-0-policy:CMP0129"></span><a class="reference internal" href="../policy/CMP0129.html#policy:CMP0129" title="CMP0129"><code class="xref cmake cmake-policy docutils literal notranslate"><span class="pre">CMP0129</span></code></a>.</p></li>
</ul>
</div>
<div class="section" id="file-based-api">
<h3><a class="toc-backref" href="#id8">File-Based API</a><a class="headerlink" href="#file-based-api" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li><p>The <span class="target" id="index-0-manual:cmake-file-api(7)"></span><a class="reference internal" href="../manual/cmake-file-api.7.html#manual:cmake-file-api(7)" title="cmake-file-api(7)"><code class="xref cmake cmake-manual docutils literal notranslate"><span class="pre">cmake-file-api(7)</span></code></a> &quot;codemodel&quot; version 2 <code class="docutils literal notranslate"><span class="pre">version</span></code> field
has been updated to <code class="docutils literal notranslate"><span class="pre">2.4</span></code>.</p></li>
<li><p>The <span class="target" id="index-1-manual:cmake-file-api(7)"></span><a class="reference internal" href="../manual/cmake-file-api.7.html#manual:cmake-file-api(7)" title="cmake-file-api(7)"><code class="xref cmake cmake-manual docutils literal notranslate"><span class="pre">cmake-file-api(7)</span></code></a> &quot;codemodel&quot; version 2 <code class="docutils literal notranslate"><span class="pre">directory</span></code>
object <code class="docutils literal notranslate"><span class="pre">installers</span></code> field gained a new <code class="docutils literal notranslate"><span class="pre">fileSet</span></code> installer type.</p></li>
</ul>
</div>
<div class="section" id="commands">
<h3><a class="toc-backref" href="#id9">Commands</a><a class="headerlink" href="#commands" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li><p>The <span class="target" id="index-0-command:define_property"></span><a class="reference internal" href="../command/define_property.html#command:define_property" title="define_property"><code class="xref cmake cmake-command docutils literal notranslate"><span class="pre">define_property()</span></code></a> command gained a new
<code class="docutils literal notranslate"><span class="pre">INITIALIZE_FROM_VARIABLE</span></code> option to cause a target property to be
initialized from a variable when a target is created.</p></li>
<li><p>The <span class="target" id="index-0-command:install"></span><a class="reference internal" href="../command/install.html#command:install" title="install"><code class="xref cmake cmake-command docutils literal notranslate"><span class="pre">install(TARGETS)</span></code></a> command gained a new <code class="docutils literal notranslate"><span class="pre">FILE_SET</span></code> argument,
which can be used to install header file sets associated with a target.</p></li>
<li><p>The <span class="target" id="index-0-command:string"></span><a class="reference internal" href="../command/string.html#command:string" title="string"><code class="xref cmake cmake-command docutils literal notranslate"><span class="pre">string(TIMESTAMP)</span></code></a> and <span class="target" id="index-0-command:file"></span><a class="reference internal" href="../command/file.html#command:file" title="file"><code class="xref cmake cmake-command docutils literal notranslate"><span class="pre">file(TIMESTAMP)</span></code></a> commands now
support the <code class="docutils literal notranslate"><span class="pre">%f</span></code> specifier for microseconds.</p></li>
<li><p>The <span class="target" id="index-0-command:target_sources"></span><a class="reference internal" href="../command/target_sources.html#command:target_sources" title="target_sources"><code class="xref cmake cmake-command docutils literal notranslate"><span class="pre">target_sources()</span></code></a> command gained a new <code class="docutils literal notranslate"><span class="pre">FILE_SET</span></code> mode, which
can be used to add headers as header-only source files of a target.</p></li>
</ul>
</div>
<div class="section" id="variables">
<h3><a class="toc-backref" href="#id10">Variables</a><a class="headerlink" href="#variables" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li><p>The <span class="target" id="index-0-variable:CMAKE_CUDA_ARCHITECTURES"></span><a class="reference internal" href="../variable/CMAKE_CUDA_ARCHITECTURES.html#variable:CMAKE_CUDA_ARCHITECTURES" title="CMAKE_CUDA_ARCHITECTURES"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_CUDA_ARCHITECTURES</span></code></a> variable and associated
<span class="target" id="index-0-prop_tgt:CUDA_ARCHITECTURES"></span><a class="reference internal" href="../prop_tgt/CUDA_ARCHITECTURES.html#prop_tgt:CUDA_ARCHITECTURES" title="CUDA_ARCHITECTURES"><code class="xref cmake cmake-prop_tgt docutils literal notranslate"><span class="pre">CUDA_ARCHITECTURES</span></code></a> target property now support the
<code class="docutils literal notranslate"><span class="pre">all</span></code>, and <code class="docutils literal notranslate"><span class="pre">all-major</span></code> values for CUDA toolkit 7.0+.</p></li>
<li><p>The <span class="target" id="index-0-variable:CMAKE_IGNORE_PREFIX_PATH"></span><a class="reference internal" href="../variable/CMAKE_IGNORE_PREFIX_PATH.html#variable:CMAKE_IGNORE_PREFIX_PATH" title="CMAKE_IGNORE_PREFIX_PATH"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_IGNORE_PREFIX_PATH</span></code></a> and
<span class="target" id="index-0-variable:CMAKE_SYSTEM_IGNORE_PREFIX_PATH"></span><a class="reference internal" href="../variable/CMAKE_SYSTEM_IGNORE_PREFIX_PATH.html#variable:CMAKE_SYSTEM_IGNORE_PREFIX_PATH" title="CMAKE_SYSTEM_IGNORE_PREFIX_PATH"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_SYSTEM_IGNORE_PREFIX_PATH</span></code></a> variables were added
to tell the <span class="target" id="index-1-command:find_package"></span><a class="reference internal" href="../command/find_package.html#command:find_package" title="find_package"><code class="xref cmake cmake-command docutils literal notranslate"><span class="pre">find_package()</span></code></a>, <span class="target" id="index-0-command:find_program"></span><a class="reference internal" href="../command/find_program.html#command:find_program" title="find_program"><code class="xref cmake cmake-command docutils literal notranslate"><span class="pre">find_program()</span></code></a>,
<span class="target" id="index-0-command:find_library"></span><a class="reference internal" href="../command/find_library.html#command:find_library" title="find_library"><code class="xref cmake cmake-command docutils literal notranslate"><span class="pre">find_library()</span></code></a>, <span class="target" id="index-0-command:find_path"></span><a class="reference internal" href="../command/find_path.html#command:find_path" title="find_path"><code class="xref cmake cmake-command docutils literal notranslate"><span class="pre">find_path()</span></code></a>, and <span class="target" id="index-0-command:find_file"></span><a class="reference internal" href="../command/find_file.html#command:find_file" title="find_file"><code class="xref cmake cmake-command docutils literal notranslate"><span class="pre">find_file()</span></code></a>
commands to ignore specified prefixes.</p></li>
<li><p>The <span class="target" id="index-0-variable:CMAKE_LINK_LIBRARIES_ONLY_TARGETS"></span><a class="reference internal" href="../variable/CMAKE_LINK_LIBRARIES_ONLY_TARGETS.html#variable:CMAKE_LINK_LIBRARIES_ONLY_TARGETS" title="CMAKE_LINK_LIBRARIES_ONLY_TARGETS"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_LINK_LIBRARIES_ONLY_TARGETS</span></code></a> variable and
corresponding <span class="target" id="index-0-prop_tgt:LINK_LIBRARIES_ONLY_TARGETS"></span><a class="reference internal" href="../prop_tgt/LINK_LIBRARIES_ONLY_TARGETS.html#prop_tgt:LINK_LIBRARIES_ONLY_TARGETS" title="LINK_LIBRARIES_ONLY_TARGETS"><code class="xref cmake cmake-prop_tgt docutils literal notranslate"><span class="pre">LINK_LIBRARIES_ONLY_TARGETS</span></code></a> target
property were added to optionally require that all link items
that can be target names are actually names of existing targets.</p></li>
</ul>
</div>
<div class="section" id="properties">
<h3><a class="toc-backref" href="#id11">Properties</a><a class="headerlink" href="#properties" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li><p>The <span class="target" id="index-0-prop_tgt:HEADER_SETS"></span><a class="reference internal" href="../prop_tgt/HEADER_SETS.html#prop_tgt:HEADER_SETS" title="HEADER_SETS"><code class="xref cmake cmake-prop_tgt docutils literal notranslate"><span class="pre">HEADER_SETS</span></code></a> and <span class="target" id="index-0-prop_tgt:INTERFACE_HEADER_SETS"></span><a class="reference internal" href="../prop_tgt/INTERFACE_HEADER_SETS.html#prop_tgt:INTERFACE_HEADER_SETS" title="INTERFACE_HEADER_SETS"><code class="xref cmake cmake-prop_tgt docutils literal notranslate"><span class="pre">INTERFACE_HEADER_SETS</span></code></a> read-only
target properties were added to list header sets associated with a target.</p></li>
<li><p>The <span class="target" id="index-0-prop_tgt:HEADER_SET"></span><a class="reference internal" href="../prop_tgt/HEADER_SET.html#prop_tgt:HEADER_SET" title="HEADER_SET"><code class="xref cmake cmake-prop_tgt docutils literal notranslate"><span class="pre">HEADER_SET</span></code></a> and <span class="target" id="index-0-prop_tgt:HEADER_SET_&lt;NAME&gt;"></span><a class="reference internal" href="../prop_tgt/HEADER_SET_NAME.html#prop_tgt:HEADER_SET_&lt;NAME&gt;" title="HEADER_SET_&lt;NAME&gt;"><code class="xref cmake cmake-prop_tgt docutils literal notranslate"><span class="pre">HEADER_SET_&lt;NAME&gt;</span></code></a> target
properties were added to list files in the default header set
and named header sets, respectively.</p></li>
<li><p>The <span class="target" id="index-0-prop_tgt:HEADER_DIRS"></span><a class="reference internal" href="../prop_tgt/HEADER_DIRS.html#prop_tgt:HEADER_DIRS" title="HEADER_DIRS"><code class="xref cmake cmake-prop_tgt docutils literal notranslate"><span class="pre">HEADER_DIRS</span></code></a> and <span class="target" id="index-0-prop_tgt:HEADER_DIRS_&lt;NAME&gt;"></span><a class="reference internal" href="../prop_tgt/HEADER_DIRS_NAME.html#prop_tgt:HEADER_DIRS_&lt;NAME&gt;" title="HEADER_DIRS_&lt;NAME&gt;"><code class="xref cmake cmake-prop_tgt docutils literal notranslate"><span class="pre">HEADER_DIRS_&lt;NAME&gt;</span></code></a> target
properties were added to specify the base directories of the default
header set and named header sets, respectively.</p></li>
<li><p>The <span class="target" id="index-0-prop_tgt:IMPORTED_NO_SYSTEM"></span><a class="reference internal" href="../prop_tgt/IMPORTED_NO_SYSTEM.html#prop_tgt:IMPORTED_NO_SYSTEM" title="IMPORTED_NO_SYSTEM"><code class="xref cmake cmake-prop_tgt docutils literal notranslate"><span class="pre">IMPORTED_NO_SYSTEM</span></code></a> target property was added to
specify that an <a class="reference internal" href="../manual/cmake-buildsystem.7.html#imported-targets"><span class="std std-ref">Imported Target</span></a> should
not be treated as a system library (i.e. its include directories
are not automatically <code class="docutils literal notranslate"><span class="pre">SYSTEM</span></code>).</p></li>
<li><p>The <span class="target" id="index-0-prop_tgt:XCODE_EMBED_&lt;type&gt;"></span><a class="reference internal" href="../prop_tgt/XCODE_EMBED_type.html#prop_tgt:XCODE_EMBED_&lt;type&gt;" title="XCODE_EMBED_&lt;type&gt;"><code class="xref cmake cmake-prop_tgt docutils literal notranslate"><span class="pre">XCODE_EMBED_PLUGINS</span></code></a> target property
was added to tell the <span class="target" id="index-0-generator:Xcode"></span><a class="reference internal" href="../generator/Xcode.html#generator:Xcode" title="Xcode"><code class="xref cmake cmake-generator docutils literal notranslate"><span class="pre">Xcode</span></code></a> generator what targets to put in
the <code class="docutils literal notranslate"><span class="pre">Embed</span> <span class="pre">PlugIns</span></code> build phase.</p></li>
<li><p>The <span class="target" id="index-0-prop_tgt:XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE"></span><a class="reference internal" href="../prop_tgt/XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE.html#prop_tgt:XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE" title="XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE"><code class="xref cmake cmake-prop_tgt docutils literal notranslate"><span class="pre">XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE</span></code></a> target property
and supporting <span class="target" id="index-0-variable:CMAKE_XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE"></span><a class="reference internal" href="../variable/CMAKE_XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE.html#variable:CMAKE_XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE" title="CMAKE_XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE</span></code></a>
variable were added to tell the <span class="target" id="index-1-generator:Xcode"></span><a class="reference internal" href="../generator/Xcode.html#generator:Xcode" title="Xcode"><code class="xref cmake cmake-generator docutils literal notranslate"><span class="pre">Xcode</span></code></a> generator to enable
specifying the Xcode scheme option property <code class="docutils literal notranslate"><span class="pre">GPU</span> <span class="pre">Frame</span> <span class="pre">Capture</span></code>.</p></li>
</ul>
</div>
<div class="section" id="modules">
<h3><a class="toc-backref" href="#id12">Modules</a><a class="headerlink" href="#modules" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li><p>The <span class="target" id="index-0-module:CheckPIESupported"></span><a class="reference internal" href="../module/CheckPIESupported.html#module:CheckPIESupported" title="CheckPIESupported"><code class="xref cmake cmake-module docutils literal notranslate"><span class="pre">CheckPIESupported</span></code></a> module now supports the <code class="docutils literal notranslate"><span class="pre">OBJC</span></code>,
<code class="docutils literal notranslate"><span class="pre">OBJCXX</span></code>, <code class="docutils literal notranslate"><span class="pre">CUDA</span></code>, and <code class="docutils literal notranslate"><span class="pre">HIP</span></code> languages. It also now honors
<span class="target" id="index-0-variable:CMAKE_SYSROOT"></span><a class="reference internal" href="../variable/CMAKE_SYSROOT.html#variable:CMAKE_SYSROOT" title="CMAKE_SYSROOT"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_SYSROOT</span></code></a> and <span class="target" id="index-0-variable:CMAKE_OSX_SYSROOT"></span><a class="reference internal" href="../variable/CMAKE_OSX_SYSROOT.html#variable:CMAKE_OSX_SYSROOT" title="CMAKE_OSX_SYSROOT"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_OSX_SYSROOT</span></code></a>.</p></li>
<li><p>The <span class="target" id="index-0-module:ExternalProject"></span><a class="reference internal" href="../module/ExternalProject.html#module:ExternalProject" title="ExternalProject"><code class="xref cmake cmake-module docutils literal notranslate"><span class="pre">ExternalProject</span></code></a> module's <span class="target" id="index-0-command:externalproject_add"></span><a class="reference internal" href="../module/ExternalProject.html#command:externalproject_add" title="externalproject_add"><code class="xref cmake cmake-command docutils literal notranslate"><span class="pre">ExternalProject_Add()</span></code></a>
command gained support for a <code class="docutils literal notranslate"><span class="pre">USES_TERMINAL_PATCH</span></code> option to give
the patch step exclusive terminal access.</p></li>
<li><p>The <span class="target" id="index-0-module:FindCUDAToolkit"></span><a class="reference internal" href="../module/FindCUDAToolkit.html#module:FindCUDAToolkit" title="FindCUDAToolkit"><code class="xref cmake cmake-module docutils literal notranslate"><span class="pre">FindCUDAToolkit</span></code></a> module now provides a target for
<code class="docutils literal notranslate"><span class="pre">libcufft_static_nocallback</span></code>, if found.</p></li>
<li><p>The <span class="target" id="index-0-module:FindGLUT"></span><a class="reference internal" href="../module/FindGLUT.html#module:FindGLUT" title="FindGLUT"><code class="xref cmake cmake-module docutils literal notranslate"><span class="pre">FindGLUT</span></code></a> module now provides the <code class="docutils literal notranslate"><span class="pre">GLUT_INCLUDE_DIRS</span></code>
result variable to conform with naming conventions documented in the
<span class="target" id="index-0-manual:cmake-developer(7)"></span><a class="reference internal" href="../manual/cmake-developer.7.html#manual:cmake-developer(7)" title="cmake-developer(7)"><code class="xref cmake cmake-manual docutils literal notranslate"><span class="pre">cmake-developer(7)</span></code></a> manual. This supersedes the legacy
<code class="docutils literal notranslate"><span class="pre">GLUT_INCLUDE_DIR</span></code> variable.</p></li>
<li><p>The <span class="target" id="index-0-module:FindGTest"></span><a class="reference internal" href="../module/FindGTest.html#module:FindGTest" title="FindGTest"><code class="xref cmake cmake-module docutils literal notranslate"><span class="pre">FindGTest</span></code></a> module now provides a target for GMock, if found.</p></li>
<li><p>The <span class="target" id="index-0-module:FindVulkan"></span><a class="reference internal" href="../module/FindVulkan.html#module:FindVulkan" title="FindVulkan"><code class="xref cmake cmake-module docutils literal notranslate"><span class="pre">FindVulkan</span></code></a> module now provides a <code class="docutils literal notranslate"><span class="pre">Vulkan_VERSION</span></code> result
variable reporting the version number.</p></li>
</ul>
</div>
<div class="section" id="ctest">
<h3><a class="toc-backref" href="#id13">CTest</a><a class="headerlink" href="#ctest" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li><p><span class="target" id="index-0-manual:ctest(1)"></span><a class="reference internal" href="../manual/ctest.1.html#manual:ctest(1)" title="ctest(1)"><code class="xref cmake cmake-manual docutils literal notranslate"><span class="pre">ctest(1)</span></code></a> gained a new <span class="target" id="index-0-variable:CTEST_SUBMIT_INACTIVITY_TIMEOUT"></span><a class="reference internal" href="../variable/CTEST_SUBMIT_INACTIVITY_TIMEOUT.html#variable:CTEST_SUBMIT_INACTIVITY_TIMEOUT" title="CTEST_SUBMIT_INACTIVITY_TIMEOUT"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CTEST_SUBMIT_INACTIVITY_TIMEOUT</span></code></a>
variable, which can be used to specify a timeout for submission inactivity.</p></li>
</ul>
</div>
<div class="section" id="cpack">
<h3><a class="toc-backref" href="#id14">CPack</a><a class="headerlink" href="#cpack" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li><p>The <span class="target" id="index-0-cpack_gen:CPack productbuild Generator"></span><a class="reference internal" href="../cpack_gen/productbuild.html#cpack_gen:CPack productbuild Generator" title="CPack productbuild Generator"><code class="xref cmake cmake-cpack_gen docutils literal notranslate"><span class="pre">CPack</span> <span class="pre">productbuild</span> <span class="pre">Generator</span></code></a> gained the new
<span class="target" id="index-0-variable:CPACK_PRODUCTBUILD_DOMAINS"></span><a class="reference internal" href="../cpack_gen/productbuild.html#variable:CPACK_PRODUCTBUILD_DOMAINS" title="CPACK_PRODUCTBUILD_DOMAINS"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CPACK_PRODUCTBUILD_DOMAINS</span></code></a>,
<span class="target" id="index-0-variable:CPACK_PRODUCTBUILD_DOMAINS_ANYWHERE"></span><a class="reference internal" href="../cpack_gen/productbuild.html#variable:CPACK_PRODUCTBUILD_DOMAINS_ANYWHERE" title="CPACK_PRODUCTBUILD_DOMAINS_ANYWHERE"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CPACK_PRODUCTBUILD_DOMAINS_ANYWHERE</span></code></a>,
<span class="target" id="index-0-variable:CPACK_PRODUCTBUILD_DOMAINS_USER"></span><a class="reference internal" href="../cpack_gen/productbuild.html#variable:CPACK_PRODUCTBUILD_DOMAINS_USER" title="CPACK_PRODUCTBUILD_DOMAINS_USER"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CPACK_PRODUCTBUILD_DOMAINS_USER</span></code></a>, and
<span class="target" id="index-0-variable:CPACK_PRODUCTBUILD_DOMAINS_ROOT"></span><a class="reference internal" href="../cpack_gen/productbuild.html#variable:CPACK_PRODUCTBUILD_DOMAINS_ROOT" title="CPACK_PRODUCTBUILD_DOMAINS_ROOT"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CPACK_PRODUCTBUILD_DOMAINS_ROOT</span></code></a> variables for
adding the domains element to the Distribution XML. With these variables,
it is now possible to install products to the user's home directory
without requiring administrative privileges.</p></li>
<li><p>The <span class="target" id="index-1-cpack_gen:CPack productbuild Generator"></span><a class="reference internal" href="../cpack_gen/productbuild.html#cpack_gen:CPack productbuild Generator" title="CPack productbuild Generator"><code class="xref cmake cmake-cpack_gen docutils literal notranslate"><span class="pre">CPack</span> <span class="pre">productbuild</span> <span class="pre">Generator</span></code></a> gained a new variable,
<span class="target" id="index-0-variable:CPACK_PRODUCTBUILD_IDENTIFIER"></span><a class="reference internal" href="../cpack_gen/productbuild.html#variable:CPACK_PRODUCTBUILD_IDENTIFIER" title="CPACK_PRODUCTBUILD_IDENTIFIER"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CPACK_PRODUCTBUILD_IDENTIFIER</span></code></a>, used to customize the unique
product identifier associated with the product.</p></li>
<li><p>The <span class="target" id="index-0-cpack_gen:CPack IFW Generator"></span><a class="reference internal" href="../cpack_gen/ifw.html#cpack_gen:CPack IFW Generator" title="CPack IFW Generator"><code class="xref cmake cmake-cpack_gen docutils literal notranslate"><span class="pre">CPack</span> <span class="pre">IFW</span> <span class="pre">Generator</span></code></a> gained the new
<span class="target" id="index-0-variable:CPACK_IFW_ARCHIVE_FORMAT"></span><a class="reference internal" href="../cpack_gen/ifw.html#variable:CPACK_IFW_ARCHIVE_FORMAT" title="CPACK_IFW_ARCHIVE_FORMAT"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CPACK_IFW_ARCHIVE_FORMAT</span></code></a> and
<span class="target" id="index-0-variable:CPACK_IFW_ARCHIVE_COMPRESSION"></span><a class="reference internal" href="../cpack_gen/ifw.html#variable:CPACK_IFW_ARCHIVE_COMPRESSION" title="CPACK_IFW_ARCHIVE_COMPRESSION"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CPACK_IFW_ARCHIVE_COMPRESSION</span></code></a> variables for setting the
format used when packaging new component data archives, and choosing
the compression level used.
These features are available for QtIFW 4.2 and newer.</p></li>
<li><p>The <span class="target" id="index-1-cpack_gen:CPack IFW Generator"></span><a class="reference internal" href="../cpack_gen/ifw.html#cpack_gen:CPack IFW Generator" title="CPack IFW Generator"><code class="xref cmake cmake-cpack_gen docutils literal notranslate"><span class="pre">CPack</span> <span class="pre">IFW</span> <span class="pre">Generator</span></code></a> gained new
<span class="target" id="index-0-variable:CPACK_IFW_PACKAGE_DISABLE_COMMAND_LINE_INTERFACE"></span><a class="reference internal" href="../cpack_gen/ifw.html#variable:CPACK_IFW_PACKAGE_DISABLE_COMMAND_LINE_INTERFACE" title="CPACK_IFW_PACKAGE_DISABLE_COMMAND_LINE_INTERFACE"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CPACK_IFW_PACKAGE_DISABLE_COMMAND_LINE_INTERFACE</span></code></a> variable to
prevent the user from passing any consumer command to the installer, like
<code class="docutils literal notranslate"><span class="pre">install</span></code>, <code class="docutils literal notranslate"><span class="pre">update</span></code>, and <code class="docutils literal notranslate"><span class="pre">remove</span></code>.
This feature is available for QtIFW 4.0 and newer.</p></li>
<li><p>The <span class="target" id="index-2-cpack_gen:CPack IFW Generator"></span><a class="reference internal" href="../cpack_gen/ifw.html#cpack_gen:CPack IFW Generator" title="CPack IFW Generator"><code class="xref cmake cmake-cpack_gen docutils literal notranslate"><span class="pre">CPack</span> <span class="pre">IFW</span> <span class="pre">Generator</span></code></a> gained the new
<span class="target" id="index-0-variable:CPACK_IFW_PACKAGE_PRODUCT_IMAGES"></span><a class="reference internal" href="../cpack_gen/ifw.html#variable:CPACK_IFW_PACKAGE_PRODUCT_IMAGES" title="CPACK_IFW_PACKAGE_PRODUCT_IMAGES"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CPACK_IFW_PACKAGE_PRODUCT_IMAGES</span></code></a> variable for adding a
list of images to be shown on the <code class="docutils literal notranslate"><span class="pre">PerformInstallationPage</span></code>.
This feature is available for QtIFW 4.0 and newer.</p></li>
<li><p>The <span class="target" id="index-3-cpack_gen:CPack IFW Generator"></span><a class="reference internal" href="../cpack_gen/ifw.html#cpack_gen:CPack IFW Generator" title="CPack IFW Generator"><code class="xref cmake cmake-cpack_gen docutils literal notranslate"><span class="pre">CPack</span> <span class="pre">IFW</span> <span class="pre">Generator</span></code></a> gained the new
<span class="target" id="index-0-variable:CPACK_IFW_PACKAGE_RUN_PROGRAM"></span><a class="reference internal" href="../cpack_gen/ifw.html#variable:CPACK_IFW_PACKAGE_RUN_PROGRAM" title="CPACK_IFW_PACKAGE_RUN_PROGRAM"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CPACK_IFW_PACKAGE_RUN_PROGRAM</span></code></a>,
<span class="target" id="index-0-variable:CPACK_IFW_PACKAGE_RUN_PROGRAM_ARGUMENTS"></span><a class="reference internal" href="../cpack_gen/ifw.html#variable:CPACK_IFW_PACKAGE_RUN_PROGRAM_ARGUMENTS" title="CPACK_IFW_PACKAGE_RUN_PROGRAM_ARGUMENTS"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CPACK_IFW_PACKAGE_RUN_PROGRAM_ARGUMENTS</span></code></a>, and
<span class="target" id="index-0-variable:CPACK_IFW_PACKAGE_RUN_PROGRAM_DESCRIPTION"></span><a class="reference internal" href="../cpack_gen/ifw.html#variable:CPACK_IFW_PACKAGE_RUN_PROGRAM_DESCRIPTION" title="CPACK_IFW_PACKAGE_RUN_PROGRAM_DESCRIPTION"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CPACK_IFW_PACKAGE_RUN_PROGRAM_DESCRIPTION</span></code></a> variables for
executing a command after the installer is done if the user accepts
the action. This feature is available for QtIFW 4.0 and newer.</p></li>
<li><p>The <span class="target" id="index-4-cpack_gen:CPack IFW Generator"></span><a class="reference internal" href="../cpack_gen/ifw.html#cpack_gen:CPack IFW Generator" title="CPack IFW Generator"><code class="xref cmake cmake-cpack_gen docutils literal notranslate"><span class="pre">CPack</span> <span class="pre">IFW</span> <span class="pre">Generator</span></code></a> gained the new
<span class="target" id="index-0-variable:CPACK_IFW_PACKAGE_SIGNING_IDENTITY"></span><a class="reference internal" href="../cpack_gen/ifw.html#variable:CPACK_IFW_PACKAGE_SIGNING_IDENTITY" title="CPACK_IFW_PACKAGE_SIGNING_IDENTITY"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CPACK_IFW_PACKAGE_SIGNING_IDENTITY</span></code></a> variable for specifying a
code signing identity to be used for signing the generated app bundle.
This feature is available on macOS only, and for QtIFW 3.0 and newer.</p></li>
<li><p>The <span class="target" id="index-0-cpack_gen:CPack WIX Generator"></span><a class="reference internal" href="../cpack_gen/wix.html#cpack_gen:CPack WIX Generator" title="CPack WIX Generator"><code class="xref cmake cmake-cpack_gen docutils literal notranslate"><span class="pre">CPack</span> <span class="pre">WIX</span> <span class="pre">Generator</span></code></a> gained a new variable,
<span class="target" id="index-0-variable:CPACK_WIX_SKIP_WIX_UI_EXTENSION"></span><a class="reference internal" href="../cpack_gen/wix.html#variable:CPACK_WIX_SKIP_WIX_UI_EXTENSION" title="CPACK_WIX_SKIP_WIX_UI_EXTENSION"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CPACK_WIX_SKIP_WIX_UI_EXTENSION</span></code></a>, to skip the inclusion
of WixUIExtensions.</p></li>
</ul>
</div>
</div>
<div class="section" id="deprecated-and-removed-features">
<h2><a class="toc-backref" href="#id15">Deprecated and Removed Features</a><a class="headerlink" href="#deprecated-and-removed-features" title="Permalink to this headline"></a></h2>
<ul class="simple">
<li><p><span class="target" id="index-3-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 notranslate"><span class="pre">cmake(1)</span></code></a> now warns when multiple source paths are specified,
as in <code class="docutils literal notranslate"><span class="pre">cmake</span> <span class="pre">-S</span> <span class="pre">src1</span> <span class="pre">src2</span></code>. This has never been officially documented
or supported, but older versions accidentally accepted multiple source
paths and used the last path specified. Update scripts to avoid
passing multiple source path arguments.</p></li>
<li><p>The <span class="target" id="index-0-manual:cpack(1)"></span><a class="reference internal" href="../manual/cpack.1.html#manual:cpack(1)" title="cpack(1)"><code class="xref cmake cmake-manual docutils literal notranslate"><span class="pre">cpack(1)</span></code></a> undocumented <code class="docutils literal notranslate"><span class="pre">OSXX11</span></code> generator has been removed.</p></li>
</ul>
</div>
<div class="section" id="other-changes">
<h2><a class="toc-backref" href="#id16">Other Changes</a><a class="headerlink" href="#other-changes" title="Permalink to this headline"></a></h2>
<ul class="simple">
<li><p>The <span class="target" id="index-0-cpack_gen:CPack DragNDrop Generator"></span><a class="reference internal" href="../cpack_gen/dmg.html#cpack_gen:CPack DragNDrop Generator" title="CPack DragNDrop Generator"><code class="xref cmake cmake-cpack_gen docutils literal notranslate"><span class="pre">CPack</span> <span class="pre">DragNDrop</span> <span class="pre">Generator</span></code></a> no longer attaches
<span class="target" id="index-0-variable:CPACK_RESOURCE_FILE_LICENSE"></span><a class="reference internal" href="../module/CPack.html#variable:CPACK_RESOURCE_FILE_LICENSE" title="CPACK_RESOURCE_FILE_LICENSE"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CPACK_RESOURCE_FILE_LICENSE</span></code></a> as the license agreement in
the generated <code class="docutils literal notranslate"><span class="pre">.dmg</span></code> unless explicitly activated by a
<span class="target" id="index-0-variable:CPACK_DMG_SLA_USE_RESOURCE_FILE_LICENSE"></span><a class="reference internal" href="../cpack_gen/dmg.html#variable:CPACK_DMG_SLA_USE_RESOURCE_FILE_LICENSE" title="CPACK_DMG_SLA_USE_RESOURCE_FILE_LICENSE"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CPACK_DMG_SLA_USE_RESOURCE_FILE_LICENSE</span></code></a> option.
In CMake projects, the <span class="target" id="index-0-module:CPack"></span><a class="reference internal" href="../module/CPack.html#module:CPack" title="CPack"><code class="xref cmake cmake-module docutils literal notranslate"><span class="pre">CPack</span></code></a> module enables the option
by default for compatibility.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">CUDA</span></code> targets may now enable both <span class="target" id="index-0-prop_tgt:CUDA_SEPARABLE_COMPILATION"></span><a class="reference internal" href="../prop_tgt/CUDA_SEPARABLE_COMPILATION.html#prop_tgt:CUDA_SEPARABLE_COMPILATION" title="CUDA_SEPARABLE_COMPILATION"><code class="xref cmake cmake-prop_tgt docutils literal notranslate"><span class="pre">CUDA_SEPARABLE_COMPILATION</span></code></a>
and <span class="target" id="index-0-prop_tgt:CUDA_PTX_COMPILATION"></span><a class="reference internal" href="../prop_tgt/CUDA_PTX_COMPILATION.html#prop_tgt:CUDA_PTX_COMPILATION" title="CUDA_PTX_COMPILATION"><code class="xref cmake cmake-prop_tgt docutils literal notranslate"><span class="pre">CUDA_PTX_COMPILATION</span></code></a>.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">CUDA</span></code> compiler detection now:</p>
<ul>
<li><p>issues an error in all cases when it's unable to compute the default
architecture(s) if required (see <span class="target" id="index-0-policy:CMP0104"></span><a class="reference internal" href="../policy/CMP0104.html#policy:CMP0104" title="CMP0104"><code class="xref cmake cmake-policy docutils literal notranslate"><span class="pre">CMP0104</span></code></a>),</p></li>
<li><p>handles <code class="docutils literal notranslate"><span class="pre">OFF</span></code> for <span class="target" id="index-1-variable:CMAKE_CUDA_ARCHITECTURES"></span><a class="reference internal" href="../variable/CMAKE_CUDA_ARCHITECTURES.html#variable:CMAKE_CUDA_ARCHITECTURES" title="CMAKE_CUDA_ARCHITECTURES"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_CUDA_ARCHITECTURES</span></code></a> on Clang,</p></li>
<li><p>supports the theoretical case of multiple default architectures, and</p></li>
<li><p>tries to detect invalid architectures and issue an error.</p></li>
</ul>
</li>
<li><p><code class="docutils literal notranslate"><span class="pre">CUDA</span></code> with Clang now implements policy <span class="target" id="index-0-policy:CMP0105"></span><a class="reference internal" href="../policy/CMP0105.html#policy:CMP0105" title="CMP0105"><code class="xref cmake cmake-policy docutils literal notranslate"><span class="pre">CMP0105</span></code></a> and
the <code class="docutils literal notranslate"><span class="pre">$&lt;DEVICE_LINK:...&gt;</span></code> and <code class="docutils literal notranslate"><span class="pre">$&lt;HOST_LINK:...&gt;</span></code>
<span class="target" id="index-0-manual:cmake-generator-expressions(7)"></span><a class="reference internal" href="../manual/cmake-generator-expressions.7.html#manual:cmake-generator-expressions(7)" title="cmake-generator-expressions(7)"><code class="xref cmake cmake-manual docutils literal notranslate"><span class="pre">generator</span> <span class="pre">expressions</span></code></a>.</p></li>
<li><p>The <span class="target" id="index-1-command:define_property"></span><a class="reference internal" href="../command/define_property.html#command:define_property" title="define_property"><code class="xref cmake cmake-command docutils literal notranslate"><span class="pre">define_property()</span></code></a> command's <code class="docutils literal notranslate"><span class="pre">BRIEF_DOCS</span></code> and <code class="docutils literal notranslate"><span class="pre">FULL_DOCS</span></code>
arguments are now optional.</p></li>
<li><p><span class="target" id="index-0-manual:ccmake(1)"></span><a class="reference internal" href="../manual/ccmake.1.html#manual:ccmake(1)" title="ccmake(1)"><code class="xref cmake cmake-manual docutils literal notranslate"><span class="pre">ccmake(1)</span></code></a> may now be enabled on Windows when building
CMake from source. This is experimental, and so is not included
in official distributions.</p></li>
</ul>
</div>
<div class="section" id="updates">
<h2><a class="toc-backref" href="#id17">Updates</a><a class="headerlink" href="#updates" title="Permalink to this headline"></a></h2>
<p>Changes made since CMake 3.23.0 include the following.</p>
<div class="section" id="id1">
<h3><a class="toc-backref" href="#id18">3.23.1</a><a class="headerlink" href="#id1" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li><p>The <span class="target" id="index-1-command:target_sources"></span><a class="reference internal" href="../command/target_sources.html#command:target_sources" title="target_sources"><code class="xref cmake cmake-command docutils literal notranslate"><span class="pre">target_sources()</span></code></a> <code class="docutils literal notranslate"><span class="pre">FILE_SET</span></code> feature added in CMake 3.23.0
does not yet place header files properly in Apple <span class="target" id="index-0-prop_tgt:FRAMEWORK"></span><a class="reference internal" href="../prop_tgt/FRAMEWORK.html#prop_tgt:FRAMEWORK" title="FRAMEWORK"><code class="xref cmake cmake-prop_tgt docutils literal notranslate"><span class="pre">FRAMEWORK</span></code></a>
targets. Pending further work in a future version of CMake, it is now
an error to add a <code class="docutils literal notranslate"><span class="pre">FILE_SET</span></code> of type <code class="docutils literal notranslate"><span class="pre">HEADERS</span></code> to such targets on
Apple platforms.</p></li>
<li><p>The <span class="target" id="index-1-prop_tgt:HEADER_SETS"></span><a class="reference internal" href="../prop_tgt/HEADER_SETS.html#prop_tgt:HEADER_SETS" title="HEADER_SETS"><code class="xref cmake cmake-prop_tgt docutils literal notranslate"><span class="pre">HEADER_SETS</span></code></a> and <span class="target" id="index-1-prop_tgt:INTERFACE_HEADER_SETS"></span><a class="reference internal" href="../prop_tgt/INTERFACE_HEADER_SETS.html#prop_tgt:INTERFACE_HEADER_SETS" title="INTERFACE_HEADER_SETS"><code class="xref cmake cmake-prop_tgt docutils literal notranslate"><span class="pre">INTERFACE_HEADER_SETS</span></code></a> target
properties added in CMake 3.23.0 are now read-only records of the header
sets created by the <span class="target" id="index-2-command:target_sources"></span><a class="reference internal" href="../command/target_sources.html#command:target_sources" title="target_sources"><code class="xref cmake cmake-command docutils literal notranslate"><span class="pre">target_sources()</span></code></a> command.</p></li>
</ul>
</div>
</div>
</div>
<div class="clearer"></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="#">CMake 3.23 Release Notes</a><ul>
<li><a class="reference internal" href="#new-features">New Features</a><ul>
<li><a class="reference internal" href="#presets">Presets</a></li>
<li><a class="reference internal" href="#generators">Generators</a></li>
<li><a class="reference internal" href="#command-line">Command-Line</a></li>
<li><a class="reference internal" href="#compilers">Compilers</a></li>
<li><a class="reference internal" href="#file-based-api">File-Based API</a></li>
<li><a class="reference internal" href="#commands">Commands</a></li>
<li><a class="reference internal" href="#variables">Variables</a></li>
<li><a class="reference internal" href="#properties">Properties</a></li>
<li><a class="reference internal" href="#modules">Modules</a></li>
<li><a class="reference internal" href="#ctest">CTest</a></li>
<li><a class="reference internal" href="#cpack">CPack</a></li>
</ul>
</li>
<li><a class="reference internal" href="#deprecated-and-removed-features">Deprecated and Removed Features</a></li>
<li><a class="reference internal" href="#other-changes">Other Changes</a></li>
<li><a class="reference internal" href="#updates">Updates</a><ul>
<li><a class="reference internal" href="#id1">3.23.1</a></li>
</ul>
</li>
</ul>
</li>
</ul>
<h4>Previous topic</h4>
<p class="topless"><a href="index.html"
title="previous chapter">CMake Release Notes</a></p>
<h4>Next topic</h4>
<p class="topless"><a href="3.22.html"
title="next chapter">CMake 3.22 Release Notes</a></p>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../_sources/release/3.23.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="3.22.html" title="CMake 3.22 Release Notes"
>next</a> |</li>
<li class="right" >
<a href="index.html" title="CMake Release Notes"
>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="index.html" >CMake Release Notes</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">CMake 3.23 Release Notes</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>