Merge topic 'doc-3.9-relnotes'

945cb9aa Help: Organize and revise 3.9 release notes
7bc26430 Help: Consolidate 3.9 release notes

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !926
This commit is contained in:
Brad King
2017-06-05 14:22:08 +00:00
committed by Kitware Robot
57 changed files with 305 additions and 373 deletions

304
Help/release/3.9.rst Normal file
View File

@@ -0,0 +1,304 @@
CMake 3.9 Release Notes
***********************
.. only:: html
.. contents::
Changes made since CMake 3.8 include the following.
New Features
============
Languages
---------
* ``CUDA`` is now supported by the :ref:`Visual Studio Generators`
for VS 2010 and above. This complements the existing support by the
:ref:`Makefile Generators` and the :generator:`Ninja` generator.
Generators
----------
* :ref:`Visual Studio Generators` for VS 2010 and above learned to support
the ``ASM_NASM`` language when ``nasm`` is installed.
* The :generator:`Xcode` generator learned to create Xcode schema files.
This is an experimental feature and can be activated by setting the
:variable:`CMAKE_XCODE_GENERATE_SCHEME` variable to a ``TRUE`` value.
Commands
--------
* The :command:`add_library` command ``IMPORTED`` option learned to support
:ref:`Object Libraries`.
* All ``find_`` commands now have a ``PACKAGE_ROOT`` search path group that
is first in the search heuristics. If a ``find_`` command is called from
inside a find module, then the CMake variable and environment variable named
``<PackageName>_ROOT`` are used as prefixes and are the first set of paths
to be searched.
* The :command:`find_library` command learned to search ``libx32`` paths
when the build targets the ``x32`` ABI. See the
:prop_gbl:`FIND_LIBRARY_USE_LIBX32_PATHS` global property.
* The :command:`include_external_msproject` command learned to use
the :prop_tgt:`MAP_IMPORTED_CONFIG_<CONFIG>` target property
to map current configurations to the external configurations.
* The :command:`install(TARGETS)` command learned a new ``OBJECTS`` option to
specify where to install :ref:`Object Libraries`.
* The :command:`install(EXPORT)` command learned how to export
:ref:`Object Libraries`.
* The :command:`project` command learned an optional ``DESCRIPTION``
parameter to set the :variable:`PROJECT_DESCRIPTION` variable.
* The :command:`separate_arguments` command gained a ``NATIVE_COMMAND`` mode
that performs argument separation depending on the host operating system.
Variables
---------
* A :variable:`CMAKE_AUTOMOC_DEPEND_FILTERS` variable was introduced to
allow :variable:`CMAKE_AUTOMOC` to extract additional dependency file names
for ``moc`` from the contents of source files.
* A :variable:`CMAKE_AUTOUIC_SEARCH_PATHS` variable was introduced to
allow :variable:`CMAKE_AUTOUIC` to search for ``foo.ui`` in more
places than the vicinity of the file including ``ui_foo.h``.
* A :variable:`CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX` variable was added to
tell the :command:`find_library` command to search in a ``lib<suffix>``
directory before each ``lib`` directory that would normally be searched.
* A :variable:`CMAKE_INTERPROCEDURAL_OPTIMIZATION` variable was added to
initialize the :prop_tgt:`INTERPROCEDURAL_OPTIMIZATION` property on all
targets.
* A :variable:`CMAKE_<LANG>_COMPILER_AR` variable was added to hold
the path to the GCC/Clang wrapper of ``ar``.
* A :variable:`CMAKE_<LANG>_COMPILER_RANLIB` variable was added to hold
the path to the GCC/Clang wrapper of ``ranlib``.
* The :variable:`CMAKE_SYSROOT_COMPILE` and :variable:`CMAKE_SYSROOT_LINK`
variables were added to use separate sysroots for compiling and linking.
Properties
----------
* A new :prop_tgt:`AUTOGEN_BUILD_DIR` target property was introduced to set
a custom output directory for :prop_tgt:`AUTOMOC`, :prop_tgt:`AUTOUIC`,
and :prop_tgt:`AUTORCC`.
* A new :prop_tgt:`AUTOMOC_DEPEND_FILTERS` target property was introduced to
allow :prop_tgt:`AUTOMOC` to extract additional dependency file names
for ``moc`` from the contents of source files.
* A new :prop_tgt:`AUTOUIC_SEARCH_PATHS` target property was introduced to
allow :prop_tgt:`AUTOUIC` to search for ``foo.ui`` in more
places than the vicinity of the file including ``ui_foo.h``.
* Global properties :prop_gbl:`AUTOGEN_SOURCE_GROUP`,
:prop_gbl:`AUTOMOC_SOURCE_GROUP` and
:prop_gbl:`AUTORCC_SOURCE_GROUP` were
introduced to allow files generated by :prop_tgt:`AUTOMOC` or
:prop_tgt:`AUTORCC` to be placed in a :command:`source_group`.
* A :prop_tgt:`BUILD_WITH_INSTALL_NAME_DIR` target property and corresponding
:variable:`CMAKE_BUILD_WITH_INSTALL_NAME_DIR` variable were added to
control whether to use the :prop_tgt:`INSTALL_NAME_DIR` target property
value for binaries in the build tree. This is for macOS ``install_name``
as :prop_tgt:`BUILD_WITH_INSTALL_RPATH` is for ``RPATH``.
* A :prop_tgt:`CUDA_PTX_COMPILATION` target property was added to
:ref:`Object Libraries` to support compiling to ``.ptx`` files
instead of host object files.
* A :prop_gbl:`GENERATOR_IS_MULTI_CONFIG` global property was
added to determine whether the current generator is a multi-configuration
generator (such as :ref:`Visual Studio Generators` or :generator:`Xcode`).
* The :prop_tgt:`INTERPROCEDURAL_OPTIMIZATION` target property is now enforced
when enabled. CMake will add IPO flags unconditionally or produce an error
if it does not know the flags for the current compiler. The project is now
responsible to use the :module:`CheckIPOSupported` module to check for IPO
support before enabling the target property. See policy :policy:`CMP0069`.
* The :prop_tgt:`WINDOWS_EXPORT_ALL_SYMBOLS` target property may now
be used in combination with explicit ``.def`` files in order to
export all symbols from the object files within a target plus
an explicit list of symbols that the linker finds in dependencies
(e.g. ``msvcrt.lib``).
Modules
-------
* A :module:`CheckIPOSupported` module was added to help projects
check whether interprocedural optimization (IPO) is supported by
the current toolchain and CMake version.
* The :module:`FeatureSummary` module :command:`feature_summary` command now
accepts the new ``DEFAULT_DESCRIPTION`` option that will print the default
title for the selected package type.
* The :module:`FeatureSummary` module gained a new
:variable:`FeatureSummary_<TYPE>_DESCRIPTION` variable that can be defined
for each ``<TYPE>`` to replace the type name with the specified string
whenever the package type is used in an output string by the module.
* The :module:`FindDoxygen` module learned to control Doxygen behavior using
CMake variables and generate documentation via the newly added
:command:`doxygen_add_docs` function. The Doxygen input file (``Doxyfile``)
is automatically generated and doxygen is run as part of a custom target.
Additional components can be specified to find optional tools: ``dot``,
``mscgen`` and ``dia``.
* The :module:`FindMPI` module now provides imported targets.
* The :module:`FindProtobuf` module :command:`protobuf_generate_cpp`
command gained an ``EXPORT_MACRO`` option to specify the name of
a DLL export markup macro.
* The :module:`FindProtobuf` module now supports usage of static libraries
for Unix via a new ``Protobuf_USE_STATIC_LIBS`` input variable.
* The :module:`FindProtobuf` module now provides imported targets
when the libraries are found.
* A new :module:`GoogleTest` module was added to provide the
:command:`gtest_add_tests` function independently of the :module:`FindGTest`
module. The function was also updated to support keyword arguments, with
functionality expanded to allow a test name prefix and suffix to be
specified, the dependency on the source files to be optional and the list of
discovered test cases to be returned to the caller.
CTest
-----
* The :command:`ctest_submit` command gained a ``HTTPHEADER`` option
to specify custom headers to send during submission.
* The :manual:`ctest(1)` executable gained new options which allow the
developer to disable automatically adding tests to the test set to satisfy
fixture dependencies. ``-FS`` prevents adding setup tests for fixtures
matching the provided regular expression, ``-FC`` prevents adding cleanup
tests for matching fixtures and ``-FA`` prevents adding any test for matching
fixtures.
* A :prop_test:`DISABLED` test property was added to mark tests that
are configured but explicitly disabled so they do not run.
CPack
-----
* The :module:`CPackArchive` module learned to modify the filename
per-component. See the :variable:`CPACK_ARCHIVE_FILE_NAME` variable and
its per-component version :variable:`CPACK_ARCHIVE_<component>_FILE_NAME`.
* The :module:`CPackComponent` module :command:`cpack_add_component` command
gained a new ``PLIST <filename>`` option to specify the ``pkgbuild``
``--component-plist`` argument when using the
:module:`productbuild <CPackProductBuild>` generator.
* The :module:`CPackIFW` module :command:`cpack_ifw_configure_component` and
:command:`cpack_ifw_configure_component_group` commands gained
internationalization support for ``DISPLAY_NAME`` and ``DESCRIPTION``
options.
* The :module:`CPackIFW` module learned the new hint :variable:`CPACK_IFW_ROOT`
variable for finding the QtIFW tool suite installed in a non-standard place.
* The :module:`CPackProductBuild` module gained a new
:variable:`CPACK_PRODUCTBUILD_RESOURCES_DIR` variable to
specify resources to be copied into the ``Resources``
directory.
* The :module:`CPackRPM` module learned to modify the ``debuginfo`` package
name. See the :variable:`CPACK_RPM_DEBUGINFO_FILE_NAME` variable.
* The :module:`CPackWIX` module patching system now has the ability to set
additional attributes. This can be done by specifying attributes with
the ``CPackWiXFragment`` XML tag after the ``Id`` attribute.
See the :variable:`CPACK_WIX_PATCH_FILE` variable.
* The CPack WIX generator implemented a new
:variable:`CPACK_WIX_ROOT_FOLDER_ID` variable which allows
using a custom root folder ID instead of the default
``ProgramFilesFolder`` / ``ProgramFiles64Folder``.
Other
-----
* Interprocedural optimization (IPO) is now supported for GNU and Clang
compilers using link time optimization (LTO) flags. See the
:prop_tgt:`INTERPROCEDURAL_OPTIMIZATION` target property and
:module:`CheckIPOSupported` module.
* The ``TARGET_OBJECTS``
:manual:`generator expression <cmake-generator-expressions(7)>`
is now supported by the :command:`add_custom_command` and
:command:`file(GENERATE)` commands.
* Two new informational generator expressions to retrieve Apple Bundle
directories have been added. The first one ``$<TARGET_BUNDLE_DIR:tgt>``
outputs the full path to the Bundle directory, the other one
``$<TARGET_BUNDLE_CONTENT_DIR:tgt>`` outputs the full path to the
``Contents`` directory of macOS Bundles and App Bundles. For all other
bundle types and SDKs it is identical with ``$<TARGET_BUNDLE_DIR:tgt>``.
The new expressions are helpful to query Bundle locations independent of
the different Bundle types and layouts on macOS and iOS.
Deprecated and Removed Features
===============================
* An explicit deprecation diagnostic was added for policies ``CMP0036``
and below. The :manual:`cmake-policies(7)` manual explains that the
OLD behaviors of all policies are deprecated and that projects should
always port to the NEW behaviors as soon as possible.
* The :generator:`Visual Studio 8 2005` generator is now deprecated
and will be removed in a future version of CMake.
* The :generator:`Visual Studio 7 .NET 2003` generator has been removed.
* The :generator:`Xcode` generator dropped support for Xcode versions
older than 3.
* The :module:`FindDoxygen` module has deprecated several variables.
* The version of curl bundled with CMake no longer accepts URLs of the form
``file://c:/...`` on Windows due to a change in upstream curl 7.52. Use
the form ``file:///c:/...`` instead to work on all versions.
Other Changes
=============
* When using :prop_tgt:`AUTOMOC`, CMake now scans for the presence of the
``Q_PLUGIN_METADATA`` macro and reruns moc when the file from the
macro's ``FILE`` argument changes.
* When :prop_tgt:`AUTOMOC` detects an include statement of the form
``#include "moc_<basename>.cpp"`` the search for the respective header file
now looks in the :prop_tgt:`INCLUDE_DIRECTORIES` of the target as well.
* When running tests, CTest learned to treat skipped tests (using the
:prop_test:`SKIP_RETURN_CODE` property) the same as tests with the new
:prop_test:`DISABLED` property. Due to this change, CTest will not indicate
failure when all tests are either skipped or pass.
* The :generator:`Ninja` generator has loosened the dependencies of object
compilation. Object compilation now depends only on custom targets
and custom commands associated with libraries on which the object's target
depends and no longer depends on the libraries themselves. Source files
in dependent targets may now compile without waiting for their targets'
dependencies to link.
* On macOS, the default application bundle ``Info.plist`` file now enables
Hi-DPI support.
* On macOS, ``RPATH`` settings such as :prop_tgt:`BUILD_WITH_INSTALL_RPATH`
no longer affect the ``install_name`` field. See policy :policy:`CMP0068`.

View File

@@ -1,6 +0,0 @@
AutoGen build dir
-----------------
* The new target property :prop_tgt:`AUTOGEN_BUILD_DIR` was introduced which
allows to set a custom output directory for
:prop_tgt:`AUTOMOC`, :prop_tgt:`AUTOUIC` and :prop_tgt:`AUTORCC`.

View File

@@ -1,10 +0,0 @@
AutoGen depends
---------------
* Variable :variable:`CMAKE_AUTOMOC_DEPEND_FILTERS` was introduced to
allow :variable:`CMAKE_AUTOMOC` to extract additional dependency file names
for ``moc`` from the contents of source files.
* The new target property :prop_tgt:`AUTOMOC_DEPEND_FILTERS` was introduced to
allow :prop_tgt:`AUTOMOC` to extract additional dependency file names
for ``moc`` from the contents of source files.

View File

@@ -1,10 +0,0 @@
AutoGen json
------------
* When using :prop_tgt:`AUTOMOC`, CMake scans for the presence of the
``Q_PLUGIN_METADATA`` macro and reruns moc when the file from the
macro's ``FILE`` argument changes.
* When :prop_tgt:`AUTOMOC` detects an include statement of the form
``#include "moc_<basename>.cpp"`` the respective header file is searched
for in the :prop_tgt:`INCLUDE_DIRECTORIES` of the target as well.

View File

@@ -1,8 +0,0 @@
AutoGen source group
--------------------
* Global properties :prop_gbl:`AUTOGEN_SOURCE_GROUP`,
:prop_gbl:`AUTOMOC_SOURCE_GROUP` and
:prop_gbl:`AUTORCC_SOURCE_GROUP` were
introduced to allow files generated by :prop_tgt:`AUTOMOC` or
:prop_tgt:`AUTORCC` to be placed in a :command:`source_group`.

View File

@@ -1,10 +0,0 @@
AutoGen uic paths
-----------------
* Variable :variable:`CMAKE_AUTOUIC_SEARCH_PATHS` was introduced to
allow :variable:`CMAKE_AUTOUIC` to search for ``foo.ui`` in more
places than the vicinity of the ``ui_foo.h`` including file.
* The new target property :prop_tgt:`AUTOUIC_SEARCH_PATHS` was introduced to
allow :prop_tgt:`AUTOUIC` to search for ``foo.ui`` in more
places than the vicinity of the ``ui_foo.h`` including file.

View File

@@ -1,6 +0,0 @@
CMAKE_INTERPROCEDURAL_OPTIMIZATION
----------------------------------
* A :variable:`CMAKE_INTERPROCEDURAL_OPTIMIZATION` variable was added to
initialize the :prop_tgt:`INTERPROCEDURAL_OPTIMIZATION` property on all
targets.

View File

@@ -1,6 +0,0 @@
CheckIPOSupported
-----------------
* A :module:`CheckIPOSupported` module was added to help projects
check whether interprocedural optimization (IPO) is supported by
the current toolchain and CMake version.

View File

@@ -1,9 +0,0 @@
ExtractGTestMacro
-----------------
* A new :module:`GoogleTest` module was added to provide the
:command:`gtest_add_tests` function independently of the :module:`FindGTest`
module. The function was also updated to support keyword arguments, with
functionality expanded to allow a test name prefix and suffix to be
specified, the dependency on the source files to be optional and the list of
discovered test cases to be returned to the caller.

View File

@@ -1,11 +0,0 @@
FeatureSummary_description
--------------------------
* The :command:`feature_summary` command in the :module:`FeatureSummary` module
accepts the new ``DEFAULT_DESCRIPTION`` option that will print the default
title for the selected package type.
* The global property :variable:`FeatureSummary_<TYPE>_DESCRIPTION` can be
defined for each ``<TYPE>`` to replace the type name with the specified string
whenever the package type is used in an output string by the
:module:`FeatureSummary` module.

View File

@@ -1,4 +0,0 @@
FindMPI-add-imported-targets
------------------------------
* The :module:`FindMPI` module now provides imported targets.

View File

@@ -1,6 +0,0 @@
FindProtobuf-export-macro
-------------------------
* The :module:`FindProtobuf` module :command:`protobuf_generate_cpp`
command gained an ``EXPORT_MACRO`` option to specify the name of
a DLL export markup macro.

View File

@@ -1,5 +0,0 @@
FindProtobuf-static-libs
------------------------
* The :module:`FindProtobuf` module now supports usage of static libraries
for Unix via a new ``Protobuf_USE_STATIC_LIBS`` input variable.

View File

@@ -1,5 +0,0 @@
FindProtobuf-targets
--------------------
* The :module:`FindProtobuf` module now provides imported targets
when the libraries are found.

View File

@@ -1,8 +0,0 @@
PackageRoot search path group
-----------------------------
* All ``find_`` commands now have a `PACKAGE_ROOT` search path group that is
first in the search heuristics. If the ``find_`` command is called from
inside a find module, then the CMake and environment variables
``<PackageName>_ROOT`` are used as prefixes and are the first set of paths
that are searched.

View File

@@ -1,6 +0,0 @@
add_custom_command-TARGET_OBJECTS
---------------------------------
* The :command:`add_custom_command` command learned to evaluate the
``TARGET_OBJECTS``
:manual:`generator expression <cmake-generator-expressions(7)>`.

View File

@@ -1,5 +0,0 @@
add_library-TARGET_OBJECTS
--------------------------
* The :command:`add_library` command ``IMPORTED`` option learned to support
:ref:`Object Libraries`.

View File

@@ -1,12 +0,0 @@
bundle-genex
------------
* Two new informational generator expressions to retrieve Apple Bundle
directories have been added. The first one ``$<TARGET_BUNDLE_DIR:tgt>``
outputs the full path to the Bundle directory, the other one
``$<TARGET_BUNDLE_CONTENT_DIR:tgt>`` outputs the full path to the
``Contents`` directory of macOS Bundles and App Bundles. For all other
bundle types and SDKs it is identical with ``$<TARGET_BUNDLE_DIR:tgt>``.
Those new expressions are helpful to query Bundle locations independent of
the different Bundle types and layouts on macOS and iOS.

View File

@@ -1,6 +0,0 @@
cmake-xcode-schemes
-------------------
* The :generator:`Xcode` generator got the ability to create schema files.
This is still an experimental feature and can be activated by setting the
:variable:`CMAKE_XCODE_GENERATE_SCHEME` variable to a ``TRUE`` value.

View File

@@ -1,8 +0,0 @@
compiler_archiving_tools
------------------------
* A :variable:`CMAKE_<LANG>_COMPILER_AR` variable was added to hold
the path to the GCC/Clang wrapper of ``ar``.
* A :variable:`CMAKE_<LANG>_COMPILER_RANLIB` variable was added to hold
the path to the GCC/Clang wrapper of ``ranlib``.

View File

@@ -1,6 +0,0 @@
cpack-rpm-debuginfo-honor-package-filename
------------------------------------------
* The :module:`CPackArchive` module learned to modify filename per component.
See :variable:`CPACK_ARCHIVE_FILE_NAME` variable and its per component
version.

View File

@@ -1,5 +0,0 @@
cpack-rpm-debuginfo-honor-package-filename
------------------------------------------
* The :module:`CPackRPM` module learned to modify debuginfo package name.
See :variable:`CPACK_RPM_DEBUGINFO_FILE_NAME` variable.

View File

@@ -1,7 +0,0 @@
cpackifw-i18n
-------------
* The :module:`CPackIFW` module :command:`cpack_ifw_configure_component` and
:command:`cpack_ifw_configure_component_group` commands gained a
internationalization support for ``DISPLAY_NAME`` and ``DESCRIPTION`` options
to more specific configuration.

View File

@@ -1,7 +0,0 @@
cpackifw-search-algorithm
-------------------------
* The :module:`CPackIFW` module learned the new hint :variable:`CPACK_IFW_ROOT`
variable for finding the QtIFW tool suite installed in a non-standard place.
* The :module:`CPackIFW` module tries to find and use QtIFW tools of the `3.0`
and `3.1` versions.

View File

@@ -1,5 +0,0 @@
ctest-disable-tests
-------------------
* A :prop_test:`DISABLED` test property was added to mark tests that
are configured but explicitly disabled so they do not run.

View File

@@ -1,5 +0,0 @@
ctest_submit_headers
--------------------
* The :command:`ctest_submit` command gained a ``HTTPHEADER`` option
to specify custom headers to send during submission.

View File

@@ -1,7 +0,0 @@
ctest_test-ignore-skipped-tests
-------------------------------
* When running tests, CTest learned to treat skipped tests (using the
:prop_test:`SKIP_RETURN_CODE` property) the same as tests with the
:prop_test:`DISABLED` property. Due to this change, CTest will not indicate
failure when all tests are either skipped or pass.

View File

@@ -1,5 +0,0 @@
cuda-vs
-------
* ``CUDA`` is now supported by the :ref:`Visual Studio Generators`
for VS 2010 and above.

View File

@@ -1,7 +0,0 @@
deprecate-policy-old
--------------------
* An explicit deprecation diagnostic was added for policies ``CMP0036``
and below. The :manual:`cmake-policies(7)` manual explains that the
OLD behaviors of all policies are deprecated and that projects should
port to the NEW behaviors.

View File

@@ -1,10 +0,0 @@
doxygen-improvements
--------------------
* The :module:`FindDoxygen` module learned to control Doxygen behavior using
CMake variables and generate documentation via the newly added
:command:`doxygen_add_docs` function. The Doxygen input file (``Doxyfile``)
is automatically generated and doxygen is run as part of a custom target.
A number of doxygen-related variables have been deprecated. Additional
components can be specified to find optional tools: ``dot``, ``mscgen``
and ``dia``.

View File

@@ -1,6 +0,0 @@
enable_ptx_compilation
----------------------
* The :prop_tgt:`CUDA_PTX_COMPILATION` target property was added to
:ref:`Object Libraries` to support compiling to ``.ptx`` files
instead of host object files.

View File

@@ -1,9 +0,0 @@
excludeFixtures
---------------
* The :manual:`ctest(1)` executable gained new options which allow the
developer to disable automatically adding tests to the test set to satisfy
fixture dependencies. ``-FS`` prevents adding setup tests for fixtures
matching the provided regular expression, ``-FC`` prevents adding cleanup
tests for matching fixtures and ``-FA`` prevents adding any test for matching
fixtures.

View File

@@ -1,6 +0,0 @@
file-GENERATE-TARGET_OBJECTS
----------------------------
* The :command:`file(GENERATE)` subcommand learned to evaluate the
``TARGET_OBJECTS``
:manual:`generator expression <cmake-generator-expressions(7)>`.

View File

@@ -1,6 +0,0 @@
find_library-custom-lib-suffix
------------------------------
* A :variable:`CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX` variable was added to
tell the :command:`find_library` command to search in a ``lib<suffix>``
directory before each ``lib`` directory that would normally be searched.

View File

@@ -1,7 +0,0 @@
GCC IPO
-------
* Interprocedural optimization (IPO) is now supported for GNU
compilers using link time optimization (LTO) flags. See the
:prop_tgt:`INTERPROCEDURAL_OPTIMIZATION` target property and
:module:`CheckIPOSupported` module.

View File

@@ -1,6 +0,0 @@
include_external_msproject-map-config
-------------------------------------
* The :command:`include_external_msproject` command learned to use
the :prop_tgt:`MAP_IMPORTED_CONFIG_<CONFIG>` target property
to map current configurations to the external configurations.

View File

@@ -1,8 +0,0 @@
install-TARGET_OBJECTS
----------------------
* The :command:`install(TARGETS)` command learned a new ``OBJECTS`` option to
specify where to install :ref:`Object Libraries`.
* The :command:`install(EXPORT)` command learned how to export
:ref:`Object Libraries`.

View File

@@ -1,11 +0,0 @@
install_name_policy
-------------------
* A :prop_tgt:`BUILD_WITH_INSTALL_NAME_DIR` target property and corresponding
:variable:`CMAKE_BUILD_WITH_INSTALL_NAME_DIR` variable were added to
control whether to use the :prop_tgt:`INSTALL_NAME_DIR` target property
value for binaries in the build tree. This is for macOS ``install_name``
as :prop_tgt:`BUILD_WITH_INSTALL_RPATH` is for ``RPATH``.
* On macOS, ``RPATH`` settings such as :prop_tgt:`BUILD_WITH_INSTALL_RPATH`
no longer affect the ``install_name`` field. See policy :policy:`CMP0068`.

View File

@@ -1,8 +0,0 @@
interprocedural_optimization_policy
-----------------------------------
* The :prop_tgt:`INTERPROCEDURAL_OPTIMIZATION` target property is now enforced
when enabled. CMake will add IPO flags unconditionally or produce an error
if it does not know the flags for the current compiler. The project is now
responsible to use the :module:`CheckIPOSupported` module to check for IPO
support before enabling the target property. See policy :policy:`CMP0069`.

View File

@@ -1,5 +0,0 @@
macos-hidpi-qt-dialog
---------------------
* On macOS the default application bundle ``Info.plist`` file now enables
Hi-DPI support.

View File

@@ -1,8 +0,0 @@
module-def-and-WINDOWS_EXPORT_ALL_SYMBOLS
-----------------------------------------
* The :prop_tgt:`WINDOWS_EXPORT_ALL_SYMBOLS` target property may now
be used in combination with explicit ``.def`` files in order to
export all symbols from the object files within a target plus
an explicit list of symbols that the linker finds in dependencies
(e.g. ``msvcrt.lib``).

View File

@@ -1,8 +0,0 @@
ninja-loosen-object-deps
------------------------
* The :generator:`Ninja` generator has loosened dependencies on object
compilation to depend on the custom targets and commands of dependent
libraries instead of the libraries themselves. This helps projects with deep
dependency graphs to be blocked only on their link steps at the deeper
levels rather than also blocking object compilation on dependent link steps.

View File

@@ -1,7 +0,0 @@
productbuild_component_plist
----------------------------
* The :module:`CPackComponent` module :command:`cpack_add_component` command
gained a new ``PLIST <filename>`` option to specify the ``pkgbuild``
``--component-plist`` argument when using the
:module:`productbuild <CPackProductBuild>` generator.

View File

@@ -1,7 +0,0 @@
productbuild_resources
----------------------
* The :module:`CPackProductBuild` module gained a new
:variable:`CPACK_PRODUCTBUILD_RESOURCES_DIR` variable to
specify resources to be copied into the ``Resources``
directory.

View File

@@ -1,5 +0,0 @@
project-description
-------------------
* The :command:`project` command learned an optional ``DESCRIPTION`` parameter.
See :command:`project` command and :variable:`PROJECT_DESCRIPTION` variable.

View File

@@ -1,6 +0,0 @@
prop-is-multi-config
--------------------
* A :prop_gbl:`GENERATOR_IS_MULTI_CONFIG` global property was
added to determine whether the current generator is a multi-configuration
generator (such as :ref:`Visual Studio Generators` or :generator:`Xcode`).

View File

@@ -1,4 +0,0 @@
remove-vs7.1-generator
----------------------
* The :generator:`Visual Studio 7 .NET 2003` generator has been removed.

View File

@@ -1,5 +0,0 @@
remove-xcode-2
--------------
* The :generator:`Xcode` generator dropped support for Xcode versions
older than 3.

View File

@@ -1,5 +0,0 @@
separgs-native
-------------------
* A ``NATIVE_COMMAND`` mode was added to :command:`separate_arguments`
performing argument separation depening on the host operating system.

View File

@@ -1,5 +0,0 @@
split-sysroot
-------------
* The :variable:`CMAKE_SYSROOT_COMPILE` and :variable:`CMAKE_SYSROOT_LINK`
variables were added to use separate sysroots for compiling and linking.

View File

@@ -1,6 +0,0 @@
update-curl
-----------
* The version of curl bundled with CMake no longer accepts URLs of the form
``file://c:/...`` on Windows due to a change in upstream curl 7.52. Use
the form ``file:///c:/...`` instead to work on all versions.

View File

@@ -1,5 +0,0 @@
vs-nasm
-------
* :ref:`Visual Studio Generators` for VS 2010 and above learned to support
the ``ASM_NASM`` language when ``nasm`` is installed.

View File

@@ -1,5 +0,0 @@
vs8-deprecate
-------------
* The :generator:`Visual Studio 8 2005` generator is now deprecated
and will be removed in a future version of CMake.

View File

@@ -1,7 +0,0 @@
wix-attributes-patch
--------------------
* The patching system within the :module:`CPackWIX` module now allows the
ability to set additional attributes. This can be done by specifying
addional attributes with the ``CPackWiXFragment`` XML tag after the
``Id`` attribute. See the :variable:`CPACK_WIX_PATCH_FILE` variable.

View File

@@ -1,7 +0,0 @@
wix-custom-root-id
------------------
* The CPack WIX generator implemented a new
:variable:`CPACK_WIX_ROOT_FOLDER_ID` variable which allows
using a custom root folder ID instead of the default
``ProgramFilesFolder`` / ``ProgramFiles64Folder``.

View File

@@ -1,6 +0,0 @@
x32-abi
-------
* The :command:`find_library` command learned to search ``libx32`` paths
when the build targets the ``x32`` ABI. See the
:prop_gbl:`FIND_LIBRARY_USE_LIBX32_PATHS` global property.

View File

@@ -13,6 +13,7 @@ Releases
.. toctree::
:maxdepth: 1
3.9 <3.9>
3.8 <3.8>
3.7 <3.7>
3.6 <3.6>