Browse Source

Help: Add `.. versionadded` directives to module docs

Issue: #19715
Nikita Nemkin 5 years ago
parent
commit
8fea95319b
100 changed files with 1140 additions and 325 deletions
  1. 4 0
      Help/cpack_gen/ifw.rst
  2. 5 2
      Help/envvar/CUDAHOSTCXX.rst
  3. 16 12
      Modules/BundleUtilities.cmake
  4. 3 2
      Modules/CMakeGraphVizOptions.cmake
  5. 26 20
      Modules/CMakePackageConfigHelpers.cmake
  6. 12 0
      Modules/CPack.cmake
  7. 76 8
      Modules/CPackIFW.cmake
  8. 12 1
      Modules/CTestCoverageCollectGCOV.cmake
  9. 6 3
      Modules/CTestUseLaunchers.cmake
  10. 4 0
      Modules/CheckCSourceCompiles.cmake
  11. 4 0
      Modules/CheckCSourceRuns.cmake
  12. 4 0
      Modules/CheckCXXSourceCompiles.cmake
  13. 4 0
      Modules/CheckCXXSourceRuns.cmake
  14. 4 2
      Modules/CheckCXXSymbolExists.cmake
  15. 3 2
      Modules/CheckFortranFunctionExists.cmake
  16. 2 0
      Modules/CheckFortranSourceCompiles.cmake
  17. 4 2
      Modules/CheckFunctionExists.cmake
  18. 3 0
      Modules/CheckIPOSupported.cmake
  19. 4 2
      Modules/CheckIncludeFile.cmake
  20. 4 2
      Modules/CheckIncludeFileCXX.cmake
  21. 4 2
      Modules/CheckIncludeFiles.cmake
  22. 12 7
      Modules/CheckLibraryExists.cmake
  23. 14 8
      Modules/CheckPrototypeDefinition.cmake
  24. 14 9
      Modules/CheckStructHasMember.cmake
  25. 4 2
      Modules/CheckSymbolExists.cmake
  26. 16 10
      Modules/CheckTypeSize.cmake
  27. 12 7
      Modules/CheckVariableExists.cmake
  28. 3 0
      Modules/Documentation.cmake
  29. 26 10
      Modules/ExternalData.cmake
  30. 104 24
      Modules/ExternalProject.cmake
  31. 18 8
      Modules/FeatureSummary.cmake
  32. 7 0
      Modules/FetchContent.cmake
  33. 2 0
      Modules/FindALSA.cmake
  34. 3 0
      Modules/FindArmadillo.cmake
  35. 13 3
      Modules/FindBISON.cmake
  36. 30 4
      Modules/FindBLAS.cmake
  37. 4 1
      Modules/FindBZip2.cmake
  38. 44 14
      Modules/FindBoost.cmake
  39. 38 19
      Modules/FindCUDA.cmake
  40. 5 0
      Modules/FindCUDAToolkit.cmake
  41. 12 2
      Modules/FindCURL.cmake
  42. 2 0
      Modules/FindCups.cmake
  43. 6 2
      Modules/FindCurses.cmake
  44. 45 34
      Modules/FindDoxygen.cmake
  45. 2 0
      Modules/FindEXPAT.cmake
  46. 14 5
      Modules/FindFLEX.cmake
  47. 4 0
      Modules/FindFLTK.cmake
  48. 6 1
      Modules/FindFreetype.cmake
  49. 4 1
      Modules/FindGDAL.cmake
  50. 5 0
      Modules/FindGLEW.cmake
  51. 5 0
      Modules/FindGLUT.cmake
  52. 23 1
      Modules/FindGTK2.cmake
  53. 12 3
      Modules/FindGTest.cmake
  54. 1 1
      Modules/FindGettext.cmake
  55. 7 6
      Modules/FindGit.cmake
  56. 2 0
      Modules/FindGnuTLS.cmake
  57. 11 1
      Modules/FindHDF5.cmake
  58. 2 1
      Modules/FindHg.cmake
  59. 3 0
      Modules/FindICU.cmake
  60. 12 0
      Modules/FindIce.cmake
  61. 3 0
      Modules/FindImageMagick.cmake
  62. 7 1
      Modules/FindIntl.cmake
  63. 7 1
      Modules/FindJPEG.cmake
  64. 6 1
      Modules/FindJava.cmake
  65. 21 0
      Modules/FindLAPACK.cmake
  66. 4 0
      Modules/FindLATEX.cmake
  67. 4 0
      Modules/FindLibArchive.cmake
  68. 2 0
      Modules/FindLibLZMA.cmake
  69. 6 2
      Modules/FindLibXml2.cmake
  70. 4 1
      Modules/FindLibXslt.cmake
  71. 3 2
      Modules/FindLua.cmake
  72. 9 2
      Modules/FindMPI.cmake
  73. 35 3
      Modules/FindMatlab.cmake
  74. 12 5
      Modules/FindOpenACC.cmake
  75. 5 0
      Modules/FindOpenCL.cmake
  76. 33 11
      Modules/FindOpenGL.cmake
  77. 8 2
      Modules/FindOpenMP.cmake
  78. 15 2
      Modules/FindOpenSSL.cmake
  79. 2 0
      Modules/FindPNG.cmake
  80. 15 3
      Modules/FindPackageHandleStandardArgs.cmake
  81. 59 17
      Modules/FindPkgConfig.cmake
  82. 2 0
      Modules/FindPostgreSQL.cmake
  83. 21 3
      Modules/FindProtobuf.cmake
  84. 1 1
      Modules/FindPython.cmake
  85. 1 1
      Modules/FindPython2.cmake
  86. 1 1
      Modules/FindPython3.cmake
  87. 3 3
      Modules/FindQt.cmake
  88. 8 4
      Modules/FindRuby.cmake
  89. 8 0
      Modules/FindSDL.cmake
  90. 11 8
      Modules/FindSWIG.cmake
  91. 2 1
      Modules/FindSquish.cmake
  92. 6 3
      Modules/FindSubversion.cmake
  93. 7 0
      Modules/FindTIFF.cmake
  94. 4 0
      Modules/FindThreads.cmake
  95. 5 2
      Modules/FindVulkan.cmake
  96. 20 0
      Modules/FindX11.cmake
  97. 5 0
      Modules/FindXercesC.cmake
  98. 5 0
      Modules/FindZLIB.cmake
  99. 9 0
      Modules/FindwxWidgets.cmake
  100. 10 1
      Modules/GNUInstallDirs.cmake

+ 4 - 0
Help/cpack_gen/ifw.rst

@@ -203,6 +203,8 @@ Package
 
 .. variable:: CPACK_IFW_PACKAGE_RESOURCES
 
+ .. versionadded:: 3.7
+
  List of additional resources ('.qrc' files) to include in the installer
  binary.
 
@@ -273,6 +275,8 @@ These variables are cached, and may be configured if needed.
 
 .. variable:: CPACK_IFW_ARCHIVEGEN_EXECUTABLE
 
+ .. versionadded:: 3.19
+
  The path to ``archivegen``.
 
 .. variable:: CPACK_IFW_BINARYCREATOR_EXECUTABLE

+ 5 - 2
Help/envvar/CUDAHOSTCXX.rst

@@ -13,5 +13,8 @@ configuration run (including the first), the environment variable will be
 ignored if the :variable:`CMAKE_CUDA_HOST_COMPILER` variable is defined.
 
 This environment variable is primarily meant for use with projects that
-enable ``CUDA`` as a first-class language.  The :module:`FindCUDA`
-module will also use it to initialize its ``CUDA_HOST_COMPILER`` setting.
+enable ``CUDA`` as a first-class language.
+
+.. versionadded:: 3.13
+  The :module:`FindCUDA`
+  module will use this variable to initialize its ``CUDA_HOST_COMPILER`` setting.

+ 16 - 12
Modules/BundleUtilities.cmake

@@ -59,9 +59,10 @@ fix each one up according to its own list of prerequisites.
 Then clear all the keys and call ``verify_app`` on the final bundle to
 ensure that it is truly standalone.
 
-As an optional parameter (``IGNORE_ITEM``) a list of file names can be passed,
-which are then ignored
-(e.g. ``IGNORE_ITEM "vcredist_x86.exe;vcredist_x64.exe"``).
+.. versionadded:: 3.6
+  As an optional parameter (``IGNORE_ITEM``) a list of file names can be passed,
+  which are then ignored
+  (e.g. ``IGNORE_ITEM "vcredist_x86.exe;vcredist_x64.exe"``).
 
 .. code-block:: cmake
 
@@ -78,9 +79,10 @@ Verifies that an application ``<app>`` appears valid based on running
 analysis tools on it.  Calls :command:`message(FATAL_ERROR)` if the application
 is not verified.
 
-As an optional parameter (``IGNORE_ITEM``) a list of file names can be passed,
-which are then ignored
-(e.g. ``IGNORE_ITEM "vcredist_x86.exe;vcredist_x64.exe"``)
+.. versionadded:: 3.6
+  As an optional parameter (``IGNORE_ITEM``) a list of file names can be passed,
+  which are then ignored
+  (e.g. ``IGNORE_ITEM "vcredist_x86.exe;vcredist_x64.exe"``)
 
 .. code-block:: cmake
 
@@ -155,9 +157,10 @@ them.  Set values associated with each key such that we can loop over
 all of them and copy prerequisite libs into the bundle and then do
 appropriate ``install_name_tool`` fixups.
 
-As an optional parameter (``IGNORE_ITEM``) a list of file names can be passed,
-which are then ignored
-(e.g. ``IGNORE_ITEM "vcredist_x86.exe;vcredist_x64.exe"``)
+.. versionadded:: 3.6
+  As an optional parameter (``IGNORE_ITEM``) a list of file names can be passed,
+  which are then ignored
+  (e.g. ``IGNORE_ITEM "vcredist_x86.exe;vcredist_x64.exe"``)
 
 .. code-block:: cmake
 
@@ -215,9 +218,10 @@ Verifies that the sum of all prerequisites of all files inside the
 bundle are contained within the bundle or are ``system`` libraries,
 presumed to exist everywhere.
 
-As an optional parameter (``IGNORE_ITEM``) a list of file names can be passed,
-which are then ignored
-(e.g. ``IGNORE_ITEM "vcredist_x86.exe;vcredist_x64.exe"``)
+.. versionadded:: 3.6
+  As an optional parameter (``IGNORE_ITEM``) a list of file names can be passed,
+  which are then ignored
+  (e.g. ``IGNORE_ITEM "vcredist_x86.exe;vcredist_x64.exe"``)
 
 .. code-block:: cmake
 

+ 3 - 2
Modules/CMakeGraphVizOptions.cmake

@@ -29,8 +29,9 @@ Graphviz package:
 
   dot -Tpng -o foo.png foo.dot
 
-The different dependency types ``PUBLIC``, ``INTERFACE`` and ``PRIVATE``
-are represented as solid, dashed and dotted edges.
+.. versionadded:: 3.10
+  The different dependency types ``PUBLIC``, ``INTERFACE`` and ``PRIVATE``
+  are represented as solid, dashed and dotted edges.
 
 Variables specific to the Graphviz support
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

+ 26 - 20
Modules/CMakePackageConfigHelpers.cmake

@@ -81,13 +81,14 @@ always relative to the installed location of the package.  This works both for
 relative and also for absolute locations.  For absolute locations it works
 only if the absolute location is a subdirectory of ``INSTALL_PREFIX``.
 
-If the ``INSTALL_PREFIX`` argument is passed, this is used as base path to
-calculate all the relative paths.  The ``<path>`` argument must be an absolute
-path.  If this argument is not passed, the :variable:`CMAKE_INSTALL_PREFIX`
-variable will be used instead.  The default value is good when generating a
-FooConfig.cmake file to use your package from the install tree.  When
-generating a FooConfig.cmake file to use your package from the build tree this
-option should be used.
+.. versionadded:: 3.1
+  If the ``INSTALL_PREFIX`` argument is passed, this is used as base path to
+  calculate all the relative paths.  The ``<path>`` argument must be an absolute
+  path.  If this argument is not passed, the :variable:`CMAKE_INSTALL_PREFIX`
+  variable will be used instead.  The default value is good when generating a
+  FooConfig.cmake file to use your package from the install tree.  When
+  generating a FooConfig.cmake file to use your package from the build tree this
+  option should be used.
 
 By default ``configure_package_config_file`` also generates two helper macros,
 ``set_and_check()`` and ``check_required_components()`` into the
@@ -159,22 +160,27 @@ If your project has more elaborated version matching rules, you will need to
 write your own custom ``ConfigVersion.cmake`` file instead of using this
 macro.
 
-.. note:: ``COMPATIBILITY_MODE`` ``AnyNewerVersion`` handles the version range
-  if any is specified (see :command:`find_package` command for the details).
-  All other modes are incompatible with version ranges and will display an
-  author warning if one is specified.
+.. versionadded:: 3.11
+  The ``SameMinorVersion`` compatibility mode.
 
-If ``ARCH_INDEPENDENT`` is given, the installed package version will be
-considered compatible even if it was built for a different architecture than
-the requested architecture.  Otherwise, an architecture check will be performed,
-and the package will be considered compatible only if the architecture matches
-exactly.  For example, if the package is built for a 32-bit architecture, the
-package is only considered compatible if it is used on a 32-bit architecture,
-unless ``ARCH_INDEPENDENT`` is given, in which case the package is considered
-compatible on any architecture.
+.. versionadded:: 3.14
+  If ``ARCH_INDEPENDENT`` is given, the installed package version will be
+  considered compatible even if it was built for a different architecture than
+  the requested architecture.  Otherwise, an architecture check will be performed,
+  and the package will be considered compatible only if the architecture matches
+  exactly.  For example, if the package is built for a 32-bit architecture, the
+  package is only considered compatible if it is used on a 32-bit architecture,
+  unless ``ARCH_INDEPENDENT`` is given, in which case the package is considered
+  compatible on any architecture.
 
 .. note:: ``ARCH_INDEPENDENT`` is intended for header-only libraries or similar
-   packages with no binaries.
+  packages with no binaries.
+
+.. versionadded:: 3.19
+  ``COMPATIBILITY_MODE`` ``AnyNewerVersion`` handles the version range
+  if any is specified (see :command:`find_package` command for the details).
+  All other modes are incompatible with version ranges and will display an
+  author warning if one is specified.
 
 Internally, this macro executes :command:`configure_file()` to create the
 resulting version file.  Depending on the ``COMPATIBILITY``, the corresponding

+ 12 - 0
Modules/CPack.cmake

@@ -194,6 +194,8 @@ installers.  The most commonly-used variables are:
 
 .. variable:: CPACK_PACKAGE_CHECKSUM
 
+  .. versionadded:: 3.7
+
   An algorithm that will be used to generate an additional file with the
   checksum of the package.  The output file name will be::
 
@@ -271,6 +273,8 @@ installers.  The most commonly-used variables are:
 
 .. variable:: CPACK_VERBATIM_VARIABLES
 
+  .. versionadded:: 3.4
+
   If set to ``TRUE``, values of variables prefixed with ``CPACK_`` will be
   escaped before being written to the configuration files, so that the cpack
   program receives them exactly as they were specified.  If not, characters
@@ -356,6 +360,8 @@ The following variables are for advanced uses of CPack:
 
 .. variable:: CPACK_INSTALL_SCRIPTS
 
+  .. versionadded:: 3.16
+
   Extra CMake scripts executed by CPack during its local staging
   installation.  They are executed before installing the files to be packaged.
   The scripts are not called by a standalone install (e.g.: ``make install``).
@@ -372,6 +378,8 @@ The following variables are for advanced uses of CPack:
 
 .. variable:: CPACK_PRE_BUILD_SCRIPTS
 
+  .. versionadded:: 3.19
+
   List of CMake scripts to execute after CPack has installed the files to
   be packaged into a staging directory and before producing the package(s)
   from those files. See also :variable:`CPACK_INSTALL_SCRIPTS` and
@@ -379,6 +387,8 @@ The following variables are for advanced uses of CPack:
 
 .. variable:: CPACK_POST_BUILD_SCRIPTS
 
+  .. versionadded:: 3.19
+
   List of CMake scripts to execute after CPack has produced the resultant
   packages and before copying them back to the build directory.
   See also :variable:`CPACK_INSTALL_SCRIPTS`,
@@ -386,6 +396,8 @@ The following variables are for advanced uses of CPack:
 
 .. variable:: CPACK_PACKAGE_FILES
 
+  .. versionadded:: 3.19
+
   List of package files created in the staging directory, with each file
   provided as a full absolute path.  This variable is populated by CPack
   just before invoking the post-build scripts listed in

+ 76 - 8
Modules/CPackIFW.cmake

@@ -51,20 +51,28 @@ The module defines the following commands:
     of a group to which it belongs.
 
   ``ESSENTIAL``
+    .. versionadded:: 3.6
+
     if set, then the package manager stays disabled until that
     component is updated.
 
   ``VIRTUAL``
+    .. versionadded:: 3.8
+
     if set, then the component will be hidden from the installer.
     It is a equivalent of the ``HIDDEN`` option from the
     :command:`cpack_add_component` command.
 
   ``FORCED_INSTALLATION``
+    .. versionadded:: 3.8
+
     if set, then the component must always be installed.
     It is a equivalent of the ``REQUIRED`` option from the
     :command:`cpack_add_component` command.
 
   ``REQUIRES_ADMIN_RIGHTS``
+    .. versionadded:: 3.8
+
     set it if the component needs to be installed with elevated permissions.
 
   ``NAME``
@@ -72,14 +80,20 @@ The module defines the following commands:
     By default used origin component name.
 
   ``DISPLAY_NAME``
+    .. versionadded:: 3.8
+
     set to rewrite original name configured by
     :command:`cpack_add_component` command.
 
   ``DESCRIPTION``
+    .. versionadded:: 3.8
+
     set to rewrite original description configured by
     :command:`cpack_add_component` command.
 
   ``UPDATE_TEXT``
+    .. versionadded:: 3.8
+
     will be added to the component description if this is an update to
     the component.
 
@@ -88,22 +102,32 @@ The module defines the following commands:
     By default used :variable:`CPACK_PACKAGE_VERSION`.
 
   ``RELEASE_DATE``
+    .. versionadded:: 3.8
+
     keep empty to auto generate.
 
   ``SCRIPT``
     is a relative or absolute path to operations script
     for this component.
 
-  ``PRIORITY`` | ``SORTING_PRIORITY``
+  ``SORTING_PRIORITY``
+    .. versionadded:: 3.8
+
     is priority of the component in the tree.
-    The ``PRIORITY`` option is deprecated and will be removed in a future
-    version of CMake. Please use ``SORTING_PRIORITY`` option instead.
 
-  ``DEPENDS`` | ``DEPENDENCIES``
+  ``PRIORITY``
+    .. deprecated:: 3.8
+      Old name for ``SORTING_PRIORITY``.
+
+  ``DEPENDS``, ``DEPENDENCIES``
+    .. versionadded:: 3.8
+
     list of dependency component or component group identifiers in
     QtIFW style.
 
   ``AUTO_DEPEND_ON``
+    .. versionadded:: 3.8
+
     list of identifiers of component or component group in QtIFW style
     that this component has an automatic dependency on.
 
@@ -112,21 +136,31 @@ The module defines the following commands:
     component. You can specify more then one license.
 
   ``DEFAULT``
+    .. versionadded:: 3.8
+
     Possible values are: TRUE, FALSE, and SCRIPT.
     Set to FALSE to disable the component in the installer or to SCRIPT
     to resolved during runtime (don't forget add the file of the script
     as a value of the ``SCRIPT`` option).
 
   ``USER_INTERFACES``
+    .. versionadded:: 3.7
+
     is a list of <file_path> ('.ui' files) representing pages to load.
 
   ``TRANSLATIONS``
+    .. versionadded:: 3.8
+
     is a list of <file_path> ('.qm' files) representing translations to load.
 
   ``REPLACES``
+    .. versionadded:: 3.10
+
     list of identifiers of component or component group to replace.
 
   ``CHECKABLE``
+    .. versionadded:: 3.10
+
     Possible values are: TRUE, FALSE.
     Set to FALSE if you want to hide the checkbox for an item.
     This is useful when only a few subcomponents should be selected
@@ -162,13 +196,19 @@ The module defines the following commands:
   command.
 
   ``VIRTUAL``
+    .. versionadded:: 3.8
+
     if set, then the group will be hidden from the installer.
     Note that setting this on a root component does not work.
 
   ``FORCED_INSTALLATION``
+    .. versionadded:: 3.8
+
     if set, then the group must always be installed.
 
   ``REQUIRES_ADMIN_RIGHTS``
+    .. versionadded:: 3.8
+
     set it if the component group needs to be installed with elevated
     permissions.
 
@@ -177,14 +217,20 @@ The module defines the following commands:
     By default used origin component group name.
 
   ``DISPLAY_NAME``
+    .. versionadded:: 3.8
+
     set to rewrite original name configured by
     :command:`cpack_add_component_group` command.
 
   ``DESCRIPTION``
+    .. versionadded:: 3.8
+
     set to rewrite original description configured by
     :command:`cpack_add_component_group` command.
 
   ``UPDATE_TEXT``
+    .. versionadded:: 3.8
+
     will be added to the component group description if this is an update to
     the component group.
 
@@ -193,22 +239,30 @@ The module defines the following commands:
     By default used :variable:`CPACK_PACKAGE_VERSION`.
 
   ``RELEASE_DATE``
+    .. versionadded:: 3.8
+
     keep empty to auto generate.
 
   ``SCRIPT``
     is a relative or absolute path to operations script
     for this component group.
 
-  ``PRIORITY`` | ``SORTING_PRIORITY``
+  ``SORTING_PRIORITY``
     is priority of the component group in the tree.
-    The ``PRIORITY`` option is deprecated and will be removed in a future
-    version of CMake. Please use ``SORTING_PRIORITY`` option instead.
 
-  ``DEPENDS`` | ``DEPENDENCIES``
+  ``PRIORITY``
+    .. deprecated:: 3.8
+      Old name for ``SORTING_PRIORITY``.
+
+  ``DEPENDS``, ``DEPENDENCIES``
+    .. versionadded:: 3.8
+
     list of dependency component or component group identifiers in
     QtIFW style.
 
   ``AUTO_DEPEND_ON``
+    .. versionadded:: 3.8
+
     list of identifiers of component or component group in QtIFW style
     that this component group has an automatic dependency on.
 
@@ -217,6 +271,8 @@ The module defines the following commands:
     component group. You can specify more then one license.
 
   ``DEFAULT``
+    .. versionadded:: 3.8
+
     Possible values are: TRUE, FALSE, and SCRIPT.
     Set to TRUE to preselect the group in the installer
     (this takes effect only on groups that have no visible child components)
@@ -224,15 +280,23 @@ The module defines the following commands:
     the script as a value of the ``SCRIPT`` option).
 
   ``USER_INTERFACES``
+    .. versionadded:: 3.7
+
     is a list of <file_path> ('.ui' files) representing pages to load.
 
   ``TRANSLATIONS``
+    .. versionadded:: 3.8
+
     is a list of <file_path> ('.qm' files) representing translations to load.
 
   ``REPLACES``
+    .. versionadded:: 3.10
+
     list of identifiers of component or component group to replace.
 
   ``CHECKABLE``
+    .. versionadded:: 3.10
+
     Possible values are: TRUE, FALSE.
     Set to FALSE if you want to hide the checkbox for an item.
     This is useful when only a few subcomponents should be selected
@@ -272,6 +336,8 @@ The module defines the following commands:
 
 .. command:: cpack_ifw_update_repository
 
+  .. versionadded:: 3.6
+
   Update QtIFW specific repository from remote repository.
 
   ::
@@ -307,6 +373,8 @@ The module defines the following commands:
 
 .. command:: cpack_ifw_add_package_resources
 
+  .. versionadded:: 3.7
+
   Add additional resources in the installer binary.
 
   ::

+ 12 - 1
Modules/CTestCoverageCollectGCOV.cmake

@@ -39,7 +39,10 @@ After generating this tar file, it can be sent to CDash for display with the
     upload to CDash.  Relative paths will be interpreted with respect
     to the top-level build directory.
 
-  ``TARBALL_COMPRESSION <option>`` Specify a compression algorithm for the
+  ``TARBALL_COMPRESSION <option>``
+    .. versionadded:: 3.18
+
+    Specify a compression algorithm for the
     ``TARBALL`` data file.  Using this option reduces the size of the data file
     before it is submitted to CDash.  ``<option>`` must be one of ``GZIP``,
     ``BZIP2``, ``XZ``, ``ZSTD``, ``FROM_EXT``, or an expression that CMake
@@ -68,15 +71,23 @@ After generating this tar file, it can be sent to CDash for display with the
     If not specified, the default option is just ``-b -x``.
 
   ``GLOB``
+    .. versionadded:: 3.6
+
     Recursively search for .gcda files in build_dir rather than
     determining search locations by reading TargetDirectories.txt.
 
   ``DELETE``
+    .. versionadded:: 3.6
+
     Delete coverage files after they've been packaged into the .tar.
 
   ``QUIET``
     Suppress non-error messages that otherwise would have been
     printed out by this function.
+
+  .. versionadded:: 3.3
+    Added support for the :variable:`CTEST_CUSTOM_COVERAGE_EXCLUDE` variable.
+
 #]=======================================================================]
 
 function(ctest_coverage_collect_gcov)

+ 6 - 3
Modules/CTestUseLaunchers.cmake

@@ -24,9 +24,12 @@ long as your CMakeLists uses include(CTest) or
 include(CTestUseLaunchers), it will use the value of the ENV variable
 to initialize a CTEST_USE_LAUNCHERS cache variable.  This cache
 variable initialization only occurs if CTEST_USE_LAUNCHERS is not
-already defined. If CTEST_USE_LAUNCHERS is on in a ctest -S script
-the ctest_configure command will add -DCTEST_USE_LAUNCHERS:BOOL=TRUE
-to the cmake command used to configure the project.
+already defined.
+
+.. versionadded:: 3.8
+  If CTEST_USE_LAUNCHERS is on in a ctest -S script
+  the ctest_configure command will add -DCTEST_USE_LAUNCHERS:BOOL=TRUE
+  to the cmake command used to configure the project.
 #]=======================================================================]
 
 if(NOT DEFINED CTEST_USE_LAUNCHERS AND DEFINED ENV{CTEST_USE_LAUNCHERS_DEFAULT})

+ 4 - 0
Modules/CheckCSourceCompiles.cmake

@@ -44,6 +44,8 @@ Check if given C source compiles and links into an executable.
     directory property will be ignored.
 
   ``CMAKE_REQUIRED_LINK_OPTIONS``
+    .. versionadded:: 3.14
+
     A :ref:`;-list <CMake Language Lists>` of options to add to the link
     command (see :command:`try_compile` for further details).
 
@@ -54,6 +56,8 @@ Check if given C source compiles and links into an executable.
     further details).
 
   ``CMAKE_REQUIRED_QUIET``
+    .. versionadded:: 3.1
+
     If this variable evaluates to a boolean true value, all status messages
     associated with the check will be suppressed.
 

+ 4 - 0
Modules/CheckCSourceRuns.cmake

@@ -43,6 +43,8 @@ subsequently be run.
     directory property will be ignored.
 
   ``CMAKE_REQUIRED_LINK_OPTIONS``
+    .. versionadded:: 3.14
+
     A :ref:`;-list <CMake Language Lists>` of options to add to the link
     command (see :command:`try_run` for further details).
 
@@ -53,6 +55,8 @@ subsequently be run.
     further details).
 
   ``CMAKE_REQUIRED_QUIET``
+    .. versionadded:: 3.1
+
     If this variable evaluates to a boolean true value, all status messages
     associated with the check will be suppressed.
 

+ 4 - 0
Modules/CheckCXXSourceCompiles.cmake

@@ -44,6 +44,8 @@ Check if given C++ source compiles and links into an executable.
     directory property will be ignored.
 
   ``CMAKE_REQUIRED_LINK_OPTIONS``
+    .. versionadded:: 3.14
+
     A :ref:`;-list <CMake Language Lists>` of options to add to the link
     command (see :command:`try_compile` for further details).
 
@@ -54,6 +56,8 @@ Check if given C++ source compiles and links into an executable.
     further details).
 
   ``CMAKE_REQUIRED_QUIET``
+    .. versionadded:: 3.1
+
     If this variable evaluates to a boolean true value, all status messages
     associated with the check will be suppressed.
 

+ 4 - 0
Modules/CheckCXXSourceRuns.cmake

@@ -43,6 +43,8 @@ subsequently be run.
     directory property will be ignored.
 
   ``CMAKE_REQUIRED_LINK_OPTIONS``
+    .. versionadded:: 3.14
+
     A :ref:`;-list <CMake Language Lists>` of options to add to the link
     command (see :command:`try_run` for further details).
 
@@ -53,6 +55,8 @@ subsequently be run.
     further details).
 
   ``CMAKE_REQUIRED_QUIET``
+    .. versionadded:: 3.1
+
     If this variable evaluates to a boolean true value, all status messages
     associated with the check will be suppressed.
 

+ 4 - 2
Modules/CheckCXXSymbolExists.cmake

@@ -49,12 +49,14 @@ the way the check is run:
   a :ref:`;-list <CMake Language Lists>` of header search paths to pass to
   the compiler.
 ``CMAKE_REQUIRED_LINK_OPTIONS``
-  a :ref:`;-list <CMake Language Lists>` of options to add to the link command.
+  .. versionadded:: 3.14
+    a :ref:`;-list <CMake Language Lists>` of options to add to the link command.
 ``CMAKE_REQUIRED_LIBRARIES``
   a :ref:`;-list <CMake Language Lists>` of libraries to add to the link
   command. See policy :policy:`CMP0075`.
 ``CMAKE_REQUIRED_QUIET``
-  execute quietly without messages.
+  .. versionadded:: 3.1
+    execute quietly without messages.
 
 For example:
 

+ 3 - 2
Modules/CheckFortranFunctionExists.cmake

@@ -24,8 +24,9 @@ The following variables may be set before calling this macro to modify
 the way the check is run:
 
 ``CMAKE_REQUIRED_LINK_OPTIONS``
-  A :ref:`;-list <CMake Language Lists>` of options to add to the link
-  command (see :command:`try_compile` for further details).
+  .. versionadded:: 3.14
+    A :ref:`;-list <CMake Language Lists>` of options to add to the link
+    command (see :command:`try_compile` for further details).
 
 ``CMAKE_REQUIRED_LIBRARIES``
   A :ref:`;-list <CMake Language Lists>` of libraries to add to the link

+ 2 - 0
Modules/CheckFortranSourceCompiles.cmake

@@ -65,6 +65,8 @@ Check if given Fortran source compiles and links into an executable.
     directory property will be ignored.
 
   ``CMAKE_REQUIRED_LINK_OPTIONS``
+    .. versionadded:: 3.14
+
     A :ref:`;-list <CMake Language Lists>` of options to add to the link
     command (see :command:`try_compile` for further details).
 

+ 4 - 2
Modules/CheckFunctionExists.cmake

@@ -28,12 +28,14 @@ way the check is run:
   a :ref:`;-list <CMake Language Lists>` of header search paths to pass to
   the compiler.
 ``CMAKE_REQUIRED_LINK_OPTIONS``
-  a :ref:`;-list <CMake Language Lists>` of options to add to the link command.
+  .. versionadded:: 3.14
+    a :ref:`;-list <CMake Language Lists>` of options to add to the link command.
 ``CMAKE_REQUIRED_LIBRARIES``
   a :ref:`;-list <CMake Language Lists>` of libraries to add to the link
   command. See policy :policy:`CMP0075`.
 ``CMAKE_REQUIRED_QUIET``
-  execute quietly without messages.
+  .. versionadded:: 3.1
+    execute quietly without messages.
 
 .. note::
 

+ 3 - 0
Modules/CheckIPOSupported.cmake

@@ -33,6 +33,9 @@ property.
 It makes no sense to use this module when :policy:`CMP0069` is set to ``OLD`` so
 module will return error in this case. See policy :policy:`CMP0069` for details.
 
+.. versionadded:: 3.13
+  Add support for Visual Studio generators.
+
 Examples
 ^^^^^^^^
 

+ 4 - 2
Modules/CheckIncludeFile.cmake

@@ -29,12 +29,14 @@ the way the check is run:
   a :ref:`;-list <CMake Language Lists>` of header search paths to pass to
   the compiler.
 ``CMAKE_REQUIRED_LINK_OPTIONS``
-  a :ref:`;-list <CMake Language Lists>` of options to add to the link command.
+  .. versionadded:: 3.14
+    a :ref:`;-list <CMake Language Lists>` of options to add to the link command.
 ``CMAKE_REQUIRED_LIBRARIES``
   a :ref:`;-list <CMake Language Lists>` of libraries to add to the link
   command. See policy :policy:`CMP0075`.
 ``CMAKE_REQUIRED_QUIET``
-  execute quietly without messages.
+  .. versionadded:: 3.1
+    execute quietly without messages.
 
 See the :module:`CheckIncludeFiles` module to check for multiple headers
 at once.  See the :module:`CheckIncludeFileCXX` module to check for headers

+ 4 - 2
Modules/CheckIncludeFileCXX.cmake

@@ -29,12 +29,14 @@ the way the check is run:
   a :ref:`;-list <CMake Language Lists>` of header search paths to pass to
   the compiler.
 ``CMAKE_REQUIRED_LINK_OPTIONS``
-  a :ref:`;-list <CMake Language Lists>` of options to add to the link command.
+  .. versionadded:: 3.14
+    a :ref:`;-list <CMake Language Lists>` of options to add to the link command.
 ``CMAKE_REQUIRED_LIBRARIES``
   a :ref:`;-list <CMake Language Lists>` of libraries to add to the link
   command. See policy :policy:`CMP0075`.
 ``CMAKE_REQUIRED_QUIET``
-  execute quietly without messages.
+  .. versionadded:: 3.1
+    execute quietly without messages.
 
 See modules :module:`CheckIncludeFile` and :module:`CheckIncludeFiles`
 to check for one or more ``C`` headers.

+ 4 - 2
Modules/CheckIncludeFiles.cmake

@@ -35,12 +35,14 @@ the way the check is run:
   a :ref:`;-list <CMake Language Lists>` of header search paths to pass to
   the compiler.
 ``CMAKE_REQUIRED_LINK_OPTIONS``
-  a :ref:`;-list <CMake Language Lists>` of options to add to the link command.
+  .. versionadded:: 3.14
+    a :ref:`;-list <CMake Language Lists>` of options to add to the link command.
 ``CMAKE_REQUIRED_LIBRARIES``
   a :ref:`;-list <CMake Language Lists>` of libraries to add to the link
   command. See policy :policy:`CMP0075`.
 ``CMAKE_REQUIRED_QUIET``
-  execute quietly without messages.
+  .. versionadded:: 3.1
+    execute quietly without messages.
 
 See modules :module:`CheckIncludeFile` and :module:`CheckIncludeFileCXX`
 to check for a single header file in ``C`` or ``CXX`` languages.

+ 12 - 7
Modules/CheckLibraryExists.cmake

@@ -26,13 +26,18 @@ Check if the function exists.
 The following variables may be set before calling this macro to modify
 the way the check is run:
 
-::
-
-  CMAKE_REQUIRED_FLAGS = string of compile command line flags
-  CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar)
-  CMAKE_REQUIRED_LINK_OPTIONS = list of options to pass to link command
-  CMAKE_REQUIRED_LIBRARIES = list of libraries to link
-  CMAKE_REQUIRED_QUIET = execute quietly without messages
+``CMAKE_REQUIRED_FLAGS``
+  string of compile command line flags.
+``CMAKE_REQUIRED_DEFINITIONS``
+  list of macros to define (-DFOO=bar).
+``CMAKE_REQUIRED_LINK_OPTIONS``
+  .. versionadded:: 3.14
+    list of options to pass to link command.
+``CMAKE_REQUIRED_LIBRARIES``
+  list of libraries to link.
+``CMAKE_REQUIRED_QUIET``
+  .. versionadded:: 3.1
+    execute quietly without messages.
 #]=======================================================================]
 
 include_guard(GLOBAL)

+ 14 - 8
Modules/CheckPrototypeDefinition.cmake

@@ -35,14 +35,20 @@ Check if the prototype we expect is correct.
 The following variables may be set before calling this function to modify
 the way the check is run:
 
-::
-
-  CMAKE_REQUIRED_FLAGS = string of compile command line flags
-  CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar)
-  CMAKE_REQUIRED_INCLUDES = list of include directories
-  CMAKE_REQUIRED_LINK_OPTIONS = list of options to pass to link command
-  CMAKE_REQUIRED_LIBRARIES = list of libraries to link
-  CMAKE_REQUIRED_QUIET = execute quietly without messages
+``CMAKE_REQUIRED_FLAGS``
+  string of compile command line flags.
+``CMAKE_REQUIRED_DEFINITIONS``
+  list of macros to define (-DFOO=bar).
+``CMAKE_REQUIRED_INCLUDES``
+  list of include directories.
+``CMAKE_REQUIRED_LINK_OPTIONS``
+  .. versionadded:: 3.14
+    list of options to pass to link command.
+``CMAKE_REQUIRED_LIBRARIES``
+  list of libraries to link.
+``CMAKE_REQUIRED_QUIET``
+  .. versionadded:: 3.1
+    execute quietly without messages.
 #]=======================================================================]
 
 #

+ 14 - 9
Modules/CheckStructHasMember.cmake

@@ -23,18 +23,23 @@ Check if the given struct or class has the specified member variable
     <language> - the compiler to use (C or CXX)
 
 
-
 The following variables may be set before calling this macro to modify
 the way the check is run:
 
-::
-
-  CMAKE_REQUIRED_FLAGS = string of compile command line flags
-  CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar)
-  CMAKE_REQUIRED_INCLUDES = list of include directories
-  CMAKE_REQUIRED_LINK_OPTIONS = list of options to pass to link command
-  CMAKE_REQUIRED_LIBRARIES = list of libraries to link
-  CMAKE_REQUIRED_QUIET = execute quietly without messages
+``CMAKE_REQUIRED_FLAGS``
+  string of compile command line flags.
+``CMAKE_REQUIRED_DEFINITIONS``
+  list of macros to define (-DFOO=bar).
+``CMAKE_REQUIRED_INCLUDES``
+  list of include directories.
+``CMAKE_REQUIRED_LINK_OPTIONS``
+  .. versionadded:: 3.14
+    list of options to pass to link command.
+``CMAKE_REQUIRED_LIBRARIES``
+  list of libraries to link.
+``CMAKE_REQUIRED_QUIET``
+  .. versionadded:: 3.1
+    execute quietly without messages.
 
 
 Example:

+ 4 - 2
Modules/CheckSymbolExists.cmake

@@ -39,12 +39,14 @@ the way the check is run:
   a :ref:`;-list <CMake Language Lists>` of header search paths to pass to
   the compiler.
 ``CMAKE_REQUIRED_LINK_OPTIONS``
-  a :ref:`;-list <CMake Language Lists>` of options to add to the link command.
+  .. versionadded:: 3.14
+    a :ref:`;-list <CMake Language Lists>` of options to add to the link command.
 ``CMAKE_REQUIRED_LIBRARIES``
   a :ref:`;-list <CMake Language Lists>` of libraries to add to the link
   command. See policy :policy:`CMP0075`.
 ``CMAKE_REQUIRED_QUIET``
-  execute quietly without messages.
+  .. versionadded:: 3.1
+    execute quietly without messages.
 
 For example:
 

+ 16 - 10
Modules/CheckTypeSize.cmake

@@ -57,19 +57,25 @@ member you can do something like this:
   check_type_size("((struct something*)0)->member" SIZEOF_MEMBER)
 
 
-
 The following variables may be set before calling this macro to modify
 the way the check is run:
 
-::
-
-  CMAKE_REQUIRED_FLAGS = string of compile command line flags
-  CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar)
-  CMAKE_REQUIRED_INCLUDES = list of include directories
-  CMAKE_REQUIRED_LINK_OPTIONS  = list of options to pass to link command
-  CMAKE_REQUIRED_LIBRARIES = list of libraries to link
-  CMAKE_REQUIRED_QUIET = execute quietly without messages
-  CMAKE_EXTRA_INCLUDE_FILES = list of extra headers to include
+``CMAKE_REQUIRED_FLAGS``
+  string of compile command line flags.
+``CMAKE_REQUIRED_DEFINITIONS``
+  list of macros to define (-DFOO=bar).
+``CMAKE_REQUIRED_INCLUDES``
+  list of include directories.
+``CMAKE_REQUIRED_LINK_OPTIONS``
+  .. versionadded:: 3.14
+    list of options to pass to link command.
+``CMAKE_REQUIRED_LIBRARIES``
+  list of libraries to link.
+``CMAKE_REQUIRED_QUIET``
+  .. versionadded:: 3.1
+    execute quietly without messages.
+``CMAKE_EXTRA_INCLUDE_FILES``
+  list of extra headers to include.
 #]=======================================================================]
 
 include(CheckIncludeFile)

+ 12 - 7
Modules/CheckVariableExists.cmake

@@ -26,13 +26,18 @@ Check if the variable exists.
 The following variables may be set before calling this macro to modify
 the way the check is run:
 
-::
-
-  CMAKE_REQUIRED_FLAGS = string of compile command line flags
-  CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar)
-  CMAKE_REQUIRED_LINK_OPTIONS = list of options to pass to link command
-  CMAKE_REQUIRED_LIBRARIES = list of libraries to link
-  CMAKE_REQUIRED_QUIET = execute quietly without messages
+``CMAKE_REQUIRED_FLAGS``
+  string of compile command line flags.
+``CMAKE_REQUIRED_DEFINITIONS``
+  list of macros to define (-DFOO=bar).
+``CMAKE_REQUIRED_LINK_OPTIONS``
+  .. versionadded:: 3.14
+    list of options to pass to link command.
+``CMAKE_REQUIRED_LIBRARIES``
+  list of libraries to link.
+``CMAKE_REQUIRED_QUIET``
+  .. versionadded:: 3.1
+    execute quietly without messages.
 #]=======================================================================]
 
 include_guard(GLOBAL)

+ 3 - 0
Modules/Documentation.cmake

@@ -5,6 +5,9 @@
 Documentation
 -------------
 
+.. deprecated:: 3.18
+  This module does nothing, unless policy :policy:`CMP0106` is set to ``OLD``.
+
 This module provides support for the VTK documentation framework.  It
 relies on several tools (Doxygen, Perl, etc).
 #]=======================================================================]

+ 26 - 10
Modules/ExternalData.cmake

@@ -90,10 +90,11 @@ Module Functions
   in one of the paths specified in the ``ExternalData_OBJECT_STORES``
   variable.
 
-  The ``SHOW_PROGRESS`` argument may be passed to suppress progress information
-  during the download of objects. If not provided, it defaults to ``OFF`` for
-  :generator:`Ninja` and :generator:`Ninja Multi-Config` generators and ``ON``
-  otherwise.
+  .. versionadded:: 3.20
+    The ``SHOW_PROGRESS`` argument may be passed to suppress progress information
+    during the download of objects. If not provided, it defaults to ``OFF`` for
+    :generator:`Ninja` and :generator:`Ninja Multi-Config` generators and ``ON``
+    otherwise.
 
   Typically only one target is needed to manage all external data within
   a project.  Call this function once at the end of configuration after
@@ -114,6 +115,8 @@ calling any of the functions provided by this module.
 
 .. variable:: ExternalData_CUSTOM_SCRIPT_<key>
 
+  .. versionadded:: 3.2
+
   Specify a full path to a ``.cmake`` custom fetch script identified by
   ``<key>`` in entries of the ``ExternalData_URL_TEMPLATES`` list.
   See `Custom Fetch Scripts`_.
@@ -132,6 +135,8 @@ calling any of the functions provided by this module.
 
 .. variable:: ExternalData_NO_SYMLINKS
 
+  .. versionadded:: 3.3
+
   The real data files named by expanded ``DATA{}`` references may be made
   available under ``ExternalData_BINARY_ROOT`` using symbolic links on
   some platforms.  The ``ExternalData_NO_SYMLINKS`` variable may be set
@@ -177,6 +182,8 @@ calling any of the functions provided by this module.
 
 .. variable:: ExternalData_URL_ALGO_<algo>_<key>
 
+  .. versionadded:: 3.3
+
   Specify a custom URL component to be substituted for URL template
   placeholders of the form ``%(algo:<key>)``, where ``<key>`` is a
   valid C identifier, when fetching an object referenced via hash
@@ -207,10 +214,11 @@ For example, the argument ``DATA{img.png}`` may be satisfied by either a
 real ``img.png`` file in the current source directory or a ``img.png.md5``
 file containing its MD5 sum.
 
-Multiple content links of the same name with different hash algorithms
-are supported (e.g. ``img.png.sha256`` and ``img.png.sha1``) so long as
-they all correspond to the same real file.  This allows objects to be
-fetched from sources indexed by different hash algorithms.
+.. versionadded:: 3.8
+  Multiple content links of the same name with different hash algorithms
+  are supported (e.g. ``img.png.sha256`` and ``img.png.sha1``) so long as
+  they all correspond to the same real file.  This allows objects to be
+  fetched from sources indexed by different hash algorithms.
 
 Referencing File Series
 """""""""""""""""""""""
@@ -269,8 +277,11 @@ associated file options.  For example, the argument
 ``DATA{MyDataDir/,REGEX:.*}`` will pass the full path to a ``MyDataDir``
 directory on the command line and ensure that the directory contains
 files corresponding to every file or content link in the ``MyDataDir``
-source directory.  In order to match associated files in subdirectories,
-specify a ``RECURSE:`` option, e.g. ``DATA{MyDataDir/,RECURSE:,REGEX:.*}``.
+source directory.
+
+.. versionadded:: 3.3
+  In order to match associated files in subdirectories,
+  specify a ``RECURSE:`` option, e.g. ``DATA{MyDataDir/,RECURSE:,REGEX:.*}``.
 
 Hash Algorithms
 ^^^^^^^^^^^^^^^
@@ -290,6 +301,9 @@ The following hash algorithms are supported::
  SHA3_384    .sha3-384 Keccak SHA-3
  SHA3_512    .sha3-512 Keccak SHA-3
 
+.. versionadded:: 3.8
+  Added the ``SHA3_*`` hash algorithms.
+
 Note that the hashes are used only for unique data identification and
 download verification.
 
@@ -298,6 +312,8 @@ download verification.
 Custom Fetch Scripts
 ^^^^^^^^^^^^^^^^^^^^
 
+.. versionadded:: 3.2
+
 When a data file must be fetched from one of the URL templates
 specified in the ``ExternalData_URL_TEMPLATES`` variable, it is
 normally downloaded using the :command:`file(DOWNLOAD)` command.

+ 104 - 24
Modules/ExternalProject.cmake

@@ -56,6 +56,8 @@ External Project Definition
       (see *Logging Options* below).
 
     ``LOG_DIR <dir>``
+      .. versionadded:: 3.14
+
       Directory in which to store the logs of each step.
 
     ``DOWNLOAD_DIR <dir>``
@@ -144,6 +146,9 @@ External Project Definition
         is determined by inspecting the actual content rather than using logic
         based on the file extension.
 
+        .. versionchanged:: 3.7
+          Multiple URLs are allowed.
+
       ``URL_HASH <algo>=<hashValue>``
         Hash of the archive file to be downloaded. The argument should be of
         the form ``<algo>=<hashValue>`` where ``algo`` can be any of the hashing
@@ -164,6 +169,8 @@ External Project Definition
         of code internal to the ``ExternalProject`` module.
 
       ``DOWNLOAD_NO_EXTRACT <bool>``
+        .. versionadded:: 3.6
+
         Allows the extraction part of the download step to be disabled by
         passing a boolean true value for this option. If this option is not
         given, the downloaded contents will be unpacked automatically if
@@ -180,15 +187,23 @@ External Project Definition
         Maximum time allowed for file download operations.
 
       ``INACTIVITY_TIMEOUT <seconds>``
+        .. versionadded:: 3.19
+
         Terminate the operation after a period of inactivity.
 
       ``HTTP_USERNAME <username>``
+        .. versionadded:: 3.7
+
         Username for the download operation if authentication is required.
 
       ``HTTP_PASSWORD <password>``
+        .. versionadded:: 3.7
+
         Password for the download operation if authentication is required.
 
       ``HTTP_HEADER <header1> [<header2>...]``
+        .. versionadded:: 3.7
+
         Provides an arbitrary list of HTTP headers for the download operation.
         This can be useful for accessing content in systems like AWS, etc.
 
@@ -201,6 +216,9 @@ External Project Definition
         cannot be provided, this option can be an alternative verification
         measure.
 
+        .. versionchanged:: 3.6
+          This option also applies to ``git clone`` invocations.
+
       ``TLS_CAINFO <file>``
         Specify a custom certificate authority file to use if ``TLS_VERIFY``
         is enabled. If this option is not specified, the value of the
@@ -208,6 +226,8 @@ External Project Definition
         :command:`file(DOWNLOAD)`)
 
       ``NETRC <level>``
+        .. versionadded:: 3.11
+
         Specify whether the ``.netrc`` file is to be used for operation.
         If this option is not specified, the value of the ``CMAKE_NETRC``
         variable will be used instead (see :command:`file(DOWNLOAD)`)
@@ -225,11 +245,16 @@ External Project Definition
           is ignored.
 
       ``NETRC_FILE <file>``
+        .. versionadded:: 3.11
+
         Specify an alternative ``.netrc`` file to the one in your home directory
         if the ``NETRC`` level is ``OPTIONAL`` or ``REQUIRED``. If this option
         is not specified, the value of the ``CMAKE_NETRC_FILE`` variable will
         be used instead (see :command:`file(DOWNLOAD)`)
 
+      .. versionadded:: 3.1
+        Added support for `tbz2`, `.tar.xz`, `.txz`, and `.7z` extensions.
+
     *Git*
       NOTE: A git version of 1.6.5 or later is required if this download method
       is used.
@@ -267,22 +292,30 @@ External Project Definition
 
       ``GIT_SUBMODULES <module>...``
         Specific git submodules that should also be updated. If this option is
-        not provided, all git submodules will be updated. When :policy:`CMP0097`
-        is set to ``NEW`` if this value is set to an empty string then no submodules
-        are initialized or updated.
+        not provided, all git submodules will be updated.
+
+        .. versionchanged:: 3.16
+          When :policy:`CMP0097` is set to ``NEW``, if this value is set
+          to an empty string then no submodules are initialized or updated.
 
       ``GIT_SUBMODULES_RECURSE <bool>``
+        .. versionadded:: 3.17
+
         Specify whether git submodules (if any) should update recursively by
         passing the ``--recursive`` flag to ``git submodule update``.
         If not specified, the default is on.
 
       ``GIT_SHALLOW <bool>``
+        .. versionadded:: 3.6
+
         When this option is enabled, the ``git clone`` operation will be given
         the ``--depth 1`` option. This performs a shallow clone, which avoids
         downloading the whole history and instead retrieves just the commit
         denoted by the ``GIT_TAG`` option.
 
       ``GIT_PROGRESS <bool>``
+        .. versionadded:: 3.8
+
         When enabled, this option instructs the ``git clone`` operation to
         report its progress by passing it the ``--progress`` option. Without
         this option, the clone step for large projects may appear to make the
@@ -292,12 +325,16 @@ External Project Definition
         overly noisy if lots of external projects are used.
 
       ``GIT_CONFIG <option1> [<option2>...]``
+        .. versionadded:: 3.8
+
         Specify a list of config options to pass to ``git clone``. Each option
         listed will be transformed into its own ``--config <option>`` on the
         ``git clone`` command line, with each option required to be in the
         form ``key=value``.
 
       ``GIT_REMOTE_UPDATE_STRATEGY <strategy>``
+        .. versionadded:: 3.18
+
         When ``GIT_TAG`` refers to a remote branch, this option can be used to
         specify how the update step behaves.  The ``<strategy>`` must be one of
         the following:
@@ -379,6 +416,8 @@ External Project Definition
       :manual:`generator expressions <cmake-generator-expressions(7)>`.
 
     ``UPDATE_DISCONNECTED <bool>``
+      .. versionadded:: 3.2
+
       When enabled, this option causes the update step to be skipped. It does
       not, however, prevent the download step. The update step can still be
       added as a step target (see :command:`ExternalProject_Add_StepTargets`)
@@ -436,6 +475,8 @@ External Project Definition
       ``CONFIGURE_COMMAND`` option.
 
     ``CMAKE_GENERATOR_PLATFORM <platform>``
+      .. versionadded:: 3.1
+
       Pass a generator-specific platform name to the CMake command (see
       :variable:`CMAKE_GENERATOR_PLATFORM`). It is an error to provide this
       option without the ``CMAKE_GENERATOR`` option.
@@ -446,6 +487,8 @@ External Project Definition
       option without the ``CMAKE_GENERATOR`` option.
 
     ``CMAKE_GENERATOR_INSTANCE <instance>``
+      .. versionadded:: 3.11
+
       Pass a generator-specific instance selection to the CMake command (see
       :variable:`CMAKE_GENERATOR_INSTANCE`). It is an error to provide this
       option without the ``CMAKE_GENERATOR`` option.
@@ -454,8 +497,10 @@ External Project Definition
       The specified arguments are passed to the ``cmake`` command line. They
       can be any argument the ``cmake`` command understands, not just cache
       values defined by ``-D...`` arguments (see also
-      :manual:`CMake Options <cmake(1)>`). In addition, arguments may use
-      :manual:`generator expressions <cmake-generator-expressions(7)>`.
+      :manual:`CMake Options <cmake(1)>`).
+
+      .. versionadded:: 3.3
+        Arguments may use :manual:`generator expressions <cmake-generator-expressions(7)>`.
 
     ``CMAKE_CACHE_ARGS <arg>...``
       This is an alternate way of specifying cache variables where command line
@@ -463,10 +508,14 @@ External Project Definition
       the form ``-Dvar:STRING=value``, which are then transformed into
       CMake :command:`set` commands with the ``FORCE`` option used. These
       ``set()`` commands are written to a pre-load script which is then applied
-      using the :manual:`cmake -C <cmake(1)>` command line option. Arguments
-      may use :manual:`generator expressions <cmake-generator-expressions(7)>`.
+      using the :manual:`cmake -C <cmake(1)>` command line option.
+
+      .. versionadded:: 3.3
+        Arguments may use :manual:`generator expressions <cmake-generator-expressions(7)>`.
 
     ``CMAKE_CACHE_DEFAULT_ARGS <arg>...``
+      .. versionadded:: 3.2
+
       This is the same as the ``CMAKE_CACHE_ARGS`` option except the ``set()``
       commands do not include the ``FORCE`` keyword. This means the values act
       as initial defaults only and will not override any variables already set
@@ -474,20 +523,25 @@ External Project Definition
       different behavior depending on whether the build starts from a fresh
       build directory or re-uses previous build contents.
 
-      If the CMake generator is the ``Green Hills MULTI`` and not overridden then
-      the original project's settings for the GHS toolset and target system
-      customization cache variables are propagated into the external project.
+      .. versionadded:: 3.15
+        If the CMake generator is the ``Green Hills MULTI`` and not overridden then
+        the original project's settings for the GHS toolset and target system
+        customization cache variables are propagated into the external project.
 
     ``SOURCE_SUBDIR <dir>``
+      .. versionadded:: 3.7
+
       When no ``CONFIGURE_COMMAND`` option is specified, the configure step
       assumes the external project has a ``CMakeLists.txt`` file at the top of
       its source tree (i.e. in ``SOURCE_DIR``). The ``SOURCE_SUBDIR`` option
       can be used to point to an alternative directory within the source tree
       to use as the top of the CMake source tree instead. This must be a
       relative path and it will be interpreted as being relative to
-      ``SOURCE_DIR``.  When ``BUILD_IN_SOURCE 1`` is specified, the
-      ``BUILD_COMMAND`` is used to point to an alternative directory within the
-      source tree.
+      ``SOURCE_DIR``.
+
+      .. versionadded:: 3.14
+        When ``BUILD_IN_SOURCE`` option is enabled, the ``BUILD_COMMAND``
+        is used to point to an alternative directory within the source tree.
 
   **Build Step Options:**
     If the configure step assumed the external project uses CMake as its build
@@ -524,6 +578,8 @@ External Project Definition
       developers might modify the sources in ``SOURCE_DIR``).
 
     ``BUILD_BYPRODUCTS <file>...``
+      .. versionadded:: 3.2
+
       Specifies files that will be generated by the build command but which
       might or might not have their modification time updated by subsequent
       builds. These ultimately get passed through as ``BYPRODUCTS`` to the
@@ -578,6 +634,8 @@ External Project Definition
       ``TEST_AFTER_INSTALL`` are enabled, the latter is silently ignored.
 
     ``TEST_EXCLUDE_FROM_MAIN <bool>``
+      .. versionadded:: 3.2
+
       If enabled, the main build's default ALL target will not depend on the
       test step. This can be a useful way of ensuring the test step is defined
       but only gets invoked when manually requested.
@@ -597,6 +655,8 @@ External Project Definition
       When enabled, the output of the update step is logged to files.
 
     ``LOG_PATCH <bool>``
+      .. versionadded:: 3.14
+
       When enabled, the output of the patch step is logged to files.
 
     ``LOG_CONFIGURE <bool>``
@@ -612,10 +672,14 @@ External Project Definition
       When enabled, the output of the test step is logged to files.
 
     ``LOG_MERGED_STDOUTERR <bool>``
+      .. versionadded:: 3.14
+
       When enabled, stdout and stderr will be merged for any step whose
       output is being logged to files.
 
     ``LOG_OUTPUT_ON_FAILURE <bool>``
+      .. versionadded:: 3.14
+
       This option only has an effect if at least one of the other ``LOG_<step>``
       options is enabled.  If an error occurs for a step which has logging to
       file enabled, that step's output will be printed to the console if
@@ -624,6 +688,8 @@ External Project Definition
       console.
 
   **Terminal Access Options:**
+    .. versionadded:: 3.4
+
     Steps can be given direct access to the terminal in some cases. Giving a
     step access to the terminal may allow it to receive terminal input if
     required, such as for authentication details not provided by other options.
@@ -673,8 +739,9 @@ External Project Definition
       discussion of the effects of this option.
 
     ``INDEPENDENT_STEP_TARGETS <step-target>...``
-      Deprecated.  This is allowed only if policy :policy:`CMP0114` is not set
-      to ``NEW``.
+      .. deprecated:: 3.19
+        This is allowed only if policy :policy:`CMP0114` is not set to ``NEW``.
+
       Generates custom targets for the specified steps and prevent these targets
       from having the usual dependencies applied to them. If this option is not
       specified, the default value is taken from the
@@ -780,6 +847,8 @@ control needed to implement such step-level capabilities.
     Files on which this custom step depends.
 
   ``INDEPENDENT <bool>``
+    .. versionadded:: 3.19
+
     Specifies whether this step is independent of the external dependencies
     specified by the :command:`ExternalProject_Add`'s ``DEPENDS`` option.
     The default is ``FALSE``.  Steps marked as independent may depend only
@@ -795,6 +864,8 @@ control needed to implement such step-level capabilities.
     on the external targets, but may depend on targets for other steps.
 
   ``BYPRODUCTS <file>...``
+    .. versionadded:: 3.2
+
     Files that will be generated by this custom step but which might or might
     not have their modification time updated by subsequent builds. This list of
     files will ultimately be passed through as the ``BYPRODUCTS`` option to the
@@ -831,6 +902,12 @@ control needed to implement such step-level capabilities.
   corresponding property values defined in the original call to
   :command:`ExternalProject_Add`.
 
+  .. versionadded:: 3.3
+    Token replacement is extended to byproducts.
+
+  .. versionadded:: 3.11
+    The ``<DOWNLOAD_DIR>`` substitution token.
+
 .. command:: ExternalProject_Add_StepTargets
 
   The ``ExternalProject_Add_StepTargets()`` function generates targets for the
@@ -868,15 +945,16 @@ control needed to implement such step-level capabilities.
   can save having to repeatedly specify the same set of step targets when
   multiple external projects are being defined.
 
-  If :policy:`CMP0114` is set to ``NEW``, step targets are fully responsible
-  for holding the custom commands implementing their steps.  The primary target
-  created by ``ExternalProject_Add`` depends on the step targets, and the
-  step targets depend on each other.  The target-level dependencies match
-  the file-level dependencies used by the custom commands for each step.
-  The targets for steps created with :command:`ExternalProject_Add_Step`'s
-  ``INDEPENDENT`` option do not depend on the external targets specified
-  by :command:`ExternalProject_Add`'s ``DEPENDS`` option.  The predefined
-  steps ``mkdir``, ``download``, ``update``, and ``patch`` are independent.
+  .. versionadded:: 3.19
+    If :policy:`CMP0114` is set to ``NEW``, step targets are fully responsible
+    for holding the custom commands implementing their steps.  The primary target
+    created by ``ExternalProject_Add`` depends on the step targets, and the
+    step targets depend on each other.  The target-level dependencies match
+    the file-level dependencies used by the custom commands for each step.
+    The targets for steps created with :command:`ExternalProject_Add_Step`'s
+    ``INDEPENDENT`` option do not depend on the external targets specified
+    by :command:`ExternalProject_Add`'s ``DEPENDS`` option.  The predefined
+    steps ``mkdir``, ``download``, ``update``, and ``patch`` are independent.
 
   If :policy:`CMP0114` is not ``NEW``, the following deprecated behavior
   is available:
@@ -901,6 +979,8 @@ control needed to implement such step-level capabilities.
 
 .. command:: ExternalProject_Add_StepDependencies
 
+  .. versionadded:: 3.2
+
   The ``ExternalProject_Add_StepDependencies()`` function can be used to add
   dependencies to a step. The dependencies added must be targets CMake already
   knows about (these can be ordinary executable or library targets, custom

+ 18 - 8
Modules/FeatureSummary.cmake

@@ -66,6 +66,8 @@ The default value for this global property is ``OPTIONAL``.
 
 .. variable:: FeatureSummary_<TYPE>_DESCRIPTION
 
+.. versionadded:: 3.9
+
 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.
@@ -242,12 +244,13 @@ endfunction()
   ``<TYPE>_PACKAGES_NOT_FOUND``
    only those packages which have not been found which have the type <TYPE>
 
-  With the exception of the ``ALL`` value, these values can be combined
-  in order to customize the output. For example:
+  .. versionchanged:: 3.1
+    With the exception of the ``ALL`` value, these values can be combined
+    in order to customize the output. For example:
 
-  .. code-block:: cmake
+    .. code-block:: cmake
 
-    feature_summary(WHAT ENABLED_FEATURES DISABLED_FEATURES)
+      feature_summary(WHAT ENABLED_FEATURES DISABLED_FEATURES)
 
   If a ``FILENAME`` is given, the information is printed into this file.  If
   ``APPEND`` is used, it is appended to this file, otherwise the file is
@@ -268,14 +271,18 @@ endfunction()
   The default value for the :variable:`FeatureSummary_REQUIRED_PKG_TYPES` global
   property is ``REQUIRED``.
 
+  .. versionadded:: 3.9
+    The ``DEFAULT_DESCRIPTION`` option.
+
   The :variable:`FeatureSummary_DEFAULT_PKG_TYPE` global property can be
   modified to change the default package type assigned when not explicitly
   assigned by the user.
 
-  If the ``QUIET_ON_EMPTY`` option is used, if only one type of package was
-  requested, and no packages belonging to that category were found, then no
-  output (including the ``DESCRIPTION``) is printed or added to the ``VAR``
-  variable.
+  .. versionadded:: 3.8
+    If the ``QUIET_ON_EMPTY`` option is used, if only one type of package was
+    requested, and no packages belonging to that category were found, then no
+    output (including the ``DESCRIPTION``) is printed or added to the ``VAR``
+    variable.
 
   Example 1, append everything to a file:
 
@@ -617,6 +624,9 @@ endfunction()
   be displayed using ``feature_summary()`` for ``ENABLED_FEATURES`` and
   ``DISABLED_FEATURES`` respectively.
 
+  .. versionchanged:: 3.8
+    ``<enabled>`` can be a list of conditions.
+
   Example for setting the info for a feature:
 
   .. code-block:: cmake

+ 7 - 0
Modules/FetchContent.cmake

@@ -77,6 +77,9 @@ operation and would not normally be the way the module is used, but it is
 sometimes useful as part of implementing some higher level feature or to
 populate some content in CMake's script mode.
 
+.. versionchanged:: 3.14
+  ``FetchContent`` commands can access the terminal. This is necessary
+  for password prompts and real-time progress displays to work.
 
 Commands
 ^^^^^^^^
@@ -371,6 +374,8 @@ is simpler and provides additional features over the pattern above.
   :variable:`CMAKE_MAKE_PROGRAM` variables will need to be set appropriately
   on the command line invoking the script.
 
+  .. versionadded:: 3.18
+    Added support for ``DOWNLOAD_NO_EXTRACT`` and ``SOURCE_SUBDIR`` options.
 
 .. command:: FetchContent_GetProperties
 
@@ -416,6 +421,8 @@ is simpler and provides additional features over the pattern above.
 
     FetchContent_MakeAvailable( <name1> [<name2>...] )
 
+  .. versionadded:: 3.14
+
   This command implements the common pattern typically needed for most
   dependencies.  It iterates over each of the named dependencies in turn
   and for each one it loosely follows the

+ 2 - 0
Modules/FindALSA.cmake

@@ -12,6 +12,8 @@ Find the alsa libraries (``asound``)
 IMPORTED Targets
 ^^^^^^^^^^^^^^^^
 
+.. versionadded:: 3.12
+
 This module defines :prop_tgt:`IMPORTED` target ``ALSA::ALSA``, if
 ALSA has been found.
 

+ 3 - 0
Modules/FindArmadillo.cmake

@@ -8,6 +8,9 @@ FindArmadillo
 Find the Armadillo C++ library.
 Armadillo is a library for linear algebra & scientific computing.
 
+.. versionadded:: 3.18
+  Support for linking wrapped libraries directly (``ARMA_DONT_USE_WRAPPER``).
+
 Using Armadillo:
 
 ::

+ 13 - 3
Modules/FindBISON.cmake

@@ -35,21 +35,31 @@ the path to a yacc file.  ``<CodeOutput>`` is the name of the source file
 generated by bison.  A header file is also be generated, and contains
 the token list.
 
+.. versionchanged:: 3.14
+  When :policy:`CMP0088` is set to ``NEW``, ``bison`` runs in the
+  :variable:`CMAKE_CURRENT_BINARY_DIR` directory.
+
 The options are:
 
 ``COMPILE_FLAGS <flags>``
   Specify flags to be added to the ``bison`` command line.
 
 ``DEFINES_FILE <file>``
+  .. versionadded:: 3.4
+
   Specify a non-default header ``<file>`` to be generated by ``bison``.
 
 ``VERBOSE [<file>]``
   Tell ``bison`` to write a report file of the grammar and parser.
-  If ``<file>`` is given, it specifies path the report file is copied to.
-  ``[<file>]`` is left for backward compatibility of this module.
-  Use ``VERBOSE REPORT_FILE <file>``.
+
+  .. deprecated:: 3.7
+    If ``<file>`` is given, it specifies path the report file is copied to.
+    ``[<file>]`` is left for backward compatibility of this module.
+    Use ``VERBOSE REPORT_FILE <file>``.
 
 ``REPORT_FILE <file>``
+  .. versionadded:: 3.7
+
   Specify a non-default report ``<file>``, if generated.
 
 The macro defines the following variables:

+ 30 - 4
Modules/FindBLAS.cmake

@@ -55,16 +55,39 @@ The following variables may be set to influence this module's behavior:
   * ``Arm_ilp64_mp``
   * ``Generic``
 
+  .. versionadded:: 3.6
+    ``OpenBLAS`` support.
+
+  .. versionadded:: 3.11
+    ``FLAME`` support.
+
+  .. versionadded:: 3.13
+    Added ILP64 MKL variants (``Intel10_64ilp``, ``Intel10_64ilp_seq``).
+
+  .. versionadded:: 3.17
+    Added single dynamic library MKL variant (``Intel10_64_dyn``).
+
+  .. versionadded:: 3.18
+    Arm Performance Libraries support (``Arm``, ``Arm_mp``, ``Arm_ilp64``,
+    ``Arm_ilp64_mp``).
+
+  .. versionadded:: 3.19
+    ``FlexiBLAS`` support.
+
 ``BLA_F95``
   if ``ON`` tries to find the BLAS95 interfaces
 
 ``BLA_PREFER_PKGCONFIG``
+  .. versionadded:: 3.11
+
   if set ``pkg-config`` will be used to search for a BLAS library first
   and if one is found that is preferred
 
 Imported targets
 ^^^^^^^^^^^^^^^^
 
+.. versionadded:: 3.18
+
 This module defines the following :prop_tgt:`IMPORTED` target:
 
 ``BLAS::BLAS``
@@ -104,10 +127,13 @@ This module defines the following variables:
 Hints
 ^^^^^
 
-Set the ``MKLROOT`` environment variable to a directory that contains an MKL
-installation, or add the directory to the dynamic library loader environment
-variable for your platform (``LIB``, ``DYLD_LIBRARY_PATH`` or
-``LD_LIBRARY_PATH``).
+``MKLROOT``
+  .. versionadded:: 3.15
+
+  Set this environment variable to a directory that contains an MKL
+  installation, or add the directory to the dynamic library loader environment
+  variable for your platform (``LIB``, ``DYLD_LIBRARY_PATH`` or
+  ``LD_LIBRARY_PATH``).
 
 #]=======================================================================]
 

+ 4 - 1
Modules/FindBZip2.cmake

@@ -10,6 +10,8 @@ Try to find BZip2
 IMPORTED Targets
 ^^^^^^^^^^^^^^^^
 
+.. versionadded:: 3.12
+
 This module defines :prop_tgt:`IMPORTED` target ``BZip2::BZip2``, if
 BZip2 has been found.
 
@@ -21,7 +23,8 @@ This module defines the following variables:
 ``BZIP2_FOUND``
   system has BZip2
 ``BZIP2_INCLUDE_DIRS``
-  the BZip2 include directories
+  .. versionadded:: 3.12
+    the BZip2 include directories
 ``BZIP2_LIBRARIES``
   Link these to use BZip2
 ``BZIP2_NEED_PREFIX``

+ 44 - 14
Modules/FindBoost.cmake

@@ -24,6 +24,18 @@ This module finds headers and requested component libraries OR a CMake
 package configuration file provided by a "Boost CMake" build.  For the
 latter case skip to the :ref:`Boost CMake` section below.
 
+.. versionadded:: 3.7
+  ``bzip2`` and ``zlib`` components (Windows only).
+
+.. versionadded:: 3.11
+  The ``OPTIONAL_COMPONENTS`` option.
+
+.. versionadded:: 3.13
+  ``stacktrace_*`` components.
+
+.. versionadded:: 3.19
+  ``bzip2`` and ``zlib`` components on all platforms.
+
 Result Variables
 ^^^^^^^^^^^^^^^^
 
@@ -55,8 +67,12 @@ This module defines the following variables:
   Boost version number in ``X.Y.Z`` format.
 
 ``Boost_VERSION``
-  If :policy:`CMP0093` policy is set to ``NEW``, same as ``Boost_VERSION_STRING``.
-  If :policy:`CMP0093` policy is set to ``OLD`` or unset, same as ``Boost_VERSION_MACRO``.
+  Boost version number in ``X.Y.Z`` format (same as ``Boost_VERSION_STRING``).
+
+  .. versionchanged:: 3.15
+    In previous CMake versions, this variable used the raw version string
+    from the Boost header (same as ``Boost_VERSION_MACRO``).
+    See policy :policy:`CMP0093`.
 
 ``Boost_LIB_VERSION``
   Version string appended to library filenames.
@@ -78,14 +94,8 @@ This module defines the following variables:
   information about Boost's automatic linking
   displayed during compilation
 
-Note that Boost Python components require a Python version suffix
-(Boost 1.67 and later), e.g. ``python36`` or ``python27`` for the
-versions built against Python 3.6 and 2.7, respectively.  This also
-applies to additional components using Python including
-``mpi_python`` and ``numpy``.  Earlier Boost releases may use
-distribution-specific suffixes such as ``2``, ``3`` or ``2.7``.
-These may also be used as suffixes, but note that they are not
-portable.
+.. versionadded:: 3.15
+  The ``Boost_VERSION_<PART>`` variables.
 
 Cache variables
 ^^^^^^^^^^^^^^^
@@ -107,6 +117,10 @@ Search results are saved persistently in CMake cache entries:
 ``Boost_<COMPONENT>_LIBRARY_RELEASE``
   Component ``<COMPONENT>`` library release variant.
 
+.. versionadded:: 3.3
+  Per-configuration variables ``Boost_LIBRARY_DIR_RELEASE`` and
+  ``Boost_LIBRARY_DIR_DEBUG``.
+
 Hints
 ^^^^^
 
@@ -151,11 +165,16 @@ search results affected by the changes and searches again.
 Imported Targets
 ^^^^^^^^^^^^^^^^
 
+.. versionadded:: 3.5
+
 This module defines the following :prop_tgt:`IMPORTED` targets:
 
-``Boost::headers``
+``Boost::boost``
   Target for header-only dependencies. (Boost include directory).
-  ``Boost::boost`` is an alias.
+
+``Boost::headers``
+  .. versionadded:: 3.15
+    Alias for ``Boost::boost``.
 
 ``Boost::<component>``
   Target for specific component dependency (shared or static library);
@@ -193,10 +212,14 @@ Users or projects may tell this module which variant to find by
 setting variables:
 
 ``Boost_USE_DEBUG_LIBS``
+  .. versionadded:: 3.10
+
   Set to ``ON`` or ``OFF`` to specify whether to search and use the debug
   libraries.  Default is ``ON``.
 
 ``Boost_USE_RELEASE_LIBS``
+  .. versionadded:: 3.10
+
   Set to ``ON`` or ``OFF`` to specify whether to search and use the release
   libraries.  Default is ``ON``.
 
@@ -229,15 +252,22 @@ setting variables:
 
 ``Boost_COMPILER``
   Set to the compiler-specific library suffix (e.g. ``-gcc43``).  Default is
-  auto-computed for the C++ compiler in use.  A list may be used if multiple
-  compatible suffixes should be tested for, in decreasing order of preference.
+  auto-computed for the C++ compiler in use.
+
+  .. versionchanged:: 3.9
+    A list may be used if multiple compatible suffixes should be tested for,
+    in decreasing order of preference.
 
 ``Boost_LIB_PREFIX``
+  .. versionadded:: 3.18
+
   Set to the platform-specific library name prefix (e.g. ``lib``) used by
   Boost static libs.  This is needed only on platforms where CMake does not
   know the prefix by default.
 
 ``Boost_ARCHITECTURE``
+  .. versionadded:: 3.13
+
   Set to the architecture-specific library suffix (e.g. ``-x64``).
   Default is auto-computed for the C++ compiler in use.
 

+ 38 - 19
Modules/FindCUDA.cmake

@@ -4,12 +4,6 @@ FindCUDA
 
 .. deprecated:: 3.10
 
-  Superseded by first-class support for the CUDA language in CMake.
-  Superseded by the :module:`FindCUDAToolkit` for CUDA toolkit libraries.
-
-Replacement
-^^^^^^^^^^^
-
 It is no longer necessary to use this module or call ``find_package(CUDA)``
 for compiling CUDA code. Instead, list ``CUDA`` among the languages named
 in the top-level call to the :command:`project` command, or call the
@@ -17,9 +11,10 @@ in the top-level call to the :command:`project` command, or call the
 Then one can add CUDA (``.cu``) sources to programs directly
 in calls to :command:`add_library` and :command:`add_executable`.
 
-To find and use the CUDA toolkit libraries the :module:`FindCUDAToolkit`
-module has superseded this module.  It works whether or not the ``CUDA``
-language is enabled.
+.. versionadded:: 3.17
+  To find and use the CUDA toolkit libraries the :module:`FindCUDAToolkit`
+  module has superseded this module.  It works whether or not the ``CUDA``
+  language is enabled.
 
 Documentation of Deprecated Usage
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -30,6 +25,9 @@ This script locates the NVIDIA CUDA C tools.  It should work on Linux,
 Windows, and macOS and should be reasonably up to date with CUDA C
 releases.
 
+.. versionadded:: 3.19
+  QNX support.
+
 This script makes use of the standard :command:`find_package` arguments of
 ``<VERSION>``, ``REQUIRED`` and ``QUIET``.  ``CUDA_FOUND`` will report if an
 acceptable version of CUDA was found.
@@ -94,6 +92,8 @@ or ``cuda_wrap_srcs()``:
   when ``CUDA_BUILD_EMULATION`` is ``TRUE``.
 
 ``CUDA_LINK_LIBRARIES_KEYWORD`` (Default: ``""``)
+  .. versionadded:: 3.9
+
   The ``<PRIVATE|PUBLIC|INTERFACE>`` keyword to use for internal
   :command:`target_link_libraries` calls. The default is to use no keyword which
   uses the old "plain" form of :command:`target_link_libraries`. Note that is matters
@@ -116,13 +116,19 @@ or ``cuda_wrap_srcs()``:
   the host compiler is constructed with one or more visual studio macros
   such as ``$(VCInstallDir)``, that expands out to the path when
   the command is run from within VS.
-  If the :envvar:`CUDAHOSTCXX` environment variable is set it will
-  be used as the default.
+
+  .. versionadded:: 3.13
+    If the :envvar:`CUDAHOSTCXX` environment variable is set it will
+    be used as the default.
 
 ``CUDA_NVCC_FLAGS``, ``CUDA_NVCC_FLAGS_<CONFIG>``
   Additional NVCC command line arguments.  NOTE: multiple arguments must be
   semi-colon delimited (e.g. ``--compiler-options;-Wall``)
 
+  .. versionadded:: 3.6
+    Contents of these variables may use
+    :manual:`generator expressions <cmake-generator-expressions(7)>`.
+
 ``CUDA_PROPAGATE_HOST_FLAGS`` (Default: ``ON``)
   Set to ``ON`` to propagate :variable:`CMAKE_{C,CXX}_FLAGS <CMAKE_<LANG>_FLAGS>` and their configuration
   dependent counterparts (e.g. ``CMAKE_C_FLAGS_DEBUG``) automatically to the
@@ -142,6 +148,8 @@ or ``cuda_wrap_srcs()``:
   ``cuda_link_separable_compilation_objects()`` should be called.
 
 ``CUDA_SOURCE_PROPERTY_FORMAT``
+  .. versionadded:: 3.3
+
   If this source file property is set, it can override the format specified
   to ``cuda_wrap_srcs()`` (``OBJ``, ``PTX``, ``CUBIN``, or ``FATBIN``).  If an input source file
   is not a ``.cu`` file, setting this file will cause it to be treated as a ``.cu``
@@ -149,6 +157,8 @@ or ``cuda_wrap_srcs()``:
   this property.
 
 ``CUDA_USE_STATIC_CUDA_RUNTIME`` (Default: ``ON``)
+  .. versionadded:: 3.3
+
   When enabled the static version of the CUDA runtime library will be used
   in ``CUDA_LIBRARIES``.  If the version of CUDA configured doesn't support
   this option, then it will be silently disabled.
@@ -227,12 +237,16 @@ Returns a list of ``PTX`` files generated from the input source files.
 
   cuda_compile_fatbin(<generated_files> <file>... [OPTIONS ...])
 
+.. versionadded:: 3.1
+
 Returns a list of ``FATBIN`` files generated from the input source files.
 
 .. code-block:: cmake
 
   cuda_compile_cubin(<generated_files> <file>... [OPTIONS ...])
 
+.. versionadded:: 3.1
+
 Returns a list of ``CUBIN`` files generated from the input source files.
 
 .. code-block:: cmake
@@ -374,7 +388,8 @@ The script defines the following variables:
   Full version in the ``X.Y`` format.
 
 ``CUDA_HAS_FP16``
-  Whether a short float (``float16``, ``fp16``) is supported.
+  .. versionadded:: 3.6
+    Whether a short float (``float16``, ``fp16``) is supported.
 
 ``CUDA_TOOLKIT_ROOT_DIR``
   Path to the CUDA Toolkit (defined if not set).
@@ -407,7 +422,8 @@ The script defines the following variables:
   Only available for CUDA version 5.5+.
 
 ``CUDA_cudadevrt_LIBRARY``
-  Device runtime library.  Required for separable compilation.
+  .. versionadded:: 3.7
+    Device runtime library.  Required for separable compilation.
 
 ``CUDA_cupti_LIBRARY``
   CUDA Profiling Tools Interface library.
@@ -418,8 +434,9 @@ The script defines the following variables:
   Only available for CUDA version 3.2+.
 
 ``CUDA_cusolver_LIBRARY``
-  CUDA Direct Solver library.
-  Only available for CUDA version 7.0+.
+  .. versionadded:: 3.2
+    CUDA Direct Solver library.
+    Only available for CUDA version 7.0+.
 
 ``CUDA_cusparse_LIBRARY``
   CUDA Sparse Matrix library.
@@ -493,12 +510,14 @@ The script defines the following variables:
   Windows only.
 
 ``CUDA_nvToolsExt_LIBRARY``
-  NVIDA CUDA Tools Extension library.
-  Available for CUDA version 5+.
+  .. versionadded:: 3.16
+    NVIDA CUDA Tools Extension library.
+    Available for CUDA version 5+.
 
 ``CUDA_OpenCL_LIBRARY``
-  NVIDA CUDA OpenCL library.
-  Available for CUDA version 5+.
+  .. versionadded:: 3.16
+    NVIDA CUDA OpenCL library.
+    Available for CUDA version 5+.
 
 #]=======================================================================]
 

+ 5 - 0
Modules/FindCUDAToolkit.cmake

@@ -11,6 +11,9 @@ This script locates the NVIDIA CUDA toolkit and the associated libraries, but
 does not require the ``CUDA`` language be enabled for a given project. This
 module does not search for the NVIDIA CUDA Samples.
 
+.. versionadded:: 3.19
+  QNX support.
+
 Search Behavior
 ^^^^^^^^^^^^^^^
 
@@ -426,6 +429,8 @@ Result variables
     Runtime library ``cudart``.
 
 ``CUDAToolkit_LIBRARY_ROOT``
+    .. versionadded:: 3.18
+
     The path to the CUDA Toolkit directory containing the nvvm directory and
     version.txt.
 

+ 12 - 2
Modules/FindCURL.cmake

@@ -7,8 +7,11 @@ FindCURL
 
 Find the native CURL headers and libraries.
 
-This module accept optional COMPONENTS to check supported features and
-protocols::
+.. versionadded:: 3.14
+  This module accept optional COMPONENTS to check supported features and
+  protocols:
+
+::
 
   PROTOCOLS: ICT FILE FTP FTPS GOPHER HTTP HTTPS IMAP IMAPS LDAP LDAPS POP3
              POP3S RTMP RTSP SCP SFTP SMB SMBS SMTP SMTPS TELNET TFTP
@@ -18,6 +21,8 @@ protocols::
 IMPORTED Targets
 ^^^^^^^^^^^^^^^^
 
+.. versionadded:: 3.12
+
 This module defines :prop_tgt:`IMPORTED` target ``CURL::libcurl``, if
 curl has been found.
 
@@ -38,9 +43,14 @@ This module defines the following variables:
 ``CURL_VERSION_STRING``
   The version of ``curl`` found.
 
+.. versionadded:: 3.13
+  Debug and Release variants are found separately.
+
 CURL CMake
 ^^^^^^^^^^
 
+.. versionadded:: 3.17
+
 If CURL was built using the CMake buildsystem then it provides its own
 ``CURLConfig.cmake`` file for use with the :command:`find_package` command's
 config mode. This module looks for this file and, if found,

+ 2 - 0
Modules/FindCups.cmake

@@ -13,6 +13,8 @@ features this function (i.e. at least ``1.1.19``)
 Imported targets
 ^^^^^^^^^^^^^^^^
 
+.. versionadded:: 3.15
+
 This module defines :prop_tgt:`IMPORTED` target ``Cups::Cups``, if Cups has
 been found.
 

+ 6 - 2
Modules/FindCurses.cmake

@@ -19,6 +19,8 @@ This module defines the following variables:
 ``CURSES_LIBRARIES``
   The libraries needed to use Curses.
 ``CURSES_CFLAGS``
+  .. versionadded:: 3.16
+
   Parameters which ought be given to C/C++ compilers when using Curses.
 ``CURSES_HAVE_CURSES_H``
   True if curses.h is available.
@@ -31,8 +33,10 @@ This module defines the following variables:
 
 Set ``CURSES_NEED_NCURSES`` to ``TRUE`` before the
 ``find_package(Curses)`` call if NCurses functionality is required.
-Set ``CURSES_NEED_WIDE`` to ``TRUE`` before the
-``find_package(Curses)`` call if unicode functionality is required.
+
+.. versionadded:: 3.10
+  Set ``CURSES_NEED_WIDE`` to ``TRUE`` before the
+  ``find_package(Curses)`` call if unicode functionality is required.
 
 Backward Compatibility
 ^^^^^^^^^^^^^^^^^^^^^^

+ 45 - 34
Modules/FindDoxygen.cmake

@@ -6,8 +6,7 @@ FindDoxygen
 -----------
 
 Doxygen is a documentation generation tool (see http://www.doxygen.org).
-This module looks for Doxygen and some optional tools it supports. These
-tools are enabled as components in the :command:`find_package` command:
+This module looks for Doxygen and some optional tools it supports:
 
 ``dot``
   `Graphviz <http://graphviz.org>`_ ``dot`` utility used to render various
@@ -19,7 +18,9 @@ tools are enabled as components in the :command:`find_package` command:
   `Dia <https://wiki.gnome.org/Apps/Dia>`_ the diagram editor used by Doxygen's
   ``\diafile`` command.
 
-Examples:
+.. versionadded:: 3.9
+  These tools are available as components in the :command:`find_package` command.
+  For example:
 
 .. code-block:: cmake
 
@@ -38,12 +39,13 @@ The following variables are defined by this module:
 
   The version reported by ``doxygen --version``.
 
-The module defines ``IMPORTED`` targets for Doxygen and each component found.
-These can be used as part of custom commands, etc. and should be preferred over
-old-style (and now deprecated) variables like ``DOXYGEN_EXECUTABLE``. The
-following import targets are defined if their corresponding executable could be
-found (the component import targets will only be defined if that component was
-requested):
+.. versionadded:: 3.9
+  The module defines ``IMPORTED`` targets for Doxygen and each component found.
+  These can be used as part of custom commands, etc. and should be preferred over
+  old-style (and now deprecated) variables like ``DOXYGEN_EXECUTABLE``. The
+  following import targets are defined if their corresponding executable could be
+  found (the component import targets will only be defined if that component was
+  requested):
 
 ::
 
@@ -58,6 +60,8 @@ Functions
 
 .. command:: doxygen_add_docs
 
+  .. versionadded:: 3.9
+
   This function is intended as a convenience for adding a target for generating
   documentation with Doxygen. It aims to provide sensible defaults so that
   projects can generally just provide the input files and directories and that
@@ -93,19 +97,21 @@ Functions
   the :command:`add_custom_target` command used to create the custom target
   internally.
 
-  If ``ALL`` is set, the target will be added to the default build target.
-
-  If ``USE_STAMP_FILE`` is set, the custom command defined by this function will
-  create a stamp file with the name ``<targetName>.stamp`` in the current
-  binary directory whenever doxygen is re-run.  With this option present, all
-  items in ``<filesOrDirs>`` must be files (i.e. no directories, symlinks or
-  wildcards) and each of the files must exist at the time
-  ``doxygen_add_docs()`` is called.  An error will be raised if any of the
-  items listed is missing or is not a file when ``USE_STAMP_FILE`` is given.
-  A dependency will be created on each of the files so that doxygen will only
-  be re-run if one of the files is updated.  Without the ``USE_STAMP_FILE``
-  option, doxygen will always be re-run if the ``<targetName>`` target is built
-  regardless of whether anything listed in ``<filesOrDirs>`` has changed.
+  .. versionadded:: 3.12
+    If ``ALL`` is set, the target will be added to the default build target.
+
+  .. versionadded:: 3.16
+    If ``USE_STAMP_FILE`` is set, the custom command defined by this function will
+    create a stamp file with the name ``<targetName>.stamp`` in the current
+    binary directory whenever doxygen is re-run.  With this option present, all
+    items in ``<filesOrDirs>`` must be files (i.e. no directories, symlinks or
+    wildcards) and each of the files must exist at the time
+    ``doxygen_add_docs()`` is called.  An error will be raised if any of the
+    items listed is missing or is not a file when ``USE_STAMP_FILE`` is given.
+    A dependency will be created on each of the files so that doxygen will only
+    be re-run if one of the files is updated.  Without the ``USE_STAMP_FILE``
+    option, doxygen will always be re-run if the ``<targetName>`` target is built
+    regardless of whether anything listed in ``<filesOrDirs>`` has changed.
 
   The contents of the generated ``Doxyfile`` can be customized by setting CMake
   variables before calling ``doxygen_add_docs()``. Any variable with a name of
@@ -308,18 +314,19 @@ if they contain at least one space:
   WARN_LOGFILE
   XML_OUTPUT
 
-There are situations where it may be undesirable for a particular config option
-to be automatically quoted by ``doxygen_add_docs()``, such as ``ALIASES`` which
-may need to include its own embedded quoting.  The ``DOXYGEN_VERBATIM_VARS``
-variable can be used to specify a list of Doxygen variables (including the
-leading ``DOXYGEN_`` prefix) which should not be quoted.  The project is then
-responsible for ensuring that those variables' values make sense when placed
-directly in the Doxygen input file.  In the case of list variables, list items
-are still separated by spaces, it is only the automatic quoting that is
-skipped.  For example, the following allows ``doxygen_add_docs()`` to apply
-quoting to ``DOXYGEN_PROJECT_BRIEF``, but not each item in the
-``DOXYGEN_ALIASES`` list (:ref:`bracket syntax <Bracket Argument>` can also
-be used to make working with embedded quotes easier):
+.. versionadded:: 3.11
+  There are situations where it may be undesirable for a particular config option
+  to be automatically quoted by ``doxygen_add_docs()``, such as ``ALIASES`` which
+  may need to include its own embedded quoting.  The ``DOXYGEN_VERBATIM_VARS``
+  variable can be used to specify a list of Doxygen variables (including the
+  leading ``DOXYGEN_`` prefix) which should not be quoted.  The project is then
+  responsible for ensuring that those variables' values make sense when placed
+  directly in the Doxygen input file.  In the case of list variables, list items
+  are still separated by spaces, it is only the automatic quoting that is
+  skipped.  For example, the following allows ``doxygen_add_docs()`` to apply
+  quoting to ``DOXYGEN_PROJECT_BRIEF``, but not each item in the
+  ``DOXYGEN_ALIASES`` list (:ref:`bracket syntax <Bracket Argument>` can also
+  be used to make working with embedded quotes easier):
 
 .. code-block:: cmake
 
@@ -341,6 +348,8 @@ The resultant ``Doxyfile`` will contain the following lines:
 Deprecated Result Variables
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
+.. deprecated:: 3.9
+
 For compatibility with previous versions of CMake, the following variables
 are also defined but they are deprecated and should no longer be used:
 
@@ -375,6 +384,8 @@ are also defined but they are deprecated and should no longer be used:
 Deprecated Hint Variables
 ^^^^^^^^^^^^^^^^^^^^^^^^^
 
+.. deprecated:: 3.9
+
 .. variable:: DOXYGEN_SKIP_DOT
 
   This variable has no effect for the component form of ``find_package``.

+ 2 - 0
Modules/FindEXPAT.cmake

@@ -11,6 +11,8 @@ Expat is a stream-oriented XML parser library written in C.
 Imported Targets
 ^^^^^^^^^^^^^^^^
 
+.. versionadded:: 3.10
+
 This module defines the following :prop_tgt:`IMPORTED` targets:
 
 ``EXPAT::EXPAT``

+ 14 - 5
Modules/FindFLEX.cmake

@@ -37,11 +37,20 @@ If flex is found on the system, the module provides the macro:
               )
 
 which creates a custom command to generate the ``FlexOutput`` file from
-the ``FlexInput`` file.  If ``COMPILE_FLAGS`` option is specified, the next
-parameter is added to the flex command line. If flex is configured to
-output a header file, the ``DEFINES_FILE`` option may be used to specify its
-name. Name is an alias used to get details of this custom command.
-Indeed the macro defines the following variables:
+the ``FlexInput`` file.  Name is an alias used to get details of this custom
+command.  If ``COMPILE_FLAGS`` option is specified, the next
+parameter is added to the flex command line.
+
+.. versionadded:: 3.5
+  If flex is configured to
+  output a header file, the ``DEFINES_FILE`` option may be used to specify its
+  name.
+
+.. versionchanged:: 3.17
+  When :policy:`CMP0098` is set to ``NEW``, ``flex`` runs in the
+  :variable:`CMAKE_CURRENT_BINARY_DIR` directory.
+
+The macro defines the following variables:
 
 ::
 

+ 4 - 0
Modules/FindFLTK.cmake

@@ -77,6 +77,10 @@ The following cache variables are also available to set or use:
 
 ``FLTK_IMAGES_LIBRARY_DEBUG``
   The FLTK Images library (debug)
+
+.. versionadded:: 3.11
+  Debug and Release variants are found separately and use per-configuration
+  variables.
 #]=======================================================================]
 
 if(NOT FLTK_SKIP_OPENGL)

+ 6 - 1
Modules/FindFreetype.cmake

@@ -10,6 +10,8 @@ Find the FreeType font renderer includes and library.
 Imported Targets
 ^^^^^^^^^^^^^^^^
 
+.. versionadded:: 3.10
+
 This module defines the following :prop_tgt:`IMPORTED` target:
 
 ``Freetype::Freetype``
@@ -33,7 +35,10 @@ This module will set the following variables in your project:
 ``FREETYPE_LIBRARIES``
   the library to link against
 ``FREETYPE_VERSION_STRING``
-  the version of freetype found (since CMake 2.8.8)
+  the version of freetype found
+
+.. versionadded:: 3.7
+  Debug and Release variants are found separately.
 
 Hints
 ^^^^^

+ 4 - 1
Modules/FindGDAL.cmake

@@ -10,6 +10,8 @@ Find Geospatial Data Abstraction Library (GDAL).
 IMPORTED Targets
 ^^^^^^^^^^^^^^^^
 
+.. versionadded:: 3.14
+
 This module defines :prop_tgt:`IMPORTED` target ``GDAL::GDAL``
 if GDAL has been found.
 
@@ -25,7 +27,8 @@ This module will set the following variables in your project:
 ``GDAL_LIBRARIES``
   Libraries to link to GDAL.
 ``GDAL_VERSION``
-  The version of GDAL found.
+  .. versionadded:: 3.14
+    The version of GDAL found.
 
 Cache variables
 ^^^^^^^^^^^^^^^

+ 5 - 0
Modules/FindGLEW.cmake

@@ -21,6 +21,8 @@ The following variables may be set to influence this module's behavior:
 Imported Targets
 ^^^^^^^^^^^^^^^^
 
+.. versionadded:: 3.1
+
 This module defines the following :ref:`Imported Targets <Imported Targets>`:
 
 
@@ -55,6 +57,9 @@ This module defines the following variables:
 ``GLEW_VERSION_MICRO``
   GLEW micro version
 
+.. versionadded:: 3.7
+  Debug and Release variants are found separately.
+
 #]=======================================================================]
 
 include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)

+ 5 - 0
Modules/FindGLUT.cmake

@@ -10,6 +10,8 @@ Find OpenGL Utility Toolkit (GLUT) library and include files.
 IMPORTED Targets
 ^^^^^^^^^^^^^^^^
 
+.. versionadded:: 3.1
+
 This module defines the :prop_tgt:`IMPORTED` targets:
 
 ``GLUT::GLUT``
@@ -33,6 +35,9 @@ Also defined, but not for general use are:
   GLUT_glut_LIBRARY = the full path to the glut library.
   GLUT_Xmu_LIBRARY  = the full path to the Xmu library.
   GLUT_Xi_LIBRARY   = the full path to the Xi Library.
+
+.. versionadded:: 3.13
+  Debug and Release variants are found separately.
 #]=======================================================================]
 
 include(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake)

+ 23 - 1
Modules/FindGTK2.cmake

@@ -16,6 +16,23 @@ module.  See example below.
 * ``glade``
 * ``glademm``
 
+Imported Targets
+^^^^^^^^^^^^^^^^
+
+This module defines the following :prop_tgt:`IMPORTED` targets (subject to
+component selection):
+
+``GTK2::atk``, ``GTK2::atkmm``, ``GTK2::cairo``, ``GTK2::cairomm``,
+``GTK2::gdk_pixbuf``, ``GTK2::gdk``, ``GTK2::gdkmm``, ``GTK2::gio``,
+``GTK2::giomm``, ``GTK2::glade``, ``GTK2::glademm``, ``GTK2::glib``,
+``GTK2::glibmm``, ``GTK2::gmodule``, ``GTK2::gobject``, ``GTK2::gthread``,
+``GTK2::gtk``, ``GTK2::gtkmm``, ``GTK2::harfbuzz``, ``GTK2::pango``,
+``GTK2::pangocairo``, ``GTK2::pangoft2``, ``GTK2::pangomm``,
+``GTK2::pangoxft``, ``GTK2::sigc``.
+
+.. versionadded:: 3.16.7
+  Added the ``GTK2::harfbuzz`` target.
+
 Result Variables
 ^^^^^^^^^^^^^^^^
 
@@ -28,7 +45,8 @@ The following variables will be defined for your use
 ``GTK2_LIBRARIES``
   All libraries
 ``GTK2_TARGETS``
-  All imported targets
+  .. versionadded:: 3.5
+    All imported targets
 ``GTK2_DEFINITIONS``
   Additional compiler flags
 ``GTK2_VERSION``
@@ -40,6 +58,10 @@ The following variables will be defined for your use
 ``GTK2_PATCH_VERSION``
   The patch version of GTK2
 
+.. versionadded:: 3.5
+  When ``GTK2_USE_IMPORTED_TARGETS`` is set to ``TRUE``, ``GTK2_LIBRARIES``
+  will list imported targets instead of library paths.
+
 Input Variables
 ^^^^^^^^^^^^^^^
 

+ 12 - 3
Modules/FindGTest.cmake

@@ -7,10 +7,14 @@ FindGTest
 
 Locate the Google C++ Testing Framework.
 
+.. versionadded:: 3.20
+  Upstream ``GTestConfig.cmake`` is used if possible.
+
 Imported targets
 ^^^^^^^^^^^^^^^^
 
-This module defines the following :prop_tgt:`IMPORTED` targets:
+.. versionadded:: 3.20
+  This module defines the following :prop_tgt:`IMPORTED` targets:
 
 ``GTest::gtest``
   The Google Test ``gtest`` library, if found; adds Thread::Thread
@@ -18,8 +22,9 @@ This module defines the following :prop_tgt:`IMPORTED` targets:
 ``GTest::gtest_main``
   The Google Test ``gtest_main`` library, if found
 
-For backwards compatibility, this module defines additionally the
-following deprecated :prop_tgt:`IMPORTED` targets:
+.. deprecated:: 3.20
+  For backwards compatibility, this module defines additionally the
+  following deprecated :prop_tgt:`IMPORTED` targets (available since 3.5):
 
 ``GTest::GTest``
   The Google Test ``gtest`` library, if found; adds Thread::Thread
@@ -81,6 +86,10 @@ Deeper integration with CTest
 
 See :module:`GoogleTest` for information on the :command:`gtest_add_tests`
 and :command:`gtest_discover_tests` commands.
+
+.. versionchanged:: 3.9
+  Previous CMake versions defined :command:`gtest_add_tests` macro in this
+  module.
 #]=======================================================================]
 
 include(${CMAKE_CURRENT_LIST_DIR}/GoogleTest.cmake)

+ 1 - 1
Modules/FindGettext.cmake

@@ -54,7 +54,7 @@ PO_FILES <po1> <po2> ...  )
      If ALL is specified, the po files are processed when building the all traget.
      It creates a custom target "pofiles".
 
-.. note::
+.. versionadded:: 3.2
   If you wish to use the Gettext library (libintl), use :module:`FindIntl`.
 #]=======================================================================]
 

+ 7 - 6
Modules/FindGit.cmake

@@ -5,12 +5,6 @@
 FindGit
 -------
 
-The module defines the following ``IMPORTED`` targets (when
-:prop_gbl:`CMAKE_ROLE` is ``PROJECT``):
-
-``Git::Git``
-  Executable of the Git command-line client.
-
 The module defines the following variables:
 
 ``GIT_EXECUTABLE``
@@ -20,6 +14,13 @@ The module defines the following variables:
 ``GIT_VERSION_STRING``
   The version of Git found.
 
+.. versionadded:: 3.14
+  The module defines the following ``IMPORTED`` targets (when
+  :prop_gbl:`CMAKE_ROLE` is ``PROJECT``):
+
+``Git::Git``
+  Executable of the Git command-line client.
+
 Example usage:
 
 .. code-block:: cmake

+ 2 - 0
Modules/FindGnuTLS.cmake

@@ -10,6 +10,8 @@ Find the GNU Transport Layer Security library (gnutls)
 IMPORTED Targets
 ^^^^^^^^^^^^^^^^
 
+.. versionadded:: 3.16
+
 This module defines :prop_tgt:`IMPORTED` target ``GnuTLS::GnuTLS``, if
 gnutls has been found.
 

+ 11 - 1
Modules/FindHDF5.cmake

@@ -32,6 +32,9 @@ static link to a dynamic link for ``HDF5`` and all of it's dependencies.
 To use this feature, make sure that the ``HDF5_USE_STATIC_LIBRARIES``
 variable is set before the call to find_package.
 
+.. versionadded:: 3.10
+  Support for ``HDF5_USE_STATIC_LIBRARIES`` on Windows.
+
 Both the serial and parallel ``HDF5`` wrappers are considered and the first
 directory to contain either one will be used.  In the event that both appear
 in the same directory the serial version is preferentially selected. This
@@ -51,7 +54,8 @@ This module will set the following variables in your project:
 ``HDF5_FOUND``
   HDF5 was found on the system
 ``HDF5_VERSION``
-  HDF5 library version
+  .. versionadded:: 3.3
+    HDF5 library version
 ``HDF5_INCLUDE_DIRS``
   Location of the HDF5 header files
 ``HDF5_DEFINITIONS``
@@ -128,12 +132,18 @@ Hints
 The following variables can be set to guide the search for HDF5 libraries and includes:
 
 ``HDF5_PREFER_PARALLEL``
+  .. versionadded:: 3.4
+
   set ``true`` to prefer parallel HDF5 (by default, serial is preferred)
 
 ``HDF5_FIND_DEBUG``
+  .. versionadded:: 3.9
+
   Set ``true`` to get extra debugging output.
 
 ``HDF5_NO_FIND_PACKAGE_CONFIG_FILE``
+  .. versionadded:: 3.8
+
   Set ``true`` to skip trying to find ``hdf5-config.cmake``.
 #]=======================================================================]
 

+ 2 - 1
Modules/FindHg.cmake

@@ -15,7 +15,8 @@ The module defines the following variables:
    HG_FOUND - true if the command line client was found
    HG_VERSION_STRING - the version of mercurial found
 
-If the command line client executable is found the following macro is defined:
+.. versionadded:: 3.1
+  If the command line client executable is found the following macro is defined:
 
 ::
 

+ 3 - 0
Modules/FindICU.cmake

@@ -18,6 +18,9 @@ Note that on Windows ``data`` is named ``dt`` and ``i18n`` is named
 ``in``; any of the names may be used, and the appropriate
 platform-specific library name will be automatically selected.
 
+.. versionadded:: 3.11
+  Added support for static libraries on Windows.
+
 This module reports information about the ICU installation in
 several variables.  General variables::
 

+ 12 - 0
Modules/FindIce.cmake

@@ -23,6 +23,15 @@ Ice 3.7 and later also include C++11-specific components:
 
 Note that the set of supported components is Ice version-specific.
 
+.. versionadded:: 3.4
+  Imported targets for components and most ``EXECUTABLE`` variables.
+
+.. versionadded:: 3.7
+  Debug and Release variants are found separately.
+
+.. versionadded:: 3.10
+  Ice 3.7 support, including new components, programs and the Nuget package.
+
 This module reports information about the Ice installation in
 several variables.  General variables::
 
@@ -56,6 +65,9 @@ Ice slice programs are reported in::
   Ice_SLICE2PY_EXECUTABLE - path to slice2py executable
   Ice_SLICE2RB_EXECUTABLE - path to slice2rb executable
 
+.. versionadded:: 3.14
+  Variables for ``slice2confluence`` and ``slice2matlab``.
+
 Ice programs are reported in::
 
   Ice_GLACIER2ROUTER_EXECUTABLE - path to glacier2router executable

+ 3 - 0
Modules/FindImageMagick.cmake

@@ -7,6 +7,9 @@ FindImageMagick
 
 Find ImageMagick binary suite.
 
+.. versionadded:: 3.9
+  Added support for ImageMagick 7.
+
 This module will search for a set of ImageMagick tools specified as
 components in the :command:`find_package` call.  Typical components include,
 but are not limited to (future versions of ImageMagick might have

+ 7 - 1
Modules/FindIntl.cmake

@@ -15,7 +15,9 @@ installation in several variables.  General variables::
   Intl_FOUND - true if the libintl headers and libraries were found
   Intl_INCLUDE_DIRS - the directory containing the libintl headers
   Intl_LIBRARIES - libintl libraries to be linked
-  Intl::Intl - imported target for Intl
+
+.. versionadded:: 3.20
+  This module defines :prop_tgt:`IMPORTED` target ``Intl::Intl``.
 
 The following cache variables may also be set::
 
@@ -26,6 +28,10 @@ The following cache variables may also be set::
   Intl_IS_BUILTIN - whether intl is a part of the C library determined
       from the result of Intl_HAVE_GETTEXT_BUILTIN and Intl_HAVE_DCGETTEXT_BUILTIN
 
+.. versionadded:: 3.20
+  Added the ``Intl_HAVE_GETTEXT_BUILTIN``, ``Intl_HAVE_DCGETTEXT_BUILTIN`` and
+  ``Intl_IS_BUILTIN`` variables.
+
 .. note::
   On some platforms, such as Linux with GNU libc, the gettext
   functions are present in the C standard library and libintl

+ 7 - 1
Modules/FindJPEG.cmake

@@ -10,6 +10,8 @@ Find the Joint Photographic Experts Group (JPEG) library (``libjpeg``)
 Imported targets
 ^^^^^^^^^^^^^^^^
 
+.. versionadded:: 3.12
+
 This module defines the following :prop_tgt:`IMPORTED` targets:
 
 ``JPEG::JPEG``
@@ -27,7 +29,8 @@ This module will set the following variables in your project:
 ``JPEG_LIBRARIES``
   the libraries needed to use JPEG.
 ``JPEG_VERSION``
-  the version of the JPEG library found
+  .. versionadded:: 3.12
+    the version of the JPEG library found
 
 Cache variables
 ^^^^^^^^^^^^^^^
@@ -41,6 +44,9 @@ The following cache variables may also be set:
 ``JPEG_LIBRARY_DEBUG``
   where to find the JPEG library (debug).
 
+.. versionadded:: 3.12
+  Debug and Release variand are found separately.
+
 Obsolete variables
 ^^^^^^^^^^^^^^^^^^
 

+ 6 - 1
Modules/FindJava.cmake

@@ -13,6 +13,9 @@ to specify a Java installation prefix explicitly.
 
 See also the :module:`FindJNI` module to find Java Native Interface (JNI).
 
+.. versionadded:: 3.10
+  Added support for Java 9+ version parsing.
+
 Specify one or more of the following components as you call this find module. See example below.
 
 ::
@@ -41,7 +44,9 @@ This module sets the following result variables:
   Java_VERSION_TWEAK        = The tweak version of the package found (after '_')
   Java_VERSION              = This is set to: $major[.$minor[.$patch[.$tweak]]]
 
-
+.. versionadded:: 3.4
+  Added the ``Java_IDLJ_EXECUTABLE`` and ``Java_JARSIGNER_EXECUTABLE``
+  variables.
 
 The minimum required version of Java can be specified using the
 :command:`find_package` syntax, e.g.

+ 21 - 0
Modules/FindLAPACK.cmake

@@ -45,12 +45,33 @@ The following variables may be set to influence this module's behavior:
   * ``Arm_ilp64_mp``
   * ``Generic``
 
+  .. versionadded:: 3.6
+    ``OpenBLAS`` support.
+
+  .. versionadded:: 3.11
+    ``FLAME`` support.
+
+    .. versionadded:: 3.13
+      Added ILP64 MKL variants (``Intel10_64ilp``, ``Intel10_64ilp_seq``).
+
+  .. versionadded:: 3.17
+    Added single dynamic library MKL variant (``Intel10_64_dyn``).
+
+  .. versionadded:: 3.18
+    Arm Performance Libraries support (``Arm``, ``Arm_mp``, ``Arm_ilp64``,
+    ``Arm_ilp64_mp``).
+
+  .. versionadded:: 3.19
+    ``FlexiBLAS`` support.
+
 ``BLA_F95``
   if ``ON`` tries to find the BLAS95/LAPACK95 interfaces
 
 Imported targets
 ^^^^^^^^^^^^^^^^
 
+.. versionadded:: 3.18
+
 This module defines the following :prop_tgt:`IMPORTED` target:
 
 ``LAPACK::LAPACK``

+ 4 - 0
Modules/FindLATEX.cmake

@@ -11,6 +11,10 @@ This module finds an installed LaTeX and determines the location
 of the compiler.  Additionally the module looks for Latex-related
 software like BibTeX.
 
+.. versionadded:: 3.2
+  Component processing; support for htlatex, pdftops, Biber, xindy, XeLaTeX,
+  LuaLaTeX.
+
 This module sets the following result variables::
 
   LATEX_FOUND:          whether found Latex and requested components

+ 4 - 0
Modules/FindLibArchive.cmake

@@ -22,6 +22,10 @@ The module defines the following ``IMPORTED`` targets:
 ::
 
   LibArchive::LibArchive  - target for linking against libarchive
+
+.. versionadded:: 3.6
+  Support for new libarchive 3.2 version string format.
+
 #]=======================================================================]
 
 find_path(LibArchive_INCLUDE_DIR

+ 2 - 0
Modules/FindLibLZMA.cmake

@@ -11,6 +11,8 @@ Find LZMA compression algorithm headers and library.
 Imported Targets
 ^^^^^^^^^^^^^^^^
 
+.. versionadded:: 3.14
+
 This module defines :prop_tgt:`IMPORTED` target ``LibLZMA::LibLZMA``, if
 liblzma has been found.
 

+ 6 - 2
Modules/FindLibXml2.cmake

@@ -10,12 +10,16 @@ Find the XML processing library (libxml2).
 IMPORTED Targets
 ^^^^^^^^^^^^^^^^
 
+.. versionadded:: 3.12
+
 The following :prop_tgt:`IMPORTED` targets may be defined:
 
 ``LibXml2::LibXml2``
-  If the libxml2 library has been found
+  libxml2 library.
 ``LibXml2::xmllint``
-  If the xmllint command-line executable has been found
+  .. versionadded:: 3.17
+
+  xmllint command-line executable.
 
 Result variables
 ^^^^^^^^^^^^^^^^

+ 4 - 1
Modules/FindLibXslt.cmake

@@ -11,6 +11,8 @@ Transformations (XSLT) library (LibXslt)
 IMPORTED Targets
 ^^^^^^^^^^^^^^^^
 
+.. versionadded:: 3.18
+
 The following :prop_tgt:`IMPORTED` targets may be defined:
 
 ``LibXslt::LibXslt``
@@ -35,7 +37,8 @@ Additionally, the following two variables are set (but not required
 for using xslt):
 
 ``LIBXSLT_EXSLT_INCLUDE_DIR``
-  The include directory for exslt.
+  .. versionadded:: 3.18
+    The include directory for exslt.
 ``LIBXSLT_EXSLT_LIBRARIES``
   Link to these if you need to link against the exslt library.
 ``LIBXSLT_XSLTPROC_EXECUTABLE``

+ 3 - 2
Modules/FindLua.cmake

@@ -5,10 +5,11 @@
 FindLua
 -------
 
-
-
 Locate Lua library.
 
+.. versionadded:: 3.18
+  Support for Lua 5.4.
+
 This module defines::
 
 ::

+ 9 - 2
Modules/FindMPI.cmake

@@ -12,6 +12,10 @@ high-performance distributed-memory parallel applications, and is
 typically deployed on a cluster.  MPI is a standard interface (defined
 by the MPI forum) for which many implementations are available.
 
+.. versionadded:: 3.10
+  Major overhaul of the module: many new variables, per-language components,
+  support for a wider variety of runtimes.
+
 Variables for using MPI
 ^^^^^^^^^^^^^^^^^^^^^^^
 
@@ -50,7 +54,8 @@ project, where ``<lang>`` is one of C, CXX, or Fortran:
 ``MPI_<lang>_LIBRARIES``
   All libraries to link MPI programs against.
 
-Additionally, the following :prop_tgt:`IMPORTED` targets are defined:
+.. versionadded:: 3.9
+  Additionally, the following :prop_tgt:`IMPORTED` targets are defined:
 
 ``MPI::MPI_<lang>``
   Target for using MPI from ``<lang>``.
@@ -236,8 +241,10 @@ If the following variables are set to true, the respective search will be perfor
 Backward Compatibility
 ^^^^^^^^^^^^^^^^^^^^^^
 
+.. deprecated:: 3.10
+
 For backward compatibility with older versions of FindMPI, these
-variables are set, but deprecated:
+variables are set:
 
 ::
 

+ 35 - 3
Modules/FindMatlab.cmake

@@ -17,6 +17,9 @@ can also be used:
 * to retrieve various information from Matlab (mex extensions, versions and
   release queries, ...)
 
+.. versionadded:: 3.12
+  Added Matlab Compiler Runtime (MCR) support.
+
 The module supports the following components:
 
 * ``ENG_LIBRARY`` and ``MAT_LIBRARY``: respectively the ``ENG`` and ``MAT``
@@ -28,6 +31,17 @@ The module supports the following components:
 * ``MCC_COMPILER`` the MCC compiler, included with the Matlab Compiler add-on.
 * ``SIMULINK`` the Simulink environment.
 
+.. versionadded:: 3.7
+  Added the ``MAT_LIBRARY`` component.
+
+.. versionadded:: 3.13
+  Added the ``ENGINE_LIBRARY``, ``DATAARRAY_LIBRARY`` and ``MCC_COMPILER``
+  components.
+
+.. versionchanged:: 3.14
+  Removed the ``MX_LIBRARY``, ``ENGINE_LIBRARY`` and ``DATAARRAY_LIBRARY``
+  components.  These libraries are found unconditionally.
+
 .. note::
 
   The version given to the :command:`find_package` directive is the Matlab
@@ -107,8 +121,12 @@ Result variables
   Matlab matrix library. Available only if the component ``MAT_LIBRARY``
   is requested.
 ``Matlab_ENGINE_LIBRARY``
+  .. versionadded:: 3.13
+
   Matlab C++ engine library, always available for R2018a and newer.
 ``Matlab_DATAARRAY_LIBRARY``
+  .. versionadded:: 3.13
+
   Matlab C++ data array library, always available for R2018a and newer.
 ``Matlab_LIBRARIES``
   the whole set of libraries of Matlab
@@ -116,6 +134,8 @@ Result variables
   the mex compiler of Matlab. Currently not used.
   Available only if the component ``MEX_COMPILER`` is requested.
 ``Matlab_MCC_COMPILER``
+  .. versionadded:: 3.13
+
   the mcc compiler of Matlab. Included with the Matlab Compiler add-on.
   Available only if the component ``MCC_COMPILER`` is requested.
 
@@ -923,14 +943,26 @@ endfunction()
     the same folder without any processing, with the same name as the final
     mex file, and with extension `.m`. In that case, typing ``help <name>``
     in Matlab prints the documentation contained in this file.
-  ``R2017b`` or ``R2018a`` may be given to specify the version of the C API
+  ``R2017b`` or ``R2018a``
+    .. versionadded:: 3.14
+
+    May be given to specify the version of the C API
     to use: ``R2017b`` specifies the traditional (separate complex) C API,
     and corresponds to the ``-R2017b`` flag for the `mex` command. ``R2018a``
     specifies the new interleaved complex C API, and corresponds to the
     ``-R2018a`` flag for the `mex` command. Ignored if MATLAB version prior
     to R2018a. Defaults to ``R2017b``.
-  ``MODULE`` or ``SHARED`` may be given to specify the type of library to be
-    created. ``EXECUTABLE`` may be given to create an executable instead of
+
+  ``MODULE`` or ``SHARED``
+    .. versionadded:: 3.7
+
+    May be given to specify the type of library to be
+    created.
+
+  ``EXECUTABLE``
+    .. versionadded:: 3.7
+
+    May be given to create an executable instead of
     a library. If no type is given explicitly, the type is ``SHARED``.
   ``EXCLUDE_FROM_ALL``
     This option has the same meaning as for :prop_tgt:`EXCLUDE_FROM_ALL` and

+ 12 - 5
Modules/FindOpenACC.cmake

@@ -14,6 +14,16 @@ If the compiler supports OpenACC, the flags required to compile with
 OpenACC support are returned in variables for the different languages.
 Currently, only PGI, GNU and Cray compilers are supported.
 
+Imported Targets
+^^^^^^^^^^^^^^^^
+
+.. versionadded:: 3.16
+
+The module provides :prop_tgt:`IMPORTED` targets:
+
+``OpenACC::OpenACC_<lang>``
+  Target for using OpenACC from ``<lang>``.
+
 Variables
 ^^^^^^^^^
 
@@ -25,14 +35,11 @@ project, where ``<lang>`` is one of C, CXX, or Fortran:
 ``OpenACC_<lang>_FLAGS``
   OpenACC compiler flags for ``<lang>``, separated by spaces.
 ``OpenACC_<lang>_OPTIONS``
+  .. versionadded:: 3.16
+
   OpenACC compiler flags for ``<lang>``, as a list. Suitable for usage
   with target_compile_options or target_link_options.
 
-Additionally, the module provides :prop_tgt:`IMPORTED` targets:
-
-``OpenACC::OpenACC_<lang>``
-  Target for using OpenACC from ``<lang>``.
-
 The module will also try to provide the OpenACC version variables:
 
 ``OpenACC_<lang>_SPEC_DATE``

+ 5 - 0
Modules/FindOpenCL.cmake

@@ -9,9 +9,14 @@ FindOpenCL
 
 Finds Open Computing Language (OpenCL)
 
+.. versionadded:: 3.10
+  Detection of OpenCL 2.1 and 2.2.
+
 IMPORTED Targets
 ^^^^^^^^^^^^^^^^
 
+.. versionadded:: 3.7
+
 This module defines :prop_tgt:`IMPORTED` target ``OpenCL::OpenCL``, if
 OpenCL has been found.
 

+ 33 - 11
Modules/FindOpenGL.cmake

@@ -7,27 +7,41 @@ FindOpenGL
 
 FindModule for OpenGL and OpenGL Utility Library (GLU).
 
+.. versionchanged:: 3.2
+  X11 is no longer added as a dependency on Unix/Linux systems.
+
+.. versionadded:: 3.10
+  GLVND support on Linux.  See the :ref:`Linux Specific` section below.
+
 Optional COMPONENTS
 ^^^^^^^^^^^^^^^^^^^
 
+.. versionadded:: 3.10
+
 This module respects several optional COMPONENTS: ``EGL``, ``GLX``, and
 ``OpenGL``.  There are corresponding import targets for each of these flags.
 
 IMPORTED Targets
 ^^^^^^^^^^^^^^^^
 
+.. versionadded:: 3.8
+
 This module defines the :prop_tgt:`IMPORTED` targets:
 
 ``OpenGL::GL``
- Defined to the platform-specific OpenGL libraries if the system has OpenGL.
-``OpenGL::OpenGL``
- Defined to libOpenGL if the system is GLVND-based.
+  Defined to the platform-specific OpenGL libraries if the system has OpenGL.
 ``OpenGL::GLU``
- Defined if the system has OpenGL Utility Library (GLU).
+  Defined if the system has OpenGL Utility Library (GLU).
+
+.. versionadded:: 3.10
+  Additionally, the following GLVND-specific library targets are defined:
+
+``OpenGL::OpenGL``
+  Defined to libOpenGL if the system is GLVND-based.
 ``OpenGL::GLX``
- Defined if the system has OpenGL Extension to the X Window System (GLX).
+  Defined if the system has OpenGL Extension to the X Window System (GLX).
 ``OpenGL::EGL``
- Defined if the system has EGL.
+  Defined if the system has EGL.
 
 Result Variables
 ^^^^^^^^^^^^^^^^
@@ -55,6 +69,9 @@ This module sets the following variables:
  On Linux, this assumes GLX and is never correct for EGL-based targets.
  Clients are encouraged to use the ``OpenGL::*`` import targets instead.
 
+.. versionadded:: 3.10
+  Variables for GLVND-specific libraries ``OpenGL``, ``EGL`` and ``GLX``.
+
 Cache variables
 ^^^^^^^^^^^^^^^
 
@@ -72,6 +89,11 @@ The following cache variables may also be set:
  Path to the OpenGL library.  New code should prefer the ``OpenGL::*`` import
  targets.
 
+.. versionadded:: 3.10
+  Variables for GLVND-specific libraries ``OpenGL``, ``EGL`` and ``GLX``.
+
+.. _`Linux Specific`:
+
 Linux-specific
 ^^^^^^^^^^^^^^
 
@@ -97,14 +119,14 @@ The value may be one of:
 ``GLVND``
  If the GLVND OpenGL and GLX libraries are available, prefer them.
  This forces ``OPENGL_gl_LIBRARY`` to be empty.
- This is the default if components were requested (since components
- correspond to GLVND libraries) or if policy :policy:`CMP0072` is
- set to ``NEW``.
+
+ .. versionchanged:: 3.11
+  This is the default, unless policy :policy:`CMP0072` is set to ``OLD``
+  and no components are requeted (since components
+  correspond to GLVND libraries).
 
 ``LEGACY``
  Prefer to use the legacy libGL library, if available.
- This is the default if no components were requested and
- policy :policy:`CMP0072` is not set to ``NEW``.
 
 For EGL targets the client must rely on GLVND support on the user's system.
 Linking should use the ``OpenGL::OpenGL OpenGL::EGL`` targets.  Using GLES*

+ 8 - 2
Modules/FindOpenMP.cmake

@@ -13,11 +13,15 @@ OpenMP support are returned in variables for the different languages.
 The variables may be empty if the compiler does not need a special
 flag to support OpenMP.
 
+.. versionadded:: 3.5
+  Clang support.
+
 Variables
 ^^^^^^^^^
 
-The module exposes the components ``C``, ``CXX``, and ``Fortran``.
-Each of these controls the various languages to search OpenMP support for.
+.. versionadded:: 3.10
+  The module exposes the components ``C``, ``CXX``, and ``Fortran``.
+  Each of these controls the various languages to search OpenMP support for.
 
 Depending on the enabled components the following variables will be set:
 
@@ -65,6 +69,8 @@ Specifically for Fortran, the module sets the following variables:
 The module will also try to provide the OpenMP version variables:
 
 ``OpenMP_<lang>_SPEC_DATE``
+  .. versionadded:: 3.7
+
   Date of the OpenMP specification implemented by the ``<lang>`` compiler.
 ``OpenMP_<lang>_VERSION_MAJOR``
   Major version of OpenMP implemented by the ``<lang>`` compiler.

+ 15 - 2
Modules/FindOpenSSL.cmake

@@ -7,15 +7,22 @@ FindOpenSSL
 
 Find the OpenSSL encryption library.
 
+.. versionadded:: 3.18
+  Support for OpenSSL 3.0.
+
 Optional COMPONENTS
 ^^^^^^^^^^^^^^^^^^^
 
+.. versionadded:: 3.12
+
 This module supports two optional COMPONENTS: ``Crypto`` and ``SSL``.  Both
 components have associated imported targets, as described below.
 
 Imported Targets
 ^^^^^^^^^^^^^^^^
 
+.. versionadded:: 3.4
+
 This module defines the following :prop_tgt:`IMPORTED` targets:
 
 ``OpenSSL::SSL``
@@ -23,6 +30,8 @@ This module defines the following :prop_tgt:`IMPORTED` targets:
 ``OpenSSL::Crypto``
   The OpenSSL ``crypto`` library, if found.
 ``OpenSSL::applink``
+  .. versionadded:: 3.18
+
   The OpenSSL ``applink`` components that might be need to be compiled into
   projects under MSVC. This target is available only if found OpenSSL version
   is not less than 0.9.8. By linking this target the above OpenSSL targets can
@@ -75,8 +84,12 @@ Hints
 ^^^^^
 
 Set ``OPENSSL_ROOT_DIR`` to the root directory of an OpenSSL installation.
-Set ``OPENSSL_USE_STATIC_LIBS`` to ``TRUE`` to look for static libraries.
-Set ``OPENSSL_MSVC_STATIC_RT`` set ``TRUE`` to choose the MT version of the lib.
+
+.. versionadded:: 3.4
+  Set ``OPENSSL_USE_STATIC_LIBS`` to ``TRUE`` to look for static libraries.
+
+.. versionadded:: 3.5
+  Set ``OPENSSL_MSVC_STATIC_RT`` set ``TRUE`` to choose the MT version of the lib.
 #]=======================================================================]
 
 macro(_OpenSSL_test_and_find_dependencies ssl_library crypto_library)

+ 2 - 0
Modules/FindPNG.cmake

@@ -10,6 +10,8 @@ Find libpng, the official reference library for the PNG image format.
 Imported targets
 ^^^^^^^^^^^^^^^^
 
+.. versionadded:: 3.5
+
 This module defines the following :prop_tgt:`IMPORTED` target:
 
 ``PNG::PNG``

+ 15 - 3
Modules/FindPackageHandleStandardArgs.cmake

@@ -51,7 +51,9 @@ implementing :command:`find_package(<PackageName>)` calls.
     (recommended).  Not valid in the full signature.
 
   ``FOUND_VAR <result-var>``
-    Obsolete.  Specifies either ``<PackageName>_FOUND`` or
+    .. deprecated:: 3.3
+
+    Specifies either ``<PackageName>_FOUND`` or
     ``<PACKAGENAME>_FOUND`` as the result variable.  This exists only
     for compatibility with older versions of CMake and is now ignored.
     Result variables of both names are always set for compatibility.
@@ -61,8 +63,10 @@ implementing :command:`find_package(<PackageName>)` calls.
     These may be named in the generated failure message asking the
     user to set the missing variable values.  Therefore these should
     typically be cache entries such as ``FOO_LIBRARY`` and not output
-    variables like ``FOO_LIBRARIES``. This option is mandatory if
-    ``HANDLE_COMPONENTS`` is not specified.
+    variables like ``FOO_LIBRARIES``.
+
+    .. versionchanged:: 3.18
+      If ``HANDLE_COMPONENTS`` is specified, this option can be omitted.
 
   ``VERSION_VAR <version-var>``
     Specify the name of a variable that holds the version of the package
@@ -74,6 +78,8 @@ implementing :command:`find_package(<PackageName>)` calls.
     if the version is ok or not.
 
   ``HANDLE_VERSION_RANGE``
+    .. versionadded:: 3.19
+
     Enable handling of a version range, if one is specified. Without this
     option, a developer warning will be displayed if a version range is
     specified.
@@ -94,6 +100,8 @@ implementing :command:`find_package(<PackageName>)` calls.
     was found.
 
   ``REASON_FAILURE_MESSAGE <reason-failure-message>``
+    .. versionadded:: 3.16
+
     Specify a custom message of the reason for the failure which will be
     appended to the default generated message.
 
@@ -102,6 +110,8 @@ implementing :command:`find_package(<PackageName>)` calls.
     generated message.  Not recommended.
 
   ``NAME_MISMATCHED``
+    .. versionadded:: 3.17
+
     Indicate that the ``<PackageName>`` does not match
     ``${CMAKE_FIND_PACKAGE_NAME}``. This is usually a mistake and raises a
     warning, but it may be intentional for usage of the command for components
@@ -163,6 +173,8 @@ message.
 
 .. command:: find_package_check_version
 
+  .. versionadded:: 3.19
+
   Helper function which can be used to check if a ``<version>`` is valid
   against version-related arguments of :command:`find_package`.
 

+ 59 - 17
Modules/FindPkgConfig.cmake

@@ -632,19 +632,38 @@ endmacro()
 
   When the ``QUIET`` argument is given, no status messages will be printed.
 
-  By default, if :variable:`CMAKE_MINIMUM_REQUIRED_VERSION` is 3.1 or
-  later, or if :variable:`PKG_CONFIG_USE_CMAKE_PREFIX_PATH` is set to a
-  boolean ``True`` value, then the :variable:`CMAKE_PREFIX_PATH`,
-  :variable:`CMAKE_FRAMEWORK_PATH`, and :variable:`CMAKE_APPBUNDLE_PATH` cache
-  and environment variables will be added to the ``pkg-config`` search path.
-  The ``NO_CMAKE_PATH`` and ``NO_CMAKE_ENVIRONMENT_PATH`` arguments
-  disable this behavior for the cache variables and environment variables
-  respectively.
-
-  The ``IMPORTED_TARGET`` argument will create an imported target named
-  ``PkgConfig::<prefix>`` that can be passed directly as an argument to
-  :command:`target_link_libraries`. The ``GLOBAL`` argument will make the
-  imported target available in global scope.
+  .. versionadded:: 3.1
+    The :variable:`CMAKE_PREFIX_PATH`,
+    :variable:`CMAKE_FRAMEWORK_PATH`, and :variable:`CMAKE_APPBUNDLE_PATH` cache
+    and environment variables will be added to the ``pkg-config`` search path.
+    The ``NO_CMAKE_PATH`` and ``NO_CMAKE_ENVIRONMENT_PATH`` arguments
+    disable this behavior for the cache variables and environment variables
+    respectively.
+    The :variable:`PKG_CONFIG_USE_CMAKE_PREFIX_PATH` variable set to ``FALSE``
+    disables this behavior globally.
+
+    .. This didn't actually work until 3.3.
+
+  .. versionadded:: 3.6
+    The ``IMPORTED_TARGET`` argument will create an imported target named
+    ``PkgConfig::<prefix>`` that can be passed directly as an argument to
+    :command:`target_link_libraries`.
+
+    .. This didn't actually work until 3.7.
+
+  .. versionadded:: 3.13
+    The ``GLOBAL`` argument will make the
+    imported target available in global scope.
+
+  .. versionadded:: 3.15
+    Non-library linker options reported by ``pkg-config`` are stored in the
+    :prop_tgt:`INTERFACE_LINK_OPTIONS` target property.
+
+  .. versionchanged:: 3.18
+    Include directories specified with ``-isystem`` are stored in the
+    :prop_tgt:`INTERFACE_INCLUDE_DIRECTORIES` target property.  Previous
+    versions of CMake left them in the :prop_tgt:`INTERFACE_COMPILE_OPTIONS`
+    property.
 
   Each ``<moduleSpec>`` can be either a bare module name or it can be a
   module name with a version constraint (operators ``=``, ``<``, ``>``,
@@ -683,6 +702,11 @@ endmacro()
   All but ``<XXX>_FOUND`` may be a :ref:`;-list <CMake Language Lists>` if the
   associated variable returned from ``pkg-config`` has multiple values.
 
+  .. versionchanged:: 3.18
+    Include directories specified with ``-isystem`` are stored in the
+    ``<XXX>_INCLUDE_DIRS`` variable.  Previous versions of CMake left them
+    in ``<XXX>_CFLAGS_OTHER``.
+
   There are some special variables whose prefix depends on the number of
   ``<moduleSpec>`` given.  When there is only one ``<moduleSpec>``,
   ``<YYY>`` will simply be ``<prefix>``, but if two or more ``<moduleSpec>``
@@ -697,6 +721,16 @@ endmacro()
   ``<YYY>_LIBDIR``
     lib directory of the module
 
+  .. versionchanged:: 3.8
+    For any given ``<prefix>``, ``pkg_check_modules()`` can be called multiple
+    times with different parameters.  Previous versions of CMake cached and
+    returned the first successful result.
+
+  .. versionchanged:: 3.16
+    If a full path to the found library can't be determined, but it's still
+    visible to the linker, pass it through as ``-l<name>``.  Previous versions
+    of CMake failed in this case.
+
   Examples:
 
   .. code-block:: cmake
@@ -768,9 +802,10 @@ endmacro()
                       [IMPORTED_TARGET [GLOBAL]]
                       <moduleSpec> [<moduleSpec>...])
 
-  If a module is found, the ``<prefix>_MODULE_NAME`` variable will contain the
-  name of the matching module. This variable can be used if you need to run
-  :command:`pkg_get_variable`.
+  .. versionadded:: 3.16
+    If a module is found, the ``<prefix>_MODULE_NAME`` variable will contain the
+    name of the matching module. This variable can be used if you need to run
+    :command:`pkg_get_variable`.
 
   Example:
 
@@ -815,6 +850,8 @@ endmacro()
 #[========================================[.rst:
 .. command:: pkg_get_variable
 
+  .. versionadded:: 3.4
+
   Retrieves the value of a pkg-config variable ``varName`` and stores it in the
   result variable ``resultVar`` in the calling scope.
 
@@ -849,10 +886,15 @@ Variables Affecting Behavior
 
   This can be set to the path of the pkg-config executable.  If not provided,
   it will be set by the module as a result of calling :command:`find_program`
-  internally.  The ``PKG_CONFIG`` environment variable can be used as a hint.
+  internally.
+
+  .. versionadded:: 3.1
+    The ``PKG_CONFIG`` environment variable can be used as a hint.
 
 .. variable:: PKG_CONFIG_USE_CMAKE_PREFIX_PATH
 
+  .. versionadded:: 3.1
+
   Specifies whether :command:`pkg_check_modules` and
   :command:`pkg_search_module` should add the paths in the
   :variable:`CMAKE_PREFIX_PATH`, :variable:`CMAKE_FRAMEWORK_PATH` and

+ 2 - 0
Modules/FindPostgreSQL.cmake

@@ -10,6 +10,8 @@ Find the PostgreSQL installation.
 IMPORTED Targets
 ^^^^^^^^^^^^^^^^
 
+.. versionadded:: 3.14
+
 This module defines :prop_tgt:`IMPORTED` target ``PostgreSQL::PostgreSQL``
 if PostgreSQL has been found.
 

+ 21 - 3
Modules/FindProtobuf.cmake

@@ -7,6 +7,13 @@ FindProtobuf
 
 Locate and configure the Google Protocol Buffers library.
 
+.. versionadded:: 3.6
+  Support for :command:`find_package` version checks.
+
+.. versionchanged:: 3.6
+  All input and output variables use the ``Protobuf_`` prefix.
+  Variables with ``PROTOBUF_`` prefix are still supported for compatibility.
+
 The following variables can be set and are optional:
 
 ``Protobuf_SRC_ROOT_FOLDER``
@@ -19,8 +26,12 @@ The following variables can be set and are optional:
   List of additional directories to be searched for
   imported .proto files.
 ``Protobuf_DEBUG``
+  .. versionadded:: 3.6
+
   Show debug messages.
 ``Protobuf_USE_STATIC_LIBS``
+  .. versionadded:: 3.9
+
   Set to ON to force the use of the static libraries.
   Default is OFF.
 
@@ -30,6 +41,8 @@ Defines the following variables:
   Found the Google Protocol Buffers library
   (libprotobuf & header files)
 ``Protobuf_VERSION``
+  .. versionadded:: 3.6
+
   Version of package found.
 ``Protobuf_INCLUDE_DIRS``
   Include directories for Google Protocol Buffers
@@ -40,7 +53,8 @@ Defines the following variables:
 ``Protobuf_LITE_LIBRARIES``
   The protobuf-lite libraries
 
-The following :prop_tgt:`IMPORTED` targets are also defined:
+.. versionadded:: 3.9
+  The following :prop_tgt:`IMPORTED` targets are also defined:
 
 ``protobuf::libprotobuf``
   The protobuf library.
@@ -49,7 +63,8 @@ The following :prop_tgt:`IMPORTED` targets are also defined:
 ``protobuf::libprotoc``
   The protoc library.
 ``protobuf::protoc``
-  The protoc compiler.
+  .. versionadded:: 3.10
+    The protoc compiler.
 
 The following cache variables are also available to set or use:
 
@@ -101,7 +116,8 @@ Example:
   ``HDRS``
     Variable to define with autogenerated header files
   ``DESCRIPTORS``
-    Variable to define with autogenerated descriptor files, if requested.
+    .. versionadded:: 3.10
+      Variable to define with autogenerated descriptor files, if requested.
   ``EXPORT_MACRO``
     is a macro which should expand to ``__declspec(dllexport)`` or
     ``__declspec(dllimport)`` depending on what is being compiled.
@@ -110,6 +126,8 @@ Example:
 
 .. command:: protobuf_generate_python
 
+  .. versionadded:: 3.4
+
   Add custom commands to process ``.proto`` files to Python::
 
     protobuf_generate_python (<PY> [<ARGN>...])

+ 1 - 1
Modules/FindPython.cmake

@@ -34,7 +34,7 @@ The following components are supported:
 * ``NumPy``: search for NumPy include directories.
 
 .. versionadded:: 3.14
-  Added ``NumPy`` component.
+  Added the ``NumPy`` component.
 
 If no ``COMPONENTS`` are specified, ``Interpreter`` is assumed.
 

+ 1 - 1
Modules/FindPython2.cmake

@@ -34,7 +34,7 @@ The following components are supported:
 * ``NumPy``: search for NumPy include directories.
 
 .. versionadded:: 3.14
-  Added ``NumPy`` component.
+  Added the ``NumPy`` component.
 
 If no ``COMPONENTS`` are specified, ``Interpreter`` is assumed.
 

+ 1 - 1
Modules/FindPython3.cmake

@@ -34,7 +34,7 @@ The following components are supported:
 * ``NumPy``: search for NumPy include directories.
 
 .. versionadded:: 3.14
-  Added ``NumPy`` component.
+  Added the ``NumPy`` component.
 
 If no ``COMPONENTS`` are specified, ``Interpreter`` is assumed.
 

+ 3 - 3
Modules/FindQt.cmake

@@ -5,14 +5,14 @@
 FindQt
 ------
 
+.. deprecated:: 3.14
+  This module is available only if policy :policy:`CMP0084` is not set to ``NEW``.
+
 Searches for all installed versions of Qt3 or Qt4.
 
 This module cannot handle Qt5 or any later versions.
 For those, see :manual:`cmake-qt(7)`.
 
-This module exists for the :command:`find_package` command only if
-policy :policy:`CMP0084` is not set to ``NEW``.
-
 This module should only be used if your project can work with multiple
 versions of Qt.  If not, you should just directly use FindQt4 or
 FindQt3.  If multiple versions of Qt are found on the machine, then

+ 8 - 4
Modules/FindRuby.cmake

@@ -37,7 +37,8 @@ This module will set the following variables in your project:
 ``Ruby_INCLUDE_DIRS``
   include dirs to be used when using the ruby library
 ``Ruby_LIBRARIES``
-  libraries needed to use ruby from C.
+  .. versionadded:: 3.18
+    libraries needed to use ruby from C.
 ``Ruby_VERSION``
   the version of ruby which was found, e.g. "1.8.7"
 ``Ruby_VERSION_MAJOR``
@@ -47,9 +48,10 @@ This module will set the following variables in your project:
 ``Ruby_VERSION_PATCH``
   Ruby patch version.
 
-
-The following variables are also provided for compatibility reasons,
-don't use them in new code:
+.. versionchanged:: 3.18
+  Previous versions of CMake used the ``RUBY_`` prefix for all variables.
+  The following variables are provided for compatibility reasons,
+  don't use them in new code:
 
 ``RUBY_EXECUTABLE``
   same as Ruby_EXECUTABLE.
@@ -67,6 +69,8 @@ don't use them in new code:
 Hints
 ^^^^^
 
+.. versionadded:: 3.18
+
 ``Ruby_ROOT_DIR``
   Define the root directory of a Ruby installation.
 

+ 8 - 0
Modules/FindSDL.cmake

@@ -11,6 +11,8 @@ Locate the SDL library
 Imported targets
 ^^^^^^^^^^^^^^^^
 
+.. versionadded:: 3.19
+
 This module defines the following :prop_tgt:`IMPORTED` target:
 
 ``SDL::SDL``
@@ -36,6 +38,10 @@ This module will set the following variables in your project:
 ``SDL_VERSION_PATCH``
   SDL patch version
 
+.. versionadded:: 3.19
+  Added the ``SDL_INCLUDE_DIRS``, ``SDL_LIBRARIES`` and ``SDL_VERSION[_<PART>]``
+  variables.
+
 Cache variables
 ^^^^^^^^^^^^^^^
 
@@ -63,6 +69,8 @@ This module responds to the flag:
 Obsolete variables
 ^^^^^^^^^^^^^^^^^^
 
+.. deprecated:: 3.19
+
 These variables are obsolete and provided for backwards compatibility:
 
 ``SDL_VERSION_STRING``

+ 11 - 8
Modules/FindSWIG.cmake

@@ -7,14 +7,17 @@ FindSWIG
 
 Find the Simplified Wrapper and Interface Generator (SWIG_) executable.
 
-This module finds an installed SWIG and determines its version. If a
-``COMPONENTS`` or ``OPTIONAL_COMPONENTS`` argument is given to the
-:command:`find_package` command, it will also determine supported target
-languages.
-
-When a version is requested, it can be specified as a simple value or as a
-range. For a detailed description of version range usage and capabilities,
-refer to the :command:`find_package` command.
+This module finds an installed SWIG and determines its version.
+
+.. versionadded:: 3.18
+  If a ``COMPONENTS`` or ``OPTIONAL_COMPONENTS`` argument is given to the
+  :command:`find_package` command, it will also determine supported target
+  languages.
+
+.. versionadded:: 3.19
+  When a version is requested, it can be specified as a simple value or as a
+  range. For a detailed description of version range usage and capabilities,
+  refer to the :command:`find_package` command.
 
 The module defines the following variables:
 

+ 2 - 1
Modules/FindSquish.cmake

@@ -47,7 +47,8 @@ to cmake using Squish >= 4.x:
      AUT targetName SUITE suiteName TEST squishTestName
      [SETTINGSGROUP group] [PRE_COMMAND command] [POST_COMMAND command] )
 
-
+.. versionchanged:: 3.18
+  In previous CMake versions, this function was named ``squish_v4_add_test``.
 
 The arguments have the following meaning:
 

+ 6 - 3
Modules/FindSubversion.cmake

@@ -31,9 +31,12 @@ If the command line client executable is found two macros are defined:
 ``Subversion_WC_INFO`` extracts information of a subversion working copy at a
 given location.  This macro defines the following variables if running
 Subversion's ``info`` command on ``<dir>`` succeeds; otherwise a
-``SEND_ERROR`` message is generated. The error can be ignored by providing the
-``IGNORE_SVN_FAILURE`` option, which causes these variables to remain
-undefined.
+``SEND_ERROR`` message is generated.
+
+.. versionadded:: 3.13
+  The error can be ignored by providing the
+  ``IGNORE_SVN_FAILURE`` option, which causes these variables to remain
+  undefined.
 
 ::
 

+ 7 - 0
Modules/FindTIFF.cmake

@@ -17,12 +17,16 @@ imported target, as described below.
 Imported targets
 ^^^^^^^^^^^^^^^^
 
+.. versionadded:: 3.5
+
 This module defines the following :prop_tgt:`IMPORTED` targets:
 
 ``TIFF::TIFF``
   The TIFF library, if found.
 
 ``TIFF::CXX``
+  .. versionadded:: 3.19
+
   The C++ wrapper libtiffxx, if requested by the `COMPONENTS CXX` option,
   if the compiler is not MSVC (which includes the C++ wrapper in libtiff),
   and if found.
@@ -56,6 +60,9 @@ The following cache variables may also be set:
   the path to the TIFFXX library for release configurations
 ``TIFFXX_LIBRARY_DEBUG``
   the path to the TIFFXX library for debug configurations
+
+.. versionadded:: 3.4
+  Debug and Release variants are found separately.
 #]=======================================================================]
 
 cmake_policy(PUSH)

+ 4 - 0
Modules/FindThreads.cmake

@@ -10,6 +10,8 @@ This module determines the thread library of the system.
 Imported Targets
 ^^^^^^^^^^^^^^^^
 
+.. versionadded:: 3.1
+
 This module defines the following :prop_tgt:`IMPORTED` target:
 
 ``Threads::Threads``
@@ -38,6 +40,8 @@ Variables Affecting Behavior
 
 .. variable:: THREADS_PREFER_PTHREAD_FLAG
 
+  .. versionadded:: 3.1
+
   If the use of the -pthread compiler and linker flag is preferred then
   the caller can set this variable to TRUE. The compiler flag can only be
   used with the imported target. Use of both the imported target as well

+ 5 - 2
Modules/FindVulkan.cmake

@@ -16,8 +16,9 @@ IMPORTED Targets
 This module defines :prop_tgt:`IMPORTED` target ``Vulkan::Vulkan``, if
 Vulkan has been found.
 
-This module defines :prop_tgt:`IMPORTED` target ``Vulkan::glslc``, if
-Vulkan and the GLSLC SPIR-V compiler has been found.
+.. versionadded:: 3.19
+  This module defines :prop_tgt:`IMPORTED` target ``Vulkan::glslc``, if
+  Vulkan and the GLSLC SPIR-V compiler has been found.
 
 Result Variables
 ^^^^^^^^^^^^^^^^
@@ -37,6 +38,8 @@ The module will also define three cache variables::
 Hints
 ^^^^^
 
+.. versionadded:: 3.18
+
 The ``VULKAN_SDK`` environment variable optionally specifies the
 location of the Vulkan SDK root directory for the given
 architecture. It is typically set by sourcing the toplevel

+ 20 - 0
Modules/FindX11.cmake

@@ -17,6 +17,9 @@ Try to find X11 on UNIX systems. The following values are defined
 
 and also the following more fine grained variables and targets:
 
+.. versionadded:: 3.14
+  Imported targets.
+
 ::
 
   X11_ICE_INCLUDE_PATH,          X11_ICE_LIB,        X11_ICE_FOUND,        X11::ICE
@@ -62,6 +65,23 @@ and also the following more fine grained variables and targets:
   X11_Xshape_INCLUDE_PATH,       (in X11_Xext_LIB),  X11_Xshape_FOUND
   X11_XSync_INCLUDE_PATH,        (in X11_Xext_LIB),  X11_XSync_FOUND
   X11_Xaw_INCLUDE_PATH,          X11_Xaw_LIB         X11_Xaw_FOUND         X11::Xaw
+
+.. versionadded:: 3.14
+  Renamed ``Xxf86misc``, ``X11_Xxf86misc``, ``X11_Xxf86vm``, ``X11_xkbfile``,
+  ``X11_Xtst``, and ``X11_Xss`` libraries to match their file names.
+  Deprecated the ``X11_Xinput`` library.  Old names are still available
+  for compatibility.
+
+.. versionadded:: 3.14
+  Added the ``X11_Xext_INCLUDE_PATH`` variable.
+
+.. versionadded:: 3.18
+  Added the ``xcb``, ``X11-xcb``, ``xcb-icccm``, ``xcb-xkb``, ``xkbcommon``,
+  and ``xkbcommon-X11`` libraries.
+
+.. versionadded:: 3.19
+  Added the ``Xaw``, ``xcb_util``, and ``xcb_xfixes`` libraries.
+
 #]=======================================================================]
 
 if (UNIX)

+ 5 - 0
Modules/FindXercesC.cmake

@@ -12,6 +12,8 @@ Find the Apache Xerces-C++ validating XML parser headers and libraries.
 Imported targets
 ^^^^^^^^^^^^^^^^
 
+.. versionadded:: 3.5
+
 This module defines the following :prop_tgt:`IMPORTED` targets:
 
 ``XercesC::XercesC``
@@ -40,6 +42,9 @@ The following cache variables may also be set:
   the directory containing the Xerces headers
 ``XercesC_LIBRARY``
   the Xerces library
+
+.. versionadded:: 3.4
+  Debug and Release variants are found separately.
 #]=======================================================================]
 
 # Written by Roger Leigh <[email protected]>

+ 5 - 0
Modules/FindZLIB.cmake

@@ -10,6 +10,8 @@ Find the native ZLIB includes and library.
 IMPORTED Targets
 ^^^^^^^^^^^^^^^^
 
+.. versionadded:: 3.1
+
 This module defines :prop_tgt:`IMPORTED` target ``ZLIB::ZLIB``, if
 ZLIB has been found.
 
@@ -32,6 +34,9 @@ This module defines the following variables:
   ZLIB_VERSION_PATCH  - The patch version of zlib
   ZLIB_VERSION_TWEAK  - The tweak version of zlib
 
+.. versionadded:: 3.4
+  Debug and Release variants are found separately.
+
 Backward Compatibility
 ^^^^^^^^^^^^^^^^^^^^^^
 

+ 9 - 0
Modules/FindwxWidgets.cmake

@@ -14,6 +14,12 @@ package:
 
 find_package(wxWidgets COMPONENTS core base ... OPTIONAL_COMPONENTS net ...)
 
+.. versionadded:: 3.4
+  Support for :command:`find_package` version argument; ``webview`` component.
+
+.. versionadded:: 3.14
+  ``OPTIONAL_COMPONENTS`` support.
+
 There are two search branches: a windows style and a unix style.  For
 windows, the following variables are searched for and set to defaults
 in case of multiple choices.  Change them if the defaults are not
@@ -82,6 +88,9 @@ and unix style:
                                "`wx-config --cxxflags`".
   wxWidgets_USE_FILE         - Convenience include file.
 
+.. versionadded:: 3.11
+  The following environment variables can be used as hints: ``WX_CONFIG``,
+  ``WXRC_CMD``.
 
 
 Sample usage:

+ 10 - 1
Modules/GNUInstallDirs.cmake

@@ -46,7 +46,8 @@ where ``<dir>`` is one of:
 ``LOCALSTATEDIR``
   modifiable single-machine data (``var``)
 ``RUNSTATEDIR``
-  run-time variable data (``LOCALSTATEDIR/run``)
+  .. versionadded:: 3.9
+    run-time variable data (``LOCALSTATEDIR/run``)
 ``LIBDIR``
   object code libraries (``lib`` or ``lib64``
   or ``lib/<multiarch-tuple>`` on Debian)
@@ -73,6 +74,8 @@ used and the value will appear in the cache for editing by the user.
 Special Cases
 ^^^^^^^^^^^^^
 
+.. versionadded:: 3.4
+
 The following values of :variable:`CMAKE_INSTALL_PREFIX` are special:
 
 ``/``
@@ -115,6 +118,8 @@ Macros
 
     GNUInstallDirs_get_absolute_install_dir(absvar var dirname)
 
+  .. versionadded:: 3.7
+
   Set the given variable ``absvar`` to the absolute path contained
   within the variable ``var``.  This is to allow the computation of an
   absolute path, accounting for all the special cases documented
@@ -123,6 +128,10 @@ Macros
   allow users who create additional path variables to also compute
   absolute paths where necessary, using the same logic.  ``dirname`` is
   the directory name to get, e.g. ``BINDIR``.
+
+  .. versionchanged:: 3.20
+    Added the ``<dirname>`` parameter.  Previous versions of CMake passed
+    this value through the variable ``${dir}``.
 #]=======================================================================]
 
 cmake_policy(PUSH)

Some files were not shown because too many files changed in this diff