1
0
Эх сурвалжийг харах

Help: Organize and revise 3.7 release notes

Add section headers similar to the 3.6 release notes and move each
individual bullet into an appropriate section.  Revise a few bullets.
Brad King 9 жил өмнө
parent
commit
64e63da0d1
1 өөрчлөгдсөн 199 нэмэгдсэн , 164 устгасан
  1. 199 164
      Help/release/3.7.rst

+ 199 - 164
Help/release/3.7.rst

@@ -7,78 +7,118 @@ CMake 3.7 Release Notes
 
 Changes made since CMake 3.6 include the following.
 
-* The :command:`install` command gained an ``EXPORT_ANDROID_MK``
-  subcommand to install ``Android.mk`` files referencing installed
-  libraries as prebuilts for the Android NDK build system.
-
-* The :command:`export` command gained an ``ANDROID_MK`` option
-  to generate ``Android.mk`` files referencing CMake-built
-  libraries as prebuilts for the Android NDK build system.
-
-* A :module:`AndroidTestUtilities` module was added to manage transfer of
-  test data to an Android device.
-
-* The :command:`if` command gained new boolean comparison operations
-  ``LESS_EQUAL``, ``GREATER_EQUAL``, ``STRLESS_EQUAL``, ``STRGREATER_EQUAL``,
-  ``VERSION_LESS_EQUAL``, and ``VERSION_GREATER_EQUAL``.
+New Features
+============
 
-* The Clang compiler is now supported on AIX.
+Platforms
+---------
 
 * CMake now supports :ref:`Cross Compiling for Android` with simple
   toolchain files.
 
-* On Apple platforms the :prop_tgt:`BUNDLE_EXTENSION` now also applies to
-  Frameworks and App Bundles.
-
-* The :module:`FindBZip2` module now provides imported targets.
+* The Clang compiler is now supported on AIX.
 
-* :manual:`ccmake(1)` learned to support vim-like navigation bindings.
+Generators
+----------
 
-* The :module:`CheckFortranSourceCompiles` module macro
-  ``CHECK_Fortran_SOURCE_COMPILES`` gained a ``SRC_EXT`` option
-  to specify a custom test Fortran source file extension.
+* The :generator:`Ninja` generator learned to conditionally support
+  Fortran when using a ``ninja`` tool that has the necessary features.
+  See generator documentation for details.
 
-* :manual:`cmake(1)` gained a ``-E capabilities`` option to provide a
-  machine-readable (JSON) description of the capabilities of the
-  cmake tool (available generators, etc.).
+* The :generator:`Ninja` generator learned to produce phony targets
+  of the form ``sub/dir/{test,install,package}`` to drive the build
+  of a subdirectory installation, test or packaging target.
+  This is equivalent to ``cd sub/dir; make {test,install,package}``
+  with :ref:`Makefile Generators`.
 
-* :manual:`cmake-gui(1)` gained a button to open the generated project file
-  for :ref:`Visual Studio Generators` and the :generator:`Xcode` generator.
+* The :generator:`Visual Studio 15` generator was added.  This is
+  experimental and based on Preview 4 because this version of VS
+  has not been released.
 
-* A new :manual:`cmake-server(7)` mode was added to provide semantic
-  information about a CMake-generated buildsystem to clients through
-  a JSON protocol.
+* :ref:`Visual Studio Generators` for VS 2010 and above learned to
+  place ``.natvis`` source files into VS project files properly.
 
-* The :manual:`cmake(1)` command learned a ``--trace-source=<file>`` option.
+* The :generator:`Xcode` generator's rudimentary Swift language support
+  learned to honor a new :variable:`CMAKE_Swift_LANGUAGE_VERSION` variable
+  to tell Xcode what version of Swift is used by the source.
 
 * The :generator:`CodeLite` generator gained a new
   :variable:`CMAKE_CODELITE_USE_TARGETS` option
   to change project creation from projects to targets.
 
-* The :module:`CPackDeb` module learned to support long file names
-  when archive format is set to GNU tar.
-  See :variable:`CPACK_DEBIAN_ARCHIVE_TYPE`
+Commands
+--------
 
-* CPack gained a new :variable:`CPACK_PACKAGE_CHECKSUM` variable to
-  enable generation of a checksum file for each package file.
+* The :command:`add_custom_command` command gained a new ``DEPFILE``
+  option that works with the :generator:`Ninja` generator to provide
+  implicit dependency information to the build tool.
 
-* The :module:`CPackRPM` module learned to generate debuginfo
-  packages on demand. See :variable:`CPACK_RPM_DEBUGINFO_PACKAGE`
-  and its per component version.
+* The :command:`cmake_parse_arguments` command gained a new ``PARSE_ARGV``
+  mode to read arguments directly from ``ARGC`` and ``ARGV#``
+  variables inside a :command:`function` body.
 
-* The :module:`CPackRPM` module learned to generate source rpm
-  (SRPM) packages on demand. See :variable:`CPACK_RPM_PACKAGE_SOURCES`,
-  :variable:`CPACK_RPM_SOURCE_PKG_BUILD_PARAMS` and
-  :variable:`CPACK_RPM_SOURCE_PKG_PACKAGING_INSTALL_PREFIX`.
+* The :command:`export` command gained an ``ANDROID_MK`` option
+  to generate ``Android.mk`` files referencing CMake-built
+  libraries as prebuilts for the Android NDK build system.
 
-* The :command:`ctest_configure`, :command:`ctest_build`,
-  :command:`ctest_test`, :command:`ctest_coverage`, and :command:`ctest_upload`
-  commands gained a new ``CAPTURE_CMAKE_ERROR`` option to capture any errors
-  that occur as the commands run into a variable and avoid affecting the return
-  code of the :manual:`ctest(1)` process.
+* The :command:`file(DOWNLOAD)` and :command:`file(UPLOAD)` commands gained
+  ``HTTPHEADER <HTTP-header>`` and ``USERPWD <username>:<password>`` options.
 
-* A :prop_dir:`SOURCE_DIR` directory property was added to get the
-  absolute path to the source directory associated with a directory.
+* The :command:`find_library` and :command:`find_package` commands learned
+  to search in ``lib32/`` directories when the build targets a 32-bit
+  architecture.  See the :prop_gbl:`FIND_LIBRARY_USE_LIB32_PATHS` global
+  property.
+
+* The :command:`find_package` command gained the possibility of
+  sorting compatible libraries by ``NAME`` or by ``NATURAL`` sorting by
+  setting the two new variables :variable:`CMAKE_FIND_PACKAGE_SORT_ORDER`
+  and :variable:`CMAKE_FIND_PACKAGE_SORT_DIRECTION`.
+
+* The :command:`if` command gained new boolean comparison operations
+  ``LESS_EQUAL``, ``GREATER_EQUAL``, ``STRLESS_EQUAL``, ``STRGREATER_EQUAL``,
+  ``VERSION_LESS_EQUAL``, and ``VERSION_GREATER_EQUAL``.
+
+* The :command:`install` command gained an ``EXPORT_ANDROID_MK``
+  subcommand to install ``Android.mk`` files referencing installed
+  libraries as prebuilts for the Android NDK build system.
+
+* The :command:`string(TIMESTAMP)` and :command:`file(TIMESTAMP)`
+  commands gained support for the ``%a`` and ``%b`` placeholders.
+  These are the abbreviated weekday and month names.
+
+* The :command:`try_compile` command source file signature now honors
+  configuration-specific flags (e.g. :variable:`CMAKE_<LANG>_FLAGS_DEBUG`)
+  in the generated test project.  Previously only the default such flags
+  for the current toolchain were used.  See policy :policy:`CMP0066`.
+
+Variables
+---------
+
+* Variable :variable:`CMAKE_FIND_PACKAGE_SORT_ORDER` was added to control
+  the sorting mode of the :command:`find_package` command.
+
+* Variable :variable:`CMAKE_FIND_PACKAGE_SORT_DIRECTION` was added to control
+  the sorting direction the :command:`find_package` command.
+
+* :variable:`Toolchain files <CMAKE_TOOLCHAIN_FILE>` may now set a
+  :variable:`CMAKE_<LANG>_FLAGS_INIT` variable to initialize the
+  :variable:`CMAKE_<LANG>_FLAGS` cache entry the first time a language is
+  enabled in a build tree.
+
+* :variable:`Toolchain files <CMAKE_TOOLCHAIN_FILE>` may now set
+  :variable:`CMAKE_EXE_LINKER_FLAGS_INIT`,
+  :variable:`CMAKE_SHARED_LINKER_FLAGS_INIT`, and
+  :variable:`CMAKE_MODULE_LINKER_FLAGS_INIT` variables to initialize the
+  :variable:`CMAKE_EXE_LINKER_FLAGS`,
+  :variable:`CMAKE_SHARED_LINKER_FLAGS`, and
+  :variable:`CMAKE_MODULE_LINKER_FLAGS` cache entries the first time
+  a language is enabled in a build tree.
+
+Properties
+----------
+
+* On Apple platforms the :prop_tgt:`BUNDLE_EXTENSION` target property
+  now also applies to Frameworks and App Bundles.
 
 * A :prop_dir:`BINARY_DIR` directory property was added to get the
   absolute path to the binary directory corresponding to the source
@@ -88,19 +128,39 @@ Changes made since CMake 3.6 include the following.
   get the list of logical buildsystem target names added by the
   project in a directory.
 
+* A :prop_tgt:`LINK_WHAT_YOU_USE` target property and supporting
+  :variable:`CMAKE_LINK_WHAT_YOU_USE` variable were introduced
+  to detect (on UNIX) shared libraries that are linked but not
+  needed by running ``ldd -r -u``.
+
+* A :prop_dir:`SOURCE_DIR` directory property was added to get the
+  absolute path to the source directory associated with a directory.
+
 * A :prop_dir:`SUBDIRECTORIES` directory property was added to
   get the list of subdirectories added by a project in a directory.
 
-* Support for building CMake itself with some compilers was dropped:
+* A :prop_tgt:`VS_SDK_REFERENCES` target property was added to tell
+  :ref:`Visual Studio Generators` to reference the named SDKs.
 
-  * Visual Studio 7.1 and 2005 -- superseded by VS 2008 and above
-  * MinGW.org mingw32 -- superseded by MSYS2 mingw32 and mingw64
+* A :prop_sf:`VS_TOOL_OVERRIDE` source file property was created to tell
+  :ref:`Visual Studio Generators` what tool to use for a source file.
 
-  CMake still supports generating build systems for other projects using
-  these compilers.
+* The :prop_tgt:`WINDOWS_EXPORT_ALL_SYMBOLS` target property now applies
+  to executable targets with the :prop_tgt:`ENABLE_EXPORTS` property set.
 
-* We no longer provide Linux i386 binaries for download from ``cmake.org``
-  for new versions of CMake.
+* A :prop_sf:`XCODE_FILE_ATTRIBUTES` source file property was
+  added to tell the :generator:`Xcode` generator to generate
+  custom content in the Xcode project attributes for the file.
+
+Modules
+-------
+
+* An :module:`AndroidTestUtilities` module was added to manage transfer
+  of test data to an Android device.
+
+* The :module:`CheckFortranSourceCompiles` module macro
+  ``CHECK_Fortran_SOURCE_COMPILES`` gained a ``SRC_EXT`` option
+  to specify a custom test Fortran source file extension.
 
 * The :module:`ExternalProject` module gained ``HTTP_USERNAME`` and
   ``HTTP_PASSWORD`` options to set http download credentials.
@@ -108,23 +168,14 @@ Changes made since CMake 3.6 include the following.
 * The :module:`ExternalProject` module gained a ``HTTP_HEADER``
   option to add http download headers.
 
-* The :command:`file(DOWNLOAD)` and :command:`file(UPLOAD)` commands
-  gained a ``HTTPHEADER <HTTP-header>`` option.
-
-* The :command:`file(DOWNLOAD)` and :command:`file(UPLOAD)` commands
-  gained a ``USERPWD <username>:<password>`` option.
-
 * The :module:`FindBISON` module ``BISON_TARGET`` macro learned a new
   ``REPORT_FILE`` option to specify the bison ``--report-file=`` option.
 
+* The :module:`FindBZip2` module now provides imported targets.
+
 * A :module:`FindICU` module was introduced to find the International
   Components for Unicode (ICU) libraries and programs.
 
-* The :command:`find_library` and :command:`find_package` commands learned
-  to search in ``lib32/`` directories when the build targets a 32-bit
-  architecture.  See the :prop_gbl:`FIND_LIBRARY_USE_LIB32_PATHS` global
-  property.
-
 * The :module:`FindMatlab` module learned to find a SIMULINK component.
 
 * The :module:`FindOpenCL` module now provides imported targets.
@@ -132,24 +183,8 @@ Changes made since CMake 3.6 include the following.
 * The :module:`FindOpenMP` module learned to detect the OpenMP
   version (specification date) from the compiler.
 
-* The :command:`find_package` command gained the possibility of
-  sorting compatible libraries by ``NAME`` or by ``NATURAL`` sorting by
-  setting the two new variables :variable:`CMAKE_FIND_PACKAGE_SORT_ORDER`
-  and :variable:`CMAKE_FIND_PACKAGE_SORT_DIRECTION`.
-
-* Variable :variable:`CMAKE_FIND_PACKAGE_SORT_ORDER` was added to control
-  the sorting mode of the :command:`find_package` command.
-
-* Variable :variable:`CMAKE_FIND_PACKAGE_SORT_DIRECTION` was added to control
-  the sorting direction the :command:`find_package` command.
-
 * A :module:`FindVulkan` module was added.
 
-* The Fortran dependency scanner learned to support the syntax of
-  `Fortran Submodules`_.
-
-.. _`Fortran Submodules`: http://fortranwiki.org/fortran/show/Submodules
-
 * The :module:`GenerateExportHeader` module learned a new
   ``CUSTOM_CONTENT_FROM_VARIABLE`` option to specify a variable
   containing custom content for inclusion in the generated header.
@@ -157,44 +192,12 @@ Changes made since CMake 3.6 include the following.
 * The :module:`GNUInstallDirs` module gained a new
   :command:`GNUInstallDirs_get_absolute_install_dir` command.
 
-* The :module:`CPackIFW` module gained a new
-  :command:`cpack_ifw_add_package_resources` command to include additional
-  resources in the installer binary.
-
-* The :module:`CPackIFW` module :command:`cpack_ifw_configure_component` and
-  :command:`cpack_ifw_configure_component_group` commands gained a new
-  ``USER_INTERFACES`` option to add a list of additonal pages to the IFW
-  installer.
-
 * The :module:`UseJava` module gained APIs to "export" jar targets
   for use by external CMake projects.  See the ``install_jar_exports``
   and ``export_jars`` functions.
 
-* A :prop_tgt:`LINK_WHAT_YOU_USE` target property and supporting
-  :variable:`CMAKE_LINK_WHAT_YOU_USE` variable were introduced
-  to detect (on UNIX) shared libraries that are linked but not
-  needed by running ``ldd -r -u``.
-
-* The :command:`add_custom_command` command gained a new ``DEPFILE``
-  option that works with the :generator:`Ninja` generator to provide
-  implicit dependency information to the build tool.
-
-* The :generator:`Ninja` generator learned to produce phony targets
-  of the form ``sub/dir/{test,install,package}`` to drive the build
-  of a subdirectory installation, test or packaging target.
-  This is equivalent to ``cd sub/dir; make {test,install,package}``
-  with :ref:`Makefile Generators`.
-
-* The :generator:`Ninja` generator learned to conditionally support
-  Fortran when using a ``ninja`` tool that has the necessary features.
-  See generator documentation for details.
-
-* The :command:`cmake_parse_arguments` command gained a new
-  mode to read arguments directly from ``ARGC`` and ``ARGV#``
-  variables inside a :command:`function` body.
-
-* CPack gained a ``productbuild`` generator on OS X, configured by
-  the :module:`CPackProductBuild` module.
+CTest
+-----
 
 * CTest now supports test fixtures through the new :prop_test:`FIXTURES_SETUP`,
   :prop_test:`FIXTURES_CLEANUP` and :prop_test:`FIXTURES_REQUIRED` test
@@ -202,51 +205,42 @@ Changes made since CMake 3.6 include the following.
   the tests to be run, a fixture's setup and cleanup tests will automatically
   be added to the execution set if any test requires that fixture.
 
-* The :command:`string(TIMESTAMP)` and :command:`file(TIMESTAMP)`
-  commands gained support for the ``%a`` and ``%b`` placeholders.
-  These are the abbreviated weekday and month names.
-
-* :variable:`Toolchain files <CMAKE_TOOLCHAIN_FILE>` may now set a
-  :variable:`CMAKE_<LANG>_FLAGS_INIT` variable to initialize the
-  :variable:`CMAKE_<LANG>_FLAGS` cache entry the first time a language is
-  enabled in a build tree.
-
-* :variable:`Toolchain files <CMAKE_TOOLCHAIN_FILE>` may now set
-  :variable:`CMAKE_EXE_LINKER_FLAGS_INIT`,
-  :variable:`CMAKE_SHARED_LINKER_FLAGS_INIT`, and
-  :variable:`CMAKE_MODULE_LINKER_FLAGS_INIT` variables to initialize the
-  :variable:`CMAKE_EXE_LINKER_FLAGS`,
-  :variable:`CMAKE_SHARED_LINKER_FLAGS`, and
-  :variable:`CMAKE_MODULE_LINKER_FLAGS` cache entries the first time
-  a language is enabled in a build tree.
-
-* The :command:`try_compile` command source file signature now honors
-  configuration-specific flags (e.g. :variable:`CMAKE_<LANG>_FLAGS_DEBUG`)
-  in the generated test project.  Previously only the default such flags
-  for the current toolchain were used.  See policy :policy:`CMP0066`.
+* The :command:`ctest_configure`, :command:`ctest_build`,
+  :command:`ctest_test`, :command:`ctest_coverage`, and :command:`ctest_upload`
+  commands gained a new ``CAPTURE_CMAKE_ERROR`` option to capture any errors
+  that occur as the commands run into a variable and avoid affecting the return
+  code of the :manual:`ctest(1)` process.
 
-* Vim support files ``indent/cmake.vim`` and ``syntax/cmake.vim``
-  from the `vim-cmake-syntax`_ project are now distributed with CMake.
+CPack
+-----
 
-* Vim support files ``cmake-indent.vim``, ``cmake-syntax.vim``, and
-  ``cmake-help.vim`` have been removed in favor of the files now provided
-  from the `vim-cmake-syntax`_ project.
+* CPack gained a ``productbuild`` generator on OS X, configured by
+  the :module:`CPackProductBuild` module.
 
-.. _`vim-cmake-syntax`: https://github.com/pboettch/vim-cmake-syntax
+* CPack gained a new :variable:`CPACK_PACKAGE_CHECKSUM` variable to
+  enable generation of a checksum file for each package file.
 
-* The :generator:`Visual Studio 15` generator was added.
+* The :module:`CPackDeb` module learned to support long file names
+  when archive format is set to GNU tar.
+  See :variable:`CPACK_DEBIAN_ARCHIVE_TYPE`
 
-* :ref:`Visual Studio Generators` for VS 2010 and above learned to
-  place ``.natvis`` source files into VS project files properly.
+* The :module:`CPackIFW` module gained a new
+  :command:`cpack_ifw_add_package_resources` command to include additional
+  resources in the installer binary.
 
-* A :prop_tgt:`VS_SDK_REFERENCES` target property was added to tell
-  :ref:`Visual Studio Generators` to reference the named SDKs.
+* The :module:`CPackIFW` module :command:`cpack_ifw_configure_component` and
+  :command:`cpack_ifw_configure_component_group` commands gained a new
+  ``USER_INTERFACES`` option to add a list of additonal pages to the IFW
+  installer.
 
-* A :prop_sf:`VS_TOOL_OVERRIDE` source file property was created to tell
-  :ref:`Visual Studio Generators` what tool to use for a source file.
+* The :module:`CPackRPM` module learned to generate debuginfo
+  packages on demand. See :variable:`CPACK_RPM_DEBUGINFO_PACKAGE`
+  and its per component version.
 
-* The :prop_tgt:`WINDOWS_EXPORT_ALL_SYMBOLS` target property now applies
-  to executable targets with the :prop_tgt:`ENABLE_EXPORTS` property set.
+* The :module:`CPackRPM` module learned to generate source rpm
+  (SRPM) packages on demand. See :variable:`CPACK_RPM_PACKAGE_SOURCES`,
+  :variable:`CPACK_RPM_SOURCE_PKG_BUILD_PARAMS` and
+  :variable:`CPACK_RPM_SOURCE_PKG_PACKAGING_INSTALL_PREFIX`.
 
 * The CPack WIX generator now supports
   :variable:`CPACK_WIX_SKIP_PROGRAM_FOLDER` to allow specification
@@ -257,18 +251,59 @@ Changes made since CMake 3.6 include the following.
   :variable:`CPACK_COMPONENT_<compName>_DISABLED`.
   This can be used to deselect a component from being installed by default.
 
-* The CPack WIX generator now supports
-  CPACK_WIX_PATCH_FILE fragments for Feature elements.
+* The CPack WIX generator now supports :variable:`CPACK_WIX_PATCH_FILE`
+  fragments for Feature elements.
 
 * The CPack WIX generator now supports
   :variable:`CPACK_WIX_ROOT_FEATURE_TITLE` and
   :variable:`CPACK_WIX_ROOT_FEATURE_DESCRIPTION` to allow the specification
   of a custom title and description for the root feature element.
 
-* A :prop_sf:`XCODE_FILE_ATTRIBUTES` source file property was
-  added to tell the :generator:`Xcode` generator to generate
-  custom content in the Xcode project attributes for the file.
+Other
+-----
 
-* The :generator:`Xcode` generator's rudimentary Swift language support
-  learned to honor a new :variable:`CMAKE_Swift_LANGUAGE_VERSION` variable
-  to tell Xcode what version of Swift is used by the source.
+* :manual:`cmake(1)` gained a ``-E capabilities`` option to provide a
+  machine-readable (JSON) description of the capabilities of the
+  cmake tool (available generators, etc.).
+
+* A new :manual:`cmake-server(7)` mode was added to provide semantic
+  information about a CMake-generated buildsystem to clients through
+  a JSON protocol.  Currently all protocols are experimental and subject
+  to change.
+
+* The :manual:`cmake(1)` command learned a ``--trace-source=<file>`` option.
+
+* :manual:`ccmake(1)` learned to support vim-like navigation bindings.
+
+* :manual:`cmake-gui(1)` gained a button to open the generated project file
+  for :ref:`Visual Studio Generators` and the :generator:`Xcode` generator.
+
+Deprecated and Removed Features
+===============================
+
+* We no longer provide Linux i386 binaries for download from ``cmake.org``
+  for new versions of CMake.
+
+* Vim support files ``cmake-indent.vim``, ``cmake-syntax.vim``, and
+  ``cmake-help.vim`` have been removed in favor of the files now provided
+  from the `vim-cmake-syntax`_ project.
+
+* Support for building CMake itself with some compilers was dropped:
+
+  * Visual Studio 7.1 and 2005 -- superseded by VS 2008 and above
+  * MinGW.org mingw32 -- superseded by MSYS2 mingw32 and mingw64
+
+  CMake still supports generating build systems for other projects using
+  these compilers.
+
+Other Changes
+=============
+
+* The Fortran dependency scanner learned to support the syntax of
+  `Fortran Submodules`_.
+
+* Vim support files ``indent/cmake.vim`` and ``syntax/cmake.vim``
+  from the `vim-cmake-syntax`_ project are now distributed with CMake.
+
+.. _`Fortran Submodules`: http://fortranwiki.org/fortran/show/Submodules
+.. _`vim-cmake-syntax`: https://github.com/pboettch/vim-cmake-syntax