Browse Source

Help: Organize and revise 3.4 release notes

Add section headers similar to the 3.3 release notes and move each
individual bullet into an appropriate section.  Revise a few bullets.
Brad King 10 years ago
parent
commit
19ce56e274
1 changed files with 159 additions and 121 deletions
  1. 159 121
      Help/release/3.4.rst

+ 159 - 121
Help/release/3.4.rst

@@ -7,6 +7,16 @@ CMake 3.4 Release Notes
 
 Changes made since CMake 3.4 include the following.
 
+New Features
+============
+
+Generators
+----------
+
+* The :generator:`Visual Studio 14 2015` generator learned to select
+  a Windows 10 SDK based on the value of the :variable:`CMAKE_SYSTEM_VERSION`
+  variable and the SDKs available on the host.
+
 * CMake learned rudimentary support for the Apple Swift language.  When using
   the :generator:`Xcode` generator with Xcode 6.1 or higher, one may enable
   the ``Swift`` language with the :command:`enable_language` command or the
@@ -14,76 +24,96 @@ Changes made since CMake 3.4 include the following.
   Xcode is too old).  Then one may list ``.swift`` source files in targets
   for compilation.
 
-* New :variable:`CMAKE_LINK_SEARCH_START_STATIC` and
-  :variable:`CMAKE_LINK_SEARCH_END_STATIC` variables were
-  introduced to initialize the
-  :prop_tgt:`LINK_SEARCH_START_STATIC` and
-  :prop_tgt:`LINK_SEARCH_END_STATIC` target properties,
-  respectively.
+Commands
+--------
 
-* On Windows with MS-compatible tools, CMake learned to optionally
-  generate a module definition (``.def``) file for ``SHARED`` libraries.
-  See the :prop_tgt:`WINDOWS_EXPORT_ALL_SYMBOLS` target property.
+* The :command:`find_program` command learned a ``NAMES_PER_DIR``
+  option to consider all given ``NAMES`` in each directory before
+  moving on to the next directory.
+
+* The :command:`get_filename_component` command learned a new ``BASE_DIR``
+  subcommand.  This is used to specify a base directory when calculating an
+  absolute path from a relative path.
+
+* The :command:`if` command learned a new ``TEST`` operator that evaluates
+  to true if a given test name has been defined by the :command:`add_test`
+  command.  See policy :policy:`CMP0064`.
+
+* The :command:`install(DIRECTORY)` command ``DESTINATION`` option learned to
+  support :manual:`generator expressions <cmake-generator-expressions(7)>`.
+
+* The :command:`install(FILES)` command ``DESTINATION`` option learned to
+  support :manual:`generator expressions <cmake-generator-expressions(7)>`.
+
+* The :command:`string` command learned a new ``APPEND`` subcommand.
+
+Variables
+---------
 
 * The :ref:`Makefile Generators` and the :generator:`Ninja` generator
-  learned to add compiler launcher tools like distcc and ccache along with the
-  compiler for ``C`` and ``CXX`` languages.  See the
+  learned to add compiler launcher tools like distcc and ccache along
+  with the compiler for ``C`` and ``CXX`` languages.  See the
   :variable:`CMAKE_<LANG>_COMPILER_LAUNCHER` variable and
   :prop_tgt:`<LANG>_COMPILER_LAUNCHER` target property for details.
 
-* The `Concurrent Fortran 77 <https://ccur.com>`__ compiler is now supported.
-  Its :variable:`compiler id <CMAKE_<LANG>_COMPILER_ID>` is ``CCur``.
+* New :variable:`CMAKE_LINK_SEARCH_START_STATIC` and
+  :variable:`CMAKE_LINK_SEARCH_END_STATIC` variables were
+  introduced to initialize the
+  :prop_tgt:`LINK_SEARCH_START_STATIC` and
+  :prop_tgt:`LINK_SEARCH_END_STATIC` target properties,
+  respectively.
 
-* The :module:`CPackDeb` module now correctly excludes symlinks during package checksum calculation.
+Properties
+----------
 
-* The :module:`CPackDeb` module learned to set package dependencies
-  per component. See :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_PREDEPENDS`,
-  :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_ENHANCES`,
-  :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_BREAKS`,
-  :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_CONFLICTS`,
-  :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_PROVIDES`,
-  :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_REPLACES`,
-  :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_RECOMMENDS` and
-  :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_SUGGESTS`.
+* :ref:`Visual Studio Generators` learned to support additonal
+  target properties to customize projects for NVIDIA Nsight
+  Tegra Visual Studio Edition:
 
-* :module:`CPackDeb` no longer uses fakeroot and system tar program for packaging.
+  * :prop_tgt:`ANDROID_ANT_ADDITIONAL_OPTIONS`
+  * :prop_tgt:`ANDROID_ARCH`
+  * :prop_tgt:`ANDROID_ASSETS_DIRECTORIES`
+  * :prop_tgt:`ANDROID_JAR_DEPENDENCIES`
+  * :prop_tgt:`ANDROID_JAR_DIRECTORIES`
+  * :prop_tgt:`ANDROID_JAVA_SOURCE_DIR`
+  * :prop_tgt:`ANDROID_NATIVE_LIB_DEPENDENCIES`
+  * :prop_tgt:`ANDROID_NATIVE_LIB_DIRECTORIES`
+  * :prop_tgt:`ANDROID_PROCESS_MAX`
+  * :prop_tgt:`ANDROID_PROGUARD`
+  * :prop_tgt:`ANDROID_PROGUARD_CONFIG_PATH`
+  * :prop_tgt:`ANDROID_SECURE_PROPS_PATH`
+  * :prop_tgt:`ANDROID_SKIP_ANT_STEP`
+  * :prop_tgt:`ANDROID_STL_TYPE`
 
-* The :module:`CPack` module learned to package empty directories.
+* The :prop_tgt:`ARCHIVE_OUTPUT_DIRECTORY`,
+  :prop_tgt:`LIBRARY_OUTPUT_DIRECTORY`, and
+  :prop_tgt:`RUNTIME_OUTPUT_DIRECTORY` target properties learned to
+  support :manual:`generator expressions <cmake-generator-expressions(7)>`.
 
-* The :module:`CPack` module no longer mangles settings with CMake-special
-  characters when they're used as defaults for other settings. The macro
-  ``cpack_set_if_not_set``, which was responsible for this, is now deprecated.
+* The :prop_tgt:`SOURCE_DIR` and :prop_tgt:`BINARY_DIR` target properties
+  were introduced to allow project code to query where a target is defined.
 
-* The :module:`CPack` module gained a new setting, ``CPACK_VERBATIM_VARIABLES``,
-  which can be used to ensure the cpack program receives the settings' values
-  exactly as they were set, even if they contain CMake-special characters.
-  For compatibility, it's off by default.
+* The :prop_tgt:`OUTPUT_NAME` target property and its variants learned to
+  support :manual:`generator expressions <cmake-generator-expressions(7)>`.
 
-* :manual:`ctest(1)` learned options
-  ``--test-output-size-passed`` and ``--test-output-size-failed``
-  to customize the limit on test output size submitted when
-  running as a :ref:`Dashboard Client`.
+* A :prop_gbl:`TARGET_MESSAGES` global property was added to tell the
+  :ref:`Makefile Generators` whether to generate commands to print output
+  after each target is completed.
 
-* CTest learned to optionally measure the CPU load during parallel
-  testing and avoid starting tests that may cause the load to exceed
-  a given threshold.  See the :manual:`ctest(1)` command ``--test-load``
-  option, the ``TestLoad`` setting of the :ref:`CTest Test Step`,
-  the :variable:`CTEST_TEST_LOAD` variable, and the ``TEST_LOAD``
-  option of the :command:`ctest_test` command.
+* On Windows with MS-compatible tools, CMake learned to optionally
+  generate a module definition (``.def``) file for ``SHARED`` libraries.
+  See the :prop_tgt:`WINDOWS_EXPORT_ALL_SYMBOLS` target property.
 
-* The :module:`CMakeExpandImportedTargets` module is now documented
-  as deprecated.  See module documentation for an explanation.
+Modules
+-------
 
 * The :module:`ExternalProject` module :command:`ExternalProject_Add`
   function ``GIT_SUBMODULES`` option now also limits the set of
   submodules that are initialized in addition to the prior behavior
   of limiting the set of submodules that are updated.
 
-* Use "git stash save --all" only if supported. The --all option for git-stash
-  wasn't introduced until git version 1.7.6.
-
 * The :module:`ExternalProject` module learned new ``USES_TERMINAL``
-  arguments for giving steps exclusive terminal access.  Especially
+  arguments for giving steps exclusive terminal access.  This is
   useful with the :generator:`Ninja` generator to monitor CMake
   superbuild progress and prevent CPU oversubscription.
 
@@ -97,14 +127,17 @@ Changes made since CMake 3.4 include the following.
 
 * The :module:`FindIce` module now provides imported targets.
 
+* The :module:`FindJava` module learned to optionally find
+  the ``idlj`` and ``jarsigner`` tools.
+
 * The :module:`FindOpenSSL` module now provides imported targets.
 
 * The :module:`FindOpenSSL` module learned a new ``OPENSSL_USE_STATIC_LIBS``
   option to search only for static libraries.
 
-* The :command:`find_program` command learned a ``NAMES_PER_DIR``
-  option to consdier all given ``NAMES`` in each directory before
-  moving on to the next directory.
+* The :module:`FindPkgConfig` learned a new :command:`pkg_get_variable`
+  command which may be used to query for arbitrary variables from a package
+  (such as for related tools or data and plugin install paths).
 
 * The :module:`FindProtobuf` module gained a new
   :command:`protobuf_generate_python` function to generate python
@@ -121,33 +154,10 @@ Changes made since CMake 3.4 include the following.
 * The :module:`FindZLIB` module learned to search separately for
   debug and release variants.
 
-* A new ``$<SHELL_PATH:...>``
-  :manual:`generator expression <cmake-generator-expressions(7)>`
-  has been added.
-
-* The :command:`get_filename_component` command learned a new ``BASE_DIR``
-  subcommand.  This is used to specify a base directory when calculating an
-  absolute path from a relative path.
-
 * The :module:`GNUInstallDirs` module learned special default values
   for certain installation prefixes according to the `GNU Coding
   Standards`_ and the `Filesystem Hierarchy Standard`_.
 
-.. _`GNU Coding Standards`: https://www.gnu.org/prep/standards/html_node/Directory-Variables.html
-.. _`Filesystem Hierarchy Standard`: https://refspecs.linuxfoundation.org/FHS_3.0/fhs/index.html
-
-* Add a new TEST operator to if() that evaluates to true
-  if a given test name has been defined.
-
-* The :command:`install(DIRECTORY)` command ``DESTINATION`` option learned to
-  support :manual:`generator expressions <cmake-generator-expressions(7)>`.
-
-* The :command:`install(FILES)` command ``DESTINATION`` option learned to
-  support :manual:`generator expressions <cmake-generator-expressions(7)>`.
-
-* The :module:`FindJava` module learned to optionally find
-  the ``idlj`` and ``jarsigner`` tools.
-
 * The :module:`UseJava` module ``add_jar`` function learned
   to support response files (e.g. ``@srcs.txt``) for source
   specification.
@@ -159,73 +169,101 @@ Changes made since CMake 3.4 include the following.
 * The :module:`UseJava` module gained a new ``create_javah``
   function to create C headers from Java classes.
 
-* A :prop_gbl:`TARGET_MESSAGES` global property was added to tell the
-  :ref:`Makefile Generators` whether to generate commands to print output
-  after each target is completed.
+.. _`GNU Coding Standards`: https://www.gnu.org/prep/standards/html_node/Directory-Variables.html
+.. _`Filesystem Hierarchy Standard`: https://refspecs.linuxfoundation.org/FHS_3.0/fhs/index.html
+
+Generator Expressions
+---------------------
+
+* A new ``$<SHELL_PATH:...>``
+  :manual:`generator expression <cmake-generator-expressions(7)>`
+  has been added.
+
+CTest
+-----
+
+* CTest learned to optionally measure the CPU load during parallel
+  testing and avoid starting tests that may cause the load to exceed
+  a given threshold.  See the :manual:`ctest(1)` command ``--test-load``
+  option, the ``TestLoad`` setting of the :ref:`CTest Test Step`,
+  the :variable:`CTEST_TEST_LOAD` variable, and the ``TEST_LOAD``
+  option of the :command:`ctest_test` command.
+
+* :manual:`ctest(1)` learned options
+  ``--test-output-size-passed`` and ``--test-output-size-failed``
+  to customize the limit on test output size submitted when
+  running as a :ref:`Dashboard Client`.
+
+CPack
+-----
+
+* The :module:`CPackDeb` module learned to set package dependencies
+  per component.  See variables:
+
+  * :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_BREAKS`
+  * :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_CONFLICTS`
+  * :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_ENHANCES`
+  * :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_PREDEPENDS`
+  * :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_PROVIDES`
+  * :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_RECOMMENDS`
+  * :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_REPLACES`
+  * :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_SUGGESTS`
+
+* The :module:`CPack` module learned to package empty directories.
+
+* The :module:`CPack` module gained a new setting, ``CPACK_VERBATIM_VARIABLES``,
+  which can be used to ensure the cpack program receives the settings' values
+  exactly as they were set, even if they contain CMake-special characters.
+  For compatibility, it's off by default.
+
+Other
+-----
 
 * The :manual:`Compile Features <cmake-compile-features(7)>` functionality
   is now aware of features supported by GNU C compilers on Windows.
 
-* The ``SONAME`` field is no longer set for ``MODULE`` libraries
-  created with the :command:`add_library` command.  ``MODULE``
-  libraries are meant for explicit dynamic loading at runtime.
-  They cannot be linked so ``SONAME`` is not useful.
-
 * CMake learned to honor ``*.manifest`` source files with MSVC tools.
   Manifest files named as sources of ``.exe`` and ``.dll`` targets
   will be merged with linker-generated manifests and embedded in the
   binary.
 
-* The :prop_tgt:`ARCHIVE_OUTPUT_DIRECTORY`,
-  :prop_tgt:`LIBRARY_OUTPUT_DIRECTORY`, and
-  :prop_tgt:`RUNTIME_OUTPUT_DIRECTORY` target properties learned to
-  support :manual:`generator expressions <cmake-generator-expressions(7)>`.
+* The `Concurrent Fortran 77 <https://ccur.com>`__ compiler is now supported.
+  Its :variable:`compiler id <CMAKE_<LANG>_COMPILER_ID>` is ``CCur``.
 
-* The :prop_tgt:`OUTPUT_NAME` target property and its variants learned to
-  support :manual:`generator expressions <cmake-generator-expressions(7)>`.
+* :manual:`cmake(1)` gained a new ``--trace-expand`` command line option
+  that is like ``--trace`` but expands variable references in the output.
 
-* The :module:`FindPkgConfig` learned a new :command:`pkg_get_variable`
-  command which may be used to query for arbitrary variables from a package
-  (such as for related tools or data and plugin install paths).
+Deprecated and Removed Features
+===============================
+
+* The :module:`CMakeExpandImportedTargets` module is now documented
+  as deprecated.  See module documentation for an explanation.
 
 * The :variable:`CMAKE_USE_RELATIVE_PATHS` variable no longer has any
   effect.  Previously it was partially implemented and unreliable.
 
-* CMake no longer links executables with flags to export symbols
-  unless the :prop_tgt:`ENABLE_EXPORTS` target property is set.
-  See policy :policy:`CMP0065`.
-
-* The :command:`string` command learned a new ``APPEND`` subcommand.
-
-* The :prop_tgt:`SOURCE_DIR` and :prop_tgt:`BINARY_DIR` target properties
-  were introduced to allow project code to query where a target is defined.
+Other Changes
+=============
 
 * The :module:`CheckFunctionExists`, :module:`CheckLibraryExists`,
   :module:`CheckSymbolExists`, and :module:`FindThreads` modules learned to
   work in environments where only CXX is enabled.
 
-* Add ``--trace-expand`` argument to CMake. Acts like ``--trace``, but expands
-  variable references in the output.
+* The :module:`CPackDeb` module now correctly excludes symlinks during package
+  checksum calculation.
 
-* :ref:`Visual Studio Generators` learned to support additonal
-  target properties to customize projects for NVIDIA Nsight
-  Tegra Visual Studio Edition:
+* The :module:`CPackDeb` no longer uses fakeroot and system tar program for
+  packaging.
 
-  * :prop_tgt:`ANDROID_ANT_ADDITIONAL_OPTIONS`
-  * :prop_tgt:`ANDROID_ARCH`
-  * :prop_tgt:`ANDROID_ASSETS_DIRECTORIES`
-  * :prop_tgt:`ANDROID_JAR_DEPENDENCIES`
-  * :prop_tgt:`ANDROID_JAR_DIRECTORIES`
-  * :prop_tgt:`ANDROID_JAVA_SOURCE_DIR`
-  * :prop_tgt:`ANDROID_NATIVE_LIB_DEPENDENCIES`
-  * :prop_tgt:`ANDROID_NATIVE_LIB_DIRECTORIES`
-  * :prop_tgt:`ANDROID_PROCESS_MAX`
-  * :prop_tgt:`ANDROID_PROGUARD`
-  * :prop_tgt:`ANDROID_PROGUARD_CONFIG_PATH`
-  * :prop_tgt:`ANDROID_SECURE_PROPS_PATH`
-  * :prop_tgt:`ANDROID_SKIP_ANT_STEP`
-  * :prop_tgt:`ANDROID_STL_TYPE`
+* The :module:`CPack` module no longer mangles settings with CMake-special
+  characters when they're used as defaults for other settings. The macro
+  ``cpack_set_if_not_set``, which was responsible for this, is now deprecated.
 
-* The :generator:`Visual Studio 14 2015` generator learned to select
-  a Windows 10 SDK based on the value of the :variable:`CMAKE_SYSTEM_VERSION`
-  variable and the SDKs available on the host.
+* CMake no longer links executables with flags to export symbols
+  unless the :prop_tgt:`ENABLE_EXPORTS` target property is set.
+  See policy :policy:`CMP0065`.
+
+* The ``SONAME`` field is no longer set for ``MODULE`` libraries
+  created with the :command:`add_library` command.  ``MODULE``
+  libraries are meant for explicit dynamic loading at runtime.
+  They cannot be linked so ``SONAME`` is not useful.