Help: Consolidate 3.1 release notes

Move all development release notes into a new version-specific document:

 tail -q -n +3 Help/release/dev/* > Help/release/3.1.0.rst
 git rm -- Help/release/dev/*

except the sample topic:

 git checkout HEAD -- Help/release/dev/0-sample-topic.rst

Reference the new document from the release notes index document.
Add a title and intro sentence to the new document by hand.
This commit is contained in:
Brad King 2014-10-10 15:13:52 -04:00
parent a7b9b571b3
commit 5284282023
68 changed files with 332 additions and 455 deletions

331
Help/release/3.1.0.rst Normal file
View File

@ -0,0 +1,331 @@
CMake 3.1.0 Release Notes
*************************
.. only:: html
.. contents::
Changes made since CMake 3.0.0 include the following.
* The :module:`CheckFortranSourceCompiles` module was added to
provide a ``CHECK_Fortran_SOURCE_COMPILES`` macro.
* The :command:`add_custom_command` command learned to interpret
:manual:`cmake-generator-expressions(7)` in arguments to ``DEPENDS``.
* The :module:`FindOpenCL` module was introduced.
* The :manual:`cmake(1)` ``-E tar`` command learned to support
lzma-compressed files.
* :ref:`Object Libraries` may now have extra sources that do not
compile to object files so long as they would not affect linking
of a normal library (e.g. ``.dat`` is okay but not ``.def``).
* The :module:`CMakeDetermineVSServicePack` module now warns that
it is deprecated and should not longer be used. Use the
:variable:`CMAKE_<LANG>_COMPILER_VERSION` variable instead.
* The :manual:`cmake(1)` ``-E`` option learned a new ``env`` command.
* The :manual:`cmake-gui(1)` learned to capture output from child
processes started by the :command:`execute_process` command
and display it in the output window.
* The :module:`CMakePackageConfigHelpers` module
:command:`configure_package_config_file` command learned a new
``INSTALL_PREFIX`` option to generate package configuration files
meant for a prefix other than :variable:`CMAKE_INSTALL_PREFIX`.
* Policy :policy:`CMP0052` introduced to control directories in the
:prop_tgt:`INTERFACE_INCLUDE_DIRECTORIES` of exported targets.
* The :manual:`cmake-language(7)` syntax for :ref:`Variable References` and
:ref:`Escape Sequences` was simplified in order to allow a much faster
implementation. See policy :policy:`CMP0053`.
* New :prop_tgt:`CXX_STANDARD` and :prop_tgt:`CXX_EXTENSIONS` target
properties may specify values which CMake uses to compute required
compile options such as ``-std=c++11`` or ``-std=gnu++11``. The
:variable:`CMAKE_CXX_STANDARD` and :variable:`CMAKE_CXX_EXTENSIONS`
variables may be set to initialize the target properties.
* New :prop_tgt:`C_STANDARD` and :prop_tgt:`C_EXTENSIONS` target
properties may specify values which CMake uses to compute required
compile options such as ``-std=c11`` or ``-std=gnu11``. The
:variable:`CMAKE_C_STANDARD` and :variable:`CMAKE_C_EXTENSIONS`
variables may be set to initialize the target properties.
* New :prop_tgt:`COMPILE_FEATURES` target property may contain a list
of features required to compile a target. CMake uses this
information to ensure that the compiler in use is capable of building
the target, and to add any necessary compile flags to support language
features.
* New :command:`target_compile_features` command allows populating the
:prop_tgt:`COMPILE_FEATURES` target property, just like any other
build variable.
* New ``COMPILE_FEATURES``
:manual:`generator expression <cmake-generator-expressions(7)>` allows
setting build properties based on available compiler features.
* :manual:`cpack(1)` gained ``7Z`` and ``TXZ`` generators supporting
lzma-compressed archives.
* The :module:`CPackDeb` module learned a new
:variable:`CPACK_DEBIAN_COMPRESSION_TYPE` variable to set the
tarball compression type.
* :manual:`cpack(1)` gained an ``IFW`` generator to package using
Qt Framework Installer tools. See the :module:`CPackIFW` module.
* The :command:`ctest_coverage` command learned to read variable
``CTEST_COVERAGE_EXTRA_FLAGS`` to set ``CoverageExtraFlags``.
* The :command:`ctest_coverage` command learned to support
Intel coverage files with the ``codecov`` tool.
* The :command:`ctest_memcheck` command learned to support sanitizer
modes, including ``AddressSanitizer``, ``MemorySanitizer``,
``ThreadSanitizer``, and ``UndefinedBehaviorSanitizer``.
Options may be set using the new
:variable:`CTEST_MEMORYCHECK_SANITIZER_OPTIONS` variable.
* Add a `CMAKE_NINJA_DEPTYPE_<LANG>` variable so that compilers may set the
deptype for use in Ninja other than those CMake itself knows about.
* The :variable:`CMAKE_GENERATOR_TOOLSET` variable may now be
initialized in a toolchain file specified by the
:variable:`CMAKE_TOOLCHAIN_FILE` variable. This is useful
when cross-compiling with the Xcode or Visual Studio
generators.
* The :module:`GenerateExportHeader` module ``generate_export_header``
function learned to allow use with :ref:`Object Libraries`.
* The :module:`ExternalData` module learned to tolerate a ``DATA{}``
reference to a missing source file with a warning instead of
rejecting it with an error. This helps developers write new
``DATA{}`` references to test reference outputs that have not
yet been created.
* The :module:`ExternalProject` module learned to support lzma-compressed
source tarballs with ``.7z``, ``.tar.xz``, and ``.txz`` extensions.
* The :module:`ExternalProject` module ``ExternalProject_Add`` command
learned a new ``BUILD_ALWAYS`` option to cause the external project
build step to run every time the host project is built.
* The :module:`ExternalProject` module ``ExternalProject_Add`` command
learned a new ``EXCLUDE_FROM_ALL`` option to cause the external
project target to have the :prop_tgt:`EXCLUDE_FROM_ALL` target
property set.
* The :module:`ExternalProject` module ``ExternalProject_Add_Step`` command
learned a new ``EXCLUDE_FROM_MAIN`` option to cause the step to not be
a direct dependency of the main external project target.
* The :module:`ExternalProject` module ``ExternalProject_Add`` command
learned a new ``DOWNLOAD_NO_PROGRESS`` option to disable progress
output while downloading the source tarball.
* The :manual:`cmake-language(7)` internal implementation of generator
expression and list expansion parsers have been optimized and shows
non-trivial speedup on large projects.
* The :module:`FeatureSummary` module ``feature_summary`` API
learned to accept multiple values for the ``WHAT`` option and
combine them appropriately.
* The :command:`file(STRINGS)` command gained a new ``ENCODING``
option to enable extraction of ``UTF-8`` strings.
* The :module:`FindCUDA` module learned to support ``fatbin`` and ``cubin``
modules.
* The :module:`FindGTest` module ``gtest_add_tests`` macro learned
a new ``AUTO`` option to automatically read the :prop_tgt:`SOURCES`
target property of the test executable and scan the source files
for tests to be added.
* The :module:`FindHg` module gained a new ``Hg_WC_INFO`` macro to
help run ``hg`` to extract information about a Mercurial work copy.
* The :module:`FindGLUT` module now provides imported targets.
* The :module:`FindGLEW` module now provides imported targets.
* The :module:`FindZLIB` module now provides imported targets.
* The :module:`FindOpenGL` module now provides imported targets
``OpenGL::GL`` and ``OpenGL::GLU`` when the libraries are found.
* The :module:`FindOpenMP` module learned to support Fortran.
* The :module:`FindPkgConfig` module learned to use the ``PKG_CONFIG``
environment variable value as the ``pkg-config`` executable, if set.
* The :module:`FindVTK` module dropped support for finding VTK 4.0.
It is now a thin-wrapper around ``find_package(VTK ... NO_MODULE)``.
This produces much clearer error messages when VTK is not found.
* The :module:`BundleUtilities` module learned to resolve and replace
``@rpath`` placeholders on OS X to correctly bundle applications
using them.
* The :prop_tgt:`INTERFACE_LINK_LIBRARIES` target property now supports
a ``$<LINK_ONLY:...>``
:manual:`generator expression <cmake-generator-expressions(7)>`.
* The :command:`if` command no longer automatically dereferences
variables named in quoted or bracket arguments. See policy
:policy:`CMP0054`.
* The :command:`install` command learned a ``MESSAGE_NEVER`` option
to avoid output during installation.
* The :variable:`CMAKE_INSTALL_MESSAGE` variable was introduced to
optionally reduce output installation.
* The :module:`InstallRequiredSystemLibraries` module gained a new
``CMAKE_INSTALL_OPENMP_LIBRARIES`` option to install MSVC OpenMP
runtime libraries.
* The Makefile generators learned to use response files with GNU tools
on Windows to pass library directories and names to the linker.
* When generating linker command-lines, CMake now avoids repeating
items corresponding to SHARED library targets.
* The :module:`WriteCompilerDetectionHeader` module was added to allow
creation of a portable header file for compiler optional feature detection.
* New :prop_tgt:`COMPILE_PDB_NAME` and
:prop_tgt:`COMPILE_PDB_OUTPUT_DIRECTORY` target properties
were introduced to specify the MSVC compiler program database
file location (``cl /Fd``). This complements the existing
:prop_tgt:`PDB_NAME` and :prop_tgt:`PDB_OUTPUT_DIRECTORY`
target properties that specify the linker program database
file location (``link /pdb``).
* In CMake 3.0 the :command:`target_link_libraries` command
accidentally began allowing unquoted arguments to use
:manual:`generator expressions <cmake-generator-expressions(7)>`
containing a (``;`` separated) list within them. For example::
set(libs B C)
target_link_libraries(A PUBLIC $<BUILD_INTERFACE:${libs}>)
This is equivalent to writing::
target_link_libraries(A PUBLIC $<BUILD_INTERFACE:B C>)
and was never intended to work. It did not work in CMake 2.8.12.
Such generator expressions should be in quoted arguments::
set(libs B C)
target_link_libraries(A PUBLIC "$<BUILD_INTERFACE:${libs}>")
CMake 3.1 again requires the quotes for this to work correctly.
* Support for the Open Watcom compiler has been overhauled.
The :variable:`CMAKE_<LANG>_COMPILER_ID` is now ``OpenWatcom``,
and the :variable:`CMAKE_<LANG>_COMPILER_VERSION` now uses
the Open Watcom external version numbering. The external
version numbers are lower than the internal version number
by 11.
* The :command:`export(PACKAGE)` command learned to check the
:variable:`CMAKE_EXPORT_NO_PACKAGE_REGISTRY` variable to skip
exporting the package.
* The :command:`find_package` command learned to check the
:variable:`CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY` and
:variable:`CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY`
variables to skip searching the package registries.
* The :command:`string` command learned a new ``GENEX_STRIP`` subcommand
which removes
:manual:`generator expression <cmake-generator-expressions(7)>`.
* The :command:`string` command learned a new ``UUID`` subcommand
to generate a univerally unique identifier.
* A new :prop_tgt:`INTERFACE_SOURCES` target property was introduced. This is
consumed by dependent targets, which compile and link the listed sources.
* The :command:`target_sources` command was added to add to the
:prop_tgt:`SOURCES` target property.
* The :prop_tgt:`SOURCES` target property now contains
:manual:`generator expression <cmake-generator-expressions(7)>`
such as ``TARGET_OBJECTS`` when read at configure time, if
policy :policy:`CMP0051` is ``NEW``.
* The :prop_tgt:`SOURCES` target property now generally supports
:manual:`generator expression <cmake-generator-expressions(7)>`. The
generator expressions may be used in the :command:`add_library` and
:command:`add_executable` commands.
* It is now possible to write and append to the :prop_tgt:`SOURCES` target
property. The :variable:`CMAKE_DEBUG_TARGET_PROPERTIES` variable may be
used to trace the origin of sources.
* The :module:`UseSWIG` module learned to detect the module name
from ``.i`` source files if possible to avoid the need to set
the ``SWIG_MODULE_NAME`` source file property explicitly.
* Callbacks established by the :command:`variable_watch` command will no
longer receive the ``ALLOWED_UNKNOWN_READ_ACCESS`` access type when
the undocumented ``CMAKE_ALLOW_UNKNOWN_VARIABLE_READ_ACCESS`` variable is
set. Uninitialized variable accesses will always be reported as
``UNKNOWN_READ_ACCESS``.
* A :generator:`Visual Studio 14` generator was added.
* The Visual Studio generators for versions 8 (2005) and above
learned to read the target platform name from a new
:variable:`CMAKE_GENERATOR_PLATFORM` variable when it is
not specified as part of the generator name. The platform
name may be specified on the :manual:`cmake(1)` command line
with the ``-A`` option, e.g. ``-G "Visual Studio 12 2013" -A x64``.
* Visual Studio generators for VS 8 and later learned to support
the ``ASM_MASM`` language.
* Generators for Visual Studio 10 (2010) and above learned to generate
projects for NVIDIA Nsight Tegra Visual Studio Edition. One may set
the :variable:`CMAKE_SYSTEM_NAME` variable to ``Android`` on the
:manual:`cmake(1)` command-line or in a :variable:`CMAKE_TOOLCHAIN_FILE`
to activate this platform.
* A :prop_sf:`VS_DEPLOYMENT_CONTENT` source file property was added
to tell the Visual Studio generators to mark content for deployment
in Windows Phone and Windows Store projects.
* The Visual Studio generators learned to treat ``.hlsl`` source
files as High Level Shading Language sources (using ``FXCompile``
in ``.vcxproj`` files). A :prop_sf:`VS_SHADER_TYPE` source file
property was added to specify the Shader Type.
* The :prop_tgt:`VS_WINRT_COMPONENT` target property was created to
tell Visual Studio generators to compile a shared library as a
Windows Runtime (WinRT) component.
* Generators for Visual Studio 11 (2012) and above learned to generate
projects for Windows Phone and Windows Store. One may set the
:variable:`CMAKE_SYSTEM_NAME` variable to ``WindowsPhone``
or ``WindowsStore`` on the :manual:`cmake(1)` command-line
or in a :variable:`CMAKE_TOOLCHAIN_FILE` to activate these platforms.
Also set :variable:`CMAKE_SYSTEM_VERSION` to ``8.0`` or ``8.1`` to
specify the version of Windows to be targeted.
* The :manual:`cpack(1)` ``WiX`` generator learned to support
a :prop_inst:`CPACK_WIX_ACL` installed file property to
specify an Access Control List.
* The :generator:`Xcode` generator learned to check source
file properties :prop_sf:`XCODE_EXPLICIT_FILE_TYPE` and
:prop_sf:`XCODE_LAST_KNOWN_FILE_TYPE` for a custom Xcode
file reference type.

View File

@ -1,5 +0,0 @@
CMP0052
-------
* Policy :policy:`CMP0052` introduced to control directories in the
:prop_tgt:`INTERFACE_INCLUDE_DIRECTORIES` of exported targets.

View File

@ -1,6 +0,0 @@
CMP0053
-------
* The :manual:`cmake-language(7)` syntax for :ref:`Variable References` and
:ref:`Escape Sequences` was simplified in order to allow a much faster
implementation. See policy :policy:`CMP0053`.

View File

@ -1,6 +0,0 @@
CMakeDetermineVSServicePack
---------------------------
* The :module:`CMakeDetermineVSServicePack` module now warns that
it is deprecated and should not longer be used. Use the
:variable:`CMAKE_<LANG>_COMPILER_VERSION` variable instead.

View File

@ -1,7 +0,0 @@
CMakePackageConfigHelpers-INSTALL_PREFIX
----------------------------------------
* The :module:`CMakePackageConfigHelpers` module
:command:`configure_package_config_file` command learned a new
``INSTALL_PREFIX`` option to generate package configuration files
meant for a prefix other than :variable:`CMAKE_INSTALL_PREFIX`.

View File

@ -1,8 +0,0 @@
ExternalData-missing-not-fatal
------------------------------
* The :module:`ExternalData` module learned to tolerate a ``DATA{}``
reference to a missing source file with a warning instead of
rejecting it with an error. This helps developers write new
``DATA{}`` references to test reference outputs that have not
yet been created.

View File

@ -1,6 +0,0 @@
ExternalProject-BUILD_ALWAYS
----------------------------
* The :module:`ExternalProject` module ``ExternalProject_Add`` command
learned a new ``BUILD_ALWAYS`` option to cause the external project
build step to run every time the host project is built.

View File

@ -1,5 +0,0 @@
ExternalProject-add-lzma
------------------------
* The :module:`ExternalProject` module learned to support lzma-compressed
source tarballs with ``.7z``, ``.tar.xz``, and ``.txz`` extensions.

View File

@ -1,6 +0,0 @@
ExternalProject-no-download-progress
------------------------------------
* The :module:`ExternalProject` module ``ExternalProject_Add`` command
learned a new ``DOWNLOAD_NO_PROGRESS`` option to disable progress
output while downloading the source tarball.

View File

@ -1,11 +0,0 @@
ExternalProject_exclude-from-all
--------------------------------
* The :module:`ExternalProject` module ``ExternalProject_Add`` command
learned a new ``EXCLUDE_FROM_ALL`` option to cause the external
project target to have the :prop_tgt:`EXCLUDE_FROM_ALL` target
property set.
* The :module:`ExternalProject` module ``ExternalProject_Add_Step`` command
learned a new ``EXCLUDE_FROM_MAIN`` option to cause the step to not be
a direct dependency of the main external project target.

View File

@ -1,6 +0,0 @@
FeatureSummary_combine_WHAT_values
----------------------------------
* The :module:`FeatureSummary` module ``feature_summary`` API
learned to accept multiple values for the ``WHAT`` option and
combine them appropriately.

View File

@ -1,5 +0,0 @@
FindCUDA-cubin-fatbin
---------------------
* The :module:`FindCUDA` module learned to support ``fatbin`` and ``cubin``
modules.

View File

@ -1,7 +0,0 @@
FindGTest-AUTO-SOURCES
----------------------
* The :module:`FindGTest` module ``gtest_add_tests`` macro learned
a new ``AUTO`` option to automatically read the :prop_tgt:`SOURCES`
target property of the test executable and scan the source files
for tests to be added.

View File

@ -1,5 +0,0 @@
FindHg-WC_INFO
--------------
* The :module:`FindHg` module gained a new ``Hg_WC_INFO`` macro to
help run ``hg`` to extract information about a Mercurial work copy.

View File

@ -1,5 +0,0 @@
FindOpenGL-target
-----------------
* The :module:`FindOpenGL` module now provides imported targets
``OpenGL::GL`` and ``OpenGL::GLU`` when the libraries are found.

View File

@ -1,4 +0,0 @@
FindOpenMP-add-Fortran-support
------------------------------
* The :module:`FindOpenMP` module learned to support Fortran.

View File

@ -1,5 +0,0 @@
FindPkgConfig-PKG_CONFIG
------------------------
* The :module:`FindPkgConfig` module learned to use the ``PKG_CONFIG``
environment variable value as the ``pkg-config`` executable, if set.

View File

@ -1,6 +0,0 @@
FindVTK
-------
* The :module:`FindVTK` module dropped support for finding VTK 4.0.
It is now a thin-wrapper around ``find_package(VTK ... NO_MODULE)``.
This produces much clearer error messages when VTK is not found.

View File

@ -1,6 +0,0 @@
InstallRequiredSystemLibraries-vs-openmp
----------------------------------------
* The :module:`InstallRequiredSystemLibraries` module gained a new
``CMAKE_INSTALL_OPENMP_LIBRARIES`` option to install MSVC OpenMP
runtime libraries.

View File

@ -1,9 +0,0 @@
OpenWatcom
----------
* Support for the Open Watcom compiler has been overhauled.
The :variable:`CMAKE_<LANG>_COMPILER_ID` is now ``OpenWatcom``,
and the :variable:`CMAKE_<LANG>_COMPILER_VERSION` now uses
the Open Watcom external version numbering. The external
version numbers are lower than the internal version number
by 11.

View File

@ -1,6 +0,0 @@
UseSWIG-guess_module_name
-------------------------
* The :module:`UseSWIG` module learned to detect the module name
from ``.i`` source files if possible to avoid the need to set
the ``SWIG_MODULE_NAME`` source file property explicitly.

View File

@ -1,5 +0,0 @@
add-CheckFortranSourceCompiles
------------------------------
* The :module:`CheckFortranSourceCompiles` module was added to
provide a ``CHECK_Fortran_SOURCE_COMPILES`` macro.

View File

@ -1,4 +0,0 @@
add-FindOpenCL
--------------
* The :module:`FindOpenCL` module was introduced.

View File

@ -1,5 +0,0 @@
add-liblzma
-----------
* The :manual:`cmake(1)` ``-E tar`` command learned to support
lzma-compressed files.

View File

@ -1,5 +0,0 @@
add_custom_command-DEPENDS-genex
--------------------------------
* The :command:`add_custom_command` command learned to interpret
:manual:`cmake-generator-expressions(7)` in arguments to ``DEPENDS``.

View File

@ -1,6 +0,0 @@
allow-OBJECT-library-extra-sources
----------------------------------
* :ref:`Object Libraries` may now have extra sources that do not
compile to object files so long as they would not affect linking
of a normal library (e.g. ``.dat`` is okay but not ``.def``).

View File

@ -1,4 +0,0 @@
cmake-E-env
-----------
* The :manual:`cmake(1)` ``-E`` option learned a new ``env`` command.

View File

@ -1,6 +0,0 @@
cmake-gui-capture-output
------------------------
* The :manual:`cmake-gui(1)` learned to capture output from child
processes started by the :command:`execute_process` command
and display it in the output window.

View File

@ -1,28 +0,0 @@
target-language-features
------------------------
* New :prop_tgt:`CXX_STANDARD` and :prop_tgt:`CXX_EXTENSIONS` target
properties may specify values which CMake uses to compute required
compile options such as ``-std=c++11`` or ``-std=gnu++11``. The
:variable:`CMAKE_CXX_STANDARD` and :variable:`CMAKE_CXX_EXTENSIONS`
variables may be set to initialize the target properties.
* New :prop_tgt:`C_STANDARD` and :prop_tgt:`C_EXTENSIONS` target
properties may specify values which CMake uses to compute required
compile options such as ``-std=c11`` or ``-std=gnu11``. The
:variable:`CMAKE_C_STANDARD` and :variable:`CMAKE_C_EXTENSIONS`
variables may be set to initialize the target properties.
* New :prop_tgt:`COMPILE_FEATURES` target property may contain a list
of features required to compile a target. CMake uses this
information to ensure that the compiler in use is capable of building
the target, and to add any necessary compile flags to support language
features.
* New :command:`target_compile_features` command allows populating the
:prop_tgt:`COMPILE_FEATURES` target property, just like any other
build variable.
* New ``COMPILE_FEATURES``
:manual:`generator expression <cmake-generator-expressions(7)>` allows
setting build properties based on available compiler features.

View File

@ -1,5 +0,0 @@
cpack-add-lzma
--------------
* :manual:`cpack(1)` gained ``7Z`` and ``TXZ`` generators supporting
lzma-compressed archives.

View File

@ -1,6 +0,0 @@
cpack-deb-compression-types
---------------------------
* The :module:`CPackDeb` module learned a new
:variable:`CPACK_DEBIAN_COMPRESSION_TYPE` variable to set the
tarball compression type.

View File

@ -1,5 +0,0 @@
cpack-ifw-generator
-------------------
* :manual:`cpack(1)` gained an ``IFW`` generator to package using
Qt Framework Installer tools. See the :module:`CPackIFW` module.

View File

@ -1,5 +0,0 @@
ctest-coverage-extra
--------------------
* The :command:`ctest_coverage` command learned to read variable
``CTEST_COVERAGE_EXTRA_FLAGS`` to set ``CoverageExtraFlags``.

View File

@ -1,5 +0,0 @@
ctest-intel-coverage
--------------------
* The :command:`ctest_coverage` command learned to support
Intel coverage files with the ``codecov`` tool.

View File

@ -1,8 +0,0 @@
ctest-memcheck-sanitizers
-------------------------
* The :command:`ctest_memcheck` command learned to support sanitizer
modes, including ``AddressSanitizer``, ``MemorySanitizer``,
``ThreadSanitizer``, and ``UndefinedBehaviorSanitizer``.
Options may be set using the new
:variable:`CTEST_MEMORYCHECK_SANITIZER_OPTIONS` variable.

View File

@ -1,5 +0,0 @@
custom-ninja-deptypes
---------------------
* Add a `CMAKE_NINJA_DEPTYPE_<LANG>` variable so that compilers may set the
deptype for use in Ninja other than those CMake itself knows about.

View File

@ -1,8 +0,0 @@
delay-generator-toolset
-----------------------
* The :variable:`CMAKE_GENERATOR_TOOLSET` variable may now be
initialized in a toolchain file specified by the
:variable:`CMAKE_TOOLCHAIN_FILE` variable. This is useful
when cross-compiling with the Xcode or Visual Studio
generators.

View File

@ -1,5 +0,0 @@
export-from-obj-libs
--------------------
* The :module:`GenerateExportHeader` module ``generate_export_header``
function learned to allow use with :ref:`Object Libraries`.

View File

@ -1,6 +0,0 @@
faster-parsers
--------------
* The :manual:`cmake-language(7)` internal implementation of generator
expression and list expansion parsers have been optimized and shows
non-trivial speedup on large projects.

View File

@ -1,5 +0,0 @@
file-strings-encoding
---------------------
* The :command:`file(STRINGS)` command gained a new ``ENCODING``
option to enable extraction of ``UTF-8`` strings.

View File

@ -1,8 +0,0 @@
find-module-targets
-------------------
* The :module:`FindGLUT` module now provides imported targets.
* The :module:`FindGLEW` module now provides imported targets.
* The :module:`FindZLIB` module now provides imported targets.

View File

@ -1,6 +0,0 @@
fix-OSX-bundle-rpaths-and-Qt5
-----------------------------
* The :module:`BundleUtilities` module learned to resolve and replace
``@rpath`` placeholders on OS X to correctly bundle applications
using them.

View File

@ -1,6 +0,0 @@
generalize-LINK_ONLY
--------------------
* The :prop_tgt:`INTERFACE_LINK_LIBRARIES` target property now supports
a ``$<LINK_ONLY:...>``
:manual:`generator expression <cmake-generator-expressions(7)>`.

View File

@ -1,6 +0,0 @@
if-sanity
---------
* The :command:`if` command no longer automatically dereferences
variables named in quoted or bracket arguments. See policy
:policy:`CMP0054`.

View File

@ -1,8 +0,0 @@
install-messages
----------------
* The :command:`install` command learned a ``MESSAGE_NEVER`` option
to avoid output during installation.
* The :variable:`CMAKE_INSTALL_MESSAGE` variable was introduced to
optionally reduce output installation.

View File

@ -1,5 +0,0 @@
link-libraries-response-files
-----------------------------
* The Makefile generators learned to use response files with GNU tools
on Windows to pass library directories and names to the linker.

View File

@ -1,5 +0,0 @@
link-line-dedup
---------------
* When generating linker command-lines, CMake now avoids repeating
items corresponding to SHARED library targets.

View File

@ -1,5 +0,0 @@
module-WriteCompilerDetectionHeader
-----------------------------------
* The :module:`WriteCompilerDetectionHeader` module was added to allow
creation of a portable header file for compiler optional feature detection.

View File

@ -1,10 +0,0 @@
msvc-compiler-pdb-files
-----------------------
* New :prop_tgt:`COMPILE_PDB_NAME` and
:prop_tgt:`COMPILE_PDB_OUTPUT_DIRECTORY` target properties
were introduced to specify the MSVC compiler program database
file location (``cl /Fd``). This complements the existing
:prop_tgt:`PDB_NAME` and :prop_tgt:`PDB_OUTPUT_DIRECTORY`
target properties that specify the linker program database
file location (``link /pdb``).

View File

@ -1,22 +0,0 @@
note-link-libraries-genex
-------------------------
* In CMake 3.0 the :command:`target_link_libraries` command
accidentally began allowing unquoted arguments to use
:manual:`generator expressions <cmake-generator-expressions(7)>`
containing a (``;`` separated) list within them. For example::
set(libs B C)
target_link_libraries(A PUBLIC $<BUILD_INTERFACE:${libs}>)
This is equivalent to writing::
target_link_libraries(A PUBLIC $<BUILD_INTERFACE:B C>)
and was never intended to work. It did not work in CMake 2.8.12.
Such generator expressions should be in quoted arguments::
set(libs B C)
target_link_libraries(A PUBLIC "$<BUILD_INTERFACE:${libs}>")
CMake 3.1 again requires the quotes for this to work correctly.

View File

@ -1,11 +0,0 @@
package-disable-registry
------------------------
* The :command:`export(PACKAGE)` command learned to check the
:variable:`CMAKE_EXPORT_NO_PACKAGE_REGISTRY` variable to skip
exporting the package.
* The :command:`find_package` command learned to check the
:variable:`CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY` and
:variable:`CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY`
variables to skip searching the package registries.

View File

@ -1,6 +0,0 @@
string-GENEX_STRIP
------------------
* The :command:`string` command learned a new ``GENEX_STRIP`` subcommand
which removes
:manual:`generator expression <cmake-generator-expressions(7)>`.

View File

@ -1,5 +0,0 @@
string-uuid
-----------
* The :command:`string` command learned a new ``UUID`` subcommand
to generate a univerally unique identifier.

View File

@ -1,5 +0,0 @@
target-INTERFACE_SOURCES
------------------------
* A new :prop_tgt:`INTERFACE_SOURCES` target property was introduced. This is
consumed by dependent targets, which compile and link the listed sources.

View File

@ -1,12 +0,0 @@
target-SOURCES-genex
--------------------
* The :prop_tgt:`SOURCES` target property now contains
:manual:`generator expression <cmake-generator-expressions(7)>`
such as ``TARGET_OBJECTS`` when read at configure time, if
policy :policy:`CMP0051` is ``NEW``.
* The :prop_tgt:`SOURCES` target property now generally supports
:manual:`generator expression <cmake-generator-expressions(7)>`. The
generator expressions may be used in the :command:`add_library` and
:command:`add_executable` commands.

View File

@ -1,6 +0,0 @@
target-SOURCES-write.rst
------------------------
* It is now possible to write and append to the :prop_tgt:`SOURCES` target
property. The :variable:`CMAKE_DEBUG_TARGET_PROPERTIES` variable may be
used to trace the origin of sources.

View File

@ -1,5 +0,0 @@
target_sources-command
----------------------
* The :command:`target_sources` command was added to add to the
:prop_tgt:`SOURCES` target property.

View File

@ -1,8 +0,0 @@
variable_watch-no-allowed-access
--------------------------------
* Callbacks established by the :command:`variable_watch` command will no
longer receive the ``ALLOWED_UNKNOWN_READ_ACCESS`` access type when
the undocumented ``CMAKE_ALLOW_UNKNOWN_VARIABLE_READ_ACCESS`` variable is
set. Uninitialized variable accesses will always be reported as
``UNKNOWN_READ_ACCESS``.

View File

@ -1,9 +0,0 @@
vs-generator-platform
---------------------
* The Visual Studio generators for versions 8 (2005) and above
learned to read the target platform name from a new
:variable:`CMAKE_GENERATOR_PLATFORM` variable when it is
not specified as part of the generator name. The platform
name may be specified on the :manual:`cmake(1)` command line
with the ``-A`` option, e.g. ``-G "Visual Studio 12 2013" -A x64``.

View File

@ -1,5 +0,0 @@
vs-masm
-------
* Visual Studio generators for VS 8 and later learned to support
the ``ASM_MASM`` language.

View File

@ -1,8 +0,0 @@
vs-nsight-tegra-generator
-------------------------
* Generators for Visual Studio 10 (2010) and above learned to generate
projects for NVIDIA Nsight Tegra Visual Studio Edition. One may set
the :variable:`CMAKE_SYSTEM_NAME` variable to ``Android`` on the
:manual:`cmake(1)` command-line or in a :variable:`CMAKE_TOOLCHAIN_FILE`
to activate this platform.

View File

@ -1,11 +0,0 @@
vs-special-source-file-properties
---------------------------------
* A :prop_sf:`VS_DEPLOYMENT_CONTENT` source file property was added
to tell the Visual Studio generators to mark content for deployment
in Windows Phone and Windows Store projects.
* The Visual Studio generators learned to treat ``.hlsl`` source
files as High Level Shading Language sources (using ``FXCompile``
in ``.vcxproj`` files). A :prop_sf:`VS_SHADER_TYPE` source file
property was added to specify the Shader Type.

View File

@ -1,6 +0,0 @@
vs-windows-apps
---------------
* The :prop_tgt:`VS_WINRT_COMPONENT` target property was created to
tell Visual Studio generators to compile a shared library as a
Windows Runtime (WinRT) component.

View File

@ -1,10 +0,0 @@
vs-windows-phone-and-store
--------------------------
* Generators for Visual Studio 11 (2012) and above learned to generate
projects for Windows Phone and Windows Store. One may set the
:variable:`CMAKE_SYSTEM_NAME` variable to ``WindowsPhone``
or ``WindowsStore`` on the :manual:`cmake(1)` command-line
or in a :variable:`CMAKE_TOOLCHAIN_FILE` to activate these platforms.
Also set :variable:`CMAKE_SYSTEM_VERSION` to ``8.0`` or ``8.1`` to
specify the version of Windows to be targeted.

View File

@ -1,4 +0,0 @@
vs14-generator
--------------
* A :generator:`Visual Studio 14` generator was added.

View File

@ -1,6 +0,0 @@
wix-acl
-------
* The :manual:`cpack(1)` ``WiX`` generator learned to support
a :prop_inst:`CPACK_WIX_ACL` installed file property to
specify an Access Control List.

View File

@ -1,7 +0,0 @@
xcode-file-type
---------------
* The :generator:`Xcode` generator learned to check source
file properties :prop_sf:`XCODE_EXPLICIT_FILE_TYPE` and
:prop_sf:`XCODE_LAST_KNOWN_FILE_TYPE` for a custom Xcode
file reference type.

View File

@ -13,4 +13,5 @@ Releases
.. toctree::
:maxdepth: 1
3.1.0 <3.1.0>
3.0.0 <3.0.0>