Help: Organize 3.1 release notes
Add section headers similar to the 3.0 release notes and move each individual bullet into an appropriate section. Highlight the new VS generator capabilities for Windows Phone, Windows Store, and NVIDIA Nsight Tegra with dedicated subsections.
This commit is contained in:
parent
5284282023
commit
856ee6be66
|
@ -7,43 +7,107 @@ CMake 3.1.0 Release Notes
|
||||||
|
|
||||||
Changes made since CMake 3.0.0 include the following.
|
Changes made since CMake 3.0.0 include the following.
|
||||||
|
|
||||||
* The :module:`CheckFortranSourceCompiles` module was added to
|
Documentation Changes
|
||||||
provide a ``CHECK_Fortran_SOURCE_COMPILES`` macro.
|
=====================
|
||||||
|
|
||||||
* The :command:`add_custom_command` command learned to interpret
|
* A new :manual:`cmake-compile-features(7)` manual was added.
|
||||||
:manual:`cmake-generator-expressions(7)` in arguments to ``DEPENDS``.
|
|
||||||
|
|
||||||
* The :module:`FindOpenCL` module was introduced.
|
New Features
|
||||||
|
============
|
||||||
|
|
||||||
* The :manual:`cmake(1)` ``-E tar`` command learned to support
|
Generators
|
||||||
lzma-compressed files.
|
----------
|
||||||
|
|
||||||
* :ref:`Object Libraries` may now have extra sources that do not
|
* A :generator:`Visual Studio 14` generator was added.
|
||||||
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
|
Windows Phone and Windows Store
|
||||||
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.
|
* 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
|
NVIDIA Nsight Tegra
|
||||||
processes started by the :command:`execute_process` command
|
^^^^^^^^^^^^^^^^^^^
|
||||||
and display it in the output window.
|
|
||||||
|
|
||||||
* The :module:`CMakePackageConfigHelpers` module
|
* Generators for Visual Studio 10 (2010) and above learned to generate
|
||||||
:command:`configure_package_config_file` command learned a new
|
projects for NVIDIA Nsight Tegra Visual Studio Edition. One may set
|
||||||
``INSTALL_PREFIX`` option to generate package configuration files
|
the :variable:`CMAKE_SYSTEM_NAME` variable to ``Android`` on the
|
||||||
meant for a prefix other than :variable:`CMAKE_INSTALL_PREFIX`.
|
: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
|
Syntax
|
||||||
:prop_tgt:`INTERFACE_INCLUDE_DIRECTORIES` of exported targets.
|
------
|
||||||
|
|
||||||
* The :manual:`cmake-language(7)` syntax for :ref:`Variable References` and
|
* The :manual:`cmake-language(7)` syntax for :ref:`Variable References` and
|
||||||
:ref:`Escape Sequences` was simplified in order to allow a much faster
|
:ref:`Escape Sequences` was simplified in order to allow a much faster
|
||||||
implementation. See policy :policy:`CMP0053`.
|
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
|
* New :prop_tgt:`CXX_STANDARD` and :prop_tgt:`CXX_EXTENSIONS` target
|
||||||
properties may specify values which CMake uses to compute required
|
properties may specify values which CMake uses to compute required
|
||||||
compile options such as ``-std=c++11`` or ``-std=gnu++11``. The
|
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
|
the target, and to add any necessary compile flags to support language
|
||||||
features.
|
features.
|
||||||
|
|
||||||
* New :command:`target_compile_features` command allows populating the
|
* New :prop_tgt:`COMPILE_PDB_NAME` and
|
||||||
:prop_tgt:`COMPILE_FEATURES` target property, just like any other
|
:prop_tgt:`COMPILE_PDB_OUTPUT_DIRECTORY` target properties
|
||||||
build variable.
|
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``
|
* The :prop_tgt:`INTERFACE_LINK_LIBRARIES` target property now supports
|
||||||
:manual:`generator expression <cmake-generator-expressions(7)>` allows
|
a ``$<LINK_ONLY:...>``
|
||||||
setting build properties based on available compiler features.
|
:manual:`generator expression <cmake-generator-expressions(7)>`.
|
||||||
|
|
||||||
* :manual:`cpack(1)` gained ``7Z`` and ``TXZ`` generators supporting
|
* A new :prop_tgt:`INTERFACE_SOURCES` target property was introduced. This is
|
||||||
lzma-compressed archives.
|
consumed by dependent targets, which compile and link the listed sources.
|
||||||
|
|
||||||
* The :module:`CPackDeb` module learned a new
|
* The :prop_tgt:`SOURCES` target property now contains
|
||||||
:variable:`CPACK_DEBIAN_COMPRESSION_TYPE` variable to set the
|
:manual:`generator expression <cmake-generator-expressions(7)>`
|
||||||
tarball compression type.
|
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
|
* The :prop_tgt:`SOURCES` target property now generally supports
|
||||||
Qt Framework Installer tools. See the :module:`CPackIFW` module.
|
: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
|
* It is now possible to write and append to the :prop_tgt:`SOURCES` target
|
||||||
``CTEST_COVERAGE_EXTRA_FLAGS`` to set ``CoverageExtraFlags``.
|
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
|
* A :prop_sf:`VS_DEPLOYMENT_CONTENT` source file property was added
|
||||||
Intel coverage files with the ``codecov`` tool.
|
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
|
* The :prop_tgt:`VS_WINRT_COMPONENT` target property was created to
|
||||||
modes, including ``AddressSanitizer``, ``MemorySanitizer``,
|
tell Visual Studio generators to compile a shared library as a
|
||||||
``ThreadSanitizer``, and ``UndefinedBehaviorSanitizer``.
|
Windows Runtime (WinRT) component.
|
||||||
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
|
* The :generator:`Xcode` generator learned to check source
|
||||||
deptype for use in Ninja other than those CMake itself knows about.
|
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
|
Modules
|
||||||
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``
|
* The :module:`BundleUtilities` module learned to resolve and replace
|
||||||
function learned to allow use with :ref:`Object Libraries`.
|
``@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{}``
|
* The :module:`ExternalData` module learned to tolerate a ``DATA{}``
|
||||||
reference to a missing source file with a warning instead of
|
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
|
learned a new ``DOWNLOAD_NO_PROGRESS`` option to disable progress
|
||||||
output while downloading the source tarball.
|
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
|
* The :module:`FeatureSummary` module ``feature_summary`` API
|
||||||
learned to accept multiple values for the ``WHAT`` option and
|
learned to accept multiple values for the ``WHAT`` option and
|
||||||
combine them appropriately.
|
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``
|
* The :module:`FindCUDA` module learned to support ``fatbin`` and ``cubin``
|
||||||
modules.
|
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
|
target property of the test executable and scan the source files
|
||||||
for tests to be added.
|
for tests to be added.
|
||||||
|
|
||||||
* The :module:`FindHg` module gained a new ``Hg_WC_INFO`` macro to
|
* The :module:`FindGLEW` module now provides imported targets.
|
||||||
help run ``hg`` to extract information about a Mercurial work copy.
|
|
||||||
|
|
||||||
* The :module:`FindGLUT` 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
|
* The :module:`FindOpenGL` module now provides imported targets
|
||||||
``OpenGL::GL`` and ``OpenGL::GLU`` when the libraries are found.
|
``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)``.
|
It is now a thin-wrapper around ``find_package(VTK ... NO_MODULE)``.
|
||||||
This produces much clearer error messages when VTK is not found.
|
This produces much clearer error messages when VTK is not found.
|
||||||
|
|
||||||
* The :module:`BundleUtilities` module learned to resolve and replace
|
* The :module:`FindZLIB` module now provides imported targets.
|
||||||
``@rpath`` placeholders on OS X to correctly bundle applications
|
|
||||||
using them.
|
|
||||||
|
|
||||||
* The :prop_tgt:`INTERFACE_LINK_LIBRARIES` target property now supports
|
* The :module:`GenerateExportHeader` module ``generate_export_header``
|
||||||
a ``$<LINK_ONLY:...>``
|
function learned to allow use with :ref:`Object Libraries`.
|
||||||
: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
|
* The :module:`InstallRequiredSystemLibraries` module gained a new
|
||||||
``CMAKE_INSTALL_OPENMP_LIBRARIES`` option to install MSVC OpenMP
|
``CMAKE_INSTALL_OPENMP_LIBRARIES`` option to install MSVC OpenMP
|
||||||
runtime libraries.
|
runtime libraries.
|
||||||
|
|
||||||
* The Makefile generators learned to use response files with GNU tools
|
* The :module:`UseSWIG` module learned to detect the module name
|
||||||
on Windows to pass library directories and names to the linker.
|
from ``.i`` source files if possible to avoid the need to set
|
||||||
|
the ``SWIG_MODULE_NAME`` source file property explicitly.
|
||||||
* When generating linker command-lines, CMake now avoids repeating
|
|
||||||
items corresponding to SHARED library targets.
|
|
||||||
|
|
||||||
* The :module:`WriteCompilerDetectionHeader` module was added to allow
|
* The :module:`WriteCompilerDetectionHeader` module was added to allow
|
||||||
creation of a portable header file for compiler optional feature detection.
|
creation of a portable header file for compiler optional feature detection.
|
||||||
|
|
||||||
* New :prop_tgt:`COMPILE_PDB_NAME` and
|
Generator Expressions
|
||||||
: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
|
* New ``COMPILE_FEATURES``
|
||||||
:prop_tgt:`PDB_NAME` and :prop_tgt:`PDB_OUTPUT_DIRECTORY`
|
:manual:`generator expression <cmake-generator-expressions(7)>` allows
|
||||||
target properties that specify the linker program database
|
setting build properties based on available compiler features.
|
||||||
file location (``link /pdb``).
|
|
||||||
|
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
|
* In CMake 3.0 the :command:`target_link_libraries` command
|
||||||
accidentally began allowing unquoted arguments to use
|
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.
|
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
|
* Callbacks established by the :command:`variable_watch` command will no
|
||||||
longer receive the ``ALLOWED_UNKNOWN_READ_ACCESS`` access type when
|
longer receive the ``ALLOWED_UNKNOWN_READ_ACCESS`` access type when
|
||||||
the undocumented ``CMAKE_ALLOW_UNKNOWN_VARIABLE_READ_ACCESS`` variable is
|
the undocumented ``CMAKE_ALLOW_UNKNOWN_VARIABLE_READ_ACCESS`` variable is
|
||||||
set. Uninitialized variable accesses will always be reported as
|
set. Uninitialized variable accesses will always be reported as
|
||||||
``UNKNOWN_READ_ACCESS``.
|
``UNKNOWN_READ_ACCESS``.
|
||||||
|
|
||||||
* 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.
|
||||||
|
|
||||||
* The Visual Studio generators for versions 8 (2005) and above
|
Other Changes
|
||||||
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 :manual:`cmake-gui(1)` learned to capture output from child
|
||||||
the ``ASM_MASM`` language.
|
processes started by the :command:`execute_process` command
|
||||||
|
and display it in the output window.
|
||||||
|
|
||||||
* Generators for Visual Studio 10 (2010) and above learned to generate
|
* The :manual:`cmake-language(7)` internal implementation of generator
|
||||||
projects for NVIDIA Nsight Tegra Visual Studio Edition. One may set
|
expression and list expansion parsers have been optimized and shows
|
||||||
the :variable:`CMAKE_SYSTEM_NAME` variable to ``Android`` on the
|
non-trivial speedup on large projects.
|
||||||
: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
|
* The Makefile generators learned to use response files with GNU tools
|
||||||
to tell the Visual Studio generators to mark content for deployment
|
on Windows to pass library directories and names to the linker.
|
||||||
in Windows Phone and Windows Store projects.
|
|
||||||
|
|
||||||
* The Visual Studio generators learned to treat ``.hlsl`` source
|
* When generating linker command-lines, CMake now avoids repeating
|
||||||
files as High Level Shading Language sources (using ``FXCompile``
|
items corresponding to SHARED library targets.
|
||||||
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
|
* Support for the Open Watcom compiler has been overhauled.
|
||||||
tell Visual Studio generators to compile a shared library as a
|
The :variable:`CMAKE_<LANG>_COMPILER_ID` is now ``OpenWatcom``,
|
||||||
Windows Runtime (WinRT) component.
|
and the :variable:`CMAKE_<LANG>_COMPILER_VERSION` now uses
|
||||||
|
the Open Watcom external version numbering. The external
|
||||||
* Generators for Visual Studio 11 (2012) and above learned to generate
|
version numbers are lower than the internal version number
|
||||||
projects for Windows Phone and Windows Store. One may set the
|
by 11.
|
||||||
: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.
|
|
||||||
|
|
Loading…
Reference in New Issue