| <!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>CMake 3.3 Release Notes — 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="CMake 3.2 Release Notes" href="3.2.html" /> |
| <link rel="prev" title="CMake 3.4 Release Notes" href="3.4.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="3.2.html" title="CMake 3.2 Release Notes" |
| accesskey="N">next</a> |</li> |
| <li class="right" > |
| <a href="3.4.html" title="CMake 3.4 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> » |
| </li> |
| <li> |
| <a href="../index.html">3.8.2 Documentation</a> » |
| </li> |
| |
| <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">CMake 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-3-release-notes"> |
| <h1><a class="toc-backref" href="#id1">CMake 3.3 Release Notes</a><a class="headerlink" href="#cmake-3-3-release-notes" title="Permalink to this headline">¶</a></h1> |
| <div class="contents topic" id="contents"> |
| <p class="topic-title first">Contents</p> |
| <ul class="simple"> |
| <li><a class="reference internal" href="#cmake-3-3-release-notes" id="id1">CMake 3.3 Release Notes</a><ul> |
| <li><a class="reference internal" href="#new-features" id="id2">New Features</a><ul> |
| <li><a class="reference internal" href="#generators" id="id3">Generators</a></li> |
| <li><a class="reference internal" href="#commands" id="id4">Commands</a></li> |
| <li><a class="reference internal" href="#variables" id="id5">Variables</a></li> |
| <li><a class="reference internal" href="#properties" id="id6">Properties</a></li> |
| <li><a class="reference internal" href="#modules" id="id7">Modules</a></li> |
| <li><a class="reference internal" href="#generator-expressions" id="id8">Generator Expressions</a></li> |
| <li><a class="reference internal" href="#ctest" id="id9">CTest</a></li> |
| <li><a class="reference internal" href="#cpack" id="id10">CPack</a></li> |
| <li><a class="reference internal" href="#other" id="id11">Other</a></li> |
| </ul> |
| </li> |
| <li><a class="reference internal" href="#deprecated-and-removed-features" id="id12">Deprecated and Removed Features</a></li> |
| <li><a class="reference internal" href="#other-changes" id="id13">Other Changes</a></li> |
| </ul> |
| </li> |
| </ul> |
| </div> |
| <p>Changes made since CMake 3.2 include the following.</p> |
| <div class="section" id="new-features"> |
| <h2><a class="toc-backref" href="#id2">New Features</a><a class="headerlink" href="#new-features" title="Permalink to this headline">¶</a></h2> |
| <div class="section" id="generators"> |
| <h3><a class="toc-backref" href="#id3">Generators</a><a class="headerlink" href="#generators" title="Permalink to this headline">¶</a></h3> |
| <ul class="simple"> |
| <li>The <a class="reference internal" href="../manual/cmake-generators.7.html#makefile-generators"><span class="std std-ref">Makefile Generators</span></a> now add <code class="docutils literal"><span class="pre">.DELETE_ON_ERROR</span></code> to the |
| makefiles that contain the actual build rules for files on disk. |
| This tells GNU make to remove rule outputs when their recipe |
| modifies an output but fails.</li> |
| <li>The <a class="reference internal" href="../manual/cmake-generators.7.html#visual-studio-generators"><span class="std std-ref">Visual Studio Generators</span></a> learned to support <code class="docutils literal"><span class="pre">.xaml</span></code> |
| source files and automatically associate them with corresponding |
| <code class="docutils literal"><span class="pre">.h</span></code> and <code class="docutils literal"><span class="pre">.cpp</span></code> sources.</li> |
| <li>A new experimental <span class="target" id="index-0-generator:Green Hills MULTI"></span><a class="reference internal" href="../generator/Green Hills MULTI.html#generator:Green Hills MULTI" title="Green Hills MULTI"><code class="xref cmake cmake-generator docutils literal"><span class="pre">Green</span> <span class="pre">Hills</span> <span class="pre">MULTI</span></code></a> generator was |
| added on Windows. <a class="reference external" href="http://www.ghs.com/products/MULTI_IDE.html">Green Hills MULTI</a> is an IDE for embedded |
| real-time systems.</li> |
| </ul> |
| </div> |
| <div class="section" id="commands"> |
| <h3><a class="toc-backref" href="#id4">Commands</a><a class="headerlink" href="#commands" title="Permalink to this headline">¶</a></h3> |
| <ul class="simple"> |
| <li>The <span class="target" id="index-0-command:add_dependencies"></span><a class="reference internal" href="../command/add_dependencies.html#command:add_dependencies" title="add_dependencies"><code class="xref cmake cmake-command docutils literal"><span class="pre">add_dependencies()</span></code></a> command learned to allow dependencies |
| to be added to <a class="reference internal" href="../manual/cmake-buildsystem.7.html#interface-libraries"><span class="std std-ref">interface libraries</span></a>. |
| Dependencies added to an interface library are followed transitively |
| in its place since the target itself does not build.</li> |
| <li>The <span class="target" id="index-0-command:execute_process"></span><a class="reference internal" href="../command/execute_process.html#command:execute_process" title="execute_process"><code class="xref cmake cmake-command docutils literal"><span class="pre">execute_process()</span></code></a> command learned to support specifying |
| the same file for <code class="docutils literal"><span class="pre">OUTPUT_FILE</span></code> and <code class="docutils literal"><span class="pre">ERROR_FILE</span></code>.</li> |
| <li>The <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"><span class="pre">file(GLOB)</span></code></a> and <span class="target" id="index-1-command:file"></span><a class="reference internal" href="../command/file.html#command:file" title="file"><code class="xref cmake cmake-command docutils literal"><span class="pre">file(GLOB_RECURSE)</span></code></a> commands |
| learned a new <code class="docutils literal"><span class="pre">LIST_DIRECTORIES</span> <span class="pre"><bool></span></code> option to specify whether |
| the glob result should include directories.</li> |
| <li>The <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"><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"><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"><span class="pre">find_file()</span></code></a> |
| commands now search in installation prefixes derived from the <code class="docutils literal"><span class="pre">PATH</span></code> |
| environment variable.</li> |
| <li>The <span class="target" id="index-0-command:if"></span><a class="reference internal" href="../command/if.html#command:if" title="if"><code class="xref cmake cmake-command docutils literal"><span class="pre">if()</span></code></a> command learned a new <code class="docutils literal"><span class="pre">IN_LIST</span></code> operator that |
| evaluates to true if a given element is contained in a named list.</li> |
| <li>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"><span class="pre">install(EXPORT)</span></code></a> and <span class="target" id="index-0-command:export"></span><a class="reference internal" href="../command/export.html#command:export" title="export"><code class="xref cmake cmake-command docutils literal"><span class="pre">export()</span></code></a> commands |
| learned to export targets that populate the <span class="target" id="index-0-prop_tgt:INTERFACE_SOURCES"></span><a class="reference internal" href="../prop_tgt/INTERFACE_SOURCES.html#prop_tgt:INTERFACE_SOURCES" title="INTERFACE_SOURCES"><code class="xref cmake cmake-prop_tgt docutils literal"><span class="pre">INTERFACE_SOURCES</span></code></a> |
| target property.</li> |
| <li>The <span class="target" id="index-1-command:install"></span><a class="reference internal" href="../command/install.html#command:install" title="install"><code class="xref cmake cmake-command docutils literal"><span class="pre">install(TARGETS)</span></code></a> command learned to support |
| generator expressions in the <code class="docutils literal"><span class="pre">DESTINATION</span></code> value.</li> |
| </ul> |
| </div> |
| <div class="section" id="variables"> |
| <h3><a class="toc-backref" href="#id5">Variables</a><a class="headerlink" href="#variables" title="Permalink to this headline">¶</a></h3> |
| <ul class="simple"> |
| <li>The version of some Fortran compilers is now detected and stored in the |
| <span class="target" id="index-0-variable:CMAKE_<LANG>_COMPILER_VERSION"></span><a class="reference internal" href="../variable/CMAKE_LANG_COMPILER_VERSION.html#variable:CMAKE_<LANG>_COMPILER_VERSION" title="CMAKE_<LANG>_COMPILER_VERSION"><code class="xref cmake cmake-variable docutils literal"><span class="pre">CMAKE_Fortran_COMPILER_VERSION</span></code></a> |
| variable.</li> |
| <li>The <a class="reference internal" href="../manual/cmake-generators.7.html#visual-studio-generators"><span class="std std-ref">Visual Studio Generators</span></a> learned a new |
| <span class="target" id="index-0-variable:CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD"></span><a class="reference internal" href="../variable/CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD.html#variable:CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD" title="CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD"><code class="xref cmake cmake-variable docutils literal"><span class="pre">CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD</span></code></a> option |
| to put the <code class="docutils literal"><span class="pre">INSTALL</span></code> target in the default build of a |
| solution (<code class="docutils literal"><span class="pre">.sln</span></code>) file.</li> |
| </ul> |
| </div> |
| <div class="section" id="properties"> |
| <h3><a class="toc-backref" href="#id6">Properties</a><a class="headerlink" href="#properties" title="Permalink to this headline">¶</a></h3> |
| <ul class="simple"> |
| <li>A <span class="target" id="index-0-prop_tgt:CROSSCOMPILING_EMULATOR"></span><a class="reference internal" href="../prop_tgt/CROSSCOMPILING_EMULATOR.html#prop_tgt:CROSSCOMPILING_EMULATOR" title="CROSSCOMPILING_EMULATOR"><code class="xref cmake cmake-prop_tgt docutils literal"><span class="pre">CROSSCOMPILING_EMULATOR</span></code></a> target property and supporting |
| <span class="target" id="index-0-variable:CMAKE_CROSSCOMPILING_EMULATOR"></span><a class="reference internal" href="../variable/CMAKE_CROSSCOMPILING_EMULATOR.html#variable:CMAKE_CROSSCOMPILING_EMULATOR" title="CMAKE_CROSSCOMPILING_EMULATOR"><code class="xref cmake cmake-variable docutils literal"><span class="pre">CMAKE_CROSSCOMPILING_EMULATOR</span></code></a> variable were introduced |
| to allow target platform binaries to run on the host during cross |
| compiling.</li> |
| <li>A <span class="target" id="index-0-prop_tgt:<LANG>_INCLUDE_WHAT_YOU_USE"></span><a class="reference internal" href="../prop_tgt/LANG_INCLUDE_WHAT_YOU_USE.html#prop_tgt:<LANG>_INCLUDE_WHAT_YOU_USE" title="<LANG>_INCLUDE_WHAT_YOU_USE"><code class="xref cmake cmake-prop_tgt docutils literal"><span class="pre"><LANG>_INCLUDE_WHAT_YOU_USE</span></code></a> target property and supporting |
| <span class="target" id="index-0-variable:CMAKE_<LANG>_INCLUDE_WHAT_YOU_USE"></span><a class="reference internal" href="../variable/CMAKE_LANG_INCLUDE_WHAT_YOU_USE.html#variable:CMAKE_<LANG>_INCLUDE_WHAT_YOU_USE" title="CMAKE_<LANG>_INCLUDE_WHAT_YOU_USE"><code class="xref cmake cmake-variable docutils literal"><span class="pre">CMAKE_<LANG>_INCLUDE_WHAT_YOU_USE</span></code></a> variable were introduced |
| to tell the <a class="reference internal" href="../manual/cmake-generators.7.html#makefile-generators"><span class="std std-ref">Makefile Generators</span></a> and the <span class="target" id="index-0-generator:Ninja"></span><a class="reference internal" href="../generator/Ninja.html#generator:Ninja" title="Ninja"><code class="xref cmake cmake-generator docutils literal"><span class="pre">Ninja</span></code></a> generator |
| to run <code class="docutils literal"><span class="pre">include-what-you-use</span></code> along with the compiler for <code class="docutils literal"><span class="pre">C</span></code> and |
| <code class="docutils literal"><span class="pre">CXX</span></code> languages.</li> |
| <li>The <span class="target" id="index-0-prop_tgt:<LANG>_VISIBILITY_PRESET"></span><a class="reference internal" href="../prop_tgt/LANG_VISIBILITY_PRESET.html#prop_tgt:<LANG>_VISIBILITY_PRESET" title="<LANG>_VISIBILITY_PRESET"><code class="xref cmake cmake-prop_tgt docutils literal"><span class="pre"><LANG>_VISIBILITY_PRESET</span></code></a> and |
| <span class="target" id="index-0-prop_tgt:VISIBILITY_INLINES_HIDDEN"></span><a class="reference internal" href="../prop_tgt/VISIBILITY_INLINES_HIDDEN.html#prop_tgt:VISIBILITY_INLINES_HIDDEN" title="VISIBILITY_INLINES_HIDDEN"><code class="xref cmake cmake-prop_tgt docutils literal"><span class="pre">VISIBILITY_INLINES_HIDDEN</span></code></a> target properties now |
| affect compilation in sources of all target types. See |
| policy <span class="target" id="index-0-policy:CMP0063"></span><a class="reference internal" href="../policy/CMP0063.html#policy:CMP0063" title="CMP0063"><code class="xref cmake cmake-policy docutils literal"><span class="pre">CMP0063</span></code></a>.</li> |
| <li>The <span class="target" id="index-0-prop_tgt:XCODE_ATTRIBUTE_<an-attribute>"></span><a class="reference internal" href="../prop_tgt/XCODE_ATTRIBUTE_an-attribute.html#prop_tgt:XCODE_ATTRIBUTE_<an-attribute>" title="XCODE_ATTRIBUTE_<an-attribute>"><code class="xref cmake cmake-prop_tgt docutils literal"><span class="pre">XCODE_ATTRIBUTE_<an-attribute></span></code></a> target property learned |
| to support generator expressions.</li> |
| </ul> |
| </div> |
| <div class="section" id="modules"> |
| <h3><a class="toc-backref" href="#id7">Modules</a><a class="headerlink" href="#modules" title="Permalink to this headline">¶</a></h3> |
| <ul class="simple"> |
| <li>The <span class="target" id="index-0-module:CheckFortranCompilerFlag"></span><a class="reference internal" href="../module/CheckFortranCompilerFlag.html#module:CheckFortranCompilerFlag" title="CheckFortranCompilerFlag"><code class="xref cmake cmake-module docutils literal"><span class="pre">CheckFortranCompilerFlag</span></code></a> module was introduced |
| to check <code class="docutils literal"><span class="pre">Fortran</span></code> compiler flags, much like the |
| <span class="target" id="index-0-module:CheckCCompilerFlag"></span><a class="reference internal" href="../module/CheckCCompilerFlag.html#module:CheckCCompilerFlag" title="CheckCCompilerFlag"><code class="xref cmake cmake-module docutils literal"><span class="pre">CheckCCompilerFlag</span></code></a> module already does for <code class="docutils literal"><span class="pre">C</span></code>.</li> |
| <li>The <span class="target" id="index-0-module:ExternalData"></span><a class="reference internal" href="../module/ExternalData.html#module:ExternalData" title="ExternalData"><code class="xref cmake cmake-module docutils literal"><span class="pre">ExternalData</span></code></a> module learned a new |
| <span class="target" id="index-0-variable:ExternalData_NO_SYMLINKS"></span><a class="reference internal" href="../module/ExternalData.html#variable:ExternalData_NO_SYMLINKS" title="ExternalData_NO_SYMLINKS"><code class="xref cmake cmake-variable docutils literal"><span class="pre">ExternalData_NO_SYMLINKS</span></code></a> option to disable use of |
| symbolic links to populate the real data files and use copies |
| instead.</li> |
| <li>The <span class="target" id="index-1-module:ExternalData"></span><a class="reference internal" href="../module/ExternalData.html#module:ExternalData" title="ExternalData"><code class="xref cmake cmake-module docutils literal"><span class="pre">ExternalData</span></code></a> module learned a new <code class="docutils literal"><span class="pre">RECURSE:</span></code> |
| option in <code class="docutils literal"><span class="pre">DATA{}</span></code> references specifying directories. |
| This allows an entire directory tree of associated files |
| to be matched.</li> |
| <li>The <span class="target" id="index-2-module:ExternalData"></span><a class="reference internal" href="../module/ExternalData.html#module:ExternalData" title="ExternalData"><code class="xref cmake cmake-module docutils literal"><span class="pre">ExternalData</span></code></a> module learned a new URL template |
| placeholder <code class="docutils literal"><span class="pre">%(algo:<key>)</span></code> to allow custom mapping from |
| algorithm name to URL component through configuration of new |
| <span class="target" id="index-0-variable:ExternalData_URL_ALGO_<algo>_<key>"></span><a class="reference internal" href="../module/ExternalData.html#variable:ExternalData_URL_ALGO_<algo>_<key>" title="ExternalData_URL_ALGO_<algo>_<key>"><code class="xref cmake cmake-variable docutils literal"><span class="pre">ExternalData_URL_ALGO_<algo>_<key></span></code></a> variables. |
| This allows more flexibility in remote URLs.</li> |
| <li>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"><span class="pre">ExternalProject</span></code></a> module learned to replace tokens |
| like <code class="docutils literal"><span class="pre"><BINARY_DIR></span></code> in the <code class="docutils literal"><span class="pre">BYPRODUCTS</span></code> of each step.</li> |
| <li>The <span class="target" id="index-1-module:ExternalProject"></span><a class="reference internal" href="../module/ExternalProject.html#module:ExternalProject" title="ExternalProject"><code class="xref cmake cmake-module docutils literal"><span class="pre">ExternalProject</span></code></a> module APIs learned to support |
| <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"><span class="pre">generator</span> <span class="pre">expressions</span></code></a> |
| when using <code class="docutils literal"><span class="pre">LOG_*</span></code> options and in CMake initial cache options.</li> |
| <li>The <span class="target" id="index-0-module:FindBoost"></span><a class="reference internal" href="../module/FindBoost.html#module:FindBoost" title="FindBoost"><code class="xref cmake cmake-module docutils literal"><span class="pre">FindBoost</span></code></a> module now tracks the directories containing |
| libraries separately for RELEASE and DEBUG configurations.</li> |
| <li>The <span class="target" id="index-0-module:FindCUDA"></span><a class="reference internal" href="../module/FindCUDA.html#module:FindCUDA" title="FindCUDA"><code class="xref cmake cmake-module docutils literal"><span class="pre">FindCUDA</span></code></a> module now defaults to using the static |
| CUDA runtime library if it is available. A new |
| <code class="docutils literal"><span class="pre">CUDA_USE_STATIC_CUDA_RUNTIME</span></code> option is offered to control |
| this behavior.</li> |
| <li>The <span class="target" id="index-0-module:FindMatlab"></span><a class="reference internal" href="../module/FindMatlab.html#module:FindMatlab" title="FindMatlab"><code class="xref cmake cmake-module docutils literal"><span class="pre">FindMatlab</span></code></a> module was completely rewritten. It learned |
| about versions and components and to find Matlab in a more precise and |
| multiplatform way. The module now offers APIs to create mex extensions, |
| documentation, and unit tests.</li> |
| <li>The <span class="target" id="index-0-module:FindPackageHandleStandardArgs"></span><a class="reference internal" href="../module/FindPackageHandleStandardArgs.html#module:FindPackageHandleStandardArgs" title="FindPackageHandleStandardArgs"><code class="xref cmake cmake-module docutils literal"><span class="pre">FindPackageHandleStandardArgs</span></code></a> module |
| <code class="docutils literal"><span class="pre">FIND_PACKAGE_HANDLE_STANDARD_ARGS</span></code> function now |
| always populates both the <code class="docutils literal"><span class="pre"><PackageName>_FOUND</span></code> |
| and <code class="docutils literal"><span class="pre"><UPPERCASE_NAME>_FOUND</span></code> variables (the latter |
| for backwards compatibility). The <code class="docutils literal"><span class="pre">FOUND_VAR</span></code> |
| option is now ignored except to enforce its allowed |
| values.</li> |
| <li>The <span class="target" id="index-0-module:InstallRequiredSystemLibraries"></span><a class="reference internal" href="../module/InstallRequiredSystemLibraries.html#module:InstallRequiredSystemLibraries" title="InstallRequiredSystemLibraries"><code class="xref cmake cmake-module docutils literal"><span class="pre">InstallRequiredSystemLibraries</span></code></a> module learned a new |
| <code class="docutils literal"><span class="pre">CMAKE_INSTALL_SYSTEM_RUNTIME_COMPONENT</span></code> option to specify the |
| installation component.</li> |
| </ul> |
| </div> |
| <div class="section" id="generator-expressions"> |
| <h3><a class="toc-backref" href="#id8">Generator Expressions</a><a class="headerlink" href="#generator-expressions" title="Permalink to this headline">¶</a></h3> |
| <ul class="simple"> |
| <li>A new <code class="docutils literal"><span class="pre">COMPILE_LANGUAGE</span></code> generator expression was introduced to |
| allow specification of compile options for target files based on the |
| <span class="target" id="index-0-prop_sf:LANGUAGE"></span><a class="reference internal" href="../prop_sf/LANGUAGE.html#prop_sf:LANGUAGE" title="LANGUAGE"><code class="xref cmake cmake-prop_sf docutils literal"><span class="pre">LANGUAGE</span></code></a> of each source file. Due to limitations of the |
| underlying native build tools, this feature has varying support across |
| generators. See the <span class="target" id="index-1-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"><span class="pre">cmake-generator-expressions(7)</span></code></a> manual |
| for details.</li> |
| </ul> |
| </div> |
| <div class="section" id="ctest"> |
| <h3><a class="toc-backref" href="#id9">CTest</a><a class="headerlink" href="#ctest" title="Permalink to this headline">¶</a></h3> |
| <ul class="simple"> |
| <li>The <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"><span class="pre">ctest(1)</span></code></a> tool learned a new <code class="docutils literal"><span class="pre">--repeat-until-fail</span> <span class="pre"><n></span></code> |
| option to help find sporadic test failures.</li> |
| <li>The <span class="target" id="index-0-module:CTestCoverageCollectGCOV"></span><a class="reference internal" href="../module/CTestCoverageCollectGCOV.html#module:CTestCoverageCollectGCOV" title="CTestCoverageCollectGCOV"><code class="xref cmake cmake-module docutils literal"><span class="pre">CTestCoverageCollectGCOV</span></code></a> module learned to support |
| the same <code class="docutils literal"><span class="pre">CTEST_CUSTOM_COVERAGE_EXCLUDE</span></code> option as the |
| <span class="target" id="index-0-command:ctest_coverage"></span><a class="reference internal" href="../command/ctest_coverage.html#command:ctest_coverage" title="ctest_coverage"><code class="xref cmake cmake-command docutils literal"><span class="pre">ctest_coverage()</span></code></a> command.</li> |
| </ul> |
| </div> |
| <div class="section" id="cpack"> |
| <h3><a class="toc-backref" href="#id10">CPack</a><a class="headerlink" href="#cpack" title="Permalink to this headline">¶</a></h3> |
| <ul class="simple"> |
| <li>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"><span class="pre">cpack(1)</span></code></a> <code class="docutils literal"><span class="pre">IFW</span></code> generator and the <span class="target" id="index-0-module:CPackIFW"></span><a class="reference internal" href="../module/CPackIFW.html#module:CPackIFW" title="CPackIFW"><code class="xref cmake cmake-module docutils literal"><span class="pre">CPackIFW</span></code></a> |
| module learned to support Qt Framework Installer 2.0 tools.</li> |
| <li>The <span class="target" id="index-0-module:CPackDeb"></span><a class="reference internal" href="../module/CPackDeb.html#module:CPackDeb" title="CPackDeb"><code class="xref cmake cmake-module docutils literal"><span class="pre">CPackDeb</span></code></a> module learned a new |
| <span class="target" id="index-0-variable:CPACK_DEBIAN_<COMPONENT>_PACKAGE_SHLIBDEPS"></span><a class="reference internal" href="../module/CPackDeb.html#variable:CPACK_DEBIAN_<COMPONENT>_PACKAGE_SHLIBDEPS" title="CPACK_DEBIAN_<COMPONENT>_PACKAGE_SHLIBDEPS"><code class="xref cmake cmake-variable docutils literal"><span class="pre">CPACK_DEBIAN_<COMPONENT>_PACKAGE_SHLIBDEPS</span></code></a> |
| variable to specify per-component use of <code class="docutils literal"><span class="pre">dpkg-shlibdeps</span></code>.</li> |
| <li>The <span class="target" id="index-1-module:CPackDeb"></span><a class="reference internal" href="../module/CPackDeb.html#module:CPackDeb" title="CPackDeb"><code class="xref cmake cmake-module docutils literal"><span class="pre">CPackDeb</span></code></a> module learned a new |
| <span class="target" id="index-0-variable:CPACK_DEBIAN_<COMPONENT>_PACKAGE_DEPENDS"></span><a class="reference internal" href="../module/CPackDeb.html#variable:CPACK_DEBIAN_<COMPONENT>_PACKAGE_DEPENDS" title="CPACK_DEBIAN_<COMPONENT>_PACKAGE_DEPENDS"><code class="xref cmake cmake-variable docutils literal"><span class="pre">CPACK_DEBIAN_<COMPONENT>_PACKAGE_DEPENDS</span></code></a> |
| option to specify per-component dependencies.</li> |
| <li>The <span class="target" id="index-0-module:CPackRPM"></span><a class="reference internal" href="../module/CPackRPM.html#module:CPackRPM" title="CPackRPM"><code class="xref cmake cmake-module docutils literal"><span class="pre">CPackRPM</span></code></a> module learned to package symbolic links |
| more cleanly and now supports directory symlinks with recent |
| <code class="docutils literal"><span class="pre">rpmbuild</span></code> versions.</li> |
| <li>The <span class="target" id="index-1-module:CPackRPM"></span><a class="reference internal" href="../module/CPackRPM.html#module:CPackRPM" title="CPackRPM"><code class="xref cmake cmake-module docutils literal"><span class="pre">CPackRPM</span></code></a> module learned a new |
| <span class="target" id="index-0-variable:CPACK_RPM_ADDITIONAL_MAN_DIRS"></span><a class="reference internal" href="../module/CPackRPM.html#variable:CPACK_RPM_ADDITIONAL_MAN_DIRS" title="CPACK_RPM_ADDITIONAL_MAN_DIRS"><code class="xref cmake cmake-variable docutils literal"><span class="pre">CPACK_RPM_ADDITIONAL_MAN_DIRS</span></code></a> variable to specify |
| directories containing man pages for the brp-compress RPM macro.</li> |
| <li>The <span class="target" id="index-2-module:CPackRPM"></span><a class="reference internal" href="../module/CPackRPM.html#module:CPackRPM" title="CPackRPM"><code class="xref cmake cmake-module docutils literal"><span class="pre">CPackRPM</span></code></a> module learned a new |
| <span class="target" id="index-0-variable:CPACK_RPM_<component>_PACKAGE_ARCHITECTURE"></span><a class="reference internal" href="../module/CPackRPM.html#variable:CPACK_RPM_<component>_PACKAGE_ARCHITECTURE" title="CPACK_RPM_<component>_PACKAGE_ARCHITECTURE"><code class="xref cmake cmake-variable docutils literal"><span class="pre">CPACK_RPM_<component>_PACKAGE_ARCHITECTURE</span></code></a> variable |
| to specify a component-specific package architecture.</li> |
| <li>The CPack WIX generator learned the new |
| <span class="target" id="index-0-prop_inst:CPACK_START_MENU_SHORTCUTS"></span><a class="reference internal" href="../prop_inst/CPACK_START_MENU_SHORTCUTS.html#prop_inst:CPACK_START_MENU_SHORTCUTS" title="CPACK_START_MENU_SHORTCUTS"><code class="xref cmake cmake-prop_inst docutils literal"><span class="pre">CPACK_START_MENU_SHORTCUTS</span></code></a>, |
| <span class="target" id="index-0-prop_inst:CPACK_DESKTOP_SHORTCUTS"></span><a class="reference internal" href="../prop_inst/CPACK_DESKTOP_SHORTCUTS.html#prop_inst:CPACK_DESKTOP_SHORTCUTS" title="CPACK_DESKTOP_SHORTCUTS"><code class="xref cmake cmake-prop_inst docutils literal"><span class="pre">CPACK_DESKTOP_SHORTCUTS</span></code></a> and |
| <span class="target" id="index-0-prop_inst:CPACK_STARTUP_SHORTCUTS"></span><a class="reference internal" href="../prop_inst/CPACK_STARTUP_SHORTCUTS.html#prop_inst:CPACK_STARTUP_SHORTCUTS" title="CPACK_STARTUP_SHORTCUTS"><code class="xref cmake cmake-prop_inst docutils literal"><span class="pre">CPACK_STARTUP_SHORTCUTS</span></code></a> installed file properties which can |
| be used to install shorcuts in the Start Menu, on the Desktop and |
| in the Startup Folder respectively.</li> |
| </ul> |
| </div> |
| <div class="section" id="other"> |
| <h3><a class="toc-backref" href="#id11">Other</a><a class="headerlink" href="#other" title="Permalink to this headline">¶</a></h3> |
| <ul class="simple"> |
| <li>The <span class="target" id="index-0-manual:cmake-compile-features(7)"></span><a class="reference internal" href="../manual/cmake-compile-features.7.html#manual:cmake-compile-features(7)" title="cmake-compile-features(7)"><code class="xref cmake cmake-manual docutils literal"><span class="pre">Compile</span> <span class="pre">Features</span></code></a> functionality |
| is now aware of features supported by GNU compilers on Windows, versions |
| 4.4 through 5.0.</li> |
| <li>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"><span class="pre">cmake(1)</span></code></a> <code class="docutils literal"><span class="pre">-E</span> <span class="pre">tar</span></code> command learned a new |
| <code class="docutils literal"><span class="pre">--format<format></span></code> option to specify the archive format to |
| be written.</li> |
| <li>On OS X, CMake learned to create XCTest bundles to test Frameworks |
| and App Bundles within Xcode. The <span class="target" id="index-0-module:FindXCTest"></span><a class="reference internal" href="../module/FindXCTest.html#module:FindXCTest" title="FindXCTest"><code class="xref cmake cmake-module docutils literal"><span class="pre">FindXCTest</span></code></a> module |
| provides convenience functions to handle <span class="target" id="index-0-prop_tgt:XCTEST"></span><a class="reference internal" href="../prop_tgt/XCTEST.html#prop_tgt:XCTEST" title="XCTEST"><code class="xref cmake cmake-prop_tgt docutils literal"><span class="pre">XCTEST</span></code></a> bundles.</li> |
| </ul> |
| </div> |
| </div> |
| <div class="section" id="deprecated-and-removed-features"> |
| <h2><a class="toc-backref" href="#id12">Deprecated and Removed Features</a><a class="headerlink" href="#deprecated-and-removed-features" title="Permalink to this headline">¶</a></h2> |
| <ul> |
| <li><p class="first">On OS X the <span class="target" id="index-0-manual:cmake-gui(1)"></span><a class="reference internal" href="../manual/cmake-gui.1.html#manual:cmake-gui(1)" title="cmake-gui(1)"><code class="xref cmake cmake-manual docutils literal"><span class="pre">cmake-gui(1)</span></code></a> no longer has the |
| <code class="docutils literal"><span class="pre">Install</span> <span class="pre">For</span> <span class="pre">Command</span> <span class="pre">Line</span> <span class="pre">Use</span></code> menu item. Instead there |
| is a <code class="docutils literal"><span class="pre">How</span> <span class="pre">to</span> <span class="pre">Install</span> <span class="pre">For</span> <span class="pre">Command</span> <span class="pre">Line</span> <span class="pre">Use</span></code> menu item |
| that shows an informational dialog box explaining how to |
| make the command line tools available. For example:</p> |
| <div class="highlight-default"><div class="highlight"><pre><span></span><span class="o">/</span><span class="n">Applications</span><span class="o">/</span><span class="n">CMake</span><span class="o">.</span><span class="n">app</span><span class="o">/</span><span class="n">Contents</span><span class="o">/</span><span class="nb">bin</span><span class="o">/</span><span class="n">cmake</span><span class="o">-</span><span class="n">gui</span> <span class="o">--</span><span class="n">install</span> |
| </pre></div> |
| </div> |
| </li> |
| <li><p class="first">The <span class="target" id="index-0-command:ctest_build"></span><a class="reference internal" href="../command/ctest_build.html#command:ctest_build" title="ctest_build"><code class="xref cmake cmake-command docutils literal"><span class="pre">ctest_build()</span></code></a> and <span class="target" id="index-0-command:build_command"></span><a class="reference internal" href="../command/build_command.html#command:build_command" title="build_command"><code class="xref cmake cmake-command docutils literal"><span class="pre">build_command()</span></code></a> commands |
| no longer tell <code class="docutils literal"><span class="pre">make</span></code> tools to ignore errors with the <code class="docutils literal"><span class="pre">-i</span></code> option. |
| Previously this was done for <a class="reference internal" href="../manual/cmake-generators.7.html#makefile-generators"><span class="std std-ref">Makefile Generators</span></a> but not others. |
| See policy <span class="target" id="index-0-policy:CMP0061"></span><a class="reference internal" href="../policy/CMP0061.html#policy:CMP0061" title="CMP0061"><code class="xref cmake cmake-policy docutils literal"><span class="pre">CMP0061</span></code></a>.</p> |
| </li> |
| <li><p class="first">The <span class="target" id="index-0-generator:Visual Studio 10 2010"></span><a class="reference internal" href="../generator/Visual Studio 10 2010.html#generator:Visual Studio 10 2010" title="Visual Studio 10 2010"><code class="xref cmake cmake-generator docutils literal"><span class="pre">Visual</span> <span class="pre">Studio</span> <span class="pre">10</span> <span class="pre">2010</span></code></a> generator no longer checks |
| for running VS IDEs with the project open or asks them to reload. |
| This was originally done for VS 10 because it had been done for |
| VS 7 through 9 to avoid prompting for every project in a solution. |
| Since VS >= 10 allow the whole solution to reload at once they |
| do not need CMake to help them.</p> |
| </li> |
| <li><p class="first">The <span class="target" id="index-0-generator:Visual Studio 7"></span><a class="reference internal" href="../generator/Visual Studio 7.html#generator:Visual Studio 7" title="Visual Studio 7"><code class="xref cmake cmake-generator docutils literal"><span class="pre">Visual</span> <span class="pre">Studio</span> <span class="pre">7</span></code></a> generator (.NET 2002) is now |
| deprecated and will be removed in a future version of CMake.</p> |
| </li> |
| <li><p class="first">The <span class="target" id="index-0-generator:Visual Studio 6"></span><a class="reference internal" href="../generator/Visual Studio 6.html#generator:Visual Studio 6" title="Visual Studio 6"><code class="xref cmake cmake-generator docutils literal"><span class="pre">Visual</span> <span class="pre">Studio</span> <span class="pre">6</span></code></a> generator is now deprecated |
| and will be removed in a future version of CMake.</p> |
| </li> |
| <li><p class="first">The <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"><span class="pre">find_package()</span></code></a> command no longer considers project |
| build trees recently configured in a <span class="target" id="index-1-manual:cmake-gui(1)"></span><a class="reference internal" href="../manual/cmake-gui.1.html#manual:cmake-gui(1)" title="cmake-gui(1)"><code class="xref cmake cmake-manual docutils literal"><span class="pre">cmake-gui(1)</span></code></a>. |
| This was previously done only on Windows and is now never done. |
| The <code class="docutils literal"><span class="pre">NO_CMAKE_BUILDS_PATH</span></code> option is now ignored if given |
| and effectively always on. |
| Projects may populate the <a class="reference internal" href="../manual/cmake-packages.7.html#user-package-registry"><span class="std std-ref">User Package Registry</span></a> to aid |
| users building multiple dependent projects one after another.</p> |
| </li> |
| <li><p class="first">The <span class="target" id="index-0-command:add_definitions"></span><a class="reference internal" href="../command/add_definitions.html#command:add_definitions" title="add_definitions"><code class="xref cmake cmake-command docutils literal"><span class="pre">add_definitions()</span></code></a> command no longer causes a |
| <span class="target" id="index-0-prop_dir:DEFINITIONS"></span><a class="reference internal" href="../prop_dir/DEFINITIONS.html#prop_dir:DEFINITIONS" title="DEFINITIONS"><code class="xref cmake cmake-prop_dir docutils literal"><span class="pre">DEFINITIONS</span></code></a> directory property to be populated. See policy |
| <span class="target" id="index-0-policy:CMP0059"></span><a class="reference internal" href="../policy/CMP0059.html#policy:CMP0059" title="CMP0059"><code class="xref cmake cmake-policy docutils literal"><span class="pre">CMP0059</span></code></a>.</p> |
| </li> |
| <li><p class="first">With Visual Studio 7, 8, and 9 generators the value of the <code class="docutils literal"><span class="pre">$(OutDir)</span></code> |
| placeholder no longer evaluates to the configuration name. Projects |
| should use <code class="docutils literal"><span class="pre">$(ConfigurationName)</span></code> for that instead.</p> |
| </li> |
| <li><p class="first">Using the output of <span class="target" id="index-1-command:export"></span><a class="reference internal" href="../command/export.html#command:export" title="export"><code class="xref cmake cmake-command docutils literal"><span class="pre">export()</span></code></a> with the <span class="target" id="index-2-command:install"></span><a class="reference internal" href="../command/install.html#command:install" title="install"><code class="xref cmake cmake-command docutils literal"><span class="pre">install(FILES)</span></code></a> |
| command is no longer allowed. See policy <span class="target" id="index-0-policy:CMP0062"></span><a class="reference internal" href="../policy/CMP0062.html#policy:CMP0062" title="CMP0062"><code class="xref cmake cmake-policy docutils literal"><span class="pre">CMP0062</span></code></a> for details.</p> |
| </li> |
| </ul> |
| </div> |
| <div class="section" id="other-changes"> |
| <h2><a class="toc-backref" href="#id13">Other Changes</a><a class="headerlink" href="#other-changes" title="Permalink to this headline">¶</a></h2> |
| <ul class="simple"> |
| <li>The <span class="target" id="index-1-generator:Ninja"></span><a class="reference internal" href="../generator/Ninja.html#generator:Ninja" title="Ninja"><code class="xref cmake cmake-generator docutils literal"><span class="pre">Ninja</span></code></a> generator now requires that calls to the |
| <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"><span class="pre">add_custom_command()</span></code></a> and <span class="target" id="index-0-command:add_custom_target"></span><a class="reference internal" href="../command/add_custom_target.html#command:add_custom_target" title="add_custom_target"><code class="xref cmake cmake-command docutils literal"><span class="pre">add_custom_target()</span></code></a> |
| commands use the <code class="docutils literal"><span class="pre">BYPRODUCTS</span></code> option to explicitly specify any |
| files generated by the custom commands that are not listed as |
| outputs (perhaps because their timestamps are allowed to be older |
| than the inputs). See policy <span class="target" id="index-0-policy:CMP0058"></span><a class="reference internal" href="../policy/CMP0058.html#policy:CMP0058" title="CMP0058"><code class="xref cmake cmake-policy docutils literal"><span class="pre">CMP0058</span></code></a>.</li> |
| <li>Build-time progress output of <a class="reference internal" href="../manual/cmake-generators.7.html#makefile-generators"><span class="std std-ref">Makefile Generators</span></a> has been improved. |
| It no longer mixes progress and build rule messages during parallel builds. |
| The link rule messages now have progress and are displayed as bold green |
| instead of bold red (since red is often associated with an error message).</li> |
| <li>The <span class="target" id="index-0-variable:CMAKE_CFG_INTDIR"></span><a class="reference internal" href="../variable/CMAKE_CFG_INTDIR.html#variable:CMAKE_CFG_INTDIR" title="CMAKE_CFG_INTDIR"><code class="xref cmake cmake-variable docutils literal"><span class="pre">CMAKE_CFG_INTDIR</span></code></a> variable value for Visual Studio |
| 7, 8, and 9 is now <code class="docutils literal"><span class="pre">$(ConfigurationName)</span></code> instead of <code class="docutils literal"><span class="pre">$(OutDir)</span></code>. |
| This should have no effect on the intended use cases of the variable.</li> |
| <li>Linking to library files by a full path in an implicit linker search |
| directory (e.g. <code class="docutils literal"><span class="pre">/usr/lib/libfoo.a</span></code>) no longer asks the linker to |
| search for the library (e.g. <code class="docutils literal"><span class="pre">-lfoo</span></code>) and now links by full path. |
| See policy <span class="target" id="index-0-policy:CMP0060"></span><a class="reference internal" href="../policy/CMP0060.html#policy:CMP0060" title="CMP0060"><code class="xref cmake cmake-policy docutils literal"><span class="pre">CMP0060</span></code></a>.</li> |
| </ul> |
| </div> |
| </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.3 Release Notes</a><ul> |
| <li><a class="reference internal" href="#new-features">New Features</a><ul> |
| <li><a class="reference internal" href="#generators">Generators</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="#generator-expressions">Generator Expressions</a></li> |
| <li><a class="reference internal" href="#ctest">CTest</a></li> |
| <li><a class="reference internal" href="#cpack">CPack</a></li> |
| <li><a class="reference internal" href="#other">Other</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> |
| </ul> |
| </li> |
| </ul> |
| |
| <h4>Previous topic</h4> |
| <p class="topless"><a href="3.4.html" |
| title="previous chapter">CMake 3.4 Release Notes</a></p> |
| <h4>Next topic</h4> |
| <p class="topless"><a href="3.2.html" |
| title="next chapter">CMake 3.2 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.3.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="3.2.html" title="CMake 3.2 Release Notes" |
| >next</a> |</li> |
| <li class="right" > |
| <a href="3.4.html" title="CMake 3.4 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> » |
| </li> |
| <li> |
| <a href="../index.html">3.8.2 Documentation</a> » |
| </li> |
| |
| <li class="nav-item nav-item-1"><a href="index.html" >CMake Release Notes</a> »</li> |
| </ul> |
| </div> |
| <div class="footer" role="contentinfo"> |
| © Copyright 2000-2017 Kitware, Inc. and Contributors. |
| Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.5.2. |
| </div> |
| </body> |
| </html> |