summaryrefslogtreecommitdiffstats
path: root/Help
diff options
context:
space:
mode:
Diffstat (limited to 'Help')
-rw-r--r--Help/release/3.1.0.rst412
1 files changed, 231 insertions, 181 deletions
diff --git a/Help/release/3.1.0.rst b/Help/release/3.1.0.rst
index 64ad4e2..652bcd3 100644
--- a/Help/release/3.1.0.rst
+++ b/Help/release/3.1.0.rst
@@ -7,43 +7,107 @@ CMake 3.1.0 Release Notes
Changes made since CMake 3.0.0 include the following.
-* The :module:`CheckFortranSourceCompiles` module was added to
- provide a ``CHECK_Fortran_SOURCE_COMPILES`` macro.
+Documentation Changes
+=====================
-* The :command:`add_custom_command` command learned to interpret
- :manual:`cmake-generator-expressions(7)` in arguments to ``DEPENDS``.
+* A new :manual:`cmake-compile-features(7)` manual was added.
-* The :module:`FindOpenCL` module was introduced.
+New Features
+============
-* The :manual:`cmake(1)` ``-E tar`` command learned to support
- lzma-compressed files.
+Generators
+----------
-* :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``).
+* A :generator:`Visual Studio 14` generator was added.
-* 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.
+Windows Phone and Windows Store
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-* The :manual:`cmake(1)` ``-E`` option learned a new ``env`` command.
+* 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:`cmake-gui(1)` learned to capture output from child
- processes started by the :command:`execute_process` command
- and display it in the output window.
+NVIDIA Nsight Tegra
+^^^^^^^^^^^^^^^^^^^
-* 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`.
+* 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.
-* Policy :policy:`CMP0052` introduced to control directories in the
- :prop_tgt:`INTERFACE_INCLUDE_DIRECTORIES` of exported targets.
+Syntax
+------
* 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`.
+* The :command:`if` command no longer automatically dereferences
+ variables named in quoted or bracket arguments. See policy
+ :policy:`CMP0054`.
+
+Commands
+--------
+
+* The :command:`add_custom_command` command learned to interpret
+ :manual:`cmake-generator-expressions(7)` in arguments to ``DEPENDS``.
+
+* The :command:`export(PACKAGE)` command learned to check the
+ :variable:`CMAKE_EXPORT_NO_PACKAGE_REGISTRY` variable to skip
+ exporting the package.
+
+* The :command:`file(STRINGS)` command gained a new ``ENCODING``
+ option to enable extraction of ``UTF-8`` strings.
+
+* 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:`install` command learned a ``MESSAGE_NEVER`` option
+ to avoid output during installation.
+
+* 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.
+
+* New :command:`target_compile_features` command allows populating the
+ :prop_tgt:`COMPILE_FEATURES` target property, just like any other
+ build variable.
+
+* The :command:`target_sources` command was added to add to the
+ :prop_tgt:`SOURCES` target property.
+
+Variables
+---------
+
+* 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``.
+
+* 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 :variable:`CMAKE_INSTALL_MESSAGE` variable was introduced to
+ optionally reduce output installation.
+
+Properties
+----------
+
* 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
@@ -62,47 +126,62 @@ Changes made since CMake 3.0.0 include the following.
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 :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``).
-* New ``COMPILE_FEATURES``
- :manual:`generator expression <cmake-generator-expressions(7)>` allows
- setting build properties based on available compiler features.
+* The :prop_tgt:`INTERFACE_LINK_LIBRARIES` target property now supports
+ a ``$<LINK_ONLY:...>``
+ :manual:`generator expression <cmake-generator-expressions(7)>`.
-* :manual:`cpack(1)` gained ``7Z`` and ``TXZ`` generators supporting
- lzma-compressed archives.
+* A new :prop_tgt:`INTERFACE_SOURCES` target property was introduced. This is
+ consumed by dependent targets, which compile and link the listed sources.
-* The :module:`CPackDeb` module learned a new
- :variable:`CPACK_DEBIAN_COMPRESSION_TYPE` variable to set the
- tarball compression type.
+* 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``.
-* :manual:`cpack(1)` gained an ``IFW`` generator to package using
- Qt Framework Installer tools. See the :module:`CPackIFW` module.
+* 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.
-* The :command:`ctest_coverage` command learned to read variable
- ``CTEST_COVERAGE_EXTRA_FLAGS`` to set ``CoverageExtraFlags``.
+* 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 :command:`ctest_coverage` command learned to support
- Intel coverage files with the ``codecov`` tool.
+* 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 :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.
+* 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.
-* 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 :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.
-* 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.
+Modules
+-------
-* The :module:`GenerateExportHeader` module ``generate_export_header``
- function learned to allow use with :ref:`Object Libraries`.
+* The :module:`BundleUtilities` module learned to resolve and replace
+ ``@rpath`` placeholders on OS X to correctly bundle applications
+ using them.
+
+* 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`.
+
+* The :module:`CheckFortranSourceCompiles` module was added to
+ provide a ``CHECK_Fortran_SOURCE_COMPILES`` macro.
* The :module:`ExternalData` module learned to tolerate a ``DATA{}``
reference to a missing source file with a warning instead of
@@ -130,17 +209,10 @@ Changes made since CMake 3.0.0 include the following.
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.
@@ -149,14 +221,14 @@ Changes made since CMake 3.0.0 include the following.
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:`FindGLEW` module now provides imported targets.
* The :module:`FindGLUT` module now provides imported targets.
-* The :module:`FindGLEW` module now provides imported targets.
+* 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:`FindZLIB` module now provides imported targets.
+* The :module:`FindOpenCL` module was introduced.
* The :module:`FindOpenGL` module now provides imported targets
``OpenGL::GL`` and ``OpenGL::GLU`` when the libraries are found.
@@ -170,44 +242,89 @@ Changes made since CMake 3.0.0 include the following.
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 :module:`FindZLIB` module now provides imported targets.
-* The :variable:`CMAKE_INSTALL_MESSAGE` variable was introduced to
- optionally reduce output installation.
+* The :module:`GenerateExportHeader` module ``generate_export_header``
+ function learned to allow use with :ref:`Object Libraries`.
* 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:`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.
* 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``).
+Generator Expressions
+---------------------
+
+* New ``COMPILE_FEATURES``
+ :manual:`generator expression <cmake-generator-expressions(7)>` allows
+ setting build properties based on available compiler features.
+
+CTest
+-----
+
+* 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.
+
+CPack
+-----
+
+* :manual:`cpack(1)` gained an ``IFW`` generator to package using
+ Qt Framework Installer tools. See the :module:`CPackIFW` module.
+
+* :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.
+
+* The :manual:`cpack(1)` ``WiX`` generator learned to support
+ a :prop_inst:`CPACK_WIX_ACL` installed file property to
+ specify an Access Control List.
+
+Other
+-----
+
+* The :manual:`cmake(1)` ``-E`` option learned a new ``env`` command.
+
+* 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``).
+
+* Visual Studio generators for VS 8 and later learned to support
+ the ``ASM_MASM`` language.
+
+* 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.
+
+New Diagnostics
+===============
+
+* Policy :policy:`CMP0052` introduced to control directories in the
+ :prop_tgt:`INTERFACE_INCLUDE_DIRECTORIES` of exported targets.
+
+Deprecated and Removed Features
+===============================
* In CMake 3.0 the :command:`target_link_libraries` command
accidentally began allowing unquoted arguments to use
@@ -229,103 +346,36 @@ Changes made since CMake 3.0.0 include the following.
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.
+* 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.
-* 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.
+Other Changes
+=============
-* 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 :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 :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.
+* 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.
-* 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 Makefile generators learned to use response files with GNU tools
+ on Windows to pass library directories and names to the linker.
-* The :manual:`cpack(1)` ``WiX`` generator learned to support
- a :prop_inst:`CPACK_WIX_ACL` installed file property to
- specify an Access Control List.
+* When generating linker command-lines, CMake now avoids repeating
+ items corresponding to SHARED library targets.
-* 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.
+* 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.