Upgrade cmake prebuilt to 3.18.1 [Linux]

Built at:
http://fusion/fd7fbad8-87e8-4d98-888c-15fee8d3078a

Change-Id: If77e6e4d77d0713d8e6d8ba55a48205a96cef5ae
diff --git a/bin/ccmake b/bin/ccmake
index b31f7bf..e942e5f 100755
--- a/bin/ccmake
+++ b/bin/ccmake
Binary files differ
diff --git a/bin/cmake b/bin/cmake
index c625adc..02c6b3c 100755
--- a/bin/cmake
+++ b/bin/cmake
Binary files differ
diff --git a/bin/cpack b/bin/cpack
index 3e203bc..b2b31cf 100755
--- a/bin/cpack
+++ b/bin/cpack
Binary files differ
diff --git a/bin/ctest b/bin/ctest
index e419d21..8420a8e 100755
--- a/bin/ctest
+++ b/bin/ctest
Binary files differ
diff --git a/doc/cmake-3.17/cmlibrhash/COPYING b/doc/cmake-3.17/cmlibrhash/COPYING
deleted file mode 100644
index bf65ee1..0000000
--- a/doc/cmake-3.17/cmlibrhash/COPYING
+++ /dev/null
@@ -1,15 +0,0 @@
-
-                                RHash License
-
-Copyright (c) 2005-2014 Aleksey Kravchenko <[email protected]>
-
-Permission is hereby granted, free of charge,  to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction,  including without limitation the rights
-to  use,  copy,  modify,  merge, publish, distribute, sublicense, and/or sell
-copies  of  the Software,  and  to permit  persons  to whom  the Software  is
-furnished to do so.
-
-The Software  is distributed in the hope that it will be useful,  but WITHOUT
-ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-FOR A PARTICULAR PURPOSE.  Use  this  program  at  your  own  risk!
diff --git a/doc/cmake-3.17/cmlibrhash/README b/doc/cmake-3.17/cmlibrhash/README
deleted file mode 100644
index 4ea492f..0000000
--- a/doc/cmake-3.17/cmlibrhash/README
+++ /dev/null
@@ -1,7 +0,0 @@
-                       === Notes on RHash License ===
-
-The RHash program and LibRHash library are distributed under  RHash License,
-see the COPYING file for details.  In particular,  the program,  the library
-and  source code  can be  used  free of charge  under  the  MIT,  BSD,  GPL,
-commercial or freeware license without additional restrictions.  In the case
-the OSI-approved license is required the  MIT license should be used.
diff --git a/doc/cmake-3.17/Copyright.txt b/doc/cmake-3.18/Copyright.txt
similarity index 100%
rename from doc/cmake-3.17/Copyright.txt
rename to doc/cmake-3.18/Copyright.txt
diff --git a/doc/cmake-3.17/cmcurl/COPYING b/doc/cmake-3.18/cmcurl/COPYING
similarity index 93%
rename from doc/cmake-3.17/cmcurl/COPYING
rename to doc/cmake-3.18/cmcurl/COPYING
index 3528bd7..9d9e4af 100644
--- a/doc/cmake-3.17/cmcurl/COPYING
+++ b/doc/cmake-3.18/cmcurl/COPYING
@@ -1,6 +1,6 @@
 COPYRIGHT AND PERMISSION NOTICE
 
-Copyright (c) 1996 - 2019, Daniel Stenberg, <[email protected]>, and many
+Copyright (c) 1996 - 2020, Daniel Stenberg, <[email protected]>, and many
 contributors, see the THANKS file.
 
 All rights reserved.
diff --git a/doc/cmake-3.17/cmlibarchive/COPYING b/doc/cmake-3.18/cmlibarchive/COPYING
similarity index 89%
rename from doc/cmake-3.17/cmlibarchive/COPYING
rename to doc/cmake-3.18/cmlibarchive/COPYING
index 93952b7..14bbefa 100644
--- a/doc/cmake-3.17/cmlibarchive/COPYING
+++ b/doc/cmake-3.18/cmlibarchive/COPYING
@@ -23,6 +23,13 @@
 * The following source files are in the public domain:
    libarchive/archive_getdate.c
 
+* The following source files are triple-licensed with the ability to choose
+  from CC0 1.0 Universal, OpenSSL or Apache 2.0 licenses:
+   libarchive/archive_blake2.h
+   libarchive/archive_blake2_impl.h
+   libarchive/archive_blake2s_ref.c
+   libarchive/archive_blake2sp_ref.c
+
 * The build files---including Makefiles, configure scripts,
   and auxiliary scripts used as part of the compile process---have
   widely varying licensing terms.  Please check individual files before
@@ -34,7 +41,7 @@
 seems to be an unavoidable mess.
 
 
-Copyright (c) 2003-2009 <author(s)>
+Copyright (c) 2003-2018 <author(s)>
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
diff --git a/doc/cmake-3.17/cmliblzma/COPYING b/doc/cmake-3.18/cmliblzma/COPYING
similarity index 100%
rename from doc/cmake-3.17/cmliblzma/COPYING
rename to doc/cmake-3.18/cmliblzma/COPYING
diff --git a/doc/cmake-3.18/cmlibrhash/COPYING b/doc/cmake-3.18/cmlibrhash/COPYING
new file mode 100644
index 0000000..be7d4a9
--- /dev/null
+++ b/doc/cmake-3.18/cmlibrhash/COPYING
@@ -0,0 +1,15 @@
+
+                           BSD Zero Clause License
+
+Copyright (c) 2005, Aleksey Kravchenko <[email protected]>
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE  INCLUDING ALL IMPLIED WARRANTIES OF  MERCHANTABILITY
+AND FITNESS.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT,  OR CONSEQUENTIAL DAMAGES  OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE,  DATA OR PROFITS,  WHETHER IN AN ACTION OF CONTRACT,  NEGLIGENCE
+OR OTHER TORTIOUS ACTION,  ARISING OUT OF  OR IN CONNECTION  WITH THE USE  OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/doc/cmake-3.17/cmlibuv/LICENSE b/doc/cmake-3.18/cmlibuv/LICENSE
similarity index 100%
rename from doc/cmake-3.17/cmlibuv/LICENSE
rename to doc/cmake-3.18/cmlibuv/LICENSE
diff --git a/doc/cmake-3.18/cmnghttp2/COPYING b/doc/cmake-3.18/cmnghttp2/COPYING
new file mode 100644
index 0000000..8020179
--- /dev/null
+++ b/doc/cmake-3.18/cmnghttp2/COPYING
@@ -0,0 +1,23 @@
+The MIT License
+
+Copyright (c) 2012, 2014, 2015, 2016 Tatsuhiro Tsujikawa
+Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/doc/cmake-3.17/cmsys/Copyright.txt b/doc/cmake-3.18/cmsys/Copyright.txt
similarity index 100%
rename from doc/cmake-3.17/cmsys/Copyright.txt
rename to doc/cmake-3.18/cmsys/Copyright.txt
diff --git a/doc/cmake-3.17/cmzlib/Copyright.txt b/doc/cmake-3.18/cmzlib/Copyright.txt
similarity index 100%
rename from doc/cmake-3.17/cmzlib/Copyright.txt
rename to doc/cmake-3.18/cmzlib/Copyright.txt
diff --git a/doc/cmake-3.17/cmzstd/LICENSE b/doc/cmake-3.18/cmzstd/LICENSE
similarity index 100%
rename from doc/cmake-3.17/cmzstd/LICENSE
rename to doc/cmake-3.18/cmzstd/LICENSE
diff --git a/share/cmake-3.17/completions/cmake b/share/bash-completion/completions/cmake
similarity index 100%
rename from share/cmake-3.17/completions/cmake
rename to share/bash-completion/completions/cmake
diff --git a/share/cmake-3.17/completions/cpack b/share/bash-completion/completions/cpack
similarity index 100%
rename from share/cmake-3.17/completions/cpack
rename to share/bash-completion/completions/cpack
diff --git a/share/cmake-3.17/completions/ctest b/share/bash-completion/completions/ctest
similarity index 100%
rename from share/cmake-3.17/completions/ctest
rename to share/bash-completion/completions/ctest
diff --git a/share/cmake-3.17/Help/command/get_source_file_property.rst b/share/cmake-3.17/Help/command/get_source_file_property.rst
deleted file mode 100644
index decec19..0000000
--- a/share/cmake-3.17/Help/command/get_source_file_property.rst
+++ /dev/null
@@ -1,22 +0,0 @@
-get_source_file_property
-------------------------
-
-Get a property for a source file.
-
-.. code-block:: cmake
-
-  get_source_file_property(VAR file property)
-
-Gets a property from a source file.  The value of the property is
-stored in the variable ``VAR``.  If the source property is not found, the
-behavior depends on whether it has been defined to be an ``INHERITED`` property
-or not (see :command:`define_property`).  Non-inherited properties will set
-``VAR`` to "NOTFOUND", whereas inherited properties will search the relevant
-parent scope as described for the :command:`define_property` command and
-if still unable to find the property, ``VAR`` will be set to an empty string.
-
-Use :command:`set_source_files_properties` to set property values.  Source
-file properties usually control how the file is built. One property that is
-always there is :prop_sf:`LOCATION`.
-
-See also the more general :command:`get_property` command.
diff --git a/share/cmake-3.17/Help/command/set_source_files_properties.rst b/share/cmake-3.17/Help/command/set_source_files_properties.rst
deleted file mode 100644
index ab95d70..0000000
--- a/share/cmake-3.17/Help/command/set_source_files_properties.rst
+++ /dev/null
@@ -1,19 +0,0 @@
-set_source_files_properties
----------------------------
-
-Source files can have properties that affect how they are built.
-
-.. code-block:: cmake
-
-  set_source_files_properties([file1 [file2 [...]]]
-                              PROPERTIES prop1 value1
-                              [prop2 value2 [...]])
-
-Sets properties associated with source files using a key/value paired
-list.
-
-See also the :command:`set_property(SOURCE)` command.
-
-See :ref:`Source File Properties` for the list of properties known
-to CMake.  Source file properties are visible only to targets added
-in the same directory (``CMakeLists.txt``).
diff --git a/share/cmake-3.17/Help/cpack_gen/archive.rst b/share/cmake-3.17/Help/cpack_gen/archive.rst
deleted file mode 100644
index d455f4b..0000000
--- a/share/cmake-3.17/Help/cpack_gen/archive.rst
+++ /dev/null
@@ -1,36 +0,0 @@
-CPack Archive Generator
------------------------
-
-Archive CPack generator that supports packaging of sources and binaries in
-different formats:
-
-  - 7Z - 7zip - (.7z)
-  - TBZ2 (.tar.bz2)
-  - TGZ (.tar.gz)
-  - TXZ (.tar.xz)
-  - TZ (.tar.Z)
-  - TZST (.tar.zst)
-  - ZIP (.zip)
-
-Variables specific to CPack Archive generator
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-.. variable:: CPACK_ARCHIVE_FILE_NAME
-              CPACK_ARCHIVE_<component>_FILE_NAME
-
- Package file name without extension which is added automatically depending
- on the archive format.
-
- * Mandatory : YES
- * Default   : ``<CPACK_PACKAGE_FILE_NAME>[-<component>].<extension>`` with
-               spaces replaced by '-'
-
-.. variable:: CPACK_ARCHIVE_COMPONENT_INSTALL
-
- Enable component packaging for CPackArchive
-
- * Mandatory : NO
- * Default   : OFF
-
- If enabled (ON) multiple packages are generated. By default a single package
- containing files of all components is generated.
diff --git a/share/cmake-3.17/Help/prop_sf/COMPILE_OPTIONS.rst b/share/cmake-3.17/Help/prop_sf/COMPILE_OPTIONS.rst
deleted file mode 100644
index 7e48271..0000000
--- a/share/cmake-3.17/Help/prop_sf/COMPILE_OPTIONS.rst
+++ /dev/null
@@ -1,21 +0,0 @@
-COMPILE_OPTIONS
----------------
-
-List of additional options to pass to the compiler.
-
-This property holds a :ref:`semicolon-separated list <CMake Language Lists>` of options
-and will be added to the list of compile flags when this
-source file builds.  Use :prop_sf:`COMPILE_DEFINITIONS` to pass
-additional preprocessor definitions and :prop_sf:`INCLUDE_DIRECTORIES` to pass
-additional include directories.
-
-Contents of ``COMPILE_OPTIONS`` may use "generator expressions" with the
-syntax ``$<...>``.  See the :manual:`cmake-generator-expressions(7)` manual
-for available expressions.  However, :generator:`Xcode`
-does not support per-config per-source settings, so expressions
-that depend on the build configuration are not allowed with that
-generator.
-
-.. note::
-
-  This property should be preferred over the :prop_sf:`COMPILE_FLAGS` property.
diff --git a/share/cmake-3.17/Help/prop_sf/Fortran_FORMAT.rst b/share/cmake-3.17/Help/prop_sf/Fortran_FORMAT.rst
deleted file mode 100644
index 1cbbf48..0000000
--- a/share/cmake-3.17/Help/prop_sf/Fortran_FORMAT.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-Fortran_FORMAT
---------------
-
-Set to ``FIXED`` or ``FREE`` to indicate the Fortran source layout.
-
-This property tells CMake whether a given Fortran source file uses
-fixed-format or free-format.  CMake will pass the corresponding format
-flag to the compiler.  Consider using the target-wide
-:prop_tgt:`Fortran_FORMAT` property if all source files in a target
-share the same format.
diff --git a/share/cmake-3.17/Help/prop_test/REQUIRED_FILES.rst b/share/cmake-3.17/Help/prop_test/REQUIRED_FILES.rst
deleted file mode 100644
index fac357c..0000000
--- a/share/cmake-3.17/Help/prop_test/REQUIRED_FILES.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-REQUIRED_FILES
---------------
-
-List of files required to run the test.
-
-If set to a list of files, the test will not be run unless all of the
-files exist.
diff --git a/share/cmake-3.17/Help/prop_tgt/IMPORTED_GLOBAL.rst b/share/cmake-3.17/Help/prop_tgt/IMPORTED_GLOBAL.rst
deleted file mode 100644
index 1feca04..0000000
--- a/share/cmake-3.17/Help/prop_tgt/IMPORTED_GLOBAL.rst
+++ /dev/null
@@ -1,22 +0,0 @@
-IMPORTED_GLOBAL
----------------
-
-Indication of whether an :ref:`IMPORTED target <Imported Targets>` is
-globally visible.
-
-The boolean value of this property is True for targets created with the
-``IMPORTED`` ``GLOBAL`` options to :command:`add_executable()` or
-:command:`add_library()`. It is always False for targets built within the
-project.
-
-For targets created with the ``IMPORTED`` option to
-:command:`add_executable()` or :command:`add_library()` but without the
-additional option ``GLOBAL`` this is False, too. However, setting this
-property for such a locally ``IMPORTED`` target to True promotes that
-target to global scope. This promotion can only be done in the same
-directory where that ``IMPORTED`` target was created in the first place.
-
-Once an imported target has been made global, it cannot be changed back to
-non-global. Therefore, if a project sets this property, it may only
-provide a value of True. CMake will issue an error if the project tries to
-set the property to a non-True value, even if the value was already False.
diff --git a/share/cmake-3.17/Help/prop_tgt/LINK_OPTIONS.rst b/share/cmake-3.17/Help/prop_tgt/LINK_OPTIONS.rst
deleted file mode 100644
index 2a05ea7..0000000
--- a/share/cmake-3.17/Help/prop_tgt/LINK_OPTIONS.rst
+++ /dev/null
@@ -1,24 +0,0 @@
-LINK_OPTIONS
-------------
-
-List of options to use for the link step of shared library, module
-and executable targets. Targets that are static libraries need to use
-the :prop_tgt:`STATIC_LIBRARY_OPTIONS` target property.
-
-
-This property holds a :ref:`semicolon-separated list <CMake Language Lists>` of options
-specified so far for its target.  Use the :command:`target_link_options`
-command to append more options.
-
-This property is initialized by the :prop_dir:`LINK_OPTIONS` directory
-property when a target is created, and is used by the generators to set
-the options for the compiler.
-
-Contents of ``LINK_OPTIONS`` may use "generator expressions" with the
-syntax ``$<...>``.  See the :manual:`cmake-generator-expressions(7)` manual
-for available expressions.  See the :manual:`cmake-buildsystem(7)` manual
-for more on defining buildsystem properties.
-
-.. note::
-
-  This property must be used in preference to :prop_tgt:`LINK_FLAGS` property.
diff --git a/share/cmake-3.17/Help/prop_tgt/MACHO_COMPATIBILITY_VERSION.rst b/share/cmake-3.17/Help/prop_tgt/MACHO_COMPATIBILITY_VERSION.rst
deleted file mode 100644
index f3fedba..0000000
--- a/share/cmake-3.17/Help/prop_tgt/MACHO_COMPATIBILITY_VERSION.rst
+++ /dev/null
@@ -1,14 +0,0 @@
-MACHO_COMPATIBILITY_VERSION
----------------------------
-
-What compatibility version number is this target for Mach-O binaries.
-
-For shared libraries on Mach-O systems (e.g. macOS, iOS)
-the ``MACHO_COMPATIBILITY_VERSION`` property correspond to
-``compatibility version`` and :prop_tgt:`MACHO_CURRENT_VERSION` to
-``current version``.
-See the :prop_tgt:`FRAMEWORK` target property for an example.
-
-Versions of Mach-O binaries may be checked with the ``otool -L <binary>``
-command.  If ``MACHO_COMPATIBILITY_VERSION`` is not set, the value of
-the :prop_tgt:`SOVERSION` property will be used.
diff --git a/share/cmake-3.17/Help/prop_tgt/MACHO_CURRENT_VERSION.rst b/share/cmake-3.17/Help/prop_tgt/MACHO_CURRENT_VERSION.rst
deleted file mode 100644
index 4a1d3f0..0000000
--- a/share/cmake-3.17/Help/prop_tgt/MACHO_CURRENT_VERSION.rst
+++ /dev/null
@@ -1,13 +0,0 @@
-MACHO_CURRENT_VERSION
----------------------
-
-What current version number is this target for Mach-O binaries.
-
-For shared libraries on Mach-O systems (e.g. macOS, iOS)
-the :prop_tgt:`MACHO_COMPATIBILITY_VERSION` property correspond to
-``compatibility version`` and ``MACHO_CURRENT_VERSION`` to ``current version``.
-See the :prop_tgt:`FRAMEWORK` target property for an example.
-
-Versions of Mach-O binaries may be checked with the ``otool -L <binary>``
-command.  If ``MACHO_CURRENT_VERSION`` is not set, the value of
-the :prop_tgt:`VERSION` property will be used.
diff --git a/share/cmake-3.17/Help/prop_tgt/SOVERSION.rst b/share/cmake-3.17/Help/prop_tgt/SOVERSION.rst
deleted file mode 100644
index d6f8a94..0000000
--- a/share/cmake-3.17/Help/prop_tgt/SOVERSION.rst
+++ /dev/null
@@ -1,29 +0,0 @@
-SOVERSION
----------
-
-What version number is this target.
-
-For shared libraries :prop_tgt:`VERSION` and ``SOVERSION`` can be used to
-specify the build version and API version respectively.  When building or
-installing appropriate symlinks are created if the platform supports
-symlinks and the linker supports so-names.  If only one of both is
-specified the missing is assumed to have the same version number.
-``SOVERSION`` is ignored if :prop_tgt:`NO_SONAME` property is set.
-
-Windows Versions
-^^^^^^^^^^^^^^^^
-
-For shared libraries and executables on Windows the :prop_tgt:`VERSION`
-attribute is parsed to extract a ``<major>.<minor>`` version number.
-These numbers are used as the image version of the binary.
-
-Mach-O Versions
-^^^^^^^^^^^^^^^
-
-For shared libraries and executables on Mach-O systems (e.g. macOS, iOS),
-the ``SOVERSION`` property is a fallback to
-:prop_tgt:`MACHO_COMPATIBILITY_VERSION` property which corresponds to
-*compatiblity version* and :prop_tgt:`VERSION` is a fallback to
-:prop_tgt:`MACHO_CURRENT_VERSION` which corresponds to *current version*.
-See the :prop_tgt:`FRAMEWORK` target property for an example.  Versions
-of Mach-O binaries may be checked with the ``otool -L <binary>`` command.
diff --git a/share/cmake-3.17/Help/prop_tgt/VERSION.rst b/share/cmake-3.17/Help/prop_tgt/VERSION.rst
deleted file mode 100644
index f592f4a..0000000
--- a/share/cmake-3.17/Help/prop_tgt/VERSION.rst
+++ /dev/null
@@ -1,31 +0,0 @@
-VERSION
--------
-
-What version number is this target.
-
-For shared libraries ``VERSION`` and :prop_tgt:`SOVERSION` can be used
-to specify the build version and API version respectively.  When building or
-installing appropriate symlinks are created if the platform supports
-symlinks and the linker supports so-names.  If only one of both is
-specified the missing is assumed to have the same version number.  For
-executables ``VERSION`` can be used to specify the build version.  When
-building or installing appropriate symlinks are created if the
-platform supports symlinks.
-
-Windows Versions
-^^^^^^^^^^^^^^^^
-
-For shared libraries and executables on Windows the ``VERSION``
-attribute is parsed to extract a ``<major>.<minor>`` version number.
-These numbers are used as the image version of the binary.
-
-Mach-O Versions
-^^^^^^^^^^^^^^^
-
-For shared libraries and executables on Mach-O systems (e.g. macOS, iOS),
-the ``VERSION`` property is a fallback to :prop_tgt:`MACHO_CURRENT_VERSION`
-property which corresponds to *current version* and :prop_tgt:`SOVERSION`
-is a fallback to :prop_tgt:`MACHO_COMPATIBILITY_VERSION` which corresponds
-to *compatiblity version*.  See the :prop_tgt:`FRAMEWORK` target
-property for an example.  Versions of Mach-O binaries may be checked with the
-``otool -L <binary>`` command.
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CROSS_CONFIGS.rst b/share/cmake-3.17/Help/variable/CMAKE_CROSS_CONFIGS.rst
deleted file mode 100644
index c850af2..0000000
--- a/share/cmake-3.17/Help/variable/CMAKE_CROSS_CONFIGS.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-CMAKE_CROSS_CONFIGS
--------------------
-
-Specifies a :ref:`semicolon-separated list <CMake Language Lists>` of
-configurations available from all ``build-<Config>.ninja`` files in the
-:generator:`Ninja Multi-Config` generator. See the generator's
-documentation for more details.
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CURRENT_FUNCTION.rst b/share/cmake-3.17/Help/variable/CMAKE_CURRENT_FUNCTION.rst
deleted file mode 100644
index aa2936c..0000000
--- a/share/cmake-3.17/Help/variable/CMAKE_CURRENT_FUNCTION.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-CMAKE_CURRENT_FUNCTION
-----------------------
-
-When executing code inside a :command:`function`, this variable
-contains the name of the current function.  It can be used for
-diagnostic or debug messages.
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CURRENT_FUNCTION_LIST_DIR.rst b/share/cmake-3.17/Help/variable/CMAKE_CURRENT_FUNCTION_LIST_DIR.rst
deleted file mode 100644
index 0119381..0000000
--- a/share/cmake-3.17/Help/variable/CMAKE_CURRENT_FUNCTION_LIST_DIR.rst
+++ /dev/null
@@ -1,33 +0,0 @@
-CMAKE_CURRENT_FUNCTION_LIST_DIR
--------------------------------
-
-When executing code inside a :command:`function`, this variable
-contains the full directory of the listfile defining the current function.
-
-It is quite common practice in CMake that modules use some additional files
-(e.g., templates to render).  And the code typically did the following:
-
-.. code-block:: cmake
-    :caption: Bad
-
-    set(_THIS_MODULE_BASE_DIR "${CMAKE_CURRENT_LIST_DIR}")
-
-    function(foo)
-      configure_file(
-        "${_THIS_MODULE_BASE_DIR}/some.template.in"
-        some.output
-      )
-    endfunction()
-
-Using this variable inside a function eliminates the neccessity of the
-additional one with "global" scope:
-
-.. code-block:: cmake
-    :caption: Good
-
-    function(foo)
-      configure_file(
-        "${CMAKE_CURRENT_FUNCTION_LIST_DIR}/some.template.in"
-        some.output
-      )
-    endfunction()
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CURRENT_FUNCTION_LIST_FILE.rst b/share/cmake-3.17/Help/variable/CMAKE_CURRENT_FUNCTION_LIST_FILE.rst
deleted file mode 100644
index d2c846a..0000000
--- a/share/cmake-3.17/Help/variable/CMAKE_CURRENT_FUNCTION_LIST_FILE.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-CMAKE_CURRENT_FUNCTION_LIST_FILE
---------------------------------
-
-When executing code inside a :command:`function`, this variable
-contains the full path to the listfile declaring a current function.
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CURRENT_FUNCTION_LIST_LINE.rst b/share/cmake-3.17/Help/variable/CMAKE_CURRENT_FUNCTION_LIST_LINE.rst
deleted file mode 100644
index 5a7cd13..0000000
--- a/share/cmake-3.17/Help/variable/CMAKE_CURRENT_FUNCTION_LIST_LINE.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-CMAKE_CURRENT_FUNCTION_LIST_LINE
---------------------------------
-
-When executing code inside a :command:`function`, this variable
-contains the line number in the listfile where a current function has defined.
diff --git a/share/cmake-3.17/Help/variable/CMAKE_DEFAULT_BUILD_TYPE.rst b/share/cmake-3.17/Help/variable/CMAKE_DEFAULT_BUILD_TYPE.rst
deleted file mode 100644
index 62ee0d2..0000000
--- a/share/cmake-3.17/Help/variable/CMAKE_DEFAULT_BUILD_TYPE.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-CMAKE_DEFAULT_BUILD_TYPE
-------------------------
-
-Specifies the configuration to use by default in a ``build.ninja`` file in the
-:generator:`Ninja Multi-Config` generator. See the generator's documentation
-for more details.
diff --git a/share/cmake-3.17/Help/variable/CMAKE_DEFAULT_CONFIGS.rst b/share/cmake-3.17/Help/variable/CMAKE_DEFAULT_CONFIGS.rst
deleted file mode 100644
index 86d8a5a..0000000
--- a/share/cmake-3.17/Help/variable/CMAKE_DEFAULT_CONFIGS.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-CMAKE_DEFAULT_CONFIGS
----------------------
-
-Specifies a :ref:`semicolon-separated list <CMake Language Lists>` of configurations
-to build for a target in ``build.ninja`` if no ``:<Config>`` suffix is specified in
-the :generator:`Ninja Multi-Config` generator.
-See the generator's documentation for more details.
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_INIT.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_INIT.rst
deleted file mode 100644
index a88d122..0000000
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_INIT.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-CMAKE_<LANG>_FLAGS_INIT
------------------------
-
-Value used to initialize the :variable:`CMAKE_<LANG>_FLAGS` cache entry
-the first time a build tree is configured for language ``<LANG>``.
-This variable is meant to be set by a :variable:`toolchain file
-<CMAKE_TOOLCHAIN_FILE>`.  CMake may prepend or append content to
-the value based on the environment and target platform.
-
-See also the configuration-specific
-:variable:`CMAKE_<LANG>_FLAGS_<CONFIG>_INIT` variable.
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SYSTEM_PREFIX_PATH.rst b/share/cmake-3.17/Help/variable/CMAKE_SYSTEM_PREFIX_PATH.rst
deleted file mode 100644
index 87a9d06..0000000
--- a/share/cmake-3.17/Help/variable/CMAKE_SYSTEM_PREFIX_PATH.rst
+++ /dev/null
@@ -1,21 +0,0 @@
-CMAKE_SYSTEM_PREFIX_PATH
-------------------------
-
-:ref:`Semicolon-separated list <CMake Language Lists>` of directories specifying installation
-*prefixes* to be searched by the :command:`find_package`,
-:command:`find_program`, :command:`find_library`, :command:`find_file`, and
-:command:`find_path` commands.  Each command will add appropriate
-subdirectories (like ``bin``, ``lib``, or ``include``) as specified in its own
-documentation.
-
-By default this contains the standard directories for the current system, the
-:variable:`CMAKE_INSTALL_PREFIX`, and the :variable:`CMAKE_STAGING_PREFIX`.
-The installation and staging prefixes may be excluded by setting
-the :variable:`CMAKE_FIND_NO_INSTALL_PREFIX` variable.
-
-``CMAKE_SYSTEM_PREFIX_PATH`` is *not* intended to be modified by the project;
-use :variable:`CMAKE_PREFIX_PATH` for this.
-
-See also :variable:`CMAKE_SYSTEM_INCLUDE_PATH`,
-:variable:`CMAKE_SYSTEM_LIBRARY_PATH`, :variable:`CMAKE_SYSTEM_PROGRAM_PATH`,
-and :variable:`CMAKE_SYSTEM_IGNORE_PATH`.
diff --git a/share/cmake-3.17/Help/variable/CTEST_NIGHTLY_START_TIME.rst b/share/cmake-3.17/Help/variable/CTEST_NIGHTLY_START_TIME.rst
deleted file mode 100644
index bc80276..0000000
--- a/share/cmake-3.17/Help/variable/CTEST_NIGHTLY_START_TIME.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-CTEST_NIGHTLY_START_TIME
-------------------------
-
-Specify the CTest ``NightlyStartTime`` setting
-in a :manual:`ctest(1)` dashboard client script.
diff --git a/share/cmake-3.17/Help/variable/PROJECT_SOURCE_DIR.rst b/share/cmake-3.17/Help/variable/PROJECT_SOURCE_DIR.rst
deleted file mode 100644
index 27f2838..0000000
--- a/share/cmake-3.17/Help/variable/PROJECT_SOURCE_DIR.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-PROJECT_SOURCE_DIR
-------------------
-
-Top level source directory for the current project.
-
-This is the source directory of the most recent :command:`project` command.
diff --git a/share/cmake-3.17/Modules/CMakeDetermineCUDACompiler.cmake b/share/cmake-3.17/Modules/CMakeDetermineCUDACompiler.cmake
deleted file mode 100644
index 7d7fb9a..0000000
--- a/share/cmake-3.17/Modules/CMakeDetermineCUDACompiler.cmake
+++ /dev/null
@@ -1,224 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-include(${CMAKE_ROOT}/Modules/CMakeDetermineCompiler.cmake)
-include(${CMAKE_ROOT}/Modules//CMakeParseImplicitLinkInfo.cmake)
-
-if( NOT ( ("${CMAKE_GENERATOR}" MATCHES "Make") OR
-          ("${CMAKE_GENERATOR}" MATCHES "Ninja") OR
-          ("${CMAKE_GENERATOR}" MATCHES "Visual Studio (1|[9][0-9])") ) )
-  message(FATAL_ERROR "CUDA language not currently supported by \"${CMAKE_GENERATOR}\" generator")
-endif()
-
-if(${CMAKE_GENERATOR} MATCHES "Visual Studio")
-else()
-  if(NOT CMAKE_CUDA_COMPILER)
-    set(CMAKE_CUDA_COMPILER_INIT NOTFOUND)
-
-      # prefer the environment variable CUDACXX
-      if(NOT $ENV{CUDACXX} STREQUAL "")
-        get_filename_component(CMAKE_CUDA_COMPILER_INIT $ENV{CUDACXX} PROGRAM PROGRAM_ARGS CMAKE_CUDA_FLAGS_ENV_INIT)
-        if(CMAKE_CUDA_FLAGS_ENV_INIT)
-          set(CMAKE_CUDA_COMPILER_ARG1 "${CMAKE_CUDA_FLAGS_ENV_INIT}" CACHE STRING "First argument to CXX compiler")
-        endif()
-        if(NOT EXISTS ${CMAKE_CUDA_COMPILER_INIT})
-          message(FATAL_ERROR "Could not find compiler set in environment variable CUDACXX:\n$ENV{CUDACXX}.\n${CMAKE_CUDA_COMPILER_INIT}")
-        endif()
-      endif()
-
-    # finally list compilers to try
-    if(NOT CMAKE_CUDA_COMPILER_INIT)
-      set(CMAKE_CUDA_COMPILER_LIST nvcc)
-    endif()
-
-    _cmake_find_compiler(CUDA)
-  else()
-    _cmake_find_compiler_path(CUDA)
-  endif()
-
-  mark_as_advanced(CMAKE_CUDA_COMPILER)
-endif()
-
-#Allow the user to specify a host compiler
-if(NOT $ENV{CUDAHOSTCXX} STREQUAL "")
-  get_filename_component(CMAKE_CUDA_HOST_COMPILER $ENV{CUDAHOSTCXX} PROGRAM)
-  if(NOT EXISTS ${CMAKE_CUDA_HOST_COMPILER})
-    message(FATAL_ERROR "Could not find compiler set in environment variable CUDAHOSTCXX:\n$ENV{CUDAHOSTCXX}.\n${CMAKE_CUDA_HOST_COMPILER}")
-  endif()
-endif()
-
-# Build a small source file to identify the compiler.
-if(NOT CMAKE_CUDA_COMPILER_ID_RUN)
-  set(CMAKE_CUDA_COMPILER_ID_RUN 1)
-
-  # Try to identify the compiler.
-  set(CMAKE_CUDA_COMPILER_ID)
-  set(CMAKE_CUDA_PLATFORM_ID)
-  file(READ ${CMAKE_ROOT}/Modules/CMakePlatformId.h.in
-    CMAKE_CUDA_COMPILER_ID_PLATFORM_CONTENT)
-
-  list(APPEND CMAKE_CUDA_COMPILER_ID_MATCH_VENDORS NVIDIA)
-  set(CMAKE_CUDA_COMPILER_ID_MATCH_VENDOR_REGEX_NVIDIA "nvcc: NVIDIA \(R\) Cuda compiler driver")
-
-  set(CMAKE_CXX_COMPILER_ID_TOOL_MATCH_REGEX "\nLd[^\n]*(\n[ \t]+[^\n]*)*\n[ \t]+([^ \t\r\n]+)[^\r\n]*-o[^\r\n]*CompilerIdCUDA/(\\./)?(CompilerIdCUDA.xctest/)?CompilerIdCUDA[ \t\n\\\"]")
-  set(CMAKE_CXX_COMPILER_ID_TOOL_MATCH_INDEX 2)
-
-  set(CMAKE_CUDA_COMPILER_ID_FLAGS_ALWAYS -v --keep --keep-dir tmp)
-  if(CMAKE_CUDA_HOST_COMPILER)
-      list(APPEND CMAKE_CUDA_COMPILER_ID_FLAGS_ALWAYS "-ccbin=${CMAKE_CUDA_HOST_COMPILER}")
-  endif()
-
-  include(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerId.cmake)
-  CMAKE_DETERMINE_COMPILER_ID(CUDA CUDAFLAGS CMakeCUDACompilerId.cu)
-endif()
-
-set(_CMAKE_PROCESSING_LANGUAGE "CUDA")
-include(CMakeFindBinUtils)
-unset(_CMAKE_PROCESSING_LANGUAGE)
-
-if(MSVC_CUDA_ARCHITECTURE_ID)
-  set(SET_MSVC_CUDA_ARCHITECTURE_ID
-    "set(MSVC_CUDA_ARCHITECTURE_ID ${MSVC_CUDA_ARCHITECTURE_ID})")
-endif()
-
-if(${CMAKE_GENERATOR} MATCHES "Visual Studio")
-  set(CMAKE_CUDA_HOST_LINK_LAUNCHER "${CMAKE_LINKER}")
-  set(CMAKE_CUDA_HOST_IMPLICIT_LINK_LIBRARIES "")
-  set(CMAKE_CUDA_HOST_IMPLICIT_LINK_DIRECTORIES "")
-  set(CMAKE_CUDA_HOST_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
-elseif(CMAKE_CUDA_COMPILER_ID STREQUAL NVIDIA)
-  set(_nvcc_log "")
-  string(REPLACE "\r" "" _nvcc_output_orig "${CMAKE_CUDA_COMPILER_PRODUCED_OUTPUT}")
-  if(_nvcc_output_orig MATCHES "#\\\$ +PATH= *([^\n]*)\n")
-    set(_nvcc_path "${CMAKE_MATCH_1}")
-    string(APPEND _nvcc_log "  found 'PATH=' string: [${_nvcc_path}]\n")
-    string(REPLACE ":" ";" _nvcc_path "${_nvcc_path}")
-  else()
-    set(_nvcc_path "")
-    string(REPLACE "\n" "\n    " _nvcc_output_log "\n${_nvcc_output_orig}")
-    string(APPEND _nvcc_log "  no 'PATH=' string found in nvcc output:${_nvcc_output_log}\n")
-  endif()
-  if(_nvcc_output_orig MATCHES "#\\\$ +LIBRARIES= *([^\n]*)\n")
-    set(_nvcc_libraries "${CMAKE_MATCH_1}")
-    string(APPEND _nvcc_log "  found 'LIBRARIES=' string: [${_nvcc_libraries}]\n")
-  else()
-    set(_nvcc_libraries "")
-    string(REPLACE "\n" "\n    " _nvcc_output_log "\n${_nvcc_output_orig}")
-    string(APPEND _nvcc_log "  no 'LIBRARIES=' string found in nvcc output:${_nvcc_output_log}\n")
-  endif()
-
-  set(_nvcc_link_line "")
-  if(_nvcc_libraries)
-    # Remove variable assignments.
-    string(REGEX REPLACE "#\\\$ *[^= ]+=[^\n]*\n" "" _nvcc_output "${_nvcc_output_orig}")
-    # Encode [] characters that break list expansion.
-    string(REPLACE "[" "{==={" _nvcc_output "${_nvcc_output}")
-    string(REPLACE "]" "}===}" _nvcc_output "${_nvcc_output}")
-    # Split lines.
-    string(REGEX REPLACE "\n+(#\\\$ )?" ";" _nvcc_output "${_nvcc_output}")
-    foreach(line IN LISTS _nvcc_output)
-      set(_nvcc_output_line "${line}")
-      string(REPLACE "{==={" "[" _nvcc_output_line "${_nvcc_output_line}")
-      string(REPLACE "}===}" "]" _nvcc_output_line "${_nvcc_output_line}")
-      string(APPEND _nvcc_log "  considering line: [${_nvcc_output_line}]\n")
-      if("${_nvcc_output_line}" MATCHES "^ *nvlink")
-        string(APPEND _nvcc_log "    ignoring nvlink line\n")
-      elseif(_nvcc_libraries)
-        if("${_nvcc_output_line}" MATCHES "(@\"?tmp/a\\.exe\\.res\"?)")
-          set(_nvcc_link_res_arg "${CMAKE_MATCH_1}")
-          set(_nvcc_link_res "${CMAKE_PLATFORM_INFO_DIR}/CompilerIdCUDA/tmp/a.exe.res")
-          if(EXISTS "${_nvcc_link_res}")
-            file(READ "${_nvcc_link_res}" _nvcc_link_res_content)
-            string(REPLACE "${_nvcc_link_res_arg}" "${_nvcc_link_res_content}" _nvcc_output_line "${_nvcc_output_line}")
-          endif()
-        endif()
-        string(FIND "${_nvcc_output_line}" "${_nvcc_libraries}" _nvcc_libraries_pos)
-        if(NOT _nvcc_libraries_pos EQUAL -1)
-          set(_nvcc_link_line "${_nvcc_output_line}")
-          string(APPEND _nvcc_log "    extracted link line: [${_nvcc_link_line}]\n")
-        endif()
-      endif()
-    endforeach()
-  endif()
-
-  if(_nvcc_link_line)
-    if("x${CMAKE_CUDA_SIMULATE_ID}" STREQUAL "xMSVC")
-      set(CMAKE_CUDA_HOST_LINK_LAUNCHER "${CMAKE_LINKER}")
-    else()
-      #extract the compiler that is being used for linking
-      separate_arguments(_nvcc_link_line_args UNIX_COMMAND "${_nvcc_link_line}")
-      list(GET _nvcc_link_line_args 0 _nvcc_host_link_launcher)
-      if(IS_ABSOLUTE "${_nvcc_host_link_launcher}")
-        string(APPEND _nvcc_log "  extracted link launcher absolute path: [${_nvcc_host_link_launcher}]\n")
-        set(CMAKE_CUDA_HOST_LINK_LAUNCHER "${_nvcc_host_link_launcher}")
-      else()
-        string(APPEND _nvcc_log "  extracted link launcher name: [${_nvcc_host_link_launcher}]\n")
-        find_program(_nvcc_find_host_link_launcher
-          NAMES ${_nvcc_host_link_launcher}
-          PATHS ${_nvcc_path} NO_DEFAULT_PATH)
-        find_program(_nvcc_find_host_link_launcher
-          NAMES ${_nvcc_host_link_launcher})
-        if(_nvcc_find_host_link_launcher)
-          string(APPEND _nvcc_log "  found link launcher absolute path: [${_nvcc_find_host_link_launcher}]\n")
-          set(CMAKE_CUDA_HOST_LINK_LAUNCHER "${_nvcc_find_host_link_launcher}")
-        else()
-          string(APPEND _nvcc_log "  could not find link launcher absolute path\n")
-          set(CMAKE_CUDA_HOST_LINK_LAUNCHER "${_nvcc_host_link_launcher}")
-        endif()
-        unset(_nvcc_find_host_link_launcher CACHE)
-      endif()
-    endif()
-
-    #prefix the line with cuda-fake-ld so that implicit link info believes it is
-    #a link line
-    set(_nvcc_link_line "cuda-fake-ld ${_nvcc_link_line}")
-    CMAKE_PARSE_IMPLICIT_LINK_INFO("${_nvcc_link_line}"
-                                   CMAKE_CUDA_HOST_IMPLICIT_LINK_LIBRARIES
-                                   CMAKE_CUDA_HOST_IMPLICIT_LINK_DIRECTORIES
-                                   CMAKE_CUDA_HOST_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES
-                                   log
-                                   "${CMAKE_CUDA_IMPLICIT_OBJECT_REGEX}")
-
-    file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
-      "Parsed CUDA nvcc implicit link information from above output:\n${_nvcc_log}\n${log}\n\n")
-  else()
-    file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
-      "Failed to parsed CUDA nvcc implicit link information:\n${_nvcc_log}\n\n")
-    message(FATAL_ERROR "Failed to extract nvcc implicit link line.")
-  endif()
-endif()
-
-set(CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES )
-string(REPLACE "\r" "" _nvcc_output_orig "${CMAKE_CUDA_COMPILER_PRODUCED_OUTPUT}")
-if(_nvcc_output_orig MATCHES "#\\\$ +INCLUDES= *([^\n]*)\n")
-  set(_nvcc_includes "${CMAKE_MATCH_1}")
-  string(APPEND _nvcc_log "  found 'INCLUDES=' string: [${_nvcc_includes}]\n")
-else()
-  set(_nvcc_includes "")
-  string(REPLACE "\n" "\n    " _nvcc_output_log "\n${_nvcc_output_orig}")
-  string(APPEND _nvcc_log "  no 'INCLUDES=' string found in nvcc output:${_nvcc_output_log}\n")
-endif()
-if(_nvcc_includes)
-  # across all operating system each include directory is prefixed with -I
-  separate_arguments(_nvcc_output NATIVE_COMMAND "${_nvcc_includes}")
-  foreach(line IN LISTS _nvcc_output)
-    string(REGEX REPLACE "^-I" "" line "${line}")
-    get_filename_component(line "${line}" ABSOLUTE)
-    list(APPEND CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES "${line}")
-  endforeach()
-
-  file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
-    "Parsed CUDA nvcc include information from above output:\n${_nvcc_log}\n${log}\n\n")
-else()
-  file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
-    "Failed to detect CUDA nvcc include information:\n${_nvcc_log}\n\n")
-endif()
-
-# configure all variables set in this file
-configure_file(${CMAKE_ROOT}/Modules/CMakeCUDACompiler.cmake.in
-  ${CMAKE_PLATFORM_INFO_DIR}/CMakeCUDACompiler.cmake
-  @ONLY
-  )
-
-set(CMAKE_CUDA_COMPILER_ENV_VAR "CUDACXX")
-set(CMAKE_CUDA_HOST_COMPILER_ENV_VAR "CUDAHOSTCXX")
diff --git a/share/cmake-3.17/Modules/CMakeFindFrameworks.cmake b/share/cmake-3.17/Modules/CMakeFindFrameworks.cmake
deleted file mode 100644
index 06c05fb..0000000
--- a/share/cmake-3.17/Modules/CMakeFindFrameworks.cmake
+++ /dev/null
@@ -1,33 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-CMakeFindFrameworks
--------------------
-
-helper module to find OSX frameworks
-
-This module reads hints about search locations from variables::
-
-  CMAKE_FIND_FRAMEWORK_EXTRA_LOCATIONS - Extra directories
-#]=======================================================================]
-
-if(NOT CMAKE_FIND_FRAMEWORKS_INCLUDED)
-  set(CMAKE_FIND_FRAMEWORKS_INCLUDED 1)
-  macro(CMAKE_FIND_FRAMEWORKS fwk)
-    set(${fwk}_FRAMEWORKS)
-    if(APPLE)
-      foreach(dir
-          ~/Library/Frameworks/${fwk}.framework
-          /usr/local/Frameworks/${fwk}.framework
-          /Library/Frameworks/${fwk}.framework
-          /System/Library/Frameworks/${fwk}.framework
-          /Network/Library/Frameworks/${fwk}.framework
-          ${CMAKE_FIND_FRAMEWORK_EXTRA_LOCATIONS})
-        if(EXISTS ${dir})
-          set(${fwk}_FRAMEWORKS ${${fwk}_FRAMEWORKS} ${dir})
-        endif()
-      endforeach()
-    endif()
-  endmacro()
-endif()
diff --git a/share/cmake-3.17/Modules/CMakeTestCUDACompiler.cmake b/share/cmake-3.17/Modules/CMakeTestCUDACompiler.cmake
deleted file mode 100644
index 05811a8..0000000
--- a/share/cmake-3.17/Modules/CMakeTestCUDACompiler.cmake
+++ /dev/null
@@ -1,103 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-if(CMAKE_CUDA_COMPILER_FORCED)
-  # The compiler configuration was forced by the user.
-  # Assume the user has configured all compiler information.
-  set(CMAKE_CUDA_COMPILER_WORKS TRUE)
-  return()
-endif()
-
-include(CMakeTestCompilerCommon)
-
-# Remove any cached result from an older CMake version.
-# We now store this in CMakeCUDACompiler.cmake.
-unset(CMAKE_CUDA_COMPILER_WORKS CACHE)
-
-# This file is used by EnableLanguage in cmGlobalGenerator to
-# determine that the selected cuda compiler can actually compile
-# and link the most basic of programs.   If not, a fatal error
-# is set and cmake stops processing commands and will not generate
-# any makefiles or projects.
-if(NOT CMAKE_CUDA_COMPILER_WORKS)
-  PrintTestCompilerStatus("CUDA")
-  file(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/main.cu
-    "#ifndef __CUDACC__\n"
-    "# error \"The CMAKE_CUDA_COMPILER is set to an invalid CUDA compiler\"\n"
-    "#endif\n"
-    "int main(){return 0;}\n")
-
-  try_compile(CMAKE_CUDA_COMPILER_WORKS ${CMAKE_BINARY_DIR}
-    ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/main.cu
-    OUTPUT_VARIABLE __CMAKE_CUDA_COMPILER_OUTPUT)
-
-  # Move result from cache to normal variable.
-  set(CMAKE_CUDA_COMPILER_WORKS ${CMAKE_CUDA_COMPILER_WORKS})
-  unset(CMAKE_CUDA_COMPILER_WORKS CACHE)
-  set(CUDA_TEST_WAS_RUN 1)
-endif()
-
-if(NOT CMAKE_CUDA_COMPILER_WORKS)
-  PrintTestCompilerResult(CHECK_FAIL "broken")
-  file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
-    "Determining if the CUDA compiler works failed with "
-    "the following output:\n${__CMAKE_CUDA_COMPILER_OUTPUT}\n\n")
-  string(REPLACE "\n" "\n  " _output "${__CMAKE_CUDA_COMPILER_OUTPUT}")
-  message(FATAL_ERROR "The CUDA compiler\n  \"${CMAKE_CUDA_COMPILER}\"\n"
-    "is not able to compile a simple test program.\nIt fails "
-    "with the following output:\n  ${_output}\n\n"
-    "CMake will not be able to correctly generate this project.")
-else()
-  if(CUDA_TEST_WAS_RUN)
-    PrintTestCompilerResult(CHECK_PASS "works")
-    file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
-      "Determining if the CUDA compiler works passed with "
-      "the following output:\n${__CMAKE_CUDA_COMPILER_OUTPUT}\n\n")
-  endif()
-
-  # Try to identify the ABI and configure it into CMakeCUDACompiler.cmake
-  include(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerABI.cmake)
-  CMAKE_DETERMINE_COMPILER_ABI(CUDA ${CMAKE_ROOT}/Modules/CMakeCUDACompilerABI.cu)
-  # Try to identify the compiler features
-  include(${CMAKE_ROOT}/Modules/CMakeDetermineCompileFeatures.cmake)
-  CMAKE_DETERMINE_COMPILE_FEATURES(CUDA)
-
-  if("x${CMAKE_CUDA_SIMULATE_ID}" STREQUAL "xMSVC")
-    set(CMAKE_CUDA_IMPLICIT_LINK_LIBRARIES "${CMAKE_CUDA_HOST_IMPLICIT_LINK_LIBRARIES}")
-    set(CMAKE_CUDA_IMPLICIT_LINK_DIRECTORIES "${CMAKE_CUDA_HOST_IMPLICIT_LINK_DIRECTORIES}")
-  endif()
-
-  # Remove the following libraries from CMAKE_CUDA_HOST_IMPLICIT_LINK_LIBRARIES and
-  # CMAKE_CUDA_IMPLICIT_LINK_LIBRARIES
-  #
-  # - cudart
-  # - cudart_static
-  # - cudadevrt
-  #
-  # These are controlled by CMAKE_CUDA_RUNTIME_LIBRARY
-  list(REMOVE_ITEM CMAKE_CUDA_IMPLICIT_LINK_LIBRARIES cudart cudart_static cudadevrt)
-  list(REMOVE_ITEM CMAKE_CUDA_HOST_IMPLICIT_LINK_LIBRARIES cudart cudart_static cudadevrt)
-
-  # Remove the CUDA Toolkit include directories from the set of
-  # implicit system include directories.
-  # This resolves the issue that NVCC doesn't specify these
-  # includes as SYSTEM includes when compiling device code, and sometimes
-  # they contain headers that generate warnings, so let users mark them
-  # as SYSTEM explicitly
-  if(CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES)
-    list(REMOVE_ITEM CMAKE_CUDA_IMPLICIT_INCLUDE_DIRECTORIES
-      ${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES}
-      )
-  endif()
-
-  # Re-configure to save learned information.
-  configure_file(
-    ${CMAKE_ROOT}/Modules/CMakeCUDACompiler.cmake.in
-    ${CMAKE_PLATFORM_INFO_DIR}/CMakeCUDACompiler.cmake
-    @ONLY
-    )
-  include(${CMAKE_PLATFORM_INFO_DIR}/CMakeCUDACompiler.cmake)
-endif()
-
-
-unset(__CMAKE_CUDA_COMPILER_OUTPUT)
diff --git a/share/cmake-3.17/Modules/CMakeTestCXXCompiler.cmake b/share/cmake-3.17/Modules/CMakeTestCXXCompiler.cmake
deleted file mode 100644
index bd42153..0000000
--- a/share/cmake-3.17/Modules/CMakeTestCXXCompiler.cmake
+++ /dev/null
@@ -1,90 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-
-if(CMAKE_CXX_COMPILER_FORCED)
-  # The compiler configuration was forced by the user.
-  # Assume the user has configured all compiler information.
-  set(CMAKE_CXX_COMPILER_WORKS TRUE)
-  return()
-endif()
-
-include(CMakeTestCompilerCommon)
-
-# work around enforced code signing and / or missing exectuable target type
-set(__CMAKE_SAVED_TRY_COMPILE_TARGET_TYPE ${CMAKE_TRY_COMPILE_TARGET_TYPE})
-if(_CMAKE_FEATURE_DETECTION_TARGET_TYPE)
-  set(CMAKE_TRY_COMPILE_TARGET_TYPE ${_CMAKE_FEATURE_DETECTION_TARGET_TYPE})
-endif()
-
-# Remove any cached result from an older CMake version.
-# We now store this in CMakeCXXCompiler.cmake.
-unset(CMAKE_CXX_COMPILER_WORKS CACHE)
-
-# This file is used by EnableLanguage in cmGlobalGenerator to
-# determine that the selected C++ compiler can actually compile
-# and link the most basic of programs.   If not, a fatal error
-# is set and cmake stops processing commands and will not generate
-# any makefiles or projects.
-if(NOT CMAKE_CXX_COMPILER_WORKS)
-  PrintTestCompilerStatus("CXX")
-  __TestCompiler_setTryCompileTargetType()
-  file(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testCXXCompiler.cxx
-    "#ifndef __cplusplus\n"
-    "# error \"The CMAKE_CXX_COMPILER is set to a C compiler\"\n"
-    "#endif\n"
-    "int main(){return 0;}\n")
-  try_compile(CMAKE_CXX_COMPILER_WORKS ${CMAKE_BINARY_DIR}
-    ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testCXXCompiler.cxx
-    OUTPUT_VARIABLE __CMAKE_CXX_COMPILER_OUTPUT)
-  # Move result from cache to normal variable.
-  set(CMAKE_CXX_COMPILER_WORKS ${CMAKE_CXX_COMPILER_WORKS})
-  unset(CMAKE_CXX_COMPILER_WORKS CACHE)
-  set(CXX_TEST_WAS_RUN 1)
-  __TestCompiler_restoreTryCompileTargetType()
-endif()
-
-if(NOT CMAKE_CXX_COMPILER_WORKS)
-  PrintTestCompilerResult(CHECK_FAIL "broken")
-  file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
-    "Determining if the CXX compiler works failed with "
-    "the following output:\n${__CMAKE_CXX_COMPILER_OUTPUT}\n\n")
-  string(REPLACE "\n" "\n  " _output "${__CMAKE_CXX_COMPILER_OUTPUT}")
-  message(FATAL_ERROR "The C++ compiler\n  \"${CMAKE_CXX_COMPILER}\"\n"
-    "is not able to compile a simple test program.\nIt fails "
-    "with the following output:\n  ${_output}\n\n"
-    "CMake will not be able to correctly generate this project.")
-else()
-  if(CXX_TEST_WAS_RUN)
-    PrintTestCompilerResult(CHECK_PASS "works")
-    file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
-      "Determining if the CXX compiler works passed with "
-      "the following output:\n${__CMAKE_CXX_COMPILER_OUTPUT}\n\n")
-  endif()
-
-  # Try to identify the ABI and configure it into CMakeCXXCompiler.cmake
-  include(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerABI.cmake)
-  CMAKE_DETERMINE_COMPILER_ABI(CXX ${CMAKE_ROOT}/Modules/CMakeCXXCompilerABI.cpp)
-  # Try to identify the compiler features
-  include(${CMAKE_ROOT}/Modules/CMakeDetermineCompileFeatures.cmake)
-  CMAKE_DETERMINE_COMPILE_FEATURES(CXX)
-
-  # Re-configure to save learned information.
-  configure_file(
-    ${CMAKE_ROOT}/Modules/CMakeCXXCompiler.cmake.in
-    ${CMAKE_PLATFORM_INFO_DIR}/CMakeCXXCompiler.cmake
-    @ONLY
-    )
-  include(${CMAKE_PLATFORM_INFO_DIR}/CMakeCXXCompiler.cmake)
-
-  if(CMAKE_CXX_SIZEOF_DATA_PTR)
-    foreach(f ${CMAKE_CXX_ABI_FILES})
-      include(${f})
-    endforeach()
-    unset(CMAKE_CXX_ABI_FILES)
-  endif()
-endif()
-
-set(CMAKE_TRY_COMPILE_TARGET_TYPE ${__CMAKE_SAVED_TRY_COMPILE_TARGET_TYPE})
-unset(__CMAKE_SAVED_TRY_COMPILE_TARGET_TYPE)
-unset(__CMAKE_CXX_COMPILER_OUTPUT)
diff --git a/share/cmake-3.17/Modules/CMakeTestFortranCompiler.cmake b/share/cmake-3.17/Modules/CMakeTestFortranCompiler.cmake
deleted file mode 100644
index 7461f9c..0000000
--- a/share/cmake-3.17/Modules/CMakeTestFortranCompiler.cmake
+++ /dev/null
@@ -1,102 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-
-if(CMAKE_Fortran_COMPILER_FORCED)
-  # The compiler configuration was forced by the user.
-  # Assume the user has configured all compiler information.
-  set(CMAKE_Fortran_COMPILER_WORKS TRUE)
-  return()
-endif()
-
-include(CMakeTestCompilerCommon)
-
-# Remove any cached result from an older CMake version.
-# We now store this in CMakeFortranCompiler.cmake.
-unset(CMAKE_Fortran_COMPILER_WORKS CACHE)
-
-# This file is used by EnableLanguage in cmGlobalGenerator to
-# determine that the selected Fortran compiler can actually compile
-# and link the most basic of programs.   If not, a fatal error
-# is set and cmake stops processing commands and will not generate
-# any makefiles or projects.
-if(NOT CMAKE_Fortran_COMPILER_WORKS)
-  PrintTestCompilerStatus("Fortran")
-  file(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testFortranCompiler.f "
-        PROGRAM TESTFortran
-        PRINT *, 'Hello'
-        END
-  ")
-  try_compile(CMAKE_Fortran_COMPILER_WORKS ${CMAKE_BINARY_DIR}
-    ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testFortranCompiler.f
-    OUTPUT_VARIABLE OUTPUT)
-  # Move result from cache to normal variable.
-  set(CMAKE_Fortran_COMPILER_WORKS ${CMAKE_Fortran_COMPILER_WORKS})
-  unset(CMAKE_Fortran_COMPILER_WORKS CACHE)
-  set(FORTRAN_TEST_WAS_RUN 1)
-endif()
-
-if(NOT CMAKE_Fortran_COMPILER_WORKS)
-  PrintTestCompilerResult(CHECK_FAIL "broken")
-  file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
-    "Determining if the Fortran compiler works failed with "
-    "the following output:\n${OUTPUT}\n\n")
-  string(REPLACE "\n" "\n  " _output "${OUTPUT}")
-  message(FATAL_ERROR "The Fortran compiler\n  \"${CMAKE_Fortran_COMPILER}\"\n"
-    "is not able to compile a simple test program.\nIt fails "
-    "with the following output:\n  ${_output}\n\n"
-    "CMake will not be able to correctly generate this project.")
-else()
-  if(FORTRAN_TEST_WAS_RUN)
-    PrintTestCompilerResult(CHECK_PASS "works")
-    file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
-      "Determining if the Fortran compiler works passed with "
-      "the following output:\n${OUTPUT}\n\n")
-  endif()
-
-  # Try to identify the ABI and configure it into CMakeFortranCompiler.cmake
-  include(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerABI.cmake)
-  CMAKE_DETERMINE_COMPILER_ABI(Fortran ${CMAKE_ROOT}/Modules/CMakeFortranCompilerABI.F)
-
-  # Test for Fortran 90 support by using an f90-specific construct.
-  if(NOT DEFINED CMAKE_Fortran_COMPILER_SUPPORTS_F90)
-    message(CHECK_START "Checking whether ${CMAKE_Fortran_COMPILER} supports Fortran 90")
-    file(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testFortranCompilerF90.f90 "
-      PROGRAM TESTFortran90
-      integer stop ; stop = 1 ; do while ( stop .eq. 0 ) ; end do
-      END PROGRAM TESTFortran90
-")
-    try_compile(CMAKE_Fortran_COMPILER_SUPPORTS_F90 ${CMAKE_BINARY_DIR}
-      ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testFortranCompilerF90.f90
-      OUTPUT_VARIABLE OUTPUT)
-    if(CMAKE_Fortran_COMPILER_SUPPORTS_F90)
-      message(CHECK_PASS "yes")
-      file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
-        "Determining if the Fortran compiler supports Fortran 90 passed with "
-        "the following output:\n${OUTPUT}\n\n")
-      set(CMAKE_Fortran_COMPILER_SUPPORTS_F90 1)
-    else()
-      message(CHECK_FAIL "no")
-      file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
-        "Determining if the Fortran compiler supports Fortran 90 failed with "
-        "the following output:\n${OUTPUT}\n\n")
-      set(CMAKE_Fortran_COMPILER_SUPPORTS_F90 0)
-    endif()
-    unset(CMAKE_Fortran_COMPILER_SUPPORTS_F90 CACHE)
-  endif()
-
-  # Re-configure to save learned information.
-  configure_file(
-    ${CMAKE_ROOT}/Modules/CMakeFortranCompiler.cmake.in
-    ${CMAKE_PLATFORM_INFO_DIR}/CMakeFortranCompiler.cmake
-    @ONLY
-    )
-  include(${CMAKE_PLATFORM_INFO_DIR}/CMakeFortranCompiler.cmake)
-
-  if(CMAKE_Fortran_SIZEOF_DATA_PTR)
-    foreach(f ${CMAKE_Fortran_ABI_FILES})
-      include(${f})
-    endforeach()
-    unset(CMAKE_Fortran_ABI_FILES)
-  endif()
-endif()
diff --git a/share/cmake-3.17/Modules/CMakeTestOBJCCompiler.cmake b/share/cmake-3.17/Modules/CMakeTestOBJCCompiler.cmake
deleted file mode 100644
index bcc6fae..0000000
--- a/share/cmake-3.17/Modules/CMakeTestOBJCCompiler.cmake
+++ /dev/null
@@ -1,94 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-
-if(CMAKE_OBJC_COMPILER_FORCED)
-  # The compiler configuration was forced by the user.
-  # Assume the user has configured all compiler information.
-  set(CMAKE_OBJC_COMPILER_WORKS TRUE)
-  return()
-endif()
-
-include(CMakeTestCompilerCommon)
-
-# work around enforced code signing and / or missing exectuable target type
-set(__CMAKE_SAVED_TRY_COMPILE_TARGET_TYPE ${CMAKE_TRY_COMPILE_TARGET_TYPE})
-if(_CMAKE_FEATURE_DETECTION_TARGET_TYPE)
-  set(CMAKE_TRY_COMPILE_TARGET_TYPE ${_CMAKE_FEATURE_DETECTION_TARGET_TYPE})
-endif()
-
-# Remove any cached result from an older CMake version.
-# We now store this in CMakeCCompiler.cmake.
-unset(CMAKE_OBJC_COMPILER_WORKS CACHE)
-
-# This file is used by EnableLanguage in cmGlobalGenerator to
-# determine that that selected Objective-C compiler can actually compile
-# and link the most basic of programs.   If not, a fatal error
-# is set and cmake stops processing commands and will not generate
-# any makefiles or projects.
-if(NOT CMAKE_OBJC_COMPILER_WORKS)
-  PrintTestCompilerStatus("OBJC")
-  __TestCompiler_setTryCompileTargetType()
-  file(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testOBJCCompiler.m
-    "#ifdef __cplusplus\n"
-    "# error \"The CMAKE_OBJC_COMPILER is set to a C++ compiler\"\n"
-    "#endif\n"
-    "#ifndef __OBJC__\n"
-    "# error \"The CMAKE_OBJC_COMPILER is not an Objective-C compiler\"\n"
-    "#endif\n"
-    "int main(int argc, char* argv[])\n"
-    "{ (void)argv; return argc-1;}\n")
-  try_compile(CMAKE_OBJC_COMPILER_WORKS ${CMAKE_BINARY_DIR}
-    ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testOBJCCompiler.m
-    OUTPUT_VARIABLE __CMAKE_OBJC_COMPILER_OUTPUT)
-  # Move result from cache to normal variable.
-  set(CMAKE_OBJC_COMPILER_WORKS ${CMAKE_OBJC_COMPILER_WORKS})
-  unset(CMAKE_OBJC_COMPILER_WORKS CACHE)
-  set(OBJC_TEST_WAS_RUN 1)
-  __TestCompiler_restoreTryCompileTargetType()
-endif()
-
-if(NOT CMAKE_OBJC_COMPILER_WORKS)
-  PrintTestCompilerResult(CHECK_FAIL "broken")
-  file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
-    "Determining if the Objective-C compiler works failed with "
-    "the following output:\n${__CMAKE_OBJC_COMPILER_OUTPUT}\n\n")
-  string(REPLACE "\n" "\n  " _output "${__CMAKE_OBJC_COMPILER_OUTPUT}")
-  message(FATAL_ERROR "The Objective-C compiler\n  \"${CMAKE_OBJC_COMPILER}\"\n"
-    "is not able to compile a simple test program.\nIt fails "
-    "with the following output:\n  ${_output}\n\n"
-    "CMake will not be able to correctly generate this project.")
-else()
-  if(OBJC_TEST_WAS_RUN)
-    PrintTestCompilerResult(CHECK_PASS "works")
-    file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
-      "Determining if the Objective-C compiler works passed with "
-      "the following output:\n${__CMAKE_OBJC_COMPILER_OUTPUT}\n\n")
-  endif()
-
-  # Try to identify the ABI and configure it into CMakeOBJCCompiler.cmake
-  include(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerABI.cmake)
-  CMAKE_DETERMINE_COMPILER_ABI(OBJC ${CMAKE_ROOT}/Modules/CMakeOBJCCompilerABI.m)
-  # Try to identify the compiler features
-  include(${CMAKE_ROOT}/Modules/CMakeDetermineCompileFeatures.cmake)
-  CMAKE_DETERMINE_COMPILE_FEATURES(OBJC)
-
-  # Re-configure to save learned information.
-  configure_file(
-    ${CMAKE_ROOT}/Modules/CMakeOBJCCompiler.cmake.in
-    ${CMAKE_PLATFORM_INFO_DIR}/CMakeOBJCCompiler.cmake
-    @ONLY
-    )
-  include(${CMAKE_PLATFORM_INFO_DIR}/CMakeOBJCCompiler.cmake)
-
-  if(CMAKE_OBJC_SIZEOF_DATA_PTR)
-    foreach(f ${CMAKE_OBJC_ABI_FILES})
-      include(${f})
-    endforeach()
-    unset(CMAKE_OBJC_ABI_FILES)
-  endif()
-endif()
-
-set(CMAKE_TRY_COMPILE_TARGET_TYPE ${__CMAKE_SAVED_TRY_COMPILE_TARGET_TYPE})
-unset(__CMAKE_SAVED_TRY_COMPILE_TARGET_TYPE)
-unset(__CMAKE_OBJC_COMPILER_OUTPUT)
diff --git a/share/cmake-3.17/Modules/CMakeTestOBJCXXCompiler.cmake b/share/cmake-3.17/Modules/CMakeTestOBJCXXCompiler.cmake
deleted file mode 100644
index 83227d5..0000000
--- a/share/cmake-3.17/Modules/CMakeTestOBJCXXCompiler.cmake
+++ /dev/null
@@ -1,93 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-
-if(CMAKE_OBJCXX_COMPILER_FORCED)
-  # The compiler configuration was forced by the user.
-  # Assume the user has configured all compiler information.
-  set(CMAKE_OBJCXX_COMPILER_WORKS TRUE)
-  return()
-endif()
-
-include(CMakeTestCompilerCommon)
-
-# work around enforced code signing and / or missing exectuable target type
-set(__CMAKE_SAVED_TRY_COMPILE_TARGET_TYPE ${CMAKE_TRY_COMPILE_TARGET_TYPE})
-if(_CMAKE_FEATURE_DETECTION_TARGET_TYPE)
-  set(CMAKE_TRY_COMPILE_TARGET_TYPE ${_CMAKE_FEATURE_DETECTION_TARGET_TYPE})
-endif()
-
-# Remove any cached result from an older CMake version.
-# We now store this in CMakeOBJCXXCompiler.cmake.
-unset(CMAKE_OBJCXX_COMPILER_WORKS CACHE)
-
-# This file is used by EnableLanguage in cmGlobalGenerator to
-# determine that the selected Objective-C++ compiler can actually compile
-# and link the most basic of programs.   If not, a fatal error
-# is set and cmake stops processing commands and will not generate
-# any makefiles or projects.
-if(NOT CMAKE_OBJCXX_COMPILER_WORKS)
-  PrintTestCompilerStatus("OBJCXX")
-  __TestCompiler_setTryCompileTargetType()
-  file(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testOBJCXXCompiler.mm
-    "#ifndef __cplusplus\n"
-    "# error \"The CMAKE_OBJCXX_COMPILER is set to a C compiler\"\n"
-    "#endif\n"
-    "#ifndef __OBJC__\n"
-    "# error \"The CMAKE_OBJCXX_COMPILER is not an Objective-C++ compiler\"\n"
-    "#endif\n"
-    "int main(){return 0;}\n")
-  try_compile(CMAKE_OBJCXX_COMPILER_WORKS ${CMAKE_BINARY_DIR}
-    ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testOBJCXXCompiler.mm
-    OUTPUT_VARIABLE __CMAKE_OBJCXX_COMPILER_OUTPUT)
-  # Move result from cache to normal variable.
-  set(CMAKE_OBJCXX_COMPILER_WORKS ${CMAKE_OBJCXX_COMPILER_WORKS})
-  unset(CMAKE_OBJCXX_COMPILER_WORKS CACHE)
-  set(OBJCXX_TEST_WAS_RUN 1)
-  __TestCompiler_restoreTryCompileTargetType()
-endif()
-
-if(NOT CMAKE_OBJCXX_COMPILER_WORKS)
-  PrintTestCompilerResult(CHECK_FAIL "broken")
-  file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
-    "Determining if the Objective-C++ compiler works failed with "
-    "the following output:\n${__CMAKE_OBJCXX_COMPILER_OUTPUT}\n\n")
-  string(REPLACE "\n" "\n  " _output "${__CMAKE_OBJCXX_COMPILER_OUTPUT}")
-  message(FATAL_ERROR "The Objective-C++ compiler\n  \"${CMAKE_OBJCXX_COMPILER}\"\n"
-    "is not able to compile a simple test program.\nIt fails "
-    "with the following output:\n  ${_output}\n\n"
-    "CMake will not be able to correctly generate this project.")
-else()
-  if(OBJCXX_TEST_WAS_RUN)
-    PrintTestCompilerResult(CHECK_PASS "works")
-    file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
-      "Determining if the Objective-C++ compiler works passed with "
-      "the following output:\n${__CMAKE_OBJCXX_COMPILER_OUTPUT}\n\n")
-  endif()
-
-  # Try to identify the ABI and configure it into CMakeOBJCXXCompiler.cmake
-  include(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerABI.cmake)
-  CMAKE_DETERMINE_COMPILER_ABI(OBJCXX ${CMAKE_ROOT}/Modules/CMakeOBJCXXCompilerABI.mm)
-  # Try to identify the compiler features
-  include(${CMAKE_ROOT}/Modules/CMakeDetermineCompileFeatures.cmake)
-  CMAKE_DETERMINE_COMPILE_FEATURES(OBJCXX)
-
-  # Re-configure to save learned information.
-  configure_file(
-    ${CMAKE_ROOT}/Modules/CMakeOBJCXXCompiler.cmake.in
-    ${CMAKE_PLATFORM_INFO_DIR}/CMakeOBJCXXCompiler.cmake
-    @ONLY
-    )
-  include(${CMAKE_PLATFORM_INFO_DIR}/CMakeOBJCXXCompiler.cmake)
-
-  if(CMAKE_OBJCXX_SIZEOF_DATA_PTR)
-    foreach(f ${CMAKE_OBJCXX_ABI_FILES})
-      include(${f})
-    endforeach()
-    unset(CMAKE_OBJCXX_ABI_FILES)
-  endif()
-endif()
-
-set(CMAKE_TRY_COMPILE_TARGET_TYPE ${__CMAKE_SAVED_TRY_COMPILE_TARGET_TYPE})
-unset(__CMAKE_SAVED_TRY_COMPILE_TARGET_TYPE)
-unset(__CMAKE_OBJCXX_COMPILER_OUTPUT)
diff --git a/share/cmake-3.17/Modules/Compiler/ARMClang.cmake b/share/cmake-3.17/Modules/Compiler/ARMClang.cmake
deleted file mode 100644
index 2518ac7..0000000
--- a/share/cmake-3.17/Modules/Compiler/ARMClang.cmake
+++ /dev/null
@@ -1,71 +0,0 @@
-if(_ARMClang_CMAKE_LOADED)
-  return()
-endif()
-set(_ARMClang_CMAKE_LOADED TRUE)
-
-cmake_policy(PUSH)
-cmake_policy(SET CMP0057 NEW) # if IN_LIST
-
-get_filename_component(_CMAKE_C_TOOLCHAIN_LOCATION "${CMAKE_C_COMPILER}" PATH)
-get_filename_component(_CMAKE_CXX_TOOLCHAIN_LOCATION "${CMAKE_CXX_COMPILER}" PATH)
-
-set(CMAKE_EXECUTABLE_SUFFIX ".elf")
-
-find_program(CMAKE_ARMClang_LINKER armlink HINTS "${_CMAKE_C_TOOLCHAIN_LOCATION}" "${_CMAKE_CXX_TOOLCHAIN_LOCATION}" )
-find_program(CMAKE_ARMClang_AR     armar   HINTS "${_CMAKE_C_TOOLCHAIN_LOCATION}" "${_CMAKE_CXX_TOOLCHAIN_LOCATION}" )
-
-set(CMAKE_LINKER "${CMAKE_ARMClang_LINKER}" CACHE FILEPATH "The ARMClang linker" FORCE)
-mark_as_advanced(CMAKE_ARMClang_LINKER)
-set(CMAKE_AR "${CMAKE_ARMClang_AR}" CACHE FILEPATH "The ARMClang archiver" FORCE)
-mark_as_advanced(CMAKE_ARMClang_AR)
-
-# get compiler supported cpu list
-function(__armclang_set_processor_list lang out_var)
-  execute_process(COMMAND "${CMAKE_${lang}_COMPILER}" --target=${CMAKE_${lang}_COMPILER_TARGET} -mcpu=list
-    OUTPUT_VARIABLE processor_list
-    ERROR_VARIABLE processor_list)
-  string(REGEX MATCHALL "-mcpu=([^ \n]*)" processor_list "${processor_list}")
-  string(REGEX REPLACE "-mcpu=" "" processor_list "${processor_list}")
-  set(${out_var} "${processor_list}" PARENT_SCOPE)
-endfunction()
-
-# check processor is in list
-function(__armclang_check_processor processor list out_var)
-  string(TOLOWER "${processor}" processor)
-  if(processor IN_LIST list)
-    set(${out_var} TRUE PARENT_SCOPE)
-  else()
-    set(${out_var} FALSE PARENT_SCOPE)
-  endif()
-endfunction()
-
-macro(__compiler_armclang lang)
-  if(NOT CMAKE_${lang}_COMPILER_TARGET)
-    set(CMAKE_${lang}_COMPILER_TARGET arm-arm-none-eabi)
-  endif()
-  if(NOT CMAKE_${lang}_COMPILER_PROCESSOR_LIST)
-    __armclang_set_processor_list(${lang} CMAKE_${lang}_COMPILER_PROCESSOR_LIST)
-  endif()
-  if(NOT CMAKE_SYSTEM_PROCESSOR)
-    message(FATAL_ERROR "  CMAKE_SYSTEM_PROCESSOR must be set for ARMClang\n"
-      "  Supported processor: ${CMAKE_${lang}_COMPILER_PROCESSOR_LIST}\n")
-  else()
-    __armclang_check_processor("${CMAKE_SYSTEM_PROCESSOR}" "${CMAKE_${lang}_COMPILER_PROCESSOR_LIST}" _CMAKE_${lang}_CHECK_RESULT)
-    if(NOT _CMAKE_${lang}_CHECK_RESULT)
-      message(FATAL_ERROR "  System processor '${CMAKE_SYSTEM_PROCESSOR}' not supported by ARMClang ${lang} compiler\n"
-        "  Supported processor: ${CMAKE_${lang}_COMPILER_PROCESSOR_LIST}\n")
-    endif()
-    unset(_CMAKE_${lang}_CHECK_RESULT)
-  endif()
-  string(APPEND CMAKE_${lang}_FLAGS_INIT "-mcpu=${CMAKE_SYSTEM_PROCESSOR}")
-  string(APPEND CMAKE_${lang}_LINK_FLAGS "--cpu=${CMAKE_SYSTEM_PROCESSOR}")
-
-  set(CMAKE_${lang}_LINK_EXECUTABLE "<CMAKE_LINKER> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <LINK_LIBRARIES> <OBJECTS> -o <TARGET> --list <TARGET_BASE>.map")
-  set(CMAKE_${lang}_CREATE_STATIC_LIBRARY  "<CMAKE_AR> --create -cr <TARGET> <LINK_FLAGS> <OBJECTS>")
-  set(CMAKE_${lang}_ARCHIVE_CREATE         "<CMAKE_AR> --create -cr <TARGET> <LINK_FLAGS> <OBJECTS>")
-  set(CMAKE_${lang}_RESPONSE_FILE_LINK_FLAG "--via=")
-  set(CMAKE_${lang}_OUTPUT_EXTENSION ".o")
-  set(CMAKE_${lang}_OUTPUT_EXTENSION_REPLACE 1)
-endmacro()
-
-cmake_policy(POP)
diff --git a/share/cmake-3.17/Modules/Compiler/Clang-CXX.cmake b/share/cmake-3.17/Modules/Compiler/Clang-CXX.cmake
deleted file mode 100644
index cb240f9..0000000
--- a/share/cmake-3.17/Modules/Compiler/Clang-CXX.cmake
+++ /dev/null
@@ -1,133 +0,0 @@
-include(Compiler/Clang)
-__compiler_clang(CXX)
-
-if("x${CMAKE_CXX_COMPILER_FRONTEND_VARIANT}" STREQUAL "xGNU")
-  set(CMAKE_CXX_COMPILE_OPTIONS_VISIBILITY_INLINES_HIDDEN "-fvisibility-inlines-hidden")
-endif()
-
-cmake_policy(GET CMP0025 appleClangPolicy)
-if(APPLE AND NOT appleClangPolicy STREQUAL NEW)
-  return()
-endif()
-
-if("x${CMAKE_CXX_COMPILER_FRONTEND_VARIANT}" STREQUAL "xMSVC")
-  set(CMAKE_CXX_CLANG_TIDY_DRIVER_MODE "cl")
-endif()
-
-if("x${CMAKE_CXX_COMPILER_FRONTEND_VARIANT}" STREQUAL "xGNU")
-  if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 2.1)
-    set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "-std=c++98")
-    set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "-std=gnu++98")
-  endif()
-
-  if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.1)
-    set(CMAKE_CXX98_STANDARD__HAS_FULL_SUPPORT ON)
-    set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-std=c++11")
-    set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-std=gnu++11")
-    set(CMAKE_CXX11_STANDARD__HAS_FULL_SUPPORT ON)
-  elseif(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 2.1)
-    set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-std=c++0x")
-    set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-std=gnu++0x")
-  endif()
-
-  if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.5)
-    set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "-std=c++14")
-    set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "-std=gnu++14")
-    set(CMAKE_CXX14_STANDARD__HAS_FULL_SUPPORT ON)
-  elseif(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.4)
-    set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "-std=c++1y")
-    set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "-std=gnu++1y")
-    set(CMAKE_CXX14_STANDARD__HAS_FULL_SUPPORT ON)
-  endif()
-
-  set(_clang_version_std17 5.0)
-  if(CMAKE_SYSTEM_NAME STREQUAL "Android")
-    set(_clang_version_std17 6.0)
-  endif()
-
-  if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "${_clang_version_std17}")
-    set(CMAKE_CXX17_STANDARD_COMPILE_OPTION "-std=c++17")
-    set(CMAKE_CXX17_EXTENSION_COMPILE_OPTION "-std=gnu++17")
-  elseif (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.5)
-    set(CMAKE_CXX17_STANDARD_COMPILE_OPTION "-std=c++1z")
-    set(CMAKE_CXX17_EXTENSION_COMPILE_OPTION "-std=gnu++1z")
-  endif()
-
-  if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "${_clang_version_std17}")
-    set(CMAKE_CXX20_STANDARD_COMPILE_OPTION "-std=c++2a")
-    set(CMAKE_CXX20_EXTENSION_COMPILE_OPTION "-std=gnu++2a")
-  endif()
-
-  unset(_clang_version_std17)
-
-  if("x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC")
-    # The MSVC standard library requires C++14, and MSVC itself has no
-    # notion of operating in a mode not aware of at least that standard.
-    set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "-std=c++14")
-    set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "-std=gnu++14")
-    set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-std=c++14")
-    set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-std=gnu++14")
-
-    # This clang++ is missing some features because of MSVC compatibility.
-    unset(CMAKE_CXX11_STANDARD__HAS_FULL_SUPPORT)
-    unset(CMAKE_CXX14_STANDARD__HAS_FULL_SUPPORT)
-    unset(CMAKE_CXX17_STANDARD__HAS_FULL_SUPPORT)
-    unset(CMAKE_CXX20_STANDARD__HAS_FULL_SUPPORT)
-  endif()
-
-  __compiler_check_default_language_standard(CXX 2.1 98)
-elseif(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 3.9
-    AND CMAKE_CXX_SIMULATE_VERSION VERSION_GREATER_EQUAL 19.0)
-  # This version of clang-cl and the MSVC version it simulates have
-  # support for -std: flags.
-  set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "")
-  set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "")
-  set(CMAKE_CXX98_STANDARD__HAS_FULL_SUPPORT ON)
-  set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "")
-  set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "")
-  set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "-std:c++14")
-  set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "-std:c++14")
-  if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 6.0)
-    set(CMAKE_CXX17_STANDARD_COMPILE_OPTION "-std:c++17")
-    set(CMAKE_CXX17_EXTENSION_COMPILE_OPTION "-std:c++17")
-    set(CMAKE_CXX20_STANDARD_COMPILE_OPTION "-std:c++latest")
-    set(CMAKE_CXX20_EXTENSION_COMPILE_OPTION "-std:c++latest")
-  else()
-    set(CMAKE_CXX17_STANDARD_COMPILE_OPTION "-std:c++latest")
-    set(CMAKE_CXX17_EXTENSION_COMPILE_OPTION "-std:c++latest")
-  endif()
-
-  __compiler_check_default_language_standard(CXX 3.9 14)
-else()
-  # This version of clang-cl, or the MSVC version it simulates, does not have
-  # language standards.  Set these options as empty strings so the feature
-  # test infrastructure can at least check to see if they are defined.
-  set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "")
-  set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "")
-  set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "")
-  set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "")
-  set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "")
-  set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "")
-  set(CMAKE_CXX17_STANDARD_COMPILE_OPTION "")
-  set(CMAKE_CXX17_EXTENSION_COMPILE_OPTION "")
-  set(CMAKE_CXX20_STANDARD_COMPILE_OPTION "")
-  set(CMAKE_CXX20_EXTENSION_COMPILE_OPTION "")
-
-  # There is no meaningful default for this
-  set(CMAKE_CXX_STANDARD_DEFAULT "")
-
-  # There are no compiler modes so we only need to test features once.
-  # Override the default macro for this special case.  Pretend that
-  # all language standards are available so that at least compilation
-  # can be attempted.
-  macro(cmake_record_cxx_compile_features)
-    list(APPEND CMAKE_CXX_COMPILE_FEATURES
-      cxx_std_98
-      cxx_std_11
-      cxx_std_14
-      cxx_std_17
-      cxx_std_20
-      )
-    _record_compiler_features(CXX "" CMAKE_CXX_COMPILE_FEATURES)
-  endmacro()
-endif()
diff --git a/share/cmake-3.17/Modules/Compiler/Clang-OBJCXX.cmake b/share/cmake-3.17/Modules/Compiler/Clang-OBJCXX.cmake
deleted file mode 100644
index b01ce64..0000000
--- a/share/cmake-3.17/Modules/Compiler/Clang-OBJCXX.cmake
+++ /dev/null
@@ -1,70 +0,0 @@
-include(Compiler/Clang)
-__compiler_clang(OBJCXX)
-
-if("x${CMAKE_OBJCXX_COMPILER_FRONTEND_VARIANT}" STREQUAL "xGNU")
-  if(NOT CMAKE_OBJCXX_COMPILER_VERSION VERSION_LESS 2.1)
-    set(CMAKE_OBJCXX98_STANDARD_COMPILE_OPTION "-std=c++98")
-    set(CMAKE_OBJCXX98_EXTENSION_COMPILE_OPTION "-std=gnu++98")
-  endif()
-
-  if(NOT CMAKE_OBJCXX_COMPILER_VERSION VERSION_LESS 3.1)
-    set(CMAKE_OBJCXX98_STANDARD__HAS_FULL_SUPPORT ON)
-    set(CMAKE_OBJCXX11_STANDARD_COMPILE_OPTION "-std=c++11")
-    set(CMAKE_OBJCXX11_EXTENSION_COMPILE_OPTION "-std=gnu++11")
-    set(CMAKE_OBJCXX11_STANDARD__HAS_FULL_SUPPORT ON)
-  elseif(NOT CMAKE_OBJCXX_COMPILER_VERSION VERSION_LESS 2.1)
-    set(CMAKE_OBJCXX11_STANDARD_COMPILE_OPTION "-std=c++0x")
-    set(CMAKE_OBJCXX11_EXTENSION_COMPILE_OPTION "-std=gnu++0x")
-  endif()
-
-  if(NOT CMAKE_OBJCXX_COMPILER_VERSION VERSION_LESS 3.5)
-    set(CMAKE_OBJCXX14_STANDARD_COMPILE_OPTION "-std=c++14")
-    set(CMAKE_OBJCXX14_EXTENSION_COMPILE_OPTION "-std=gnu++14")
-    set(CMAKE_OBJCXX14_STANDARD__HAS_FULL_SUPPORT ON)
-  elseif(NOT CMAKE_OBJCXX_COMPILER_VERSION VERSION_LESS 3.4)
-    set(CMAKE_OBJCXX14_STANDARD_COMPILE_OPTION "-std=c++1y")
-    set(CMAKE_OBJCXX14_EXTENSION_COMPILE_OPTION "-std=gnu++1y")
-    set(CMAKE_OBJCXX14_STANDARD__HAS_FULL_SUPPORT ON)
-  endif()
-
-  set(_clang_version_std17 5.0)
-
-  if (NOT CMAKE_OBJCXX_COMPILER_VERSION VERSION_LESS "${_clang_version_std17}")
-    set(CMAKE_OBJCXX17_STANDARD_COMPILE_OPTION "-std=c++17")
-    set(CMAKE_OBJCXX17_EXTENSION_COMPILE_OPTION "-std=gnu++17")
-  elseif (NOT CMAKE_OBJCXX_COMPILER_VERSION VERSION_LESS 3.5)
-    set(CMAKE_OBJCXX17_STANDARD_COMPILE_OPTION "-std=c++1z")
-    set(CMAKE_OBJCXX17_EXTENSION_COMPILE_OPTION "-std=gnu++1z")
-  endif()
-
-  if (NOT CMAKE_OBJCXX_COMPILER_VERSION VERSION_LESS "${_clang_version_std17}")
-    set(CMAKE_OBJCXX20_STANDARD_COMPILE_OPTION "-std=c++2a")
-    set(CMAKE_OBJCXX20_EXTENSION_COMPILE_OPTION "-std=gnu++2a")
-  endif()
-
-  unset(_clang_version_std17)
-
-  __compiler_check_default_language_standard(OBJCXX 2.1 98)
-elseif(CMAKE_OBJCXX_COMPILER_VERSION VERSION_GREATER_EQUAL 3.9
-    AND CMAKE_OBJCXX_SIMULATE_VERSION VERSION_GREATER_EQUAL 19.0)
-  # This version of clang-cl and the MSVC version it simulates have
-  # support for -std: flags.
-  set(CMAKE_OBJCXX98_STANDARD_COMPILE_OPTION "")
-  set(CMAKE_OBJCXX98_EXTENSION_COMPILE_OPTION "")
-  set(CMAKE_OBJCXX98_STANDARD__HAS_FULL_SUPPORT ON)
-  set(CMAKE_OBJCXX11_STANDARD_COMPILE_OPTION "")
-  set(CMAKE_OBJCXX11_EXTENSION_COMPILE_OPTION "")
-  set(CMAKE_OBJCXX14_STANDARD_COMPILE_OPTION "-std:c++14")
-  set(CMAKE_OBJCXX14_EXTENSION_COMPILE_OPTION "-std:c++14")
-  if (CMAKE_OBJCXX_COMPILER_VERSION VERSION_GREATER_EQUAL 6.0)
-    set(CMAKE_OBJCXX17_STANDARD_COMPILE_OPTION "-std:c++17")
-    set(CMAKE_OBJCXX17_EXTENSION_COMPILE_OPTION "-std:c++17")
-    set(CMAKE_OBJCXX20_STANDARD_COMPILE_OPTION "-std:c++latest")
-    set(CMAKE_OBJCXX20_EXTENSION_COMPILE_OPTION "-std:c++latest")
-  else()
-    set(CMAKE_OBJCXX17_STANDARD_COMPILE_OPTION "-std:c++latest")
-    set(CMAKE_OBJCXX17_EXTENSION_COMPILE_OPTION "-std:c++latest")
-  endif()
-
-  __compiler_check_default_language_standard(OBJCXX 3.9 14)
-endif()
diff --git a/share/cmake-3.17/Modules/Compiler/Clang.cmake b/share/cmake-3.17/Modules/Compiler/Clang.cmake
deleted file mode 100644
index f65916f..0000000
--- a/share/cmake-3.17/Modules/Compiler/Clang.cmake
+++ /dev/null
@@ -1,107 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-
-# This module is shared by multiple languages; use include blocker.
-if(__COMPILER_CLANG)
-  return()
-endif()
-set(__COMPILER_CLANG 1)
-
-include(Compiler/CMakeCommonCompilerMacros)
-
-if("x${CMAKE_C_SIMULATE_ID}" STREQUAL "xMSVC"
-    OR "x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC"
-    OR "x${CMAKE_Fortran_SIMULATE_ID}" STREQUAL "xMSVC")
-  macro(__compiler_clang lang)
-  endmacro()
-else()
-  include(Compiler/GNU)
-
-  macro(__compiler_clang lang)
-    __compiler_gnu(${lang})
-    set(CMAKE_${lang}_COMPILE_OPTIONS_PIE "-fPIE")
-    # Link options for PIE are already set in 'Compiler/GNU.cmake'
-    # but clang may require alternate syntax on some platforms
-    if (APPLE)
-      set(CMAKE_${lang}_LINK_OPTIONS_PIE ${CMAKE_${lang}_COMPILE_OPTIONS_PIE} -Xlinker -pie)
-      set(CMAKE_${lang}_LINK_OPTIONS_NO_PIE -Xlinker -no_pie)
-    endif()
-    set(CMAKE_INCLUDE_SYSTEM_FLAG_${lang} "-isystem ")
-    set(CMAKE_${lang}_COMPILE_OPTIONS_VISIBILITY "-fvisibility=")
-    if(CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 3.4.0)
-      set(CMAKE_${lang}_COMPILE_OPTIONS_TARGET "-target ")
-      set(CMAKE_${lang}_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN "-gcc-toolchain ")
-    else()
-      set(CMAKE_${lang}_COMPILE_OPTIONS_TARGET "--target=")
-      set(CMAKE_${lang}_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN "--gcc-toolchain=")
-    endif()
-    set(CMAKE_${lang}_LINKER_WRAPPER_FLAG "-Xlinker" " ")
-    set(CMAKE_${lang}_LINKER_WRAPPER_FLAG_SEP)
-
-    if(CMAKE_${lang}_COMPILER_TARGET)
-      if(CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 3.4.0)
-        list(APPEND CMAKE_${lang}_COMPILER_PREDEFINES_COMMAND "-target" "${CMAKE_${lang}_COMPILER_TARGET}")
-      else()
-        list(APPEND CMAKE_${lang}_COMPILER_PREDEFINES_COMMAND "--target=${CMAKE_${lang}_COMPILER_TARGET}")
-      endif()
-    endif()
-
-    set(_CMAKE_${lang}_IPO_SUPPORTED_BY_CMAKE YES)
-    set(_CMAKE_${lang}_IPO_MAY_BE_SUPPORTED_BY_COMPILER YES)
-
-    string(COMPARE EQUAL "${CMAKE_${lang}_COMPILER_ID}" "AppleClang" __is_apple_clang)
-
-    # '-flto=thin' available since Clang 3.9 and Xcode 8
-    # * http://clang.llvm.org/docs/ThinLTO.html#clang-llvm
-    # * https://trac.macports.org/wiki/XcodeVersionInfo
-    set(_CMAKE_LTO_THIN TRUE)
-    if(__is_apple_clang)
-      if(CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 8.0)
-        set(_CMAKE_LTO_THIN FALSE)
-      endif()
-    else()
-      if(CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 3.9)
-        set(_CMAKE_LTO_THIN FALSE)
-      endif()
-    endif()
-
-    if(_CMAKE_LTO_THIN)
-      set(CMAKE_${lang}_COMPILE_OPTIONS_IPO "-flto=thin")
-    else()
-      set(CMAKE_${lang}_COMPILE_OPTIONS_IPO "-flto")
-    endif()
-
-    if(ANDROID)
-      # https://github.com/android-ndk/ndk/issues/242
-      set(CMAKE_${lang}_LINK_OPTIONS_IPO "-fuse-ld=gold")
-    endif()
-
-    if(ANDROID OR __is_apple_clang)
-      set(__ar "${CMAKE_AR}")
-      set(__ranlib "${CMAKE_RANLIB}")
-    else()
-      set(__ar "${CMAKE_${lang}_COMPILER_AR}")
-      set(__ranlib "${CMAKE_${lang}_COMPILER_RANLIB}")
-    endif()
-
-    set(CMAKE_${lang}_ARCHIVE_CREATE_IPO
-      "\"${__ar}\" cr <TARGET> <LINK_FLAGS> <OBJECTS>"
-    )
-
-    set(CMAKE_${lang}_ARCHIVE_APPEND_IPO
-      "\"${__ar}\" r <TARGET> <LINK_FLAGS> <OBJECTS>"
-    )
-
-    set(CMAKE_${lang}_ARCHIVE_FINISH_IPO
-      "\"${__ranlib}\" <TARGET>"
-    )
-
-    set(CMAKE_PCH_EXTENSION .pch)
-    if (NOT CMAKE_GENERATOR MATCHES "Xcode")
-      set(CMAKE_PCH_PROLOGUE "#pragma clang system_header")
-    endif()
-    set(CMAKE_${lang}_COMPILE_OPTIONS_USE_PCH -Xclang -include-pch -Xclang <PCH_FILE> -Xclang -include -Xclang <PCH_HEADER>)
-    set(CMAKE_${lang}_COMPILE_OPTIONS_CREATE_PCH -Xclang -emit-pch -Xclang -include -Xclang <PCH_HEADER>)
-  endmacro()
-endif()
diff --git a/share/cmake-3.17/Modules/Compiler/GNU-ASM.cmake b/share/cmake-3.17/Modules/Compiler/GNU-ASM.cmake
deleted file mode 100644
index e07401d..0000000
--- a/share/cmake-3.17/Modules/Compiler/GNU-ASM.cmake
+++ /dev/null
@@ -1,6 +0,0 @@
-# This file is loaded when gcc/g++ is used for assembler files (the "ASM" cmake language)
-include(Compiler/GNU)
-
-set(CMAKE_ASM_SOURCE_FILE_EXTENSIONS s;S;asm)
-
-__compiler_gnu(ASM)
diff --git a/share/cmake-3.17/Modules/Compiler/NVIDIA-DetermineCompiler.cmake b/share/cmake-3.17/Modules/Compiler/NVIDIA-DetermineCompiler.cmake
deleted file mode 100644
index bf9111a..0000000
--- a/share/cmake-3.17/Modules/Compiler/NVIDIA-DetermineCompiler.cmake
+++ /dev/null
@@ -1,19 +0,0 @@
-
-set(_compiler_id_pp_test "defined(__NVCC__)")
-
-set(_compiler_id_version_compute "
-# if defined(__CUDACC_VER_MAJOR__)
-#  define @PREFIX@COMPILER_VERSION_MAJOR @MACRO_DEC@(__CUDACC_VER_MAJOR__)
-#  define @PREFIX@COMPILER_VERSION_MINOR @MACRO_DEC@(__CUDACC_VER_MINOR__)
-#  define @PREFIX@COMPILER_VERSION_PATCH @MACRO_DEC@(__CUDACC_VER_BUILD__)
-# endif
-# if defined(_MSC_VER)
-   /* _MSC_VER = VVRR */
-#  define @PREFIX@SIMULATE_VERSION_MAJOR @MACRO_DEC@(_MSC_VER / 100)
-#  define @PREFIX@SIMULATE_VERSION_MINOR @MACRO_DEC@(_MSC_VER % 100)
-# endif")
-
-set(_compiler_id_simulate "
-# if defined(_MSC_VER)
-#  define @PREFIX@SIMULATE_ID \"MSVC\"
-# endif")
diff --git a/share/cmake-3.17/Modules/Documentation.cmake b/share/cmake-3.17/Modules/Documentation.cmake
deleted file mode 100644
index aaf24f6..0000000
--- a/share/cmake-3.17/Modules/Documentation.cmake
+++ /dev/null
@@ -1,46 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-Documentation
--------------
-
-This module provides support for the VTK documentation framework.  It
-relies on several tools (Doxygen, Perl, etc).
-#]=======================================================================]
-
-#
-# Build the documentation ?
-#
-option(BUILD_DOCUMENTATION "Build the documentation (Doxygen)." OFF)
-mark_as_advanced(BUILD_DOCUMENTATION)
-
-if (BUILD_DOCUMENTATION)
-
-  #
-  # Check for the tools
-  #
-  find_package(UnixCommands)
-  find_package(Doxygen)
-  find_package(Gnuplot)
-  find_package(HTMLHelp)
-  find_package(Perl)
-  find_package(Wget)
-
-  option(DOCUMENTATION_HTML_HELP
-    "Build the HTML Help file (CHM)." OFF)
-
-  option(DOCUMENTATION_HTML_TARZ
-    "Build a compressed tar archive of the HTML doc." OFF)
-
-  mark_as_advanced(
-    DOCUMENTATION_HTML_HELP
-    DOCUMENTATION_HTML_TARZ
-    )
-
-  #
-  # The documentation process is controlled by a batch file.
-  # We will probably need bash to create the custom target
-  #
-
-endif ()
diff --git a/share/cmake-3.17/Modules/FindArmadillo.cmake b/share/cmake-3.17/Modules/FindArmadillo.cmake
deleted file mode 100644
index c4e55ce..0000000
--- a/share/cmake-3.17/Modules/FindArmadillo.cmake
+++ /dev/null
@@ -1,90 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-FindArmadillo
--------------
-
-Find the Armadillo C++ library.
-Armadillo is library for linear algebra & scientific computing.
-
-Using Armadillo:
-
-::
-
-  find_package(Armadillo REQUIRED)
-  include_directories(${ARMADILLO_INCLUDE_DIRS})
-  add_executable(foo foo.cc)
-  target_link_libraries(foo ${ARMADILLO_LIBRARIES})
-
-This module sets the following variables:
-
-::
-
-  ARMADILLO_FOUND - set to true if the library is found
-  ARMADILLO_INCLUDE_DIRS - list of required include directories
-  ARMADILLO_LIBRARIES - list of libraries to be linked
-  ARMADILLO_VERSION_MAJOR - major version number
-  ARMADILLO_VERSION_MINOR - minor version number
-  ARMADILLO_VERSION_PATCH - patch version number
-  ARMADILLO_VERSION_STRING - version number as a string (ex: "1.0.4")
-  ARMADILLO_VERSION_NAME - name of the version (ex: "Antipodean Antileech")
-#]=======================================================================]
-
-# UNIX paths are standard, no need to write.
-find_library(ARMADILLO_LIBRARY
-  NAMES armadillo
-  PATHS "$ENV{ProgramFiles}/Armadillo/lib"  "$ENV{ProgramFiles}/Armadillo/lib64" "$ENV{ProgramFiles}/Armadillo"
-  )
-find_path(ARMADILLO_INCLUDE_DIR
-  NAMES armadillo
-  PATHS "$ENV{ProgramFiles}/Armadillo/include"
-  )
-
-
-if(ARMADILLO_INCLUDE_DIR)
-
-  # ------------------------------------------------------------------------
-  #  Extract version information from <armadillo>
-  # ------------------------------------------------------------------------
-
-  # WARNING: Early releases of Armadillo didn't have the arma_version.hpp file.
-  # (e.g. v.0.9.8-1 in ubuntu maverick packages (2001-03-15))
-  # If the file is missing, set all values to 0
-  set(ARMADILLO_VERSION_MAJOR 0)
-  set(ARMADILLO_VERSION_MINOR 0)
-  set(ARMADILLO_VERSION_PATCH 0)
-  set(ARMADILLO_VERSION_NAME "EARLY RELEASE")
-
-  if(EXISTS "${ARMADILLO_INCLUDE_DIR}/armadillo_bits/arma_version.hpp")
-
-    # Read and parse armdillo version header file for version number
-    file(STRINGS "${ARMADILLO_INCLUDE_DIR}/armadillo_bits/arma_version.hpp" _armadillo_HEADER_CONTENTS REGEX "#define ARMA_VERSION_[A-Z]+ ")
-    string(REGEX REPLACE ".*#define ARMA_VERSION_MAJOR ([0-9]+).*" "\\1" ARMADILLO_VERSION_MAJOR "${_armadillo_HEADER_CONTENTS}")
-    string(REGEX REPLACE ".*#define ARMA_VERSION_MINOR ([0-9]+).*" "\\1" ARMADILLO_VERSION_MINOR "${_armadillo_HEADER_CONTENTS}")
-    string(REGEX REPLACE ".*#define ARMA_VERSION_PATCH ([0-9]+).*" "\\1" ARMADILLO_VERSION_PATCH "${_armadillo_HEADER_CONTENTS}")
-
-    # WARNING: The number of spaces before the version name is not one.
-    string(REGEX REPLACE ".*#define ARMA_VERSION_NAME +\"([0-9a-zA-Z _-]+)\".*" "\\1" ARMADILLO_VERSION_NAME "${_armadillo_HEADER_CONTENTS}")
-
-    unset(_armadillo_HEADER_CONTENTS)
-  endif()
-
-  set(ARMADILLO_VERSION_STRING "${ARMADILLO_VERSION_MAJOR}.${ARMADILLO_VERSION_MINOR}.${ARMADILLO_VERSION_PATCH}")
-endif ()
-
-include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-find_package_handle_standard_args(Armadillo
-  REQUIRED_VARS ARMADILLO_LIBRARY ARMADILLO_INCLUDE_DIR
-  VERSION_VAR ARMADILLO_VERSION_STRING)
-# version_var fails with cmake < 2.8.4.
-
-if (ARMADILLO_FOUND)
-  set(ARMADILLO_INCLUDE_DIRS ${ARMADILLO_INCLUDE_DIR})
-  set(ARMADILLO_LIBRARIES ${ARMADILLO_LIBRARY})
-endif ()
-
-# Hide internal variables
-mark_as_advanced(
-  ARMADILLO_INCLUDE_DIR
-  ARMADILLO_LIBRARY)
diff --git a/share/cmake-3.17/Modules/FindLibXslt.cmake b/share/cmake-3.17/Modules/FindLibXslt.cmake
deleted file mode 100644
index 01a9d8b..0000000
--- a/share/cmake-3.17/Modules/FindLibXslt.cmake
+++ /dev/null
@@ -1,77 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-FindLibXslt
------------
-
-Find the XSL Transformations, Extensible Stylesheet Language
-Transformations (XSLT) library (LibXslt)
-
-Once done this will define
-
-::
-
-  LIBXSLT_FOUND - system has LibXslt
-  LIBXSLT_INCLUDE_DIR - the LibXslt include directory
-  LIBXSLT_LIBRARIES - Link these to LibXslt
-  LIBXSLT_DEFINITIONS - Compiler switches required for using LibXslt
-  LIBXSLT_VERSION_STRING - version of LibXslt found (since CMake 2.8.8)
-
-Additionally, the following two variables are set (but not required
-for using xslt):
-
-``LIBXSLT_EXSLT_LIBRARIES``
-  Link to these if you need to link against the exslt library.
-``LIBXSLT_XSLTPROC_EXECUTABLE``
-  Contains the full path to the xsltproc executable if found.
-#]=======================================================================]
-
-# use pkg-config to get the directories and then use these values
-# in the find_path() and find_library() calls
-find_package(PkgConfig QUIET)
-PKG_CHECK_MODULES(PC_LIBXSLT QUIET libxslt)
-set(LIBXSLT_DEFINITIONS ${PC_LIBXSLT_CFLAGS_OTHER})
-
-find_path(LIBXSLT_INCLUDE_DIR NAMES libxslt/xslt.h
-    HINTS
-   ${PC_LIBXSLT_INCLUDEDIR}
-   ${PC_LIBXSLT_INCLUDE_DIRS}
-  )
-
-find_library(LIBXSLT_LIBRARIES NAMES xslt libxslt
-    HINTS
-   ${PC_LIBXSLT_LIBDIR}
-   ${PC_LIBXSLT_LIBRARY_DIRS}
-  )
-
-find_library(LIBXSLT_EXSLT_LIBRARY NAMES exslt libexslt
-    HINTS
-    ${PC_LIBXSLT_LIBDIR}
-    ${PC_LIBXSLT_LIBRARY_DIRS}
-  )
-
-set(LIBXSLT_EXSLT_LIBRARIES ${LIBXSLT_EXSLT_LIBRARY} )
-
-find_program(LIBXSLT_XSLTPROC_EXECUTABLE xsltproc)
-
-if(PC_LIBXSLT_VERSION)
-    set(LIBXSLT_VERSION_STRING ${PC_LIBXSLT_VERSION})
-elseif(LIBXSLT_INCLUDE_DIR AND EXISTS "${LIBXSLT_INCLUDE_DIR}/libxslt/xsltconfig.h")
-    file(STRINGS "${LIBXSLT_INCLUDE_DIR}/libxslt/xsltconfig.h" libxslt_version_str
-         REGEX "^#define[\t ]+LIBXSLT_DOTTED_VERSION[\t ]+\".*\"")
-
-    string(REGEX REPLACE "^#define[\t ]+LIBXSLT_DOTTED_VERSION[\t ]+\"([^\"]*)\".*" "\\1"
-           LIBXSLT_VERSION_STRING "${libxslt_version_str}")
-    unset(libxslt_version_str)
-endif()
-
-include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(LibXslt
-                                  REQUIRED_VARS LIBXSLT_LIBRARIES LIBXSLT_INCLUDE_DIR
-                                  VERSION_VAR LIBXSLT_VERSION_STRING)
-
-mark_as_advanced(LIBXSLT_INCLUDE_DIR
-                 LIBXSLT_LIBRARIES
-                 LIBXSLT_EXSLT_LIBRARY
-                 LIBXSLT_XSLTPROC_EXECUTABLE)
diff --git a/share/cmake-3.17/Modules/FindOpenAL.cmake b/share/cmake-3.17/Modules/FindOpenAL.cmake
deleted file mode 100644
index 27dcaf5..0000000
--- a/share/cmake-3.17/Modules/FindOpenAL.cmake
+++ /dev/null
@@ -1,93 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-FindOpenAL
-----------
-
-
-Finds Open Audio Library (OpenAL).
-This module defines ``OPENAL_LIBRARY OPENAL_FOUND``, if
-false, do not try to link to OpenAL ``OPENAL_INCLUDE_DIR``, where to find
-the headers.
-
-``$OPENALDIR`` is an environment variable that would correspond to the
-``./configure --prefix=$OPENALDIR`` used in building OpenAL.
-
-Created by Eric Wing.  This was influenced by the ``FindSDL.cmake``
-module.
-#]=======================================================================]
-
-# This makes the presumption that you are include al.h like
-# #include "al.h"
-# and not
-# #include <AL/al.h>
-# The reason for this is that the latter is not entirely portable.
-# Windows/Creative Labs does not by default put their headers in AL/ and
-# OS X uses the convention <OpenAL/al.h>.
-#
-# For Windows, Creative Labs seems to have added a registry key for their
-# OpenAL 1.1 installer. I have added that key to the list of search paths,
-# however, the key looks like it could be a little fragile depending on
-# if they decide to change the 1.00.0000 number for bug fix releases.
-# Also, they seem to have laid down groundwork for multiple library platforms
-# which puts the library in an extra subdirectory. Currently there is only
-# Win32 and I have hardcoded that here. This may need to be adjusted as
-# platforms are introduced.
-# The OpenAL 1.0 installer doesn't seem to have a useful key I can use.
-# I do not know if the Nvidia OpenAL SDK has a registry key.
-#
-# For OS X, remember that OpenAL was added by Apple in 10.4 (Tiger).
-# To support the framework, I originally wrote special framework detection
-# code in this module which I have now removed with CMake's introduction
-# of native support for frameworks.
-# In addition, OpenAL is open source, and it is possible to compile on Panther.
-# Furthermore, due to bugs in the initial OpenAL release, and the
-# transition to OpenAL 1.1, it is common to need to override the built-in
-# framework.
-# Per my request, CMake should search for frameworks first in
-# the following order:
-# ~/Library/Frameworks/OpenAL.framework/Headers
-# /Library/Frameworks/OpenAL.framework/Headers
-# /System/Library/Frameworks/OpenAL.framework/Headers
-#
-# On OS X, this will prefer the Framework version (if found) over others.
-# People will have to manually change the cache values of
-# OPENAL_LIBRARY to override this selection or set the CMake environment
-# CMAKE_INCLUDE_PATH to modify the search paths.
-
-find_path(OPENAL_INCLUDE_DIR al.h
-  HINTS
-    ENV OPENALDIR
-  PATH_SUFFIXES include/AL include/OpenAL include AL OpenAL
-  PATHS
-  ~/Library/Frameworks
-  /Library/Frameworks
-  /opt
-  [HKEY_LOCAL_MACHINE\\SOFTWARE\\Creative\ Labs\\OpenAL\ 1.1\ Software\ Development\ Kit\\1.00.0000;InstallDir]
-)
-
-if(CMAKE_SIZEOF_VOID_P EQUAL 8)
-  set(_OpenAL_ARCH_DIR libs/Win64)
-else()
-  set(_OpenAL_ARCH_DIR libs/Win32)
-endif()
-
-find_library(OPENAL_LIBRARY
-  NAMES OpenAL al openal OpenAL32
-  HINTS
-    ENV OPENALDIR
-  PATH_SUFFIXES libx32 lib64 lib libs64 libs ${_OpenAL_ARCH_DIR}
-  PATHS
-  ~/Library/Frameworks
-  /Library/Frameworks
-  /opt
-  [HKEY_LOCAL_MACHINE\\SOFTWARE\\Creative\ Labs\\OpenAL\ 1.1\ Software\ Development\ Kit\\1.00.0000;InstallDir]
-)
-
-unset(_OpenAL_ARCH_DIR)
-
-include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(OpenAL  DEFAULT_MSG  OPENAL_LIBRARY OPENAL_INCLUDE_DIR)
-
-mark_as_advanced(OPENAL_LIBRARY OPENAL_INCLUDE_DIR)
diff --git a/share/cmake-3.17/Modules/FindPython/Support.cmake b/share/cmake-3.17/Modules/FindPython/Support.cmake
deleted file mode 100644
index ce06458..0000000
--- a/share/cmake-3.17/Modules/FindPython/Support.cmake
+++ /dev/null
@@ -1,2584 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#
-# This file is a "template" file used by various FindPython modules.
-#
-
-cmake_policy (GET CMP0094 _${_PYTHON_PREFIX}_LOOKUP_POLICY)
-
-cmake_policy (VERSION 3.7)
-
-if (_${_PYTHON_PREFIX}_LOOKUP_POLICY)
-  cmake_policy (SET CMP0094 ${_${_PYTHON_PREFIX}_LOOKUP_POLICY})
-endif()
-
-#
-# Initial configuration
-#
-if (NOT DEFINED _PYTHON_PREFIX)
-  message (FATAL_ERROR "FindPython: INTERNAL ERROR")
-endif()
-if (NOT DEFINED _${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR)
-  message (FATAL_ERROR "FindPython: INTERNAL ERROR")
-endif()
-if (_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR EQUAL 3)
-  set(_${_PYTHON_PREFIX}_VERSIONS 3.9 3.8 3.7 3.6 3.5 3.4 3.3 3.2 3.1 3.0)
-elseif (_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR EQUAL 2)
-  set(_${_PYTHON_PREFIX}_VERSIONS 2.7 2.6 2.5 2.4 2.3 2.2 2.1 2.0)
-else()
-  message (FATAL_ERROR "FindPython: INTERNAL ERROR")
-endif()
-
-get_property(_${_PYTHON_PREFIX}_CMAKE_ROLE GLOBAL PROPERTY CMAKE_ROLE)
-
-
-#
-# helper commands
-#
-macro (_PYTHON_DISPLAY_FAILURE _PYTHON_MSG)
-  if (${_PYTHON_PREFIX}_FIND_REQUIRED)
-    message (FATAL_ERROR "${_PYTHON_MSG}")
-  else()
-    if (NOT ${_PYTHON_PREFIX}_FIND_QUIETLY)
-      message(STATUS "${_PYTHON_MSG}")
-    endif ()
-  endif()
-
-  set (${_PYTHON_PREFIX}_FOUND FALSE)
-  string (TOUPPER "${_PYTHON_PREFIX}" _${_PYTHON_PREFIX}_UPPER_PREFIX)
-  set (${_PYTHON_UPPER_PREFIX}_FOUND FALSE)
-  return()
-endmacro()
-
-
-function (_PYTHON_MARK_AS_INTERNAL)
-  foreach (var IN LISTS ARGV)
-    if (DEFINED CACHE{${var}})
-      set_property (CACHE ${var} PROPERTY TYPE INTERNAL)
-    endif()
-  endforeach()
-endfunction()
-
-
-macro (_PYTHON_SELECT_LIBRARY_CONFIGURATIONS _PYTHON_BASENAME)
-  if(NOT DEFINED ${_PYTHON_BASENAME}_LIBRARY_RELEASE)
-    set(${_PYTHON_BASENAME}_LIBRARY_RELEASE "${_PYTHON_BASENAME}_LIBRARY_RELEASE-NOTFOUND")
-  endif()
-  if(NOT DEFINED ${_PYTHON_BASENAME}_LIBRARY_DEBUG)
-    set(${_PYTHON_BASENAME}_LIBRARY_DEBUG "${_PYTHON_BASENAME}_LIBRARY_DEBUG-NOTFOUND")
-  endif()
-
-  get_property(_PYTHON_isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
-  if (${_PYTHON_BASENAME}_LIBRARY_DEBUG AND ${_PYTHON_BASENAME}_LIBRARY_RELEASE AND
-      NOT ${_PYTHON_BASENAME}_LIBRARY_DEBUG STREQUAL ${_PYTHON_BASENAME}_LIBRARY_RELEASE AND
-      (_PYTHON_isMultiConfig OR CMAKE_BUILD_TYPE))
-    # if the generator is multi-config or if CMAKE_BUILD_TYPE is set for
-    # single-config generators, set optimized and debug libraries
-    set (${_PYTHON_BASENAME}_LIBRARY "")
-    foreach (_PYTHON_libname IN LISTS ${_PYTHON_BASENAME}_LIBRARY_RELEASE )
-      list( APPEND ${_PYTHON_BASENAME}_LIBRARY optimized "${_PYTHON_libname}" )
-    endforeach()
-    foreach (_PYTHON_libname IN LISTS ${_PYTHON_BASENAME}_LIBRARY_DEBUG )
-      list( APPEND ${_PYTHON_BASENAME}_LIBRARY debug "${_PYTHON_libname}" )
-    endforeach()
-  elseif (${_PYTHON_BASENAME}_LIBRARY_RELEASE)
-    set (${_PYTHON_BASENAME}_LIBRARY "${${_PYTHON_BASENAME}_LIBRARY_RELEASE}")
-  elseif (${_PYTHON_BASENAME}_LIBRARY_DEBUG)
-    set (${_PYTHON_BASENAME}_LIBRARY "${${_PYTHON_BASENAME}_LIBRARY_DEBUG}")
-  else()
-    set (${_PYTHON_BASENAME}_LIBRARY "${_PYTHON_BASENAME}_LIBRARY-NOTFOUND")
-  endif()
-
-  set (${_PYTHON_BASENAME}_LIBRARIES "${${_PYTHON_BASENAME}_LIBRARY}")
-endmacro()
-
-
-macro (_PYTHON_FIND_FRAMEWORKS)
-  set (${_PYTHON_PREFIX}_FRAMEWORKS)
-  if (CMAKE_HOST_APPLE OR APPLE)
-    file(TO_CMAKE_PATH "$ENV{CMAKE_FRAMEWORK_PATH}" _pff_CMAKE_FRAMEWORK_PATH)
-    set (_pff_frameworks ${CMAKE_FRAMEWORK_PATH}
-                    ${_pff_CMAKE_FRAMEWORK_PATH}
-                    ~/Library/Frameworks
-                    /usr/local/Frameworks
-                    ${CMAKE_SYSTEM_FRAMEWORK_PATH})
-    list (REMOVE_DUPLICATES _pff_frameworks)
-    foreach (_pff_framework IN LISTS _pff_frameworks)
-      if (EXISTS ${_pff_framework}/Python${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR}.framework)
-        list (APPEND ${_PYTHON_PREFIX}_FRAMEWORKS ${_pff_framework}/Python${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR}.framework)
-      endif()
-      if (EXISTS ${_pff_framework}/Python.framework)
-        list (APPEND ${_PYTHON_PREFIX}_FRAMEWORKS ${_pff_framework}/Python.framework)
-      endif()
-    endforeach()
-    unset (_pff_frameworks)
-    unset (_pff_framework)
-  endif()
-endmacro()
-
-function (_PYTHON_GET_FRAMEWORKS _PYTHON_PGF_FRAMEWORK_PATHS _PYTHON_VERSION)
-  set (_PYTHON_FRAMEWORK_PATHS)
-  foreach (_PYTHON_FRAMEWORK IN LISTS ${_PYTHON_PREFIX}_FRAMEWORKS)
-    list (APPEND _PYTHON_FRAMEWORK_PATHS
-          "${_PYTHON_FRAMEWORK}/Versions/${_PYTHON_VERSION}")
-  endforeach()
-  set (${_PYTHON_PGF_FRAMEWORK_PATHS} ${_PYTHON_FRAMEWORK_PATHS} PARENT_SCOPE)
-endfunction()
-
-function (_PYTHON_GET_REGISTRIES _PYTHON_PGR_REGISTRY_PATHS _PYTHON_VERSION)
-  string (REPLACE "." "" _PYTHON_VERSION_NO_DOTS ${_PYTHON_VERSION})
-  set (${_PYTHON_PGR_REGISTRY_PATHS}
-       [HKEY_CURRENT_USER\\SOFTWARE\\Python\\PythonCore\\${_PYTHON_VERSION}-${_${_PYTHON_PREFIX}_ARCH}\\InstallPath]
-       [HKEY_CURRENT_USER\\SOFTWARE\\Python\\PythonCore\\${_PYTHON_VERSION}-${_${_PYTHON_PREFIX}_ARCH2}\\InstallPath]
-       [HKEY_CURRENT_USER\\SOFTWARE\\Python\\PythonCore\\${_PYTHON_VERSION}\\InstallPath]
-       [HKEY_CURRENT_USER\\SOFTWARE\\Python\\ContinuumAnalytics\\Anaconda${_PYTHON_VERSION_NO_DOTS}-${_${_PYTHON_PREFIX}_ARCH}\\InstallPath]
-       [HKEY_CURRENT_USER\\SOFTWARE\\Python\\ContinuumAnalytics\\Anaconda${_PYTHON_VERSION_NO_DOTS}-${_${_PYTHON_PREFIX}_ARCH2}\\InstallPath]
-       [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_PYTHON_VERSION}-${_${_PYTHON_PREFIX}_ARCH}\\InstallPath]
-       [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_PYTHON_VERSION}-${_${_PYTHON_PREFIX}_ARCH2}\\InstallPath]
-       [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_PYTHON_VERSION}\\InstallPath]
-       [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\ContinuumAnalytics\\Anaconda${_PYTHON_VERSION_NO_DOTS}-${_${_PYTHON_PREFIX}_ARCH}\\InstallPath]
-       [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\ContinuumAnalytics\\Anaconda${_PYTHON_VERSION_NO_DOTS}-${_${_PYTHON_PREFIX}_ARCH2}\\InstallPath]
-       PARENT_SCOPE)
-endfunction()
-
-
-function (_PYTHON_GET_ABIFLAGS _PGABIFLAGS)
-  set (abiflags)
-  list (GET _${_PYTHON_PREFIX}_FIND_ABI 0 pydebug)
-  list (GET _${_PYTHON_PREFIX}_FIND_ABI 1 pymalloc)
-  list (GET _${_PYTHON_PREFIX}_FIND_ABI 2 unicode)
-
-  if (pymalloc STREQUAL "ANY" AND unicode STREQUAL "ANY")
-    set (abiflags "mu" "m" "u" "")
-  elseif (pymalloc STREQUAL "ANY" AND unicode STREQUAL "ON")
-    set (abiflags "mu" "u")
-  elseif (pymalloc STREQUAL "ANY" AND unicode STREQUAL "OFF")
-    set (abiflags "m" "")
-  elseif (pymalloc STREQUAL "ON" AND unicode STREQUAL "ANY")
-    set (abiflags "mu" "m")
-  elseif (pymalloc STREQUAL "ON" AND unicode STREQUAL "ON")
-    set (abiflags "mu")
-  elseif (pymalloc STREQUAL "ON" AND unicode STREQUAL "OFF")
-    set (abiflags "m")
-  elseif (pymalloc STREQUAL "ON" AND unicode STREQUAL "ANY")
-    set (abiflags "u" "")
-  elseif (pymalloc STREQUAL "OFF" AND unicode STREQUAL "ON")
-    set (abiflags "u")
-  endif()
-
-  if (pydebug STREQUAL "ON")
-    if (abiflags)
-      list (TRANSFORM abiflags PREPEND "d")
-    else()
-      set (abiflags "d")
-    endif()
-  elseif (pydebug STREQUAL "ANY")
-    if (abiflags)
-      set (flags "${abiflags}")
-      list (TRANSFORM flags PREPEND "d")
-      list (APPEND abiflags "${flags}")
-    else()
-      set (abiflags "" "d")
-    endif()
-  endif()
-
-  set (${_PGABIFLAGS} "${abiflags}" PARENT_SCOPE)
-endfunction()
-
-function (_PYTHON_GET_PATH_SUFFIXES _PYTHON_PGPS_PATH_SUFFIXES)
-  cmake_parse_arguments (PARSE_ARGV 1 _PGPS "LIBRARY;INCLUDE" "VERSION" "")
-
-  if (DEFINED _${_PYTHON_PREFIX}_ABIFLAGS)
-    set (abi "${_${_PYTHON_PREFIX}_ABIFLAGS}")
-  else()
-    set (abi "mu" "m" "u" "")
-  endif()
-
-  set (path_suffixes)
-  if (_PGPS_LIBRARY)
-    if (CMAKE_LIBRARY_ARCHITECTURE)
-      list (APPEND path_suffixes lib/${CMAKE_LIBRARY_ARCHITECTURE})
-    endif()
-    list (APPEND path_suffixes lib libs)
-
-    if (CMAKE_LIBRARY_ARCHITECTURE)
-      set (suffixes "${abi}")
-      if (suffixes)
-        list (TRANSFORM suffixes PREPEND "lib/python${_PGPS_VERSION}/config-${_PGPS_VERSION}")
-        list (TRANSFORM suffixes APPEND "-${CMAKE_LIBRARY_ARCHITECTURE}")
-      else()
-        set (suffixes "lib/python${_PGPS_VERSION}/config-${_PGPS_VERSION}-${CMAKE_LIBRARY_ARCHITECTURE}")
-      endif()
-      list (APPEND path_suffixes ${suffixes})
-    endif()
-    set (suffixes "${abi}")
-    if (suffixes)
-      list (TRANSFORM suffixes PREPEND "lib/python${_PGPS_VERSION}/config-${_PGPS_VERSION}")
-    else()
-      set (suffixes "lib/python${_PGPS_VERSION}/config-${_PGPS_VERSION}")
-    endif()
-    list (APPEND path_suffixes ${suffixes})
-  elseif (_PGPS_INCLUDE)
-    set (suffixes "${abi}")
-    if (suffixes)
-      list (TRANSFORM suffixes PREPEND "include/python${_PGPS_VERSION}")
-    else()
-      set (suffixes "include/python${_PGPS_VERSION}")
-    endif()
-    list (APPEND path_suffixes ${suffixes} include)
-  endif()
-
-  set (${_PYTHON_PGPS_PATH_SUFFIXES} ${path_suffixes} PARENT_SCOPE)
-endfunction()
-
-function (_PYTHON_GET_NAMES _PYTHON_PGN_NAMES)
-  cmake_parse_arguments (PARSE_ARGV 1 _PGN "POSIX;EXECUTABLE;CONFIG;LIBRARY;WIN32;DEBUG" "VERSION" "")
-
-  set (names)
-
-  if (_PGN_WIN32)
-    string (REPLACE "." "" _PYTHON_VERSION_NO_DOTS ${_PGN_VERSION})
-
-    set (name python${_PYTHON_VERSION_NO_DOTS})
-    if (_PGN_DEBUG)
-      string (APPEND name "_d")
-    endif()
-
-    list (APPEND names "${name}")
-  endif()
-
-  if (_PGN_POSIX)
-    if (DEFINED _${_PYTHON_PREFIX}_ABIFLAGS)
-      set (abi "${_${_PYTHON_PREFIX}_ABIFLAGS}")
-    else()
-      if (_PGN_EXECUTABLE OR _PGN_CONFIG)
-        set (abi "")
-      else()
-        set (abi "mu" "m" "u" "")
-      endif()
-    endif()
-
-    if (abi)
-      if (_PGN_CONFIG AND DEFINED CMAKE_LIBRARY_ARCHITECTURE)
-        set (abinames "${abi}")
-        list (TRANSFORM abinames PREPEND "${CMAKE_LIBRARY_ARCHITECTURE}-python${_PGN_VERSION}")
-        list (TRANSFORM abinames APPEND "-config")
-        list (APPEND names ${abinames})
-      endif()
-      set (abinames "${abi}")
-      list (TRANSFORM abinames PREPEND "python${_PGN_VERSION}")
-      if (_PGN_CONFIG)
-        list (TRANSFORM abinames APPEND "-config")
-      endif()
-      list (APPEND names ${abinames})
-    else()
-      if (_PGN_CONFIG AND DEFINED CMAKE_LIBRARY_ARCHITECTURE)
-        set (abinames "${CMAKE_LIBRARY_ARCHITECTURE}-python${_PGN_VERSION}")
-      endif()
-      list (APPEND abinames "python${_PGN_VERSION}")
-      if (_PGN_CONFIG)
-        list (TRANSFORM abinames APPEND "-config")
-      endif()
-      list (APPEND names ${abinames})
-    endif()
-  endif()
-
-  set (${_PYTHON_PGN_NAMES} ${names} PARENT_SCOPE)
-endfunction()
-
-function (_PYTHON_GET_CONFIG_VAR _PYTHON_PGCV_VALUE NAME)
-  unset (${_PYTHON_PGCV_VALUE} PARENT_SCOPE)
-
-  if (NOT NAME MATCHES "^(PREFIX|ABIFLAGS|CONFIGDIR|INCLUDES|LIBS|SOABI)$")
-    return()
-  endif()
-
-  if (_${_PYTHON_PREFIX}_CONFIG)
-    if (NAME STREQUAL "SOABI")
-      set (config_flag "--extension-suffix")
-    else()
-      set (config_flag "--${NAME}")
-    endif()
-    string (TOLOWER "${config_flag}" config_flag)
-    execute_process (COMMAND "${_${_PYTHON_PREFIX}_CONFIG}" ${config_flag}
-                     RESULT_VARIABLE _result
-                     OUTPUT_VARIABLE _values
-                     ERROR_QUIET
-                     OUTPUT_STRIP_TRAILING_WHITESPACE)
-    if (_result)
-      unset (_values)
-    else()
-      if (NAME STREQUAL "INCLUDES")
-        # do some clean-up
-        string (REGEX MATCHALL "(-I|-iwithsysroot)[ ]*[^ ]+" _values "${_values}")
-        string (REGEX REPLACE "(-I|-iwithsysroot)[ ]*" "" _values "${_values}")
-        list (REMOVE_DUPLICATES _values)
-      elseif (NAME STREQUAL "SOABI")
-        # clean-up: remove prefix character and suffix
-        string (REGEX REPLACE "^[.-](.+)(${CMAKE_SHARED_LIBRARY_SUFFIX}|\\.(so|pyd))$" "\\1" _values "${_values}")
-      endif()
-    endif()
-  endif()
-
-  if (_${_PYTHON_PREFIX}_EXECUTABLE AND NOT CMAKE_CROSSCOMPILING)
-    if (NAME STREQUAL "PREFIX")
-      execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c "import sys; from distutils import sysconfig; sys.stdout.write(';'.join([sysconfig.PREFIX,sysconfig.EXEC_PREFIX,sysconfig.BASE_EXEC_PREFIX]))"
-                       RESULT_VARIABLE _result
-                       OUTPUT_VARIABLE _values
-                       ERROR_QUIET
-                       OUTPUT_STRIP_TRAILING_WHITESPACE)
-      if (_result)
-        unset (_values)
-      else()
-        list (REMOVE_DUPLICATES _values)
-      endif()
-    elseif (NAME STREQUAL "INCLUDES")
-      execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c "import sys; from distutils import sysconfig; sys.stdout.write(';'.join([sysconfig.get_python_inc(plat_specific=True),sysconfig.get_python_inc(plat_specific=False)]))"
-                       RESULT_VARIABLE _result
-                       OUTPUT_VARIABLE _values
-                       ERROR_QUIET
-                       OUTPUT_STRIP_TRAILING_WHITESPACE)
-      if (_result)
-        unset (_values)
-      endif()
-    elseif (NAME STREQUAL "SOABI")
-      execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c "import sys; from distutils import sysconfig;sys.stdout.write(';'.join([sysconfig.get_config_var('SOABI') or '',sysconfig.get_config_var('EXT_SUFFIX') or '']))"
-                       RESULT_VARIABLE _result
-                       OUTPUT_VARIABLE _soabi
-                       ERROR_QUIET
-                       OUTPUT_STRIP_TRAILING_WHITESPACE)
-      if (_result)
-        unset (_values)
-      else()
-        list (GET _soabi 0 _values)
-        if (NOT _values)
-          # try to compute SOABI from EXT_SUFFIX
-          list (GET _soabi 1 _values)
-          if (_values)
-            # clean-up: remove prefix character and suffix
-            string (REGEX REPLACE "^[.-](.+)(${CMAKE_SHARED_LIBRARY_SUFFIX}|\\.(so|pyd))$" "\\1" _values "${_values}")
-          endif()
-        endif()
-      endif()
-    else()
-      set (config_flag "${NAME}")
-      if (NAME STREQUAL "CONFIGDIR")
-        set (config_flag "LIBPL")
-      endif()
-      execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_config_var('${config_flag}'))"
-                       RESULT_VARIABLE _result
-                       OUTPUT_VARIABLE _values
-                       ERROR_QUIET
-                       OUTPUT_STRIP_TRAILING_WHITESPACE)
-      if (_result)
-        unset (_values)
-      endif()
-    endif()
-  endif()
-
-  if (config_flag STREQUAL "ABIFLAGS")
-    set (${_PYTHON_PGCV_VALUE} "${_values}" PARENT_SCOPE)
-    return()
-  endif()
-
-  if (NOT _values OR _values STREQUAL "None")
-    return()
-  endif()
-
-  if (NAME STREQUAL "LIBS")
-    # do some clean-up
-    string (REGEX MATCHALL "-(l|framework)[ ]*[^ ]+" _values "${_values}")
-    # remove elements relative to python library itself
-    list (FILTER _values EXCLUDE REGEX "-lpython")
-    list (REMOVE_DUPLICATES _values)
-  endif()
-
-  set (${_PYTHON_PGCV_VALUE} "${_values}" PARENT_SCOPE)
-endfunction()
-
-function (_PYTHON_GET_VERSION)
-  cmake_parse_arguments (PARSE_ARGV 0 _PGV "LIBRARY;INCLUDE" "PREFIX" "")
-
-  unset (${_PGV_PREFIX}VERSION PARENT_SCOPE)
-  unset (${_PGV_PREFIX}VERSION_MAJOR PARENT_SCOPE)
-  unset (${_PGV_PREFIX}VERSION_MINOR PARENT_SCOPE)
-  unset (${_PGV_PREFIX}VERSION_PATCH PARENT_SCOPE)
-  unset (${_PGV_PREFIX}ABI PARENT_SCOPE)
-
-  if (_PGV_LIBRARY)
-    # retrieve version and abi from library name
-    if (_${_PYTHON_PREFIX}_LIBRARY_RELEASE)
-      # extract version from library name
-      if (_${_PYTHON_PREFIX}_LIBRARY_RELEASE MATCHES "python([23])([0-9]+)")
-        set (${_PGV_PREFIX}VERSION_MAJOR "${CMAKE_MATCH_1}" PARENT_SCOPE)
-        set (${_PGV_PREFIX}VERSION_MINOR "${CMAKE_MATCH_2}" PARENT_SCOPE)
-        set (${_PGV_PREFIX}VERSION "${CMAKE_MATCH_1}.${CMAKE_MATCH_2}" PARENT_SCOPE)
-        set (${_PGV_PREFIX}ABI "" PARENT_SCOPE)
-      elseif (_${_PYTHON_PREFIX}_LIBRARY_RELEASE MATCHES "python([23])\\.([0-9]+)([dmu]*)")
-        set (${_PGV_PREFIX}VERSION_MAJOR "${CMAKE_MATCH_1}" PARENT_SCOPE)
-        set (${_PGV_PREFIX}VERSION_MINOR "${CMAKE_MATCH_2}" PARENT_SCOPE)
-        set (${_PGV_PREFIX}VERSION "${CMAKE_MATCH_1}.${CMAKE_MATCH_2}" PARENT_SCOPE)
-        set (${_PGV_PREFIX}ABI "${CMAKE_MATCH_3}" PARENT_SCOPE)
-      endif()
-    endif()
-  else()
-    if (_${_PYTHON_PREFIX}_INCLUDE_DIR)
-      # retrieve version from header file
-      file (STRINGS "${_${_PYTHON_PREFIX}_INCLUDE_DIR}/patchlevel.h" version
-            REGEX "^#define[ \t]+PY_VERSION[ \t]+\"[^\"]+\"")
-      string (REGEX REPLACE "^#define[ \t]+PY_VERSION[ \t]+\"([^\"]+)\".*" "\\1"
-                            version "${version}")
-      string (REGEX MATCHALL "[0-9]+" versions "${version}")
-      list (GET versions 0 version_major)
-      list (GET versions 1 version_minor)
-      list (GET versions 2 version_patch)
-
-      set (${_PGV_PREFIX}VERSION "${version_major}.${version_minor}" PARENT_SCOPE)
-      set (${_PGV_PREFIX}VERSION_MAJOR ${version_major} PARENT_SCOPE)
-      set (${_PGV_PREFIX}VERSION_MINOR ${version_minor} PARENT_SCOPE)
-      set (${_PGV_PREFIX}VERSION_PATCH ${version_patch} PARENT_SCOPE)
-
-      # compute ABI flags
-      if (version_major VERSION_GREATER 2)
-        file (STRINGS "${_${_PYTHON_PREFIX}_INCLUDE_DIR}/pyconfig.h" config REGEX "(Py_DEBUG|WITH_PYMALLOC|Py_UNICODE_SIZE|MS_WIN32)")
-        set (abi)
-        if (config MATCHES "#[ ]*define[ ]+MS_WIN32")
-          # ABI not used on Windows
-          set (abi "")
-        else()
-          if (config MATCHES "#[ ]*define[ ]+Py_DEBUG[ ]+1")
-            string (APPEND abi "d")
-          endif()
-          if (config MATCHES "#[ ]*define[ ]+WITH_PYMALLOC[ ]+1")
-            string (APPEND abi "m")
-          endif()
-          if (config MATCHES "#[ ]*define[ ]+Py_UNICODE_SIZE[ ]+4")
-            string (APPEND abi "u")
-          endif()
-          set (${_PGV_PREFIX}ABI "${abi}" PARENT_SCOPE)
-        endif()
-      else()
-        # ABI not supported
-        set (${_PGV_PREFIX}ABI "" PARENT_SCOPE)
-      endif()
-    endif()
-  endif()
-endfunction()
-
-
-function (_PYTHON_VALIDATE_INTERPRETER)
-  if (NOT _${_PYTHON_PREFIX}_EXECUTABLE)
-    return()
-  endif()
-
-  cmake_parse_arguments (PARSE_ARGV 0 _PVI "EXACT;CHECK_EXISTS" "" "")
-  if (_PVI_UNPARSED_ARGUMENTS)
-    set (expected_version ${_PVI_UNPARSED_ARGUMENTS})
-  else()
-    unset (expected_version)
-  endif()
-
-  if (_PVI_CHECK_EXISTS AND NOT EXISTS "${_${_PYTHON_PREFIX}_EXECUTABLE}")
-    # interpreter does not exist anymore
-    set (_${_PYTHON_PREFIX}_Interpreter_REASON_FAILURE "Cannot find the interpreter \"${_${_PYTHON_PREFIX}_EXECUTABLE}\"")
-    set_property (CACHE _${_PYTHON_PREFIX}_EXECUTABLE PROPERTY VALUE "${_PYTHON_PREFIX}_EXECUTABLE-NOTFOUND")
-    return()
-  endif()
-
-  # validate ABI compatibility
-  if (DEFINED _${_PYTHON_PREFIX}_FIND_ABI)
-    execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c
-                             "import sys; sys.stdout.write(sys.abiflags)"
-                     RESULT_VARIABLE result
-                     OUTPUT_VARIABLE abi
-                     ERROR_QUIET
-                     OUTPUT_STRIP_TRAILING_WHITESPACE)
-    if (result)
-      # assume ABI is not supported
-      set (abi "")
-    endif()
-    if (NOT abi IN_LIST _${_PYTHON_PREFIX}_ABIFLAGS)
-      # incompatible ABI
-      set (_${_PYTHON_PREFIX}_Interpreter_REASON_FAILURE "Wrong ABI for the interpreter \"${_${_PYTHON_PREFIX}_EXECUTABLE}\"")
-      set_property (CACHE _${_PYTHON_PREFIX}_EXECUTABLE PROPERTY VALUE "${_PYTHON_PREFIX}_EXECUTABLE-NOTFOUND")
-      return()
-    endif()
-  endif()
-
-  get_filename_component (python_name "${_${_PYTHON_PREFIX}_EXECUTABLE}" NAME)
-
-  if (expected_version AND NOT python_name STREQUAL "python${expected_version}${abi}${CMAKE_EXECUTABLE_SUFFIX}")
-    # executable found must have a specific version
-    execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c
-                             "import sys; sys.stdout.write('.'.join([str(x) for x in sys.version_info[:2]]))"
-                     RESULT_VARIABLE result
-                     OUTPUT_VARIABLE version
-                     ERROR_QUIET
-                     OUTPUT_STRIP_TRAILING_WHITESPACE)
-    if (result)
-      # interpreter is not usable
-      set (_${_PYTHON_PREFIX}_Interpreter_REASON_FAILURE "Cannot use the interpreter \"${_${_PYTHON_PREFIX}_EXECUTABLE}\"")
-      set_property (CACHE _${_PYTHON_PREFIX}_EXECUTABLE PROPERTY VALUE "${_PYTHON_PREFIX}_EXECUTABLE-NOTFOUND")
-    else()
-      if (_PVI_EXACT AND NOT version VERSION_EQUAL expected_version)
-        # interpreter has wrong version
-        set (_${_PYTHON_PREFIX}_Interpreter_REASON_FAILURE "Wrong version for the interpreter \"${_${_PYTHON_PREFIX}_EXECUTABLE}\"")
-        set_property (CACHE _${_PYTHON_PREFIX}_EXECUTABLE PROPERTY VALUE "${_PYTHON_PREFIX}_EXECUTABLE-NOTFOUND")
-      else()
-        # check that version is OK
-        string(REGEX REPLACE "^([0-9]+)\\..*$" "\\1" major_version "${version}")
-        string(REGEX REPLACE "^([0-9]+)\\.?.*$" "\\1" expected_major_version "${expected_version}")
-        if (NOT major_version VERSION_EQUAL expected_major_version
-            OR NOT version VERSION_GREATER_EQUAL expected_version)
-          set (_${_PYTHON_PREFIX}_Interpreter_REASON_FAILURE "Wrong version for the interpreter \"${_${_PYTHON_PREFIX}_EXECUTABLE}\"")
-          set_property (CACHE _${_PYTHON_PREFIX}_EXECUTABLE PROPERTY VALUE "${_PYTHON_PREFIX}_EXECUTABLE-NOTFOUND")
-        endif()
-      endif()
-    endif()
-    if (NOT _${_PYTHON_PREFIX}_EXECUTABLE)
-      return()
-    endif()
-  else()
-    if (NOT python_name STREQUAL "python${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR}${CMAKE_EXECUTABLE_SUFFIX}")
-      # executable found do not have version in name
-      # ensure major version is OK
-      execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c
-                               "import sys; sys.stdout.write(str(sys.version_info[0]))"
-                       RESULT_VARIABLE result
-                       OUTPUT_VARIABLE version
-                       ERROR_QUIET
-                       OUTPUT_STRIP_TRAILING_WHITESPACE)
-      if (result OR NOT version EQUAL _${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR)
-        # interpreter not usable or has wrong major version
-        if (result)
-          set (_${_PYTHON_PREFIX}_Interpreter_REASON_FAILURE "Cannot use the interpreter \"${_${_PYTHON_PREFIX}_EXECUTABLE}\"")
-        else()
-          set (_${_PYTHON_PREFIX}_Interpreter_REASON_FAILURE "Wrong major version for the interpreter \"${_${_PYTHON_PREFIX}_EXECUTABLE}\"")
-        endif()
-        set_property (CACHE _${_PYTHON_PREFIX}_EXECUTABLE PROPERTY VALUE "${_PYTHON_PREFIX}_EXECUTABLE-NOTFOUND")
-        return()
-      endif()
-    endif()
-  endif()
-
-  if (CMAKE_SIZEOF_VOID_P AND "Development" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS
-      AND NOT CMAKE_CROSSCOMPILING)
-    # In this case, interpreter must have same architecture as environment
-    execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c
-                             "import sys, struct; sys.stdout.write(str(struct.calcsize(\"P\")))"
-                     RESULT_VARIABLE result
-                     OUTPUT_VARIABLE size
-                     ERROR_QUIET
-                     OUTPUT_STRIP_TRAILING_WHITESPACE)
-    if (result OR NOT size EQUAL CMAKE_SIZEOF_VOID_P)
-      # interpreter not usable or has wrong architecture
-      if (result)
-        set (_${_PYTHON_PREFIX}_Interpreter_REASON_FAILURE "Cannot use the interpreter \"${_${_PYTHON_PREFIX}_EXECUTABLE}\"")
-      else()
-        set (_${_PYTHON_PREFIX}_Interpreter_REASON_FAILURE "Wrong architecture for the interpreter \"${_${_PYTHON_PREFIX}_EXECUTABLE}\"")
-      endif()
-      set_property (CACHE _${_PYTHON_PREFIX}_EXECUTABLE PROPERTY VALUE "${_PYTHON_PREFIX}_EXECUTABLE-NOTFOUND")
-      return()
-    endif()
-  endif()
-endfunction()
-
-
-function (_PYTHON_VALIDATE_COMPILER expected_version)
-  if (NOT _${_PYTHON_PREFIX}_COMPILER)
-    return()
-  endif()
-
-  cmake_parse_arguments (_PVC "EXACT;CHECK_EXISTS" "" "" ${ARGN})
-  if (_PVC_UNPARSED_ARGUMENTS)
-    set (major_version FALSE)
-    set (expected_version ${_PVC_UNPARSED_ARGUMENTS})
-  else()
-    set (major_version TRUE)
-    set (expected_version ${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR})
-    set (_PVC_EXACT TRUE)
-  endif()
-
-  if (_PVC_CHECK_EXISTS AND NOT EXISTS "${_${_PYTHON_PREFIX}_COMPILER}")
-    # Compiler does not exist anymore
-    set (_${_PYTHON_PREFIX}_Compiler_REASON_FAILURE "Cannot find the compiler \"${_${_PYTHON_PREFIX}_COMPILER}\"")
-    set_property (CACHE _${_PYTHON_PREFIX}_COMPILER PROPERTY VALUE "${_PYTHON_PREFIX}_COMPILER-NOTFOUND")
-    return()
-  endif()
-
-  # retrieve python environment version from compiler
-  set (working_dir "${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/PythonCompilerVersion.dir")
-  if (major_version)
-    # check only major version
-    file (WRITE "${working_dir}/version.py" "import sys; sys.stdout.write(str(sys.version_info[0]))")
-  else()
-    file (WRITE "${working_dir}/version.py" "import sys; sys.stdout.write('.'.join([str(x) for x in sys.version_info[:2]]))\n")
-  endif()
-  execute_process (COMMAND "${_${_PYTHON_PREFIX}_COMPILER}" /target:exe /embed "${working_dir}/version.py"
-                   WORKING_DIRECTORY "${working_dir}"
-                   OUTPUT_QUIET
-                   ERROR_QUIET
-                   OUTPUT_STRIP_TRAILING_WHITESPACE)
-  execute_process (COMMAND "${working_dir}/version"
-                   WORKING_DIRECTORY "${working_dir}"
-                   RESULT_VARIABLE result
-                   OUTPUT_VARIABLE version
-                   ERROR_QUIET)
-  file (REMOVE_RECURSE "${_${_PYTHON_PREFIX}_VERSION_DIR}")
-
-  if (result OR (_PVC_EXACT AND NOT version VERSION_EQUAL expected_version) OR (version VERSION_LESS expected_version))
-    # Compiler not usable or has wrong version
-    if (result)
-      set (_${_PYTHON_PREFIX}_Compiler_REASON_FAILURE "Cannot use the compiler \"${_${_PYTHON_PREFIX}_COMPILER}\"")
-    else()
-      set (_${_PYTHON_PREFIX}_Compiler_REASON_FAILURE "Wrong version for the compiler \"${_${_PYTHON_PREFIX}_COMPILER}\"")
-    endif()
-    set_property (CACHE _${_PYTHON_PREFIX}_COMPILER PROPERTY VALUE "${_PYTHON_PREFIX}_COMPILER-NOTFOUND")
-  endif()
-endfunction()
-
-
-function (_PYTHON_VALIDATE_LIBRARY)
-  if (NOT _${_PYTHON_PREFIX}_LIBRARY_RELEASE)
-    return()
-  endif()
-
-  cmake_parse_arguments (PARSE_ARGV 0 _PVL "EXACT;CHECK_EXISTS" "" "")
-  if (_PVL_UNPARSED_ARGUMENTS)
-    set (expected_version ${_PVL_UNPARSED_ARGUMENTS})
-  else()
-    unset (expected_version)
-  endif()
-
-  if (_PVL_CHECK_EXISTS AND NOT EXISTS "${_${_PYTHON_PREFIX}_LIBRARY_RELEASE}")
-    # library does not exist anymore
-    set (_${_PYTHON_PREFIX}_Development_REASON_FAILURE "Cannot find the library \"${_${_PYTHON_PREFIX}_LIBRARY_RELEASE}\"")
-    set_property (CACHE _${_PYTHON_PREFIX}_LIBRARY_RELEASE PROPERTY VALUE "${_PYTHON_PREFIX}_LIBRARY_RELEASE-NOTFOUND")
-    if (WIN32)
-      set_property (CACHE _${_PYTHON_PREFIX}_LIBRARY_DEBUG PROPERTY VALUE "${_PYTHON_PREFIX}_LIBRARY_DEBUG-NOTFOUND")
-    endif()
-    set_property (CACHE _${_PYTHON_PREFIX}_INCLUDE_DIR PROPERTY VALUE "${_PYTHON_PREFIX}_INCLUDE_DIR-NOTFOUND")
-    return()
-  endif()
-
-  # retrieve version and abi from library name
-  _python_get_version (LIBRARY PREFIX lib_)
-
-  if (DEFINED _${_PYTHON_PREFIX}_FIND_ABI AND NOT lib_ABI IN_LIST _${_PYTHON_PREFIX}_ABIFLAGS)
-    # incompatible ABI
-    set (_${_PYTHON_PREFIX}_Development_REASON_FAILURE "Wrong ABI for the library \"${_${_PYTHON_PREFIX}_LIBRARY_RELEASE}\"")
-    set_property (CACHE _${_PYTHON_PREFIX}_LIBRARY_RELEASE PROPERTY VALUE "${_PYTHON_PREFIX}_LIBRARY_RELEASE-NOTFOUND")
-  else()
-    if (expected_version)
-      if ((_PVL_EXACT AND NOT lib_VERSION VERSION_EQUAL expected_version) OR (lib_VERSION VERSION_LESS expected_version))
-        # library has wrong version
-        set (_${_PYTHON_PREFIX}_Development_REASON_FAILURE "Wrong version for the library \"${_${_PYTHON_PREFIX}_LIBRARY_RELEASE}\"")
-        set_property (CACHE _${_PYTHON_PREFIX}_LIBRARY_RELEASE PROPERTY VALUE "${_PYTHON_PREFIX}_LIBRARY_RELEASE-NOTFOUND")
-      endif()
-    else()
-      if (NOT lib_VERSION_MAJOR VERSION_EQUAL _${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR)
-        # library has wrong major version
-        set (_${_PYTHON_PREFIX}_Development_REASON_FAILURE "Wrong major version for the library \"${_${_PYTHON_PREFIX}_LIBRARY_RELEASE}\"")
-        set_property (CACHE _${_PYTHON_PREFIX}_LIBRARY_RELEASE PROPERTY VALUE "${_PYTHON_PREFIX}_LIBRARY_RELEASE-NOTFOUND")
-      endif()
-    endif()
-  endif()
-
-  if (NOT _${_PYTHON_PREFIX}_LIBRARY_RELEASE)
-    if (WIN32)
-      set_property (CACHE _${_PYTHON_PREFIX}_LIBRARY_DEBUG PROPERTY VALUE "${_PYTHON_PREFIX}_LIBRARY_DEBUG-NOTFOUND")
-    endif()
-    unset (_${_PYTHON_PREFIX}_RUNTIME_LIBRARY_RELEASE CACHE)
-    unset (_${_PYTHON_PREFIX}_RUNTIME_LIBRARY_DEBUG CACHE)
-    set_property (CACHE _${_PYTHON_PREFIX}_INCLUDE_DIR PROPERTY VALUE "${_PYTHON_PREFIX}_INCLUDE_DIR-NOTFOUND")
-  endif()
-endfunction()
-
-
-function (_PYTHON_VALIDATE_INCLUDE_DIR)
-  if (NOT _${_PYTHON_PREFIX}_INCLUDE_DIR)
-    return()
-  endif()
-
-  cmake_parse_arguments (PARSE_ARGV 0 _PVID "EXACT;CHECK_EXISTS" "" "")
-  if (_PVID_UNPARSED_ARGUMENTS)
-    set (expected_version ${_PVID_UNPARSED_ARGUMENTS})
-  else()
-    unset (expected_version)
-  endif()
-
-  if (_PVID_CHECK_EXISTS AND NOT EXISTS "${_${_PYTHON_PREFIX}_INCLUDE_DIR}")
-    # include file does not exist anymore
-    set (_${_PYTHON_PREFIX}_Development_REASON_FAILURE "Cannot find the directory \"${_${_PYTHON_PREFIX}_INCLUDE_DIR}\"")
-    set_property (CACHE _${_PYTHON_PREFIX}_INCLUDE_DIR PROPERTY VALUE "${_PYTHON_PREFIX}_INCLUDE_DIR-NOTFOUND")
-    return()
-  endif()
-
-  # retrieve version from header file
-  _python_get_version (INCLUDE PREFIX inc_)
-
-  if (DEFINED _${_PYTHON_PREFIX}_FIND_ABI AND NOT inc_ABI IN_LIST _${_PYTHON_PREFIX}_ABIFLAGS)
-    # incompatible ABI
-    set (_${_PYTHON_PREFIX}_Development_REASON_FAILURE "Wrong ABI for the directory \"${_${_PYTHON_PREFIX}_INCLUDE_DIR}\"")
-    set_property (CACHE _${_PYTHON_PREFIX}_INCLUDE_DIR PROPERTY VALUE "${_PYTHON_PREFIX}_INCLUDE_DIR-NOTFOUND")
-  else()
-    if (expected_version)
-      if ((_PVID_EXACT AND NOT inc_VERSION VERSION_EQUAL expected_version) OR (inc_VERSION VERSION_LESS expected_version))
-        # include dir has wrong version
-        set (_${_PYTHON_PREFIX}_Development_REASON_FAILURE "Wrong version for the directory \"${_${_PYTHON_PREFIX}_INCLUDE_DIR}\"")
-        set_property (CACHE _${_PYTHON_PREFIX}_INCLUDE_DIR PROPERTY VALUE "${_PYTHON_PREFIX}_INCLUDE_DIR-NOTFOUND")
-      endif()
-    else()
-      if (NOT inc_VERSION_MAJOR VERSION_EQUAL _${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR)
-        # include dir has wrong major version
-        set (_${_PYTHON_PREFIX}_Development_REASON_FAILURE "Wrong major version for the directory \"${_${_PYTHON_PREFIX}_INCLUDE_DIR}\"")
-        set_property (CACHE _${_PYTHON_PREFIX}_INCLUDE_DIR PROPERTY VALUE "${_PYTHON_PREFIX}_INCLUDE_DIR-NOTFOUND")
-      endif()
-    endif()
-  endif()
-endfunction()
-
-
-function (_PYTHON_FIND_RUNTIME_LIBRARY _PYTHON_LIB)
-  string (REPLACE "_RUNTIME" "" _PYTHON_LIB "${_PYTHON_LIB}")
-  # look at runtime part on systems supporting it
-  if (CMAKE_SYSTEM_NAME STREQUAL "Windows" OR
-      (CMAKE_SYSTEM_NAME MATCHES "MSYS|CYGWIN"
-        AND ${_PYTHON_LIB} MATCHES "${CMAKE_IMPORT_LIBRARY_SUFFIX}$"))
-    set (CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_SHARED_LIBRARY_SUFFIX})
-    # MSYS has a special syntax for runtime libraries
-    if (CMAKE_SYSTEM_NAME MATCHES "MSYS")
-      list (APPEND CMAKE_FIND_LIBRARY_PREFIXES "msys-")
-    endif()
-    find_library (${ARGV})
-  endif()
-endfunction()
-
-
-function (_PYTHON_SET_LIBRARY_DIRS _PYTHON_SLD_RESULT)
-  unset (_PYTHON_DIRS)
-  set (_PYTHON_LIBS ${ARGN})
-  foreach (_PYTHON_LIB IN LISTS _PYTHON_LIBS)
-    if (${_PYTHON_LIB})
-      get_filename_component (_PYTHON_DIR "${${_PYTHON_LIB}}" DIRECTORY)
-      list (APPEND _PYTHON_DIRS "${_PYTHON_DIR}")
-    endif()
-  endforeach()
-  if (_PYTHON_DIRS)
-    list (REMOVE_DUPLICATES _PYTHON_DIRS)
-  endif()
-  set (${_PYTHON_SLD_RESULT} ${_PYTHON_DIRS} PARENT_SCOPE)
-endfunction()
-
-
-# If major version is specified, it must be the same as internal major version
-if (DEFINED ${_PYTHON_PREFIX}_FIND_VERSION_MAJOR
-    AND NOT ${_PYTHON_PREFIX}_FIND_VERSION_MAJOR VERSION_EQUAL _${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR)
-  _python_display_failure ("Could NOT find ${_PYTHON_PREFIX}: Wrong major version specified is \"${${_PYTHON_PREFIX}_FIND_VERSION_MAJOR}\", but expected major version is \"${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR}\"")
-endif()
-
-
-# handle components
-if (NOT ${_PYTHON_PREFIX}_FIND_COMPONENTS)
-  set (${_PYTHON_PREFIX}_FIND_COMPONENTS Interpreter)
-  set (${_PYTHON_PREFIX}_FIND_REQUIRED_Interpreter TRUE)
-endif()
-if ("NumPy" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS)
-  list (APPEND ${_PYTHON_PREFIX}_FIND_COMPONENTS "Interpreter" "Development")
-  list (REMOVE_DUPLICATES ${_PYTHON_PREFIX}_FIND_COMPONENTS)
-endif()
-foreach (_${_PYTHON_PREFIX}_COMPONENT IN ITEMS Interpreter Compiler Development NumPy)
-  set (${_PYTHON_PREFIX}_${_${_PYTHON_PREFIX}_COMPONENT}_FOUND FALSE)
-endforeach()
-unset (_${_PYTHON_PREFIX}_FIND_VERSIONS)
-
-# Set versions to search
-## default: search any version
-set (_${_PYTHON_PREFIX}_FIND_VERSIONS ${_${_PYTHON_PREFIX}_VERSIONS})
-
-if (${_PYTHON_PREFIX}_FIND_VERSION_COUNT GREATER 1)
-  if (${_PYTHON_PREFIX}_FIND_VERSION_EXACT)
-    set (_${_PYTHON_PREFIX}_FIND_VERSIONS ${${_PYTHON_PREFIX}_FIND_VERSION_MAJOR}.${${_PYTHON_PREFIX}_FIND_VERSION_MINOR})
-  else()
-    unset (_${_PYTHON_PREFIX}_FIND_VERSIONS)
-    # add all compatible versions
-    foreach (_${_PYTHON_PREFIX}_VERSION IN LISTS _${_PYTHON_PREFIX}_VERSIONS)
-      if (_${_PYTHON_PREFIX}_VERSION VERSION_GREATER_EQUAL ${_PYTHON_PREFIX}_FIND_VERSION)
-        list (APPEND _${_PYTHON_PREFIX}_FIND_VERSIONS ${_${_PYTHON_PREFIX}_VERSION})
-      endif()
-    endforeach()
-  endif()
-endif()
-
-# Set ABIs to search
-## default: search any ABI
-if (_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR VERSION_LESS 3)
-  # ABI not supported
-  unset (_${_PYTHON_PREFIX}_FIND_ABI)
-  set (_${_PYTHON_PREFIX}_ABIFLAGS "")
-else()
-  unset (_${_PYTHON_PREFIX}_FIND_ABI)
-  unset (_${_PYTHON_PREFIX}_ABIFLAGS)
-  if (DEFINED ${_PYTHON_PREFIX}_FIND_ABI)
-    # normalization
-    string (TOUPPER "${${_PYTHON_PREFIX}_FIND_ABI}" _${_PYTHON_PREFIX}_FIND_ABI)
-    list (TRANSFORM _${_PYTHON_PREFIX}_FIND_ABI REPLACE "^(TRUE|Y(ES)?|1)$" "ON")
-    list (TRANSFORM _${_PYTHON_PREFIX}_FIND_ABI REPLACE "^(FALSE|N(O)?|0)$" "OFF")
-    if (NOT _${_PYTHON_PREFIX}_FIND_ABI MATCHES "^(ON|OFF|ANY);(ON|OFF|ANY);(ON|OFF|ANY)$")
-      message (AUTHOR_WARNING "Find${_PYTHON_PREFIX}: ${${_PYTHON_PREFIX}_FIND_ABI}: invalid value for '${_PYTHON_PREFIX}_FIND_ABI'. Ignore it")
-      unset (_${_PYTHON_PREFIX}_FIND_ABI)
-    endif()
-    _python_get_abiflags (_${_PYTHON_PREFIX}_ABIFLAGS)
-  endif()
-endif()
-unset (${_PYTHON_PREFIX}_SOABI)
-
-# Define lookup strategy
-if (_${_PYTHON_PREFIX}_LOOKUP_POLICY STREQUAL "NEW")
-  set (_${_PYTHON_PREFIX}_FIND_STRATEGY "LOCATION")
-else()
-  set (_${_PYTHON_PREFIX}_FIND_STRATEGY "VERSION")
-endif()
-if (DEFINED ${_PYTHON_PREFIX}_FIND_STRATEGY)
-  if (NOT ${_PYTHON_PREFIX}_FIND_STRATEGY MATCHES "^(VERSION|LOCATION)$")
-    message (AUTHOR_WARNING "Find${_PYTHON_PREFIX}: ${${_PYTHON_PREFIX}_FIND_STRATEGY}: invalid value for '${_PYTHON_PREFIX}_FIND_STRATEGY'. 'VERSION' or 'LOCATION' expected.")
-    set (_${_PYTHON_PREFIX}_FIND_STRATEGY "VERSION")
-  else()
-    set (_${_PYTHON_PREFIX}_FIND_STRATEGY "${${_PYTHON_PREFIX}_FIND_STRATEGY}")
-  endif()
-endif()
-
-# Python and Anaconda distributions: define which architectures can be used
-if (CMAKE_SIZEOF_VOID_P)
-  # In this case, search only for 64bit or 32bit
-  math (EXPR _${_PYTHON_PREFIX}_ARCH "${CMAKE_SIZEOF_VOID_P} * 8")
-  set (_${_PYTHON_PREFIX}_ARCH2 ${_${_PYTHON_PREFIX}_ARCH})
-else()
-  # architecture unknown, search for both 64bit and 32bit
-  set (_${_PYTHON_PREFIX}_ARCH 64)
-  set (_${_PYTHON_PREFIX}_ARCH2 32)
-endif()
-
-# IronPython support
-if (CMAKE_SIZEOF_VOID_P)
-  # In this case, search only for 64bit or 32bit
-  math (EXPR _${_PYTHON_PREFIX}_ARCH "${CMAKE_SIZEOF_VOID_P} * 8")
-  set (_${_PYTHON_PREFIX}_IRON_PYTHON_NAMES ipy${_${_PYTHON_PREFIX}_ARCH} ipy)
-else()
-  # architecture unknown, search for natural interpreter
-  set (_${_PYTHON_PREFIX}_IRON_PYTHON_NAMES ipy)
-endif()
-set (_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES net45 net40)
-
-# Apple frameworks handling
-_python_find_frameworks ()
-
-set (_${_PYTHON_PREFIX}_FIND_FRAMEWORK "FIRST")
-
-if (DEFINED ${_PYTHON_PREFIX}_FIND_FRAMEWORK)
-  if (NOT ${_PYTHON_PREFIX}_FIND_FRAMEWORK MATCHES "^(FIRST|LAST|NEVER)$")
-    message (AUTHOR_WARNING "Find${_PYTHON_PREFIX}: ${${_PYTHON_PREFIX}_FIND_FRAMEWORK}: invalid value for '${_PYTHON_PREFIX}_FIND_FRAMEWORK'. 'FIRST', 'LAST' or 'NEVER' expected. 'FIRST' will be used instead.")
-  else()
-    set (_${_PYTHON_PREFIX}_FIND_FRAMEWORK ${${_PYTHON_PREFIX}_FIND_FRAMEWORK})
-  endif()
-elseif (DEFINED CMAKE_FIND_FRAMEWORK)
-  if (CMAKE_FIND_FRAMEWORK STREQUAL "ONLY")
-    message (AUTHOR_WARNING "Find${_PYTHON_PREFIX}: CMAKE_FIND_FRAMEWORK: 'ONLY' value is not supported. 'FIRST' will be used instead.")
-  elseif (NOT CMAKE_FIND_FRAMEWORK MATCHES "^(FIRST|LAST|NEVER)$")
-    message (AUTHOR_WARNING "Find${_PYTHON_PREFIX}: ${CMAKE_FIND_FRAMEWORK}: invalid value for 'CMAKE_FIND_FRAMEWORK'. 'FIRST', 'LAST' or 'NEVER' expected. 'FIRST' will be used instead.")
-  else()
-    set (_${_PYTHON_PREFIX}_FIND_FRAMEWORK ${CMAKE_FIND_FRAMEWORK})
-  endif()
-endif()
-
-# Save CMAKE_FIND_APPBUNDLE
-if (DEFINED CMAKE_FIND_APPBUNDLE)
-  set (_${_PYTHON_PREFIX}_CMAKE_FIND_APPBUNDLE ${CMAKE_FIND_APPBUNDLE})
-else()
-  unset (_${_PYTHON_PREFIX}_CMAKE_FIND_APPBUNDLE)
-endif()
-# To avoid app bundle lookup
-set (CMAKE_FIND_APPBUNDLE "NEVER")
-
-# Save CMAKE_FIND_FRAMEWORK
-if (DEFINED CMAKE_FIND_FRAMEWORK)
-  set (_${_PYTHON_PREFIX}_CMAKE_FIND_FRAMEWORK ${CMAKE_FIND_FRAMEWORK})
-else()
-  unset (_${_PYTHON_PREFIX}_CMAKE_FIND_FRAMEWORK)
-endif()
-# To avoid framework lookup
-set (CMAKE_FIND_FRAMEWORK "NEVER")
-
-# Windows Registry handling
-if (DEFINED ${_PYTHON_PREFIX}_FIND_REGISTRY)
-  if (NOT ${_PYTHON_PREFIX}_FIND_REGISTRY MATCHES "^(FIRST|LAST|NEVER)$")
-    message (AUTHOR_WARNING "Find${_PYTHON_PREFIX}: ${${_PYTHON_PREFIX}_FIND_REGISTRY}: invalid value for '${_PYTHON_PREFIX}_FIND_REGISTRY'. 'FIRST', 'LAST' or 'NEVER' expected. 'FIRST' will be used instead.")
-    set (_${_PYTHON_PREFIX}_FIND_REGISTRY "FIRST")
-  else()
-    set (_${_PYTHON_PREFIX}_FIND_REGISTRY ${${_PYTHON_PREFIX}_FIND_REGISTRY})
-  endif()
-else()
-  set (_${_PYTHON_PREFIX}_FIND_REGISTRY "FIRST")
-endif()
-
-# virtual environments recognition
-if (DEFINED ENV{VIRTUAL_ENV} OR DEFINED ENV{CONDA_PREFIX})
-  if (DEFINED ${_PYTHON_PREFIX}_FIND_VIRTUALENV)
-    if (NOT ${_PYTHON_PREFIX}_FIND_VIRTUALENV MATCHES "^(FIRST|ONLY|STANDARD)$")
-      message (AUTHOR_WARNING "Find${_PYTHON_PREFIX}: ${${_PYTHON_PREFIX}_FIND_VIRTUALENV}: invalid value for '${_PYTHON_PREFIX}_FIND_VIRTUALENV'. 'FIRST', 'ONLY' or 'STANDARD' expected. 'FIRST' will be used instead.")
-      set (_${_PYTHON_PREFIX}_FIND_VIRTUALENV "FIRST")
-    else()
-      set (_${_PYTHON_PREFIX}_FIND_VIRTUALENV ${${_PYTHON_PREFIX}_FIND_VIRTUALENV})
-    endif()
-  else()
-    set (_${_PYTHON_PREFIX}_FIND_VIRTUALENV FIRST)
-  endif()
-else()
-  set (_${_PYTHON_PREFIX}_FIND_VIRTUALENV STANDARD)
-endif()
-
-
-# Compute search signature
-# This signature will be used to check validity of cached variables on new search
-set (_${_PYTHON_PREFIX}_SIGNATURE "${${_PYTHON_PREFIX}_ROOT_DIR}:${${_PYTHON_PREFIX}_FIND_STRATEGY}:${${_PYTHON_PREFIX}_FIND_VIRTUALENV}")
-if (NOT WIN32)
-  string (APPEND _${_PYTHON_PREFIX}_SIGNATURE ":${${_PYTHON_PREFIX}_USE_STATIC_LIBS}:")
-endif()
-if (CMAKE_HOST_APPLE)
-  string (APPEND _${_PYTHON_PREFIX}_SIGNATURE ":${${_PYTHON_PREFIX}_FIND_FRAMEWORK}")
-endif()
-if (CMAKE_HOST_WIN32)
-  string (APPEND _${_PYTHON_PREFIX}_SIGNATURE ":${${_PYTHON_PREFIX}_FIND_REGISTRY}")
-endif()
-
-
-unset (_${_PYTHON_PREFIX}_REQUIRED_VARS)
-unset (_${_PYTHON_PREFIX}_CACHED_VARS)
-unset (_${_PYTHON_PREFIX}_Interpreter_REASON_FAILURE)
-unset (_${_PYTHON_PREFIX}_Compiler_REASON_FAILURE)
-unset (_${_PYTHON_PREFIX}_Development_REASON_FAILURE)
-unset (_${_PYTHON_PREFIX}_NumPy_REASON_FAILURE)
-
-
-# first step, search for the interpreter
-if ("Interpreter" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS)
-  list (APPEND _${_PYTHON_PREFIX}_CACHED_VARS _${_PYTHON_PREFIX}_EXECUTABLE)
-  if (${_PYTHON_PREFIX}_FIND_REQUIRED_Interpreter)
-    list (APPEND _${_PYTHON_PREFIX}_REQUIRED_VARS ${_PYTHON_PREFIX}_EXECUTABLE)
-  endif()
-
-  if (DEFINED ${_PYTHON_PREFIX}_EXECUTABLE
-      AND IS_ABSOLUTE "${${_PYTHON_PREFIX}_EXECUTABLE}")
-    if (NOT ${_PYTHON_PREFIX}_EXECUTABLE STREQUAL _${_PYTHON_PREFIX}_EXECUTABLE)
-      # invalidate cache properties
-      unset (_${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES CACHE)
-    endif()
-    set (_${_PYTHON_PREFIX}_EXECUTABLE "${${_PYTHON_PREFIX}_EXECUTABLE}" CACHE INTERNAL "")
-  elseif (DEFINED _${_PYTHON_PREFIX}_EXECUTABLE)
-    # compute interpreter signature and check validity of definition
-    string (MD5 __${_PYTHON_PREFIX}_INTERPRETER_SIGNATURE "${_${_PYTHON_PREFIX}_SIGNATURE}:${_${_PYTHON_PREFIX}_EXECUTABLE}")
-    if (__${_PYTHON_PREFIX}_INTERPRETER_SIGNATURE STREQUAL _${_PYTHON_PREFIX}_INTERPRETER_SIGNATURE)
-      # check version validity
-      if (${_PYTHON_PREFIX}_FIND_VERSION_EXACT)
-        _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION} EXACT CHECK_EXISTS)
-      else()
-        _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION} CHECK_EXISTS)
-      endif()
-    else()
-      unset (_${_PYTHON_PREFIX}_EXECUTABLE CACHE)
-    endif()
-    if (NOT _${_PYTHON_PREFIX}_EXECUTABLE)
-      unset (_${_PYTHON_PREFIX}_INTERPRETER_SIGNATURE CACHE)
-      unset (_${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES CACHE)
-    endif()
-  endif()
-
-  if (NOT _${_PYTHON_PREFIX}_EXECUTABLE)
-    set (_${_PYTHON_PREFIX}_HINTS "${${_PYTHON_PREFIX}_ROOT_DIR}" ENV ${_PYTHON_PREFIX}_ROOT_DIR)
-
-    if (_${_PYTHON_PREFIX}_FIND_STRATEGY STREQUAL "LOCATION")
-      unset (_${_PYTHON_PREFIX}_NAMES)
-      unset (_${_PYTHON_PREFIX}_FRAMEWORK_PATHS)
-      unset (_${_PYTHON_PREFIX}_REGISTRY_PATHS)
-
-      foreach (_${_PYTHON_PREFIX}_VERSION IN LISTS _${_PYTHON_PREFIX}_FIND_VERSIONS)
-        # build all executable names
-        _python_get_names (_${_PYTHON_PREFIX}_VERSION_NAMES VERSION ${_${_PYTHON_PREFIX}_VERSION} POSIX EXECUTABLE)
-        list (APPEND _${_PYTHON_PREFIX}_NAMES ${_${_PYTHON_PREFIX}_VERSION_NAMES})
-
-        # Framework Paths
-        _python_get_frameworks (_${_PYTHON_PREFIX}_VERSION_PATHS ${_${_PYTHON_PREFIX}_VERSION})
-        list (APPEND _${_PYTHON_PREFIX}_FRAMEWORK_PATHS ${_${_PYTHON_PREFIX}_VERSION_PATHS})
-
-        # Registry Paths
-        _python_get_registries (_${_PYTHON_PREFIX}_VERSION_PATHS ${_${_PYTHON_PREFIX}_VERSION})
-        list (APPEND _${_PYTHON_PREFIX}_REGISTRY_PATHS ${_${_PYTHON_PREFIX}_VERSION_PATHS}
-                     [HKEY_LOCAL_MACHINE\\SOFTWARE\\IronPython\\${_${_PYTHON_PREFIX}_VERSION}\\InstallPath])
-      endforeach()
-      list (APPEND _${_PYTHON_PREFIX}_NAMES python${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR} python)
-
-      while (TRUE)
-        # Virtual environments handling
-        if (_${_PYTHON_PREFIX}_FIND_VIRTUALENV MATCHES "^(FIRST|ONLY)$")
-          find_program (_${_PYTHON_PREFIX}_EXECUTABLE
-                        NAMES ${_${_PYTHON_PREFIX}_NAMES}
-                        NAMES_PER_DIR
-                        HINTS ${_${_PYTHON_PREFIX}_HINTS}
-                        PATHS ENV VIRTUAL_ENV ENV CONDA_PREFIX
-                        PATH_SUFFIXES bin Scripts
-                        NO_CMAKE_PATH
-                        NO_CMAKE_ENVIRONMENT_PATH
-                        NO_SYSTEM_ENVIRONMENT_PATH
-                        NO_CMAKE_SYSTEM_PATH)
-
-          _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION})
-          if (_${_PYTHON_PREFIX}_EXECUTABLE)
-            break()
-          endif()
-          if (NOT _${_PYTHON_PREFIX}_FIND_VIRTUALENV STREQUAL "ONLY")
-            break()
-          endif()
-        endif()
-
-        # Apple frameworks handling
-        if (CMAKE_HOST_APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "FIRST")
-          find_program (_${_PYTHON_PREFIX}_EXECUTABLE
-                        NAMES ${_${_PYTHON_PREFIX}_NAMES}
-                        NAMES_PER_DIR
-                        HINTS ${_${_PYTHON_PREFIX}_HINTS}
-                        PATHS ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
-                        PATH_SUFFIXES bin
-                        NO_CMAKE_PATH
-                        NO_CMAKE_ENVIRONMENT_PATH
-                        NO_SYSTEM_ENVIRONMENT_PATH
-                        NO_CMAKE_SYSTEM_PATH)
-          _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION})
-          if (_${_PYTHON_PREFIX}_EXECUTABLE)
-            break()
-          endif()
-        endif()
-        # Windows registry
-        if (CMAKE_HOST_WIN32 AND _${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "FIRST")
-          find_program (_${_PYTHON_PREFIX}_EXECUTABLE
-                        NAMES ${_${_PYTHON_PREFIX}_NAMES}
-                              ${_${_PYTHON_PREFIX}_IRON_PYTHON_NAMES}
-                        NAMES_PER_DIR
-                        HINTS ${_${_PYTHON_PREFIX}_HINTS}
-                        PATHS ${_${_PYTHON_PREFIX}_REGISTRY_PATHS}
-                        PATH_SUFFIXES bin ${_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES}
-                        NO_SYSTEM_ENVIRONMENT_PATH
-                        NO_CMAKE_SYSTEM_PATH)
-          _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION})
-          if (_${_PYTHON_PREFIX}_EXECUTABLE)
-            break()
-          endif()
-        endif()
-
-        # try using HINTS
-        find_program (_${_PYTHON_PREFIX}_EXECUTABLE
-                      NAMES ${_${_PYTHON_PREFIX}_NAMES}
-                            ${_${_PYTHON_PREFIX}_IRON_PYTHON_NAMES}
-                      NAMES_PER_DIR
-                      HINTS ${_${_PYTHON_PREFIX}_HINTS}
-                      PATH_SUFFIXES bin ${_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES}
-                      NO_SYSTEM_ENVIRONMENT_PATH
-                      NO_CMAKE_SYSTEM_PATH)
-        _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION})
-        if (_${_PYTHON_PREFIX}_EXECUTABLE)
-          break()
-        endif()
-        # try using standard paths
-        find_program (_${_PYTHON_PREFIX}_EXECUTABLE
-                      NAMES ${_${_PYTHON_PREFIX}_NAMES}
-                            ${_${_PYTHON_PREFIX}_IRON_PYTHON_NAMES}
-                      NAMES_PER_DIR
-                      PATH_SUFFIXES bin ${_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES})
-        _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION})
-        if (_${_PYTHON_PREFIX}_EXECUTABLE)
-          break()
-        endif()
-
-        # Apple frameworks handling
-        if (CMAKE_HOST_APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "LAST")
-          find_program (_${_PYTHON_PREFIX}_EXECUTABLE
-                        NAMES ${_${_PYTHON_PREFIX}_NAMES}
-                        NAMES_PER_DIR
-                        PATHS ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
-                        PATH_SUFFIXES bin
-                        NO_DEFAULT_PATH)
-          _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION})
-          if (_${_PYTHON_PREFIX}_EXECUTABLE)
-            break()
-          endif()
-        endif()
-        # Windows registry
-        if (CMAKE_HOST_WIN32 AND _${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "LAST")
-          find_program (_${_PYTHON_PREFIX}_EXECUTABLE
-                        NAMES ${_${_PYTHON_PREFIX}_NAMES}
-                              ${_${_PYTHON_PREFIX}_IRON_PYTHON_NAMES}
-                        NAMES_PER_DIR
-                        PATHS ${_${_PYTHON_PREFIX}_REGISTRY_PATHS}
-                        PATH_SUFFIXES bin ${_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES}
-                        NO_DEFAULT_PATH)
-          _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION})
-          if (_${_PYTHON_PREFIX}_EXECUTABLE)
-            break()
-          endif()
-        endif()
-
-        break()
-      endwhile()
-    else()
-      # look-up for various versions and locations
-      foreach (_${_PYTHON_PREFIX}_VERSION IN LISTS _${_PYTHON_PREFIX}_FIND_VERSIONS)
-        _python_get_names (_${_PYTHON_PREFIX}_NAMES VERSION ${_${_PYTHON_PREFIX}_VERSION} POSIX EXECUTABLE)
-        list (APPEND _${_PYTHON_PREFIX}_NAMES python${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR}
-                                              python)
-
-        _python_get_frameworks (_${_PYTHON_PREFIX}_FRAMEWORK_PATHS ${_${_PYTHON_PREFIX}_VERSION})
-        _python_get_registries (_${_PYTHON_PREFIX}_REGISTRY_PATHS ${_${_PYTHON_PREFIX}_VERSION})
-
-        # Virtual environments handling
-        if (_${_PYTHON_PREFIX}_FIND_VIRTUALENV MATCHES "^(FIRST|ONLY)$")
-          find_program (_${_PYTHON_PREFIX}_EXECUTABLE
-                        NAMES ${_${_PYTHON_PREFIX}_NAMES}
-                        NAMES_PER_DIR
-                        HINTS ${_${_PYTHON_PREFIX}_HINTS}
-                        PATHS ENV VIRTUAL_ENV ENV CONDA_PREFIX
-                        PATH_SUFFIXES bin Scripts
-                        NO_CMAKE_PATH
-                        NO_CMAKE_ENVIRONMENT_PATH
-                        NO_SYSTEM_ENVIRONMENT_PATH
-                        NO_CMAKE_SYSTEM_PATH)
-          _python_validate_interpreter (${_${_PYTHON_PREFIX}_VERSION} EXACT)
-          if (_${_PYTHON_PREFIX}_EXECUTABLE)
-            break()
-          endif()
-          if (_${_PYTHON_PREFIX}_FIND_VIRTUALENV STREQUAL "ONLY")
-            continue()
-          endif()
-        endif()
-
-        # Apple frameworks handling
-        if (CMAKE_HOST_APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "FIRST")
-          find_program (_${_PYTHON_PREFIX}_EXECUTABLE
-                        NAMES ${_${_PYTHON_PREFIX}_NAMES}
-                        NAMES_PER_DIR
-                        HINTS ${_${_PYTHON_PREFIX}_HINTS}
-                        PATHS ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
-                        PATH_SUFFIXES bin
-                        NO_CMAKE_PATH
-                        NO_CMAKE_ENVIRONMENT_PATH
-                        NO_SYSTEM_ENVIRONMENT_PATH
-                        NO_CMAKE_SYSTEM_PATH)
-        endif()
-
-        # Windows registry
-        if (CMAKE_HOST_WIN32 AND _${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "FIRST")
-          find_program (_${_PYTHON_PREFIX}_EXECUTABLE
-                        NAMES ${_${_PYTHON_PREFIX}_NAMES}
-                              ${_${_PYTHON_PREFIX}_IRON_PYTHON_NAMES}
-                        NAMES_PER_DIR
-                        HINTS ${_${_PYTHON_PREFIX}_HINTS}
-                        PATHS ${_${_PYTHON_PREFIX}_REGISTRY_PATHS}
-                              [HKEY_LOCAL_MACHINE\\SOFTWARE\\IronPython\\${_${_PYTHON_PREFIX}_VERSION}\\InstallPath]
-                        PATH_SUFFIXES bin ${_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES}
-                        NO_SYSTEM_ENVIRONMENT_PATH
-                        NO_CMAKE_SYSTEM_PATH)
-        endif()
-
-        _python_validate_interpreter (${_${_PYTHON_PREFIX}_VERSION} EXACT)
-        if (_${_PYTHON_PREFIX}_EXECUTABLE)
-          break()
-        endif()
-
-        # try using HINTS
-        find_program (_${_PYTHON_PREFIX}_EXECUTABLE
-                      NAMES ${_${_PYTHON_PREFIX}_NAMES}
-                            ${_${_PYTHON_PREFIX}_IRON_PYTHON_NAMES}
-                      NAMES_PER_DIR
-                      HINTS ${_${_PYTHON_PREFIX}_HINTS}
-                      PATH_SUFFIXES bin ${_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES}
-                      NO_SYSTEM_ENVIRONMENT_PATH
-                      NO_CMAKE_SYSTEM_PATH)
-        _python_validate_interpreter (${_${_PYTHON_PREFIX}_VERSION} EXACT)
-        if (_${_PYTHON_PREFIX}_EXECUTABLE)
-          break()
-        endif()
-        # try using standard paths.
-        # NAMES_PER_DIR is not defined on purpose to have a chance to find
-        # expected version.
-        # For example, typical systems have 'python' for version 2.* and 'python3'
-        # for version 3.*. So looking for names per dir will find, potentially,
-        # systematically 'python' (i.e. version 2) even if version 3 is searched.
-        if (CMAKE_HOST_WIN32)
-          find_program (_${_PYTHON_PREFIX}_EXECUTABLE
-                        NAMES ${_${_PYTHON_PREFIX}_NAMES}
-                              python
-                              ${_${_PYTHON_PREFIX}_IRON_PYTHON_NAMES})
-        else()
-          find_program (_${_PYTHON_PREFIX}_EXECUTABLE
-                        NAMES ${_${_PYTHON_PREFIX}_NAMES})
-        endif()
-        _python_validate_interpreter (${_${_PYTHON_PREFIX}_VERSION} EXACT)
-        if (_${_PYTHON_PREFIX}_EXECUTABLE)
-          break()
-        endif()
-
-        # Apple frameworks handling
-        if (CMAKE_HOST_APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "LAST")
-          find_program (_${_PYTHON_PREFIX}_EXECUTABLE
-                        NAMES ${_${_PYTHON_PREFIX}_NAMES}
-                        NAMES_PER_DIR
-                        PATHS ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
-                        PATH_SUFFIXES bin
-                        NO_DEFAULT_PATH)
-        endif()
-
-        # Windows registry
-        if (CMAKE_HOST_WIN32 AND _${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "LAST")
-          find_program (_${_PYTHON_PREFIX}_EXECUTABLE
-                        NAMES ${_${_PYTHON_PREFIX}_NAMES}
-                              ${_${_PYTHON_PREFIX}_IRON_PYTHON_NAMES}
-                        NAMES_PER_DIR
-                        PATHS ${_${_PYTHON_PREFIX}_REGISTRY_PATHS}
-                              [HKEY_LOCAL_MACHINE\\SOFTWARE\\IronPython\\${_${_PYTHON_PREFIX}_VERSION}\\InstallPath]
-                        PATH_SUFFIXES bin ${_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES}
-                        NO_DEFAULT_PATH)
-        endif()
-
-        _python_validate_interpreter (${_${_PYTHON_PREFIX}_VERSION} EXACT)
-        if (_${_PYTHON_PREFIX}_EXECUTABLE)
-          break()
-        endif()
-      endforeach()
-
-      if (NOT _${_PYTHON_PREFIX}_EXECUTABLE AND
-          NOT _${_PYTHON_PREFIX}_FIND_VIRTUALENV STREQUAL "ONLY")
-        # No specific version found. Retry with generic names and standard paths.
-        # NAMES_PER_DIR is not defined on purpose to have a chance to find
-        # expected version.
-        # For example, typical systems have 'python' for version 2.* and 'python3'
-        # for version 3.*. So looking for names per dir will find, potentially,
-        # systematically 'python' (i.e. version 2) even if version 3 is searched.
-        find_program (_${_PYTHON_PREFIX}_EXECUTABLE
-                      NAMES python${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR}
-                            python
-                            ${_${_PYTHON_PREFIX}_IRON_PYTHON_NAMES})
-        _python_validate_interpreter ()
-      endif()
-    endif()
-  endif()
-
-  set (${_PYTHON_PREFIX}_EXECUTABLE "${_${_PYTHON_PREFIX}_EXECUTABLE}")
-
-  # retrieve exact version of executable found
-  if (_${_PYTHON_PREFIX}_EXECUTABLE)
-    execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c
-                             "import sys; sys.stdout.write('.'.join([str(x) for x in sys.version_info[:3]]))"
-                     RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
-                     OUTPUT_VARIABLE ${_PYTHON_PREFIX}_VERSION
-                     ERROR_QUIET
-                     OUTPUT_STRIP_TRAILING_WHITESPACE)
-    if (NOT _${_PYTHON_PREFIX}_RESULT)
-      set (_${_PYTHON_PREFIX}_EXECUTABLE_USABLE TRUE)
-    else()
-      # Interpreter is not usable
-      set (_${_PYTHON_PREFIX}_EXECUTABLE_USABLE FALSE)
-      unset (${_PYTHON_PREFIX}_VERSION)
-      set (_${_PYTHON_PREFIX}_Interpreter_REASON_FAILURE "Cannot run the interpreter \"${_${_PYTHON_PREFIX}_EXECUTABLE}\"")
-    endif()
-  endif()
-
-  if (_${_PYTHON_PREFIX}_EXECUTABLE AND _${_PYTHON_PREFIX}_EXECUTABLE_USABLE)
-    if (_${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES)
-      set (${_PYTHON_PREFIX}_Interpreter_FOUND TRUE)
-
-      list (GET _${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES 0 ${_PYTHON_PREFIX}_INTERPRETER_ID)
-
-      list (GET _${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES 1 ${_PYTHON_PREFIX}_VERSION_MAJOR)
-      list (GET _${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES 2 ${_PYTHON_PREFIX}_VERSION_MINOR)
-      list (GET _${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES 3 ${_PYTHON_PREFIX}_VERSION_PATH)
-
-      list (GET _${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES 4 _${_PYTHON_PREFIX}_ARCH)
-      set (_${_PYTHON_PREFIX}_ARCH2 ${_${_PYTHON_PREFIX}_ARCH})
-
-      list (GET _${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES 5 _${_PYTHON_PREFIX}_ABIFLAGS)
-      list (GET _${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES 6 ${_PYTHON_PREFIX}_SOABI)
-
-      list (GET _${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES 7 ${_PYTHON_PREFIX}_STDLIB)
-      list (GET _${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES 8 ${_PYTHON_PREFIX}_STDARCH)
-      list (GET _${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES 9 ${_PYTHON_PREFIX}_SITELIB)
-      list (GET _${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES 10 ${_PYTHON_PREFIX}_SITEARCH)
-    else()
-      string (REGEX MATCHALL "[0-9]+" _${_PYTHON_PREFIX}_VERSIONS "${${_PYTHON_PREFIX}_VERSION}")
-      list (GET _${_PYTHON_PREFIX}_VERSIONS 0 ${_PYTHON_PREFIX}_VERSION_MAJOR)
-      list (GET _${_PYTHON_PREFIX}_VERSIONS 1 ${_PYTHON_PREFIX}_VERSION_MINOR)
-      list (GET _${_PYTHON_PREFIX}_VERSIONS 2 ${_PYTHON_PREFIX}_VERSION_PATCH)
-
-      if (${_PYTHON_PREFIX}_VERSION_MAJOR VERSION_EQUAL _${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR)
-        set (${_PYTHON_PREFIX}_Interpreter_FOUND TRUE)
-
-        # Use interpreter version and ABI for future searches to ensure consistency
-        set (_${_PYTHON_PREFIX}_FIND_VERSIONS ${${_PYTHON_PREFIX}_VERSION_MAJOR}.${${_PYTHON_PREFIX}_VERSION_MINOR})
-        execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c "import sys; sys.stdout.write(sys.abiflags)"
-                         RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
-                         OUTPUT_VARIABLE _${_PYTHON_PREFIX}_ABIFLAGS
-                         ERROR_QUIET
-                         OUTPUT_STRIP_TRAILING_WHITESPACE)
-        if (_${_PYTHON_PREFIX}_RESULT)
-          # assunme ABI is not supported
-          set (_${_PYTHON_PREFIX}_ABIFLAGS "")
-        endif()
-      endif()
-
-      if (${_PYTHON_PREFIX}_Interpreter_FOUND)
-        # compute and save interpreter signature
-        string (MD5 __${_PYTHON_PREFIX}_INTERPRETER_SIGNATURE "${_${_PYTHON_PREFIX}_SIGNATURE}:${_${_PYTHON_PREFIX}_EXECUTABLE}")
-        set (_${_PYTHON_PREFIX}_INTERPRETER_SIGNATURE "${__${_PYTHON_PREFIX}_INTERPRETER_SIGNATURE}" CACHE INTERNAL "")
-
-        if (NOT CMAKE_SIZEOF_VOID_P)
-          # determine interpreter architecture
-          execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c "import sys; print(sys.maxsize > 2**32)"
-                           RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
-                           OUTPUT_VARIABLE ${_PYTHON_PREFIX}_IS64BIT
-                           ERROR_VARIABLE ${_PYTHON_PREFIX}_IS64BIT)
-          if (NOT _${_PYTHON_PREFIX}_RESULT)
-            if (${_PYTHON_PREFIX}_IS64BIT)
-              set (_${_PYTHON_PREFIX}_ARCH 64)
-              set (_${_PYTHON_PREFIX}_ARCH2 64)
-            else()
-              set (_${_PYTHON_PREFIX}_ARCH 32)
-              set (_${_PYTHON_PREFIX}_ARCH2 32)
-            endif()
-          endif()
-        endif()
-
-        # retrieve interpreter identity
-        execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -V
-                         RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
-                         OUTPUT_VARIABLE ${_PYTHON_PREFIX}_INTERPRETER_ID
-                         ERROR_VARIABLE ${_PYTHON_PREFIX}_INTERPRETER_ID)
-        if (NOT _${_PYTHON_PREFIX}_RESULT)
-          if (${_PYTHON_PREFIX}_INTERPRETER_ID MATCHES "Anaconda")
-            set (${_PYTHON_PREFIX}_INTERPRETER_ID "Anaconda")
-          elseif (${_PYTHON_PREFIX}_INTERPRETER_ID MATCHES "Enthought")
-            set (${_PYTHON_PREFIX}_INTERPRETER_ID "Canopy")
-          else()
-            string (REGEX REPLACE "^([^ ]+).*" "\\1" ${_PYTHON_PREFIX}_INTERPRETER_ID "${${_PYTHON_PREFIX}_INTERPRETER_ID}")
-            if (${_PYTHON_PREFIX}_INTERPRETER_ID STREQUAL "Python")
-              # try to get a more precise ID
-              execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c "import sys; print(sys.copyright)"
-                               RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
-                               OUTPUT_VARIABLE ${_PYTHON_PREFIX}_COPYRIGHT
-                               ERROR_QUIET)
-              if (${_PYTHON_PREFIX}_COPYRIGHT MATCHES "ActiveState")
-                set (${_PYTHON_PREFIX}_INTERPRETER_ID "ActivePython")
-              endif()
-            endif()
-          endif()
-        else()
-          set (${_PYTHON_PREFIX}_INTERPRETER_ID Python)
-        endif()
-
-        # retrieve various package installation directories
-        execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c "import sys; from distutils import sysconfig;sys.stdout.write(';'.join([sysconfig.get_python_lib(plat_specific=False,standard_lib=True),sysconfig.get_python_lib(plat_specific=True,standard_lib=True),sysconfig.get_python_lib(plat_specific=False,standard_lib=False),sysconfig.get_python_lib(plat_specific=True,standard_lib=False)]))"
-                        RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
-                        OUTPUT_VARIABLE _${_PYTHON_PREFIX}_LIBPATHS
-                        ERROR_QUIET)
-        if (NOT _${_PYTHON_PREFIX}_RESULT)
-          list (GET _${_PYTHON_PREFIX}_LIBPATHS 0 ${_PYTHON_PREFIX}_STDLIB)
-          list (GET _${_PYTHON_PREFIX}_LIBPATHS 1 ${_PYTHON_PREFIX}_STDARCH)
-          list (GET _${_PYTHON_PREFIX}_LIBPATHS 2 ${_PYTHON_PREFIX}_SITELIB)
-          list (GET _${_PYTHON_PREFIX}_LIBPATHS 3 ${_PYTHON_PREFIX}_SITEARCH)
-        else()
-          unset (${_PYTHON_PREFIX}_STDLIB)
-          unset (${_PYTHON_PREFIX}_STDARCH)
-          unset (${_PYTHON_PREFIX}_SITELIB)
-          unset (${_PYTHON_PREFIX}_SITEARCH)
-        endif()
-
-        if (_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR VERSION_GREATER_EQUAL 3)
-          _python_get_config_var (${_PYTHON_PREFIX}_SOABI SOABI)
-        endif()
-
-        # store properties in the cache to speed-up future searches
-        set (_${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES
-          "${${_PYTHON_PREFIX}_INTERPRETER_ID};${${_PYTHON_PREFIX}_VERSION_MAJOR};${${_PYTHON_PREFIX}_VERSION_MINOR};${${_PYTHON_PREFIX}_VERSION_PATCH};${_${_PYTHON_PREFIX}_ARCH};${_${_PYTHON_PREFIX}_ABIFLAGS};${${_PYTHON_PREFIX}_SOABI};${${_PYTHON_PREFIX}_STDLIB};${${_PYTHON_PREFIX}_STDARCH};${${_PYTHON_PREFIX}_SITELIB};${${_PYTHON_PREFIX}_SITEARCH}" CACHE INTERNAL "${_PYTHON_PREFIX} Properties")
-      else()
-        unset (_${_PYTHON_PREFIX}_INTERPRETER_SIGNATURE CACHE)
-        unset (${_PYTHON_PREFIX}_INTERPRETER_ID)
-      endif()
-    endif()
-  endif()
-
-  _python_mark_as_internal (_${_PYTHON_PREFIX}_EXECUTABLE
-                            _${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES
-                            _${_PYTHON_PREFIX}_INTERPRETER_SIGNATURE)
-endif()
-
-
-# second step, search for compiler (IronPython)
-if ("Compiler" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS)
-  list (APPEND _${_PYTHON_PREFIX}_CACHED_VARS _${_PYTHON_PREFIX}_COMPILER)
-  if (${_PYTHON_PREFIX}_FIND_REQUIRED_Compiler)
-    list (APPEND _${_PYTHON_PREFIX}_REQUIRED_VARS ${_PYTHON_PREFIX}_COMPILER)
-  endif()
-
-  if (DEFINED ${_PYTHON_PREFIX}_COMPILER
-      AND IS_ABSOLUTE "${${_PYTHON_PREFIX}_COMPILER}")
-    set (_${_PYTHON_PREFIX}_COMPILER "${${_PYTHON_PREFIX}_COMPILER}" CACHE INTERNAL "")
-  elseif (DEFINED _${_PYTHON_PREFIX}_COMPILER)
-    # compute compiler signature and check validity of definition
-    string (MD5 __${_PYTHON_PREFIX}_COMPILER_SIGNATURE "${_${_PYTHON_PREFIX}_SIGNATURE}:${_${_PYTHON_PREFIX}_COMPILER}")
-    if (__${_PYTHON_PREFIX}_COMPILER_SIGNATURE STREQUAL _${_PYTHON_PREFIX}_COMPILER_SIGNATURE)
-      # check version validity
-      if (${_PYTHON_PREFIX}_FIND_VERSION_EXACT)
-        _python_validate_compiler (${${_PYTHON_PREFIX}_FIND_VERSION} EXACT CHECK_EXISTS)
-      else()
-        _python_validate_compiler (${${_PYTHON_PREFIX}_FIND_VERSION} CHECK_EXISTS)
-      endif()
-    else()
-      unset (_${_PYTHON_PREFIX}_COMPILER CACHE)
-      unset (_${_PYTHON_PREFIX}_COMPILER_SIGNATURE CACHE)
-    endif()
-  endif()
-
-  if (NOT _${_PYTHON_PREFIX}_COMPILER)
-    # IronPython specific artifacts
-    # If IronPython interpreter is found, use its path
-    unset (_${_PYTHON_PREFIX}_IRON_ROOT)
-    if (${_PYTHON_PREFIX}_Interpreter_FOUND AND ${_PYTHON_PREFIX}_INTERPRETER_ID STREQUAL "IronPython")
-      get_filename_component (_${_PYTHON_PREFIX}_IRON_ROOT "${${_PYTHON_PREFIX}_EXECUTABLE}" DIRECTORY)
-    endif()
-
-    if (_${_PYTHON_PREFIX}_FIND_STRATEGY STREQUAL "LOCATION")
-      set (_${_PYTHON_PREFIX}_REGISTRY_PATHS)
-
-      foreach (_${_PYTHON_PREFIX}_VERSION IN LISTS _${_PYTHON_PREFIX}_FIND_VERSIONS)
-        # Registry Paths
-        list (APPEND _${_PYTHON_PREFIX}_REGISTRY_PATHS
-                     [HKEY_LOCAL_MACHINE\\SOFTWARE\\IronPython\\${_${_PYTHON_PREFIX}_VERSION}\\InstallPath])
-      endforeach()
-
-      while (TRUE)
-        if (_${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "FIRST")
-          find_program (_${_PYTHON_PREFIX}_COMPILER
-                        NAMES ipyc
-                        HINTS ${_${_PYTHON_PREFIX}_IRON_ROOT} ${_${_PYTHON_PREFIX}_HINTS}
-                        PATHS ${_${_PYTHON_PREFIX}_REGISTRY_PATHS}
-                        PATH_SUFFIXES ${_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES}
-                        NO_SYSTEM_ENVIRONMENT_PATH
-                        NO_CMAKE_SYSTEM_PATH)
-          _python_validate_compiler (${${_PYTHON_PREFIX}_FIND_VERSION})
-          if (_${_PYTHON_PREFIX}_COMPILER)
-            break()
-          endif()
-        endif()
-
-        find_program (_${_PYTHON_PREFIX}_COMPILER
-                      NAMES ipyc
-                      HINTS ${_${_PYTHON_PREFIX}_IRON_ROOT} ${_${_PYTHON_PREFIX}_HINTS}
-                      PATH_SUFFIXES ${_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES}
-                      NO_SYSTEM_ENVIRONMENT_PATH
-                      NO_CMAKE_SYSTEM_PATH)
-        _python_validate_compiler (${${_PYTHON_PREFIX}_FIND_VERSION})
-        if (_${_PYTHON_PREFIX}_COMPILER)
-          break()
-        endif()
-
-        if (_${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "LAST")
-          find_program (_${_PYTHON_PREFIX}_COMPILER
-                        NAMES ipyc
-                        PATHS ${_${_PYTHON_PREFIX}_REGISTRY_PATHS}
-                        PATH_SUFFIXES ${_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES}
-                        NO_DEFAULT_PATH)
-        endif()
-
-        break()
-      endwhile()
-    else()
-      # try using root dir and registry
-      foreach (_${_PYTHON_PREFIX}_VERSION IN LISTS _${_PYTHON_PREFIX}_FIND_VERSIONS)
-        if (_${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "FIRST")
-          find_program (_${_PYTHON_PREFIX}_COMPILER
-                        NAMES ipyc
-                        HINTS ${_${_PYTHON_PREFIX}_IRON_ROOT} ${_${_PYTHON_PREFIX}_HINTS}
-                        PATHS [HKEY_LOCAL_MACHINE\\SOFTWARE\\IronPython\\${_${_PYTHON_PREFIX}_VERSION}\\InstallPath]
-                        PATH_SUFFIXES ${_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES}
-                        NO_SYSTEM_ENVIRONMENT_PATH
-                        NO_CMAKE_SYSTEM_PATH)
-          _python_validate_compiler (${_${_PYTHON_PREFIX}_VERSION} EXACT)
-          if (_${_PYTHON_PREFIX}_COMPILER)
-            break()
-          endif()
-        endif()
-
-        find_program (_${_PYTHON_PREFIX}_COMPILER
-                      NAMES ipyc
-                      HINTS ${_${_PYTHON_PREFIX}_IRON_ROOT} ${_${_PYTHON_PREFIX}_HINTS}
-                      PATH_SUFFIXES ${_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES}
-                      NO_SYSTEM_ENVIRONMENT_PATH
-                      NO_CMAKE_SYSTEM_PATH)
-        _python_validate_compiler (${_${_PYTHON_PREFIX}_VERSION} EXACT)
-        if (_${_PYTHON_PREFIX}_COMPILER)
-          break()
-        endif()
-
-        if (_${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "LAST")
-          find_program (_${_PYTHON_PREFIX}_COMPILER
-                        NAMES ipyc
-                        PATHS [HKEY_LOCAL_MACHINE\\SOFTWARE\\IronPython\\${_${_PYTHON_PREFIX}_VERSION}\\InstallPath]
-                        PATH_SUFFIXES ${_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES}
-                        NO_DEFAULT_PATH)
-          _python_validate_compiler (${_${_PYTHON_PREFIX}_VERSION} EXACT)
-          if (_${_PYTHON_PREFIX}_COMPILER)
-            break()
-          endif()
-        endif()
-      endforeach()
-
-      # no specific version found, re-try in standard paths
-      find_program (_${_PYTHON_PREFIX}_COMPILER
-                    NAMES ipyc
-                    HINTS ${_${_PYTHON_PREFIX}_IRON_ROOT} ${_${_PYTHON_PREFIX}_HINTS}
-                    PATH_SUFFIXES ${_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES})
-    endif()
-  endif()
-
-  set (${_PYTHON_PREFIX}_COMPILER "${_${_PYTHON_PREFIX}_COMPILER}")
-
-  if (_${_PYTHON_PREFIX}_COMPILER)
-    # retrieve python environment version from compiler
-    set (_${_PYTHON_PREFIX}_VERSION_DIR "${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/PythonCompilerVersion.dir")
-    file (WRITE "${_${_PYTHON_PREFIX}_VERSION_DIR}/version.py" "import sys; sys.stdout.write('.'.join([str(x) for x in sys.version_info[:3]]))\n")
-    execute_process (COMMAND "${_${_PYTHON_PREFIX}_COMPILER}" /target:exe /embed "${_${_PYTHON_PREFIX}_VERSION_DIR}/version.py"
-                     WORKING_DIRECTORY "${_${_PYTHON_PREFIX}_VERSION_DIR}"
-                     OUTPUT_QUIET
-                     ERROR_QUIET)
-    execute_process (COMMAND "${_${_PYTHON_PREFIX}_VERSION_DIR}/version"
-                     WORKING_DIRECTORY "${_${_PYTHON_PREFIX}_VERSION_DIR}"
-                     RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
-                     OUTPUT_VARIABLE _${_PYTHON_PREFIX}_VERSION
-                     ERROR_QUIET)
-    if (NOT _${_PYTHON_PREFIX}_RESULT)
-      set (_${_PYTHON_PREFIX}_COMPILER_USABLE TRUE)
-      string (REGEX MATCHALL "[0-9]+" _${_PYTHON_PREFIX}_VERSIONS "${_${_PYTHON_PREFIX}_VERSION}")
-      list (GET _${_PYTHON_PREFIX}_VERSIONS 0 _${_PYTHON_PREFIX}_VERSION_MAJOR)
-      list (GET _${_PYTHON_PREFIX}_VERSIONS 1 _${_PYTHON_PREFIX}_VERSION_MINOR)
-      list (GET _${_PYTHON_PREFIX}_VERSIONS 2 _${_PYTHON_PREFIX}_VERSION_PATCH)
-
-      if (NOT ${_PYTHON_PREFIX}_Interpreter_FOUND)
-        # set public version information
-        set (${_PYTHON_PREFIX}_VERSION ${_${_PYTHON_PREFIX}_VERSION})
-        set (${_PYTHON_PREFIX}_VERSION_MAJOR ${_${_PYTHON_PREFIX}_VERSION_MAJOR})
-        set (${_PYTHON_PREFIX}_VERSION_MINOR ${_${_PYTHON_PREFIX}_VERSION_MINOR})
-        set (${_PYTHON_PREFIX}_VERSION_PATCH ${_${_PYTHON_PREFIX}_VERSION_PATCH})
-      endif()
-    else()
-      # compiler not usable
-      set (_${_PYTHON_PREFIX}_COMPILER_USABLE FALSE)
-      set (_${_PYTHON_PREFIX}_Compiler_REASON_FAILURE "Cannot run the compiler \"${_${_PYTHON_PREFIX}_COMPILER}\"")
-    endif()
-    file (REMOVE_RECURSE "${_${_PYTHON_PREFIX}_VERSION_DIR}")
-  endif()
-
-  if (_${_PYTHON_PREFIX}_COMPILER AND _${_PYTHON_PREFIX}_COMPILER_USABLE)
-    if (${_PYTHON_PREFIX}_Interpreter_FOUND)
-      # Compiler must be compatible with interpreter
-      if (${_${_PYTHON_PREFIX}_VERSION_MAJOR}.${_${_PYTHON_PREFIX}_VERSION_MINOR} VERSION_EQUAL ${${_PYTHON_PREFIX}_VERSION_MAJOR}.${${_PYTHON_PREFIX}_VERSION_MINOR})
-        set (${_PYTHON_PREFIX}_Compiler_FOUND TRUE)
-      endif()
-    elseif (${_PYTHON_PREFIX}_VERSION_MAJOR VERSION_EQUAL _${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR)
-      set (${_PYTHON_PREFIX}_Compiler_FOUND TRUE)
-    # Use compiler version for future searches to ensure consistency
-    set (_${_PYTHON_PREFIX}_FIND_VERSIONS ${${_PYTHON_PREFIX}_VERSION_MAJOR}.${${_PYTHON_PREFIX}_VERSION_MINOR})
-    endif()
-  endif()
-
-  if (${_PYTHON_PREFIX}_Compiler_FOUND)
-    # compute and save compiler signature
-    string (MD5 __${_PYTHON_PREFIX}_COMPILER_SIGNATURE "${_${_PYTHON_PREFIX}_SIGNATURE}:${_${_PYTHON_PREFIX}_COMPILER}")
-    set (_${_PYTHON_PREFIX}_COMPILER_SIGNATURE "${__${_PYTHON_PREFIX}_COMPILER_SIGNATURE}" CACHE INTERNAL "")
-
-    set (${_PYTHON_PREFIX}_COMPILER_ID IronPython)
-  else()
-    unset (_${_PYTHON_PREFIX}_COMPILER_SIGNATURE CACHE)
-    unset (${_PYTHON_PREFIX}_COMPILER_ID)
-  endif()
-
-  _python_mark_as_internal (_${_PYTHON_PREFIX}_COMPILER
-                            _${_PYTHON_PREFIX}_COMPILER_SIGNATURE)
-endif()
-
-
-# third step, search for the development artifacts
-## Development environment is not compatible with IronPython interpreter
-if ("Development" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS
-    AND NOT ${_PYTHON_PREFIX}_INTERPRETER_ID STREQUAL "IronPython")
-  list (APPEND _${_PYTHON_PREFIX}_CACHED_VARS _${_PYTHON_PREFIX}_LIBRARY_RELEASE
-                                              _${_PYTHON_PREFIX}_RUNTIME_LIBRARY_RELEASE
-                                              _${_PYTHON_PREFIX}_LIBRARY_DEBUG
-                                              _${_PYTHON_PREFIX}_RUNTIME_LIBRARY_DEBUG
-                                              _${_PYTHON_PREFIX}_INCLUDE_DIR)
-  if (${_PYTHON_PREFIX}_FIND_REQUIRED_Development)
-    list (APPEND _${_PYTHON_PREFIX}_REQUIRED_VARS ${_PYTHON_PREFIX}_LIBRARIES
-                                                  ${_PYTHON_PREFIX}_INCLUDE_DIRS)
-  endif()
-
-  if (DEFINED _${_PYTHON_PREFIX}_LIBRARY_RELEASE OR DEFINED _${_PYTHON_PREFIX}_INCLUDE_DIR)
-    # compute development signature and check validity of definition
-    string (MD5 __${_PYTHON_PREFIX}_DEVELOPMENT_SIGNATURE "${_${_PYTHON_PREFIX}_SIGNATURE}:${_${_PYTHON_PREFIX}_LIBRARY_RELEASE}:${_${_PYTHON_PREFIX}_INCLUDE_DIR}")
-    if (WIN32 AND NOT DEFINED _${_PYTHON_PREFIX}_LIBRARY_DEBUG)
-      set (_${_PYTHON_PREFIX}_LIBRARY_DEBUG "${_PYTHON_PREFIX}_LIBRARY_DEBUG-NOTFOUND" CACHE INTERNAL "")
-    endif()
-    if (NOT DEFINED _${_PYTHON_PREFIX}_INCLUDE_DIR)
-      set (_${_PYTHON_PREFIX}_INCLUDE_DIR "${_PYTHON_PREFIX}_INCLUDE_DIR-NOTFOUND" CACHE INTERNAL "")
-    endif()
-    if (__${_PYTHON_PREFIX}_DEVELOPMENT_SIGNATURE STREQUAL _${_PYTHON_PREFIX}_DEVELOPMENT_SIGNATURE)
-      # check version validity
-      if (${_PYTHON_PREFIX}_FIND_VERSION_EXACT)
-        _python_validate_library (${${_PYTHON_PREFIX}_FIND_VERSION} EXACT CHECK_EXISTS)
-        _python_validate_include_dir (${${_PYTHON_PREFIX}_FIND_VERSION} EXACT CHECK_EXISTS)
-      else()
-        _python_validate_library (${${_PYTHON_PREFIX}_FIND_VERSION} CHECK_EXISTS)
-        _python_validate_include_dir (${${_PYTHON_PREFIX}_FIND_VERSION} CHECK_EXISTS)
-      endif()
-    else()
-      unset (_${_PYTHON_PREFIX}_LIBRARY_RELEASE CACHE)
-      unset (_${_PYTHON_PREFIX}_LIBRARY_DEBUG CACHE)
-      unset (_${_PYTHON_PREFIX}_INCLUDE_DIR CACHE)
-    endif()
-  endif()
-  if (NOT _${_PYTHON_PREFIX}_LIBRARY_RELEASE OR NOT _${_PYTHON_PREFIX}_INCLUDE_DIR)
-    unset (_${_PYTHON_PREFIX}_CONFIG CACHE)
-    unset (_${_PYTHON_PREFIX}_DEVELOPMENT_SIGNATURE CACHE)
-  endif()
-
-  if (DEFINED ${_PYTHON_PREFIX}_LIBRARY
-      AND IS_ABSOLUTE "${${_PYTHON_PREFIX}_LIBRARY}")
-    set (_${_PYTHON_PREFIX}_LIBRARY_RELEASE "${${_PYTHON_PREFIX}_LIBRARY}" CACHE INTERNAL "")
-    unset (_${_PYTHON_PREFIX}_LIBRARY_DEBUG CACHE)
-    unset (_${_PYTHON_PREFIX}_INCLUDE_DIR CACHE)
-  endif()
-  if (DEFINED ${_PYTHON_PREFIX}_INCLUDE_DIR
-      AND IS_ABSOLUTE "${${_PYTHON_PREFIX}_INCLUDE_DIR}")
-    set (_${_PYTHON_PREFIX}_INCLUDE_DIR "${${_PYTHON_PREFIX}_INCLUDE_DIR}" CACHE INTERNAL "")
-  endif()
-
-  # Support preference of static libs by adjusting CMAKE_FIND_LIBRARY_SUFFIXES
-  unset (_${_PYTHON_PREFIX}_CMAKE_FIND_LIBRARY_SUFFIXES)
-  if (DEFINED ${_PYTHON_PREFIX}_USE_STATIC_LIBS AND NOT WIN32)
-    set(_${_PYTHON_PREFIX}_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
-    if(${_PYTHON_PREFIX}_USE_STATIC_LIBS)
-      set (CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_STATIC_LIBRARY_SUFFIX})
-    else()
-      list (REMOVE_ITEM CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_STATIC_LIBRARY_SUFFIX})
-    endif()
-  endif()
-
-  if (NOT _${_PYTHON_PREFIX}_LIBRARY_RELEASE OR NOT _${_PYTHON_PREFIX}_INCLUDE_DIR)
-    # if python interpreter is found, use it to look-up for artifacts
-    # to ensure consistency between interpreter and development environments.
-    # If not, try to locate a compatible config tool
-    if (NOT ${_PYTHON_PREFIX}_Interpreter_FOUND OR CMAKE_CROSSCOMPILING)
-      set (_${_PYTHON_PREFIX}_HINTS "${${_PYTHON_PREFIX}_ROOT_DIR}" ENV ${_PYTHON_PREFIX}_ROOT_DIR)
-      unset (_${_PYTHON_PREFIX}_VIRTUALENV_PATHS)
-      if (_${_PYTHON_PREFIX}_FIND_VIRTUALENV MATCHES "^(FIRST|ONLY)$")
-        set (_${_PYTHON_PREFIX}_VIRTUALENV_PATHS ENV VIRTUAL_ENV ENV CONDA_PREFIX)
-      endif()
-      unset (_${_PYTHON_PREFIX}_FRAMEWORK_PATHS)
-
-      if (_${_PYTHON_PREFIX}_FIND_STRATEGY STREQUAL "LOCATION")
-        set (_${_PYTHON_PREFIX}_CONFIG_NAMES)
-
-        foreach (_${_PYTHON_PREFIX}_VERSION IN LISTS _${_PYTHON_PREFIX}_FIND_VERSIONS)
-          _python_get_names (_${_PYTHON_PREFIX}_VERSION_NAMES VERSION ${_${_PYTHON_PREFIX}_VERSION} POSIX CONFIG)
-          list (APPEND _${_PYTHON_PREFIX}_CONFIG_NAMES ${_${_PYTHON_PREFIX}_VERSION_NAMES})
-
-          # Framework Paths
-          _python_get_frameworks (_${_PYTHON_PREFIX}_VERSION_PATHS ${_${_PYTHON_PREFIX}_VERSION})
-          list (APPEND _${_PYTHON_PREFIX}_FRAMEWORK_PATHS ${_${_PYTHON_PREFIX}_VERSION_PATHS})
-        endforeach()
-
-        # Apple frameworks handling
-        if (CMAKE_HOST_APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "FIRST")
-          find_program (_${_PYTHON_PREFIX}_CONFIG
-                        NAMES ${_${_PYTHON_PREFIX}_CONFIG_NAMES}
-                        NAMES_PER_DIR
-                        HINTS ${_${_PYTHON_PREFIX}_HINTS}
-                        PATHS ${_${_PYTHON_PREFIX}_VIRTUALENV_PATHS}
-                              ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
-                        PATH_SUFFIXES bin
-                        NO_CMAKE_PATH
-                        NO_CMAKE_ENVIRONMENT_PATH
-                        NO_SYSTEM_ENVIRONMENT_PATH
-                        NO_CMAKE_SYSTEM_PATH)
-        endif()
-
-        find_program (_${_PYTHON_PREFIX}_CONFIG
-                      NAMES ${_${_PYTHON_PREFIX}_CONFIG_NAMES}
-                      NAMES_PER_DIR
-                      HINTS ${_${_PYTHON_PREFIX}_HINTS}
-                      PATHS ${_${_PYTHON_PREFIX}_VIRTUALENV_PATHS}
-                      PATH_SUFFIXES bin)
-
-        # Apple frameworks handling
-        if (CMAKE_HOST_APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "LAST")
-          find_program (_${_PYTHON_PREFIX}_CONFIG
-                        NAMES ${_${_PYTHON_PREFIX}_CONFIG_NAMES}
-                        NAMES_PER_DIR
-                        PATHS ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
-                        PATH_SUFFIXES bin
-                        NO_DEFAULT_PATH)
-        endif()
-
-        if (_${_PYTHON_PREFIX}_CONFIG)
-          execute_process (COMMAND "${_${_PYTHON_PREFIX}_CONFIG}" --help
-                           RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
-                           OUTPUT_VARIABLE __${_PYTHON_PREFIX}_HELP
-                           ERROR_QUIET
-                           OUTPUT_STRIP_TRAILING_WHITESPACE)
-          if (_${_PYTHON_PREFIX}_RESULT)
-            # assume config tool is not usable
-            unset (_${_PYTHON_PREFIX}_CONFIG CACHE)
-          endif()
-        endif()
-
-        if (_${_PYTHON_PREFIX}_CONFIG)
-          execute_process (COMMAND "${_${_PYTHON_PREFIX}_CONFIG}" --abiflags
-                           RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
-                           OUTPUT_VARIABLE __${_PYTHON_PREFIX}_ABIFLAGS
-                           ERROR_QUIET
-                           OUTPUT_STRIP_TRAILING_WHITESPACE)
-          if (_${_PYTHON_PREFIX}_RESULT)
-            # assume ABI is not supported
-            set (__${_PYTHON_PREFIX}_ABIFLAGS "")
-          endif()
-          if (DEFINED _${_PYTHON_PREFIX}_FIND_ABI AND NOT __${_PYTHON_PREFIX}_ABIFLAGS IN_LIST _${_PYTHON_PREFIX}_ABIFLAGS)
-            # Wrong ABI
-            unset (_${_PYTHON_PREFIX}_CONFIG CACHE)
-          endif()
-        endif()
-
-        if (_${_PYTHON_PREFIX}_CONFIG AND DEFINED CMAKE_LIBRARY_ARCHITECTURE)
-          # check that config tool match library architecture
-          execute_process (COMMAND "${_${_PYTHON_PREFIX}_CONFIG}" --configdir
-                           RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
-                           OUTPUT_VARIABLE _${_PYTHON_PREFIX}_CONFIGDIR
-                           ERROR_QUIET
-                           OUTPUT_STRIP_TRAILING_WHITESPACE)
-          if (_${_PYTHON_PREFIX}_RESULT)
-            unset (_${_PYTHON_PREFIX}_CONFIG CACHE)
-          else()
-            string(FIND "${_${_PYTHON_PREFIX}_CONFIGDIR}" "${CMAKE_LIBRARY_ARCHITECTURE}" _${_PYTHON_PREFIX}_RESULT)
-            if (_${_PYTHON_PREFIX}_RESULT EQUAL -1)
-              unset (_${_PYTHON_PREFIX}_CONFIG CACHE)
-            endif()
-          endif()
-        endif()
-      else()
-        foreach (_${_PYTHON_PREFIX}_VERSION IN LISTS _${_PYTHON_PREFIX}_FIND_VERSIONS)
-          # try to use pythonX.Y-config tool
-          _python_get_names (_${_PYTHON_PREFIX}_CONFIG_NAMES VERSION ${_${_PYTHON_PREFIX}_VERSION} POSIX CONFIG)
-
-          # Framework Paths
-          _python_get_frameworks (_${_PYTHON_PREFIX}_FRAMEWORK_PATHS ${_${_PYTHON_PREFIX}_VERSION})
-
-          # Apple frameworks handling
-          if (CMAKE_HOST_APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "FIRST")
-            find_program (_${_PYTHON_PREFIX}_CONFIG
-                          NAMES ${_${_PYTHON_PREFIX}_CONFIG_NAMES}
-                          NAMES_PER_DIR
-                          HINTS ${_${_PYTHON_PREFIX}_HINTS}
-                          PATHS ${_${_PYTHON_PREFIX}_VIRTUALENV_PATHS}
-                                ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
-                          PATH_SUFFIXES bin
-                          NO_CMAKE_PATH
-                          NO_CMAKE_ENVIRONMENT_PATH
-                          NO_SYSTEM_ENVIRONMENT_PATH
-                          NO_CMAKE_SYSTEM_PATH)
-          endif()
-
-          find_program (_${_PYTHON_PREFIX}_CONFIG
-                        NAMES ${_${_PYTHON_PREFIX}_CONFIG_NAMES}
-                        NAMES_PER_DIR
-                        HINTS ${_${_PYTHON_PREFIX}_HINTS}
-                        PATHS ${_${_PYTHON_PREFIX}_VIRTUALENV_PATHS}
-                        PATH_SUFFIXES bin)
-
-          # Apple frameworks handling
-          if (CMAKE_HOST_APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "LAST")
-            find_program (_${_PYTHON_PREFIX}_CONFIG
-                          NAMES ${_${_PYTHON_PREFIX}_CONFIG_NAMES}
-                          NAMES_PER_DIR
-                          PATHS ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
-                          PATH_SUFFIXES bin
-                          NO_DEFAULT_PATH)
-          endif()
-
-          unset (_${_PYTHON_PREFIX}_CONFIG_NAMES)
-
-          if (_${_PYTHON_PREFIX}_CONFIG)
-            execute_process (COMMAND "${_${_PYTHON_PREFIX}_CONFIG}" --help
-                             RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
-                             OUTPUT_VARIABLE __${_PYTHON_PREFIX}_HELP
-                             ERROR_QUIET
-                             OUTPUT_STRIP_TRAILING_WHITESPACE)
-            if (_${_PYTHON_PREFIX}_RESULT)
-              # assume config tool is not usable
-              unset (_${_PYTHON_PREFIX}_CONFIG CACHE)
-            endif()
-          endif()
-
-          if (NOT _${_PYTHON_PREFIX}_CONFIG)
-            continue()
-          endif()
-
-          execute_process (COMMAND "${_${_PYTHON_PREFIX}_CONFIG}" --abiflags
-                           RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
-                           OUTPUT_VARIABLE __${_PYTHON_PREFIX}_ABIFLAGS
-                           ERROR_QUIET
-                           OUTPUT_STRIP_TRAILING_WHITESPACE)
-          if (_${_PYTHON_PREFIX}_RESULT)
-            # assume ABI is not supported
-            set (__${_PYTHON_PREFIX}_ABIFLAGS "")
-          endif()
-          if (DEFINED _${_PYTHON_PREFIX}_FIND_ABI AND NOT __${_PYTHON_PREFIX}_ABIFLAGS IN_LIST _${_PYTHON_PREFIX}_ABIFLAGS)
-            # Wrong ABI
-            unset (_${_PYTHON_PREFIX}_CONFIG CACHE)
-            continue()
-          endif()
-
-          if (_${_PYTHON_PREFIX}_CONFIG AND DEFINED CMAKE_LIBRARY_ARCHITECTURE)
-            # check that config tool match library architecture
-            execute_process (COMMAND "${_${_PYTHON_PREFIX}_CONFIG}" --configdir
-                             RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
-                             OUTPUT_VARIABLE _${_PYTHON_PREFIX}_CONFIGDIR
-                             ERROR_QUIET
-                             OUTPUT_STRIP_TRAILING_WHITESPACE)
-            if (_${_PYTHON_PREFIX}_RESULT)
-              unset (_${_PYTHON_PREFIX}_CONFIG CACHE)
-              continue()
-            endif()
-            string (FIND "${_${_PYTHON_PREFIX}_CONFIGDIR}" "${CMAKE_LIBRARY_ARCHITECTURE}" _${_PYTHON_PREFIX}_RESULT)
-            if (_${_PYTHON_PREFIX}_RESULT EQUAL -1)
-              unset (_${_PYTHON_PREFIX}_CONFIG CACHE)
-              continue()
-            endif()
-          endif()
-
-          if (_${_PYTHON_PREFIX}_CONFIG)
-            break()
-          endif()
-        endforeach()
-      endif()
-    endif()
-  endif()
-
-  if (NOT _${_PYTHON_PREFIX}_LIBRARY_RELEASE)
-    if ((${_PYTHON_PREFIX}_Interpreter_FOUND AND NOT CMAKE_CROSSCOMPILING) OR _${_PYTHON_PREFIX}_CONFIG)
-      # retrieve root install directory
-      _python_get_config_var (_${_PYTHON_PREFIX}_PREFIX PREFIX)
-
-      # enforce current ABI
-      _python_get_config_var (_${_PYTHON_PREFIX}_ABIFLAGS ABIFLAGS)
-
-      set (_${_PYTHON_PREFIX}_HINTS "${_${_PYTHON_PREFIX}_PREFIX}")
-
-      # retrieve library
-      ## compute some paths and artifact names
-      if (_${_PYTHON_PREFIX}_CONFIG)
-        string (REGEX REPLACE "^.+python([0-9.]+)[a-z]*-config" "\\1" _${_PYTHON_PREFIX}_VERSION "${_${_PYTHON_PREFIX}_CONFIG}")
-      else()
-        set (_${_PYTHON_PREFIX}_VERSION "${${_PYTHON_PREFIX}_VERSION_MAJOR}.${${_PYTHON_PREFIX}_VERSION_MINOR}")
-      endif()
-      _python_get_path_suffixes (_${_PYTHON_PREFIX}_PATH_SUFFIXES VERSION ${_${_PYTHON_PREFIX}_VERSION} LIBRARY)
-      _python_get_names (_${_PYTHON_PREFIX}_LIB_NAMES VERSION ${_${_PYTHON_PREFIX}_VERSION} WIN32 POSIX LIBRARY)
-
-      _python_get_config_var (_${_PYTHON_PREFIX}_CONFIGDIR CONFIGDIR)
-      list (APPEND _${_PYTHON_PREFIX}_HINTS "${_${_PYTHON_PREFIX}_CONFIGDIR}")
-
-      list (APPEND _${_PYTHON_PREFIX}_HINTS "${${_PYTHON_PREFIX}_ROOT_DIR}" ENV ${_PYTHON_PREFIX}_ROOT_DIR)
-
-      find_library (_${_PYTHON_PREFIX}_LIBRARY_RELEASE
-                    NAMES ${_${_PYTHON_PREFIX}_LIB_NAMES}
-                    NAMES_PER_DIR
-                    HINTS ${_${_PYTHON_PREFIX}_HINTS}
-                    PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
-                    NO_SYSTEM_ENVIRONMENT_PATH
-                    NO_CMAKE_SYSTEM_PATH)
-    endif()
-
-    # Rely on HINTS and standard paths if interpreter or config tool failed to locate artifacts
-    if (NOT _${_PYTHON_PREFIX}_LIBRARY_RELEASE)
-      set (_${_PYTHON_PREFIX}_HINTS "${${_PYTHON_PREFIX}_ROOT_DIR}" ENV ${_PYTHON_PREFIX}_ROOT_DIR)
-
-      unset (_${_PYTHON_PREFIX}_VIRTUALENV_PATHS)
-      if (_${_PYTHON_PREFIX}_FIND_VIRTUALENV MATCHES "^(FIRST|ONLY)$")
-        set (_${_PYTHON_PREFIX}_VIRTUALENV_PATHS ENV VIRTUAL_ENV ENV CONDA_PREFIX)
-      endif()
-
-      if (_${_PYTHON_PREFIX}_FIND_STRATEGY STREQUAL "LOCATION")
-        unset (_${_PYTHON_PREFIX}_LIB_NAMES)
-        unset (_${_PYTHON_PREFIX}_LIB_NAMES_DEBUG)
-        unset (_${_PYTHON_PREFIX}_FRAMEWORK_PATHS)
-        unset (_${_PYTHON_PREFIX}_REGISTRY_PATHS)
-        unset (_${_PYTHON_PREFIX}_PATH_SUFFIXES)
-
-        foreach (_${_PYTHON_PREFIX}_LIB_VERSION IN LISTS _${_PYTHON_PREFIX}_FIND_VERSIONS)
-          # library names
-          _python_get_names (_${_PYTHON_PREFIX}_VERSION_NAMES VERSION ${_${_PYTHON_PREFIX}_LIB_VERSION} WIN32 POSIX LIBRARY)
-          list (APPEND _${_PYTHON_PREFIX}_LIB_NAMES ${_${_PYTHON_PREFIX}_VERSION_NAMES})
-          _python_get_names (_${_PYTHON_PREFIX}_VERSION_NAMES VERSION ${_${_PYTHON_PREFIX}_LIB_VERSION} WIN32 DEBUG)
-          list (APPEND _${_PYTHON_PREFIX}_LIB_NAMES_DEBUG ${_${_PYTHON_PREFIX}_VERSION_NAMES})
-
-          # Framework Paths
-          _python_get_frameworks (_${_PYTHON_PREFIX}_VERSION_PATHS ${_${_PYTHON_PREFIX}_LIB_VERSION})
-          list (APPEND _${_PYTHON_PREFIX}_FRAMEWORK_PATHS ${_${_PYTHON_PREFIX}_VERSION_PATHS})
-
-          # Registry Paths
-          _python_get_registries (_${_PYTHON_PREFIX}_VERSION_PATHS ${_${_PYTHON_PREFIX}_LIB_VERSION})
-          list (APPEND _${_PYTHON_PREFIX}_REGISTRY_PATHS ${_${_PYTHON_PREFIX}_VERSION_PATHS})
-
-          # Paths suffixes
-          _python_get_path_suffixes (_${_PYTHON_PREFIX}_VERSION_PATHS VERSION ${_${_PYTHON_PREFIX}_LIB_VERSION} LIBRARY)
-          list (APPEND _${_PYTHON_PREFIX}_PATH_SUFFIXES ${_${_PYTHON_PREFIX}_VERSION_PATHS})
-        endforeach()
-
-        if (APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "FIRST")
-          find_library (_${_PYTHON_PREFIX}_LIBRARY_RELEASE
-                        NAMES ${_${_PYTHON_PREFIX}_LIB_NAMES}
-                        NAMES_PER_DIR
-                        HINTS ${_${_PYTHON_PREFIX}_HINTS}
-                        PATHS ${_${_PYTHON_PREFIX}_VIRTUALENV_PATHS}
-                              ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
-                        PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
-                        NO_CMAKE_PATH
-                        NO_CMAKE_ENVIRONMENT_PATH
-                        NO_SYSTEM_ENVIRONMENT_PATH
-                        NO_CMAKE_SYSTEM_PATH)
-        endif()
-
-        if (WIN32 AND _${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "FIRST")
-          find_library (_${_PYTHON_PREFIX}_LIBRARY_RELEASE
-                        NAMES ${_${_PYTHON_PREFIX}_LIB_NAMES}
-                        NAMES_PER_DIR
-                        HINTS ${_${_PYTHON_PREFIX}_HINTS}
-                        PATHS ${_${_PYTHON_PREFIX}_VIRTUALENV_PATHS}
-                              ${_${_PYTHON_PREFIX}_REGISTRY_PATHS}
-                        PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
-                        NO_SYSTEM_ENVIRONMENT_PATH
-                        NO_CMAKE_SYSTEM_PATH)
-        endif()
-
-        # search in HINTS locations
-        find_library (_${_PYTHON_PREFIX}_LIBRARY_RELEASE
-                      NAMES ${_${_PYTHON_PREFIX}_LIB_NAMES}
-                      NAMES_PER_DIR
-                      HINTS ${_${_PYTHON_PREFIX}_HINTS}
-                      PATHS ${_${_PYTHON_PREFIX}_VIRTUALENV_PATHS}
-                      PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
-                      NO_SYSTEM_ENVIRONMENT_PATH
-                      NO_CMAKE_SYSTEM_PATH)
-
-        if (APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "LAST")
-          set (__${_PYTHON_PREFIX}_FRAMEWORK_PATHS ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS})
-        else()
-          unset (__${_PYTHON_PREFIX}_FRAMEWORK_PATHS)
-        endif()
-
-        if (WIN32 AND _${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "LAST")
-          set (__${_PYTHON_PREFIX}_REGISTRY_PATHS ${_${_PYTHON_PREFIX}_REGISTRY_PATHS})
-        else()
-          unset (__${_PYTHON_PREFIX}_REGISTRY_PATHS)
-        endif()
-
-        # search in all default paths
-        find_library (_${_PYTHON_PREFIX}_LIBRARY_RELEASE
-                      NAMES ${_${_PYTHON_PREFIX}_LIB_NAMES}
-                      NAMES_PER_DIR
-                      PATHS ${__${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
-                            ${__${_PYTHON_PREFIX}_REGISTRY_PATHS}
-                      PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES})
-      else()
-        foreach (_${_PYTHON_PREFIX}_LIB_VERSION IN LISTS _${_PYTHON_PREFIX}_FIND_VERSIONS)
-          _python_get_names (_${_PYTHON_PREFIX}_LIB_NAMES VERSION ${_${_PYTHON_PREFIX}_LIB_VERSION} WIN32 POSIX LIBRARY)
-          _python_get_names (_${_PYTHON_PREFIX}_LIB_NAMES_DEBUG VERSION ${_${_PYTHON_PREFIX}_LIB_VERSION} WIN32 DEBUG)
-
-          _python_get_frameworks (_${_PYTHON_PREFIX}_FRAMEWORK_PATHS ${_${_PYTHON_PREFIX}_LIB_VERSION})
-          _python_get_registries (_${_PYTHON_PREFIX}_REGISTRY_PATHS ${_${_PYTHON_PREFIX}_LIB_VERSION})
-
-          _python_get_path_suffixes (_${_PYTHON_PREFIX}_PATH_SUFFIXES VERSION ${_${_PYTHON_PREFIX}_LIB_VERSION} LIBRARY)
-
-          if (APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "FIRST")
-            find_library (_${_PYTHON_PREFIX}_LIBRARY_RELEASE
-                          NAMES ${_${_PYTHON_PREFIX}_LIB_NAMES}
-                          NAMES_PER_DIR
-                          HINTS ${_${_PYTHON_PREFIX}_HINTS}
-                          PATHS ${_${_PYTHON_PREFIX}_VIRTUALENV_PATHS}
-                                ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
-                          PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
-                          NO_CMAKE_PATH
-                          NO_CMAKE_ENVIRONMENT_PATH
-                          NO_SYSTEM_ENVIRONMENT_PATH
-                          NO_CMAKE_SYSTEM_PATH)
-          endif()
-
-          if (WIN32 AND _${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "FIRST")
-            find_library (_${_PYTHON_PREFIX}_LIBRARY_RELEASE
-                          NAMES ${_${_PYTHON_PREFIX}_LIB_NAMES}
-                          NAMES_PER_DIR
-                          HINTS ${_${_PYTHON_PREFIX}_HINTS}
-                          PATHS ${_${_PYTHON_PREFIX}_VIRTUALENV_PATHS}
-                                ${_${_PYTHON_PREFIX}_REGISTRY_PATHS}
-                          PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
-                          NO_SYSTEM_ENVIRONMENT_PATH
-                          NO_CMAKE_SYSTEM_PATH)
-          endif()
-
-          # search in HINTS locations
-          find_library (_${_PYTHON_PREFIX}_LIBRARY_RELEASE
-                        NAMES ${_${_PYTHON_PREFIX}_LIB_NAMES}
-                        NAMES_PER_DIR
-                        HINTS ${_${_PYTHON_PREFIX}_HINTS}
-                        PATHS ${_${_PYTHON_PREFIX}_VIRTUALENV_PATHS}
-                        PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
-                        NO_SYSTEM_ENVIRONMENT_PATH
-                        NO_CMAKE_SYSTEM_PATH)
-
-         if (APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "LAST")
-           set (__${_PYTHON_PREFIX}_FRAMEWORK_PATHS ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS})
-         else()
-           unset (__${_PYTHON_PREFIX}_FRAMEWORK_PATHS)
-         endif()
-
-         if (WIN32 AND _${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "LAST")
-           set (__${_PYTHON_PREFIX}_REGISTRY_PATHS ${_${_PYTHON_PREFIX}_REGISTRY_PATHS})
-         else()
-           unset (__${_PYTHON_PREFIX}_REGISTRY_PATHS)
-         endif()
-
-         # search in all default paths
-         find_library (_${_PYTHON_PREFIX}_LIBRARY_RELEASE
-                        NAMES ${_${_PYTHON_PREFIX}_LIB_NAMES}
-                        NAMES_PER_DIR
-                        PATHS ${__${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
-                              ${__${_PYTHON_PREFIX}_REGISTRY_PATHS}
-                        PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES})
-
-          if (_${_PYTHON_PREFIX}_LIBRARY_RELEASE)
-            break()
-          endif()
-        endforeach()
-      endif()
-    endif()
-  endif()
-
-  # finalize library version information
-  _python_get_version (LIBRARY PREFIX _${_PYTHON_PREFIX}_)
-
-  set (${_PYTHON_PREFIX}_LIBRARY_RELEASE "${_${_PYTHON_PREFIX}_LIBRARY_RELEASE}")
-
-  if (_${_PYTHON_PREFIX}_LIBRARY_RELEASE AND NOT EXISTS "${_${_PYTHON_PREFIX}_LIBRARY_RELEASE}")
-    set (_${_PYTHON_PREFIX}_Development_REASON_FAILURE "Cannot find the library \"${_${_PYTHON_PREFIX}_LIBRARY_RELEASE}\"")
-    set_property (CACHE _${_PYTHON_PREFIX}_LIBRARY_RELEASE PROPERTY VALUE "${_PYTHON_PREFIX}_LIBRARY_RELEASE-NOTFOUND")
-  endif()
-
-  set (_${_PYTHON_PREFIX}_HINTS "${${_PYTHON_PREFIX}_ROOT_DIR}" ENV ${_PYTHON_PREFIX}_ROOT_DIR)
-
-  if (WIN32 AND _${_PYTHON_PREFIX}_LIBRARY_RELEASE)
-    # search for debug library
-    # use release library location as a hint
-    _python_get_names (_${_PYTHON_PREFIX}_LIB_NAMES_DEBUG VERSION ${_${_PYTHON_PREFIX}_VERSION} WIN32 DEBUG)
-    get_filename_component (_${_PYTHON_PREFIX}_PATH "${_${_PYTHON_PREFIX}_LIBRARY_RELEASE}" DIRECTORY)
-    find_library (_${_PYTHON_PREFIX}_LIBRARY_DEBUG
-                  NAMES ${_${_PYTHON_PREFIX}_LIB_NAMES_DEBUG}
-                  NAMES_PER_DIR
-                  HINTS "${_${_PYTHON_PREFIX}_PATH}" ${_${_PYTHON_PREFIX}_HINTS}
-                  NO_DEFAULT_PATH)
-  endif()
-
-  # retrieve runtime libraries
-  if (_${_PYTHON_PREFIX}_LIBRARY_RELEASE)
-    _python_get_names (_${_PYTHON_PREFIX}_LIB_NAMES VERSION ${_${_PYTHON_PREFIX}_VERSION} WIN32 POSIX LIBRARY)
-    get_filename_component (_${_PYTHON_PREFIX}_PATH "${_${_PYTHON_PREFIX}_LIBRARY_RELEASE}" DIRECTORY)
-    get_filename_component (_${_PYTHON_PREFIX}_PATH2 "${_${_PYTHON_PREFIX}_PATH}" DIRECTORY)
-    _python_find_runtime_library (_${_PYTHON_PREFIX}_RUNTIME_LIBRARY_RELEASE
-                                  NAMES ${_${_PYTHON_PREFIX}_LIB_NAMES}
-                                  NAMES_PER_DIR
-                                  HINTS "${_${_PYTHON_PREFIX}_PATH}" "${_${_PYTHON_PREFIX}_PATH2}" ${_${_PYTHON_PREFIX}_HINTS}
-                                  PATH_SUFFIXES bin)
-  endif()
-  if (_${_PYTHON_PREFIX}_LIBRARY_DEBUG)
-    _python_get_names (_${_PYTHON_PREFIX}_LIB_NAMES_DEBUG VERSION ${_${_PYTHON_PREFIX}_VERSION} WIN32 DEBUG)
-    get_filename_component (_${_PYTHON_PREFIX}_PATH "${_${_PYTHON_PREFIX}_LIBRARY_DEBUG}" DIRECTORY)
-    get_filename_component (_${_PYTHON_PREFIX}_PATH2 "${_${_PYTHON_PREFIX}_PATH}" DIRECTORY)
-    _python_find_runtime_library (_${_PYTHON_PREFIX}_RUNTIME_LIBRARY_DEBUG
-                                  NAMES ${_${_PYTHON_PREFIX}_LIB_NAMES_DEBUG}
-                                  NAMES_PER_DIR
-                                  HINTS "${_${_PYTHON_PREFIX}_PATH}" "${_${_PYTHON_PREFIX}_PATH2}" ${_${_PYTHON_PREFIX}_HINTS}
-                                  PATH_SUFFIXES bin)
-  endif()
-
-  # Don't search for include dir if no library was founded
-  if (_${_PYTHON_PREFIX}_LIBRARY_RELEASE AND NOT _${_PYTHON_PREFIX}_INCLUDE_DIR)
-    if ((${_PYTHON_PREFIX}_Interpreter_FOUND AND NOT CMAKE_CROSSCOMPILING) OR _${_PYTHON_PREFIX}_CONFIG)
-      _python_get_config_var (_${_PYTHON_PREFIX}_INCLUDE_DIRS INCLUDES)
-
-      find_path (_${_PYTHON_PREFIX}_INCLUDE_DIR
-                 NAMES Python.h
-                 HINTS ${_${_PYTHON_PREFIX}_INCLUDE_DIRS}
-                 NO_SYSTEM_ENVIRONMENT_PATH
-                 NO_CMAKE_SYSTEM_PATH)
-    endif()
-
-    # Rely on HINTS and standard paths if interpreter or config tool failed to locate artifacts
-    if (NOT _${_PYTHON_PREFIX}_INCLUDE_DIR)
-      unset (_${_PYTHON_PREFIX}_VIRTUALENV_PATHS)
-      if (_${_PYTHON_PREFIX}_FIND_VIRTUALENV MATCHES "^(FIRST|ONLY)$")
-        set (_${_PYTHON_PREFIX}_VIRTUALENV_PATHS ENV VIRTUAL_ENV ENV CONDA_PREFIX)
-      endif()
-      unset (_${_PYTHON_PREFIX}_INCLUDE_HINTS)
-
-      # Use the library's install prefix as a hint
-      if (${_${_PYTHON_PREFIX}_LIBRARY_RELEASE} MATCHES "^(.+/Frameworks/Python.framework/Versions/[0-9.]+)")
-        list (APPEND _${_PYTHON_PREFIX}_INCLUDE_HINTS "${CMAKE_MATCH_1}")
-      elseif (${_${_PYTHON_PREFIX}_LIBRARY_RELEASE} MATCHES "^(.+)/lib(64|32)?/python[0-9.]+/config")
-        list (APPEND _${_PYTHON_PREFIX}_INCLUDE_HINTS "${CMAKE_MATCH_1}")
-      elseif (DEFINED CMAKE_LIBRARY_ARCHITECTURE AND ${_${_PYTHON_PREFIX}_LIBRARY_RELEASE} MATCHES "^(.+)/lib/${CMAKE_LIBRARY_ARCHITECTURE}")
-        list (APPEND _${_PYTHON_PREFIX}_INCLUDE_HINTS "${CMAKE_MATCH_1}")
-      else()
-        # assume library is in a directory under root
-        get_filename_component (_${_PYTHON_PREFIX}_PREFIX "${_${_PYTHON_PREFIX}_LIBRARY_RELEASE}" DIRECTORY)
-        get_filename_component (_${_PYTHON_PREFIX}_PREFIX "${_${_PYTHON_PREFIX}_PREFIX}" DIRECTORY)
-        list (APPEND _${_PYTHON_PREFIX}_INCLUDE_HINTS "${_${_PYTHON_PREFIX}_PREFIX}")
-      endif()
-
-      _python_get_frameworks (_${_PYTHON_PREFIX}_FRAMEWORK_PATHS ${_${_PYTHON_PREFIX}_VERSION})
-      _python_get_registries (_${_PYTHON_PREFIX}_REGISTRY_PATHS ${_${_PYTHON_PREFIX}_VERSION})
-      _python_get_path_suffixes (_${_PYTHON_PREFIX}_PATH_SUFFIXES VERSION ${_${_PYTHON_PREFIX}_VERSION} INCLUDE)
-
-      if (APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "FIRST")
-        find_path (_${_PYTHON_PREFIX}_INCLUDE_DIR
-                   NAMES Python.h
-                   HINTS ${_${_PYTHON_PREFIX}_INCLUDE_HINTS} ${_${_PYTHON_PREFIX}_HINTS}
-                   PATHS ${_${_PYTHON_PREFIX}_VIRTUALENV_PATHS}
-                         ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
-                   PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
-                   NO_CMAKE_PATH
-                   NO_CMAKE_ENVIRONMENT_PATH
-                   NO_SYSTEM_ENVIRONMENT_PATH
-                   NO_CMAKE_SYSTEM_PATH)
-      endif()
-
-      if (WIN32 AND _${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "FIRST")
-        find_path (_${_PYTHON_PREFIX}_INCLUDE_DIR
-                   NAMES Python.h
-                   HINTS ${_${_PYTHON_PREFIX}_INCLUDE_HINTS} ${_${_PYTHON_PREFIX}_HINTS}
-                   PATHS ${_${_PYTHON_PREFIX}_VIRTUALENV_PATHS}
-                         ${_${_PYTHON_PREFIX}_REGISTRY_PATHS}
-                   PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
-                   NO_SYSTEM_ENVIRONMENT_PATH
-                   NO_CMAKE_SYSTEM_PATH)
-      endif()
-
-      if (APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "LAST")
-        set (__${_PYTHON_PREFIX}_FRAMEWORK_PATHS ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS})
-      else()
-        unset (__${_PYTHON_PREFIX}_FRAMEWORK_PATHS)
-      endif()
-
-      if (WIN32 AND _${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "LAST")
-        set (__${_PYTHON_PREFIX}_REGISTRY_PATHS ${_${_PYTHON_PREFIX}_REGISTRY_PATHS})
-      else()
-        unset (__${_PYTHON_PREFIX}_REGISTRY_PATHS)
-      endif()
-
-      find_path (_${_PYTHON_PREFIX}_INCLUDE_DIR
-                 NAMES Python.h
-                 HINTS ${_${_PYTHON_PREFIX}_INCLUDE_HINTS} ${_${_PYTHON_PREFIX}_HINTS}
-                 PATHS ${_${_PYTHON_PREFIX}_VIRTUALENV_PATHS}
-                       ${__${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
-                       ${__${_PYTHON_PREFIX}_REGISTRY_PATHS}
-                 PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
-                 NO_SYSTEM_ENVIRONMENT_PATH
-                 NO_CMAKE_SYSTEM_PATH)
-    endif()
-
-    # search header file in standard locations
-    find_path (_${_PYTHON_PREFIX}_INCLUDE_DIR
-               NAMES Python.h)
-  endif()
-
-  set (${_PYTHON_PREFIX}_INCLUDE_DIRS "${_${_PYTHON_PREFIX}_INCLUDE_DIR}")
-
-  if (_${_PYTHON_PREFIX}_INCLUDE_DIR AND NOT EXISTS "${_${_PYTHON_PREFIX}_INCLUDE_DIR}")
-    set (_${_PYTHON_PREFIX}_Development_REASON_FAILURE "Cannot find the directory \"${_${_PYTHON_PREFIX}_INCLUDE_DIR}\"")
-    set_property (CACHE _${_PYTHON_PREFIX}_INCLUDE_DIR PROPERTY VALUE "${_PYTHON_PREFIX}_INCLUDE_DIR-NOTFOUND")
-  endif()
-
-  if (_${_PYTHON_PREFIX}_INCLUDE_DIR)
-    # retrieve version from header file
-    _python_get_version (INCLUDE PREFIX _${_PYTHON_PREFIX}_INC_)
-
-    # update versioning
-    if (_${_PYTHON_PREFIX}_INC_VERSION VERSION_EQUAL ${_${_PYTHON_PREFIX}_VERSION})
-      set (_${_PYTHON_PREFIX}_VERSION_PATCH ${_${_PYTHON_PREFIX}_INC_VERSION_PATCH})
-    endif()
-  endif()
-
-  if (NOT ${_PYTHON_PREFIX}_Interpreter_FOUND AND NOT ${_PYTHON_PREFIX}_Compiler_FOUND)
-    # set public version information
-    set (${_PYTHON_PREFIX}_VERSION ${_${_PYTHON_PREFIX}_VERSION})
-    set (${_PYTHON_PREFIX}_VERSION_MAJOR ${_${_PYTHON_PREFIX}_VERSION_MAJOR})
-    set (${_PYTHON_PREFIX}_VERSION_MINOR ${_${_PYTHON_PREFIX}_VERSION_MINOR})
-    set (${_PYTHON_PREFIX}_VERSION_PATCH ${_${_PYTHON_PREFIX}_VERSION_PATCH})
-  endif()
-
-  # define public variables
-  set (${_PYTHON_PREFIX}_LIBRARY_DEBUG "${_${_PYTHON_PREFIX}_LIBRARY_DEBUG}")
-  _python_select_library_configurations (${_PYTHON_PREFIX})
-
-  set (${_PYTHON_PREFIX}_RUNTIME_LIBRARY_RELEASE "${_${_PYTHON_PREFIX}_RUNTIME_LIBRARY_RELEASE}")
-  set (${_PYTHON_PREFIX}_RUNTIME_LIBRARY_DEBUG "${_${_PYTHON_PREFIX}_RUNTIME_LIBRARY_DEBUG}")
-
-  if (_${_PYTHON_PREFIX}_RUNTIME_LIBRARY_RELEASE)
-    set (${_PYTHON_PREFIX}_RUNTIME_LIBRARY "${_${_PYTHON_PREFIX}_RUNTIME_LIBRARY_RELEASE}")
-  elseif (_${_PYTHON_PREFIX}_RUNTIME_LIBRARY_DEBUG)
-    set (${_PYTHON_PREFIX}_RUNTIME_LIBRARY "${_${_PYTHON_PREFIX}_RUNTIME_LIBRARY_DEBUG}")
-  else()
-    set (${_PYTHON_PREFIX}_RUNTIME_LIBRARY "${_PYTHON_PREFIX}_RUNTIME_LIBRARY-NOTFOUND")
-  endif()
-
-  _python_set_library_dirs (${_PYTHON_PREFIX}_LIBRARY_DIRS
-                            _${_PYTHON_PREFIX}_LIBRARY_RELEASE _${_PYTHON_PREFIX}_LIBRARY_DEBUG)
-  if (UNIX)
-    if (_${_PYTHON_PREFIX}_LIBRARY_RELEASE MATCHES "${CMAKE_SHARED_LIBRARY_SUFFIX}$")
-      set (${_PYTHON_PREFIX}_RUNTIME_LIBRARY_DIRS ${${_PYTHON_PREFIX}_LIBRARY_DIRS})
-    endif()
-  else()
-      _python_set_library_dirs (${_PYTHON_PREFIX}_RUNTIME_LIBRARY_DIRS
-                                _${_PYTHON_PREFIX}_RUNTIME_LIBRARY_RELEASE _${_PYTHON_PREFIX}_RUNTIME_LIBRARY_DEBUG)
-  endif()
-
-  if (_${_PYTHON_PREFIX}_LIBRARY_RELEASE AND _${_PYTHON_PREFIX}_INCLUDE_DIR)
-    if (${_PYTHON_PREFIX}_Interpreter_FOUND OR ${_PYTHON_PREFIX}_Compiler_FOUND)
-      # development environment must be compatible with interpreter/compiler
-      if (${_${_PYTHON_PREFIX}_VERSION_MAJOR}.${_${_PYTHON_PREFIX}_VERSION_MINOR} VERSION_EQUAL ${${_PYTHON_PREFIX}_VERSION_MAJOR}.${${_PYTHON_PREFIX}_VERSION_MINOR}
-          AND ${_${_PYTHON_PREFIX}_INC_VERSION_MAJOR}.${_${_PYTHON_PREFIX}_INC_VERSION_MINOR} VERSION_EQUAL ${_${_PYTHON_PREFIX}_VERSION_MAJOR}.${_${_PYTHON_PREFIX}_VERSION_MINOR})
-        set (${_PYTHON_PREFIX}_Development_FOUND TRUE)
-      endif()
-    elseif (${_PYTHON_PREFIX}_VERSION_MAJOR VERSION_EQUAL _${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR
-            AND ${_${_PYTHON_PREFIX}_INC_VERSION_MAJOR}.${_${_PYTHON_PREFIX}_INC_VERSION_MINOR} VERSION_EQUAL ${_${_PYTHON_PREFIX}_VERSION_MAJOR}.${_${_PYTHON_PREFIX}_VERSION_MINOR})
-      set (${_PYTHON_PREFIX}_Development_FOUND TRUE)
-    endif()
-    if (DEFINED _${_PYTHON_PREFIX}_FIND_ABI AND
-        (NOT _${_PYTHON_PREFIX}_ABI IN_LIST _${_PYTHON_PREFIX}_ABIFLAGS
-          OR NOT _${_PYTHON_PREFIX}_INC_ABI IN_LIST _${_PYTHON_PREFIX}_ABIFLAGS))
-      set (${_PYTHON_PREFIX}_Development_FOUND FALSE)
-    endif()
-  endif()
-
-  if (_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR VERSION_GREATER_EQUAL 3
-      AND NOT DEFINED ${_PYTHON_PREFIX}_SOABI)
-    _python_get_config_var (${_PYTHON_PREFIX}_SOABI SOABI)
-  endif()
-
-  if (${_PYTHON_PREFIX}_Development_FOUND)
-    # compute and save development signature
-    string (MD5 __${_PYTHON_PREFIX}_DEVELOPMENT_SIGNATURE "${_${_PYTHON_PREFIX}_SIGNATURE}:${_${_PYTHON_PREFIX}_LIBRARY_RELEASE}:${_${_PYTHON_PREFIX}_INCLUDE_DIR}")
-    set (_${_PYTHON_PREFIX}_DEVELOPMENT_SIGNATURE "${__${_PYTHON_PREFIX}_DEVELOPMENT_SIGNATURE}" CACHE INTERNAL "")
-  else()
-    unset (_${_PYTHON_PREFIX}_DEVELOPMENT_SIGNATURE CACHE)
-  endif()
-
-  # Restore the original find library ordering
-  if (DEFINED _${_PYTHON_PREFIX}_CMAKE_FIND_LIBRARY_SUFFIXES)
-    set (CMAKE_FIND_LIBRARY_SUFFIXES ${_${_PYTHON_PREFIX}_CMAKE_FIND_LIBRARY_SUFFIXES})
-  endif()
-
-  _python_mark_as_internal (_${_PYTHON_PREFIX}_LIBRARY_RELEASE
-                            _${_PYTHON_PREFIX}_LIBRARY_DEBUG
-                            _${_PYTHON_PREFIX}_RUNTIME_LIBRARY_RELEASE
-                            _${_PYTHON_PREFIX}_RUNTIME_LIBRARY_DEBUG
-                            _${_PYTHON_PREFIX}_INCLUDE_DIR
-                            _${_PYTHON_PREFIX}_CONFIG
-                            _${_PYTHON_PREFIX}_DEVELOPMENT_SIGNATURE)
-endif()
-
-if ("NumPy" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS AND ${_PYTHON_PREFIX}_Interpreter_FOUND)
-  list (APPEND _${_PYTHON_PREFIX}_CACHED_VARS _${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR)
-  if (${_PYTHON_PREFIX}_FIND_REQUIRED_NumPy)
-    list (APPEND _${_PYTHON_PREFIX}_REQUIRED_VARS ${_PYTHON_PREFIX}_NumPy_INCLUDE_DIRS)
-  endif()
-
-  if (DEFINED ${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR
-      AND IS_ABSOLUTE "${${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR}")
-    set (_${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR "${${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR}" CACHE INTERNAL "")
-  elseif (DEFINED _${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR)
-    # compute numpy signature. Depends on interpreter and development signatures
-    string (MD5 __${_PYTHON_PREFIX}_NUMPY_SIGNATURE "${_${_PYTHON_PREFIX}_INTERPRETER_SIGNATURE}:${_${_PYTHON_PREFIX}_DEVELOPMENT_SIGNATURE}:${_${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR}")
-    if (NOT __${_PYTHON_PREFIX}_NUMPY_SIGNATURE STREQUAL _${_PYTHON_PREFIX}_NUMPY_SIGNATURE
-        OR NOT EXISTS "${_${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR}")
-      unset (_${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR CACHE)
-      unset (_${_PYTHON_PREFIX}_NUMPY_SIGNATURE CACHE)
-    endif()
-  endif()
-
-  if (NOT _${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR)
-    execute_process(
-      COMMAND "${${_PYTHON_PREFIX}_EXECUTABLE}" -c
-              "from __future__ import print_function\ntry: import numpy; print(numpy.get_include(), end='')\nexcept:pass\n"
-      RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
-      OUTPUT_VARIABLE _${_PYTHON_PREFIX}_NumPy_PATH
-      ERROR_QUIET
-      OUTPUT_STRIP_TRAILING_WHITESPACE)
-
-    if (NOT _${_PYTHON_PREFIX}_RESULT)
-      find_path (_${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR
-                 NAMES "numpy/arrayobject.h" "numpy/numpyconfig.h"
-                 HINTS "${_${_PYTHON_PREFIX}_NumPy_PATH}"
-                 NO_DEFAULT_PATH)
-    endif()
-  endif()
-
-  set (${_PYTHON_PREFIX}_NumPy_INCLUDE_DIRS "${_${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR}")
-
-  if(_${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR AND NOT EXISTS "${_${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR}")
-    set (_${_PYTHON_PREFIX}_NumPy_REASON_FAILURE "Cannot find the directory \"${_${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR}\"")
-    set_property (CACHE _${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR PROPERTY VALUE "${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR-NOTFOUND")
-  endif()
-
-  if (_${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR)
-    execute_process (
-            COMMAND "${${_PYTHON_PREFIX}_EXECUTABLE}" -c
-            "from __future__ import print_function\ntry: import numpy; print(numpy.__version__, end='')\nexcept:pass\n"
-            RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
-            OUTPUT_VARIABLE _${_PYTHON_PREFIX}_NumPy_VERSION)
-    if (NOT _${_PYTHON_PREFIX}_RESULT)
-      set (${_PYTHON_PREFIX}_NumPy_VERSION "${_${_PYTHON_PREFIX}_NumPy_VERSION}")
-    else()
-      unset (${_PYTHON_PREFIX}_NumPy_VERSION)
-    endif()
-
-    # final step: set NumPy founded only if Development component is founded as well
-    set(${_PYTHON_PREFIX}_NumPy_FOUND ${${_PYTHON_PREFIX}_Development_FOUND})
-  else()
-    set (${_PYTHON_PREFIX}_NumPy_FOUND FALSE)
-  endif()
-
-  if (${_PYTHON_PREFIX}_NumPy_FOUND)
-    # compute and save numpy signature
-    string (MD5 __${_PYTHON_PREFIX}_NUMPY_SIGNATURE "${_${_PYTHON_PREFIX}_INTERPRETER_SIGNATURE}:${_${_PYTHON_PREFIX}_DEVELOPMENT_SIGNATURE}:${${_PYTHON_PREFIX}_NumPyINCLUDE_DIR}")
-    set (_${_PYTHON_PREFIX}_NUMPY_SIGNATURE "${__${_PYTHON_PREFIX}_NUMPY_SIGNATURE}" CACHE INTERNAL "")
-  else()
-    unset (_${_PYTHON_PREFIX}_NUMPY_SIGNATURE CACHE)
-  endif()
-
-  _python_mark_as_internal (_${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR
-                            _${_PYTHON_PREFIX}_NUMPY_SIGNATURE)
-endif()
-
-# final validation
-if (${_PYTHON_PREFIX}_VERSION_MAJOR AND
-    NOT ${_PYTHON_PREFIX}_VERSION_MAJOR VERSION_EQUAL _${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR)
-  _python_display_failure ("Could NOT find ${_PYTHON_PREFIX}: Found unsuitable major version \"${${_PYTHON_PREFIX}_VERSION_MAJOR}\", but required major version is exact version \"${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR}\"")
-endif()
-
-unset (_${_PYTHON_PREFIX}_REASON_FAILURE)
-foreach (_${_PYTHON_PREFIX}_COMPONENT IN ITEMS Interpreter Compiler Development NumPy)
-  if (_${_PYTHON_PREFIX}_${_${_PYTHON_PREFIX}_COMPONENT}_REASON_FAILURE)
-    string (APPEND _${_PYTHON_PREFIX}_REASON_FAILURE "\n        ${_${_PYTHON_PREFIX}_COMPONENT}: ${_${_PYTHON_PREFIX}_${_${_PYTHON_PREFIX}_COMPONENT}_REASON_FAILURE}")
-  endif()
-endforeach()
-
-include (${CMAKE_CURRENT_LIST_DIR}/../FindPackageHandleStandardArgs.cmake)
-find_package_handle_standard_args (${_PYTHON_PREFIX}
-                                   REQUIRED_VARS ${_${_PYTHON_PREFIX}_REQUIRED_VARS}
-                                   VERSION_VAR ${_PYTHON_PREFIX}_VERSION
-                                   HANDLE_COMPONENTS
-                                   REASON_FAILURE_MESSAGE "${_${_PYTHON_PREFIX}_REASON_FAILURE}")
-
-# Create imported targets and helper functions
-if(_${_PYTHON_PREFIX}_CMAKE_ROLE STREQUAL "PROJECT")
-  if ("Interpreter" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS
-      AND ${_PYTHON_PREFIX}_Interpreter_FOUND
-      AND NOT TARGET ${_PYTHON_PREFIX}::Interpreter)
-    add_executable (${_PYTHON_PREFIX}::Interpreter IMPORTED)
-    set_property (TARGET ${_PYTHON_PREFIX}::Interpreter
-                  PROPERTY IMPORTED_LOCATION "${${_PYTHON_PREFIX}_EXECUTABLE}")
-  endif()
-
-  if ("Compiler" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS
-      AND ${_PYTHON_PREFIX}_Compiler_FOUND
-      AND NOT TARGET ${_PYTHON_PREFIX}::Compiler)
-    add_executable (${_PYTHON_PREFIX}::Compiler IMPORTED)
-    set_property (TARGET ${_PYTHON_PREFIX}::Compiler
-                  PROPERTY IMPORTED_LOCATION "${${_PYTHON_PREFIX}_COMPILER}")
-  endif()
-
-  if ("Development" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS
-      AND ${_PYTHON_PREFIX}_Development_FOUND)
-
-    macro (__PYTHON_IMPORT_LIBRARY __name)
-      if (${_PYTHON_PREFIX}_LIBRARY_RELEASE MATCHES "${CMAKE_SHARED_LIBRARY_SUFFIX}$"
-          OR ${_PYTHON_PREFIX}_RUNTIME_LIBRARY_RELEASE)
-        set (_${_PYTHON_PREFIX}_LIBRARY_TYPE SHARED)
-      else()
-        set (_${_PYTHON_PREFIX}_LIBRARY_TYPE STATIC)
-      endif()
-
-      if (NOT TARGET ${__name})
-        add_library (${__name} ${_${_PYTHON_PREFIX}_LIBRARY_TYPE} IMPORTED)
-      endif()
-
-      set_property (TARGET ${__name}
-                    PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${${_PYTHON_PREFIX}_INCLUDE_DIRS}")
-
-      if (${_PYTHON_PREFIX}_LIBRARY_RELEASE AND ${_PYTHON_PREFIX}_RUNTIME_LIBRARY_RELEASE)
-        # System manage shared libraries in two parts: import and runtime
-        if (${_PYTHON_PREFIX}_LIBRARY_RELEASE AND ${_PYTHON_PREFIX}_LIBRARY_DEBUG)
-          set_property (TARGET ${__name} PROPERTY IMPORTED_CONFIGURATIONS RELEASE DEBUG)
-          set_target_properties (${__name}
-                                 PROPERTIES IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C"
-                                            IMPORTED_IMPLIB_RELEASE "${${_PYTHON_PREFIX}_LIBRARY_RELEASE}"
-                                            IMPORTED_LOCATION_RELEASE "${${_PYTHON_PREFIX}_RUNTIME_LIBRARY_RELEASE}")
-          set_target_properties (${__name}
-                                 PROPERTIES IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "C"
-                                            IMPORTED_IMPLIB_DEBUG "${${_PYTHON_PREFIX}_LIBRARY_DEBUG}"
-                                            IMPORTED_LOCATION_DEBUG "${${_PYTHON_PREFIX}_RUNTIME_LIBRARY_DEBUG}")
-        else()
-          set_target_properties (${__name}
-                                 PROPERTIES IMPORTED_LINK_INTERFACE_LANGUAGES "C"
-                                            IMPORTED_IMPLIB "${${_PYTHON_PREFIX}_LIBRARY}"
-                                            IMPORTED_LOCATION "${${_PYTHON_PREFIX}_RUNTIME_LIBRARY}")
-        endif()
-      else()
-        if (${_PYTHON_PREFIX}_LIBRARY_RELEASE AND ${_PYTHON_PREFIX}_LIBRARY_DEBUG)
-          set_property (TARGET ${__name} PROPERTY IMPORTED_CONFIGURATIONS RELEASE DEBUG)
-          set_target_properties (${__name}
-                                 PROPERTIES IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C"
-                                            IMPORTED_LOCATION_RELEASE "${${_PYTHON_PREFIX}_LIBRARY_RELEASE}")
-          set_target_properties (${__name}
-                                 PROPERTIES IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "C"
-                                            IMPORTED_LOCATION_DEBUG "${${_PYTHON_PREFIX}_LIBRARY_DEBUG}")
-        else()
-          set_target_properties (${__name}
-                                 PROPERTIES IMPORTED_LINK_INTERFACE_LANGUAGES "C"
-                                            IMPORTED_LOCATION "${${_PYTHON_PREFIX}_LIBRARY}")
-        endif()
-      endif()
-
-      if (_${_PYTHON_PREFIX}_LIBRARY_TYPE STREQUAL "STATIC")
-        # extend link information with dependent libraries
-        _python_get_config_var (_${_PYTHON_PREFIX}_LINK_LIBRARIES LIBS)
-        if (_${_PYTHON_PREFIX}_LINK_LIBRARIES)
-          set_property (TARGET ${__name}
-                        PROPERTY INTERFACE_LINK_LIBRARIES ${_${_PYTHON_PREFIX}_LINK_LIBRARIES})
-        endif()
-      endif()
-    endmacro()
-
-    __python_import_library (${_PYTHON_PREFIX}::Python)
-
-    if (CMAKE_SYSTEM_NAME MATCHES "^(Windows.*|CYGWIN|MSYS)$")
-      # On Windows/CYGWIN/MSYS, Python::Module is the same as Python::Python
-      # but ALIAS cannot be used because the imported library is not GLOBAL.
-      __python_import_library (${_PYTHON_PREFIX}::Module)
-    else()
-      if (NOT TARGET ${_PYTHON_PREFIX}::Module )
-        add_library (${_PYTHON_PREFIX}::Module INTERFACE IMPORTED)
-      endif()
-      set_property (TARGET ${_PYTHON_PREFIX}::Module
-                    PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${${_PYTHON_PREFIX}_INCLUDE_DIRS}")
-
-      # When available, enforce shared library generation with undefined symbols
-      if (APPLE)
-        set_property (TARGET ${_PYTHON_PREFIX}::Module
-                      PROPERTY INTERFACE_LINK_OPTIONS "LINKER:-undefined,dynamic_lookup")
-      endif()
-      if (CMAKE_SYSTEM_NAME STREQUAL "SunOS")
-        set_property (TARGET ${_PYTHON_PREFIX}::Module
-                      PROPERTY INTERFACE_LINK_OPTIONS "LINKER:-z,nodefs")
-      endif()
-      if (CMAKE_SYSTEM_NAME STREQUAL "AIX")
-        set_property (TARGET ${_PYTHON_PREFIX}::Module
-                      PROPERTY INTERFACE_LINK_OPTIONS "LINKER:-b,erok")
-      endif()
-    endif()
-
-    #
-    # PYTHON_ADD_LIBRARY (<name> [STATIC|SHARED|MODULE] src1 src2 ... srcN)
-    # It is used to build modules for python.
-    #
-    function (__${_PYTHON_PREFIX}_ADD_LIBRARY prefix name)
-      cmake_parse_arguments (PARSE_ARGV 2 PYTHON_ADD_LIBRARY
-        "STATIC;SHARED;MODULE;WITH_SOABI" "" "")
-
-      if (prefix STREQUAL "Python2" AND PYTHON_ADD_LIBRARY_WITH_SOABI)
-        message (AUTHOR_WARNING "FindPython2: Option `WITH_SOABI` is not supported for Python2 and will be ignored.")
-        unset (PYTHON_ADD_LIBRARY_WITH_SOABI)
-      endif()
-
-      if (PYTHON_ADD_LIBRARY_STATIC)
-        set (type STATIC)
-      elseif (PYTHON_ADD_LIBRARY_SHARED)
-        set (type SHARED)
-      else()
-        set (type MODULE)
-      endif()
-      add_library (${name} ${type} ${PYTHON_ADD_LIBRARY_UNPARSED_ARGUMENTS})
-
-      get_property (type TARGET ${name} PROPERTY TYPE)
-
-      if (type STREQUAL "MODULE_LIBRARY")
-        target_link_libraries (${name} PRIVATE ${prefix}::Module)
-        # customize library name to follow module name rules
-        set_property (TARGET ${name} PROPERTY PREFIX "")
-        if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
-          set_property (TARGET ${name} PROPERTY SUFFIX ".pyd")
-        endif()
-
-        if (PYTHON_ADD_LIBRARY_WITH_SOABI AND ${prefix}_SOABI)
-          get_property (suffix TARGET ${name} PROPERTY SUFFIX)
-          if (NOT suffix)
-            set (suffix "${CMAKE_SHARED_MODULE_SUFFIX}")
-          endif()
-          set_property (TARGET ${name} PROPERTY SUFFIX ".${${prefix}_SOABI}${suffix}")
-        endif()
-      else()
-        if (PYTHON_ADD_LIBRARY_WITH_SOABI)
-          message (AUTHOR_WARNING "Find${prefix}: Option `WITH_SOABI` is only supported for `MODULE` library type.")
-        endif()
-        target_link_libraries (${name} PRIVATE ${prefix}::Python)
-      endif()
-    endfunction()
-  endif()
-
-  if ("NumPy" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS AND ${_PYTHON_PREFIX}_NumPy_FOUND
-      AND NOT TARGET ${_PYTHON_PREFIX}::NumPy AND TARGET ${_PYTHON_PREFIX}::Module)
-    add_library (${_PYTHON_PREFIX}::NumPy INTERFACE IMPORTED)
-    set_property (TARGET ${_PYTHON_PREFIX}::NumPy
-                  PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${${_PYTHON_PREFIX}_NumPy_INCLUDE_DIRS}")
-    target_link_libraries (${_PYTHON_PREFIX}::NumPy INTERFACE ${_PYTHON_PREFIX}::Module)
-  endif()
-endif()
-
-# final clean-up
-
-# Restore CMAKE_FIND_APPBUNDLE
-if (DEFINED _${_PYTHON_PREFIX}_CMAKE_FIND_APPBUNDLE)
-  set (CMAKE_FIND_APPBUNDLE ${_${_PYTHON_PREFIX}_CMAKE_FIND_APPBUNDLE})
-  unset (_${_PYTHON_PREFIX}_CMAKE_FIND_APPBUNDLE)
-else()
-  unset (CMAKE_FIND_APPBUNDLE)
-endif()
-# Restore CMAKE_FIND_FRAMEWORK
-if (DEFINED _${_PYTHON_PREFIX}_CMAKE_FIND_FRAMEWORK)
-  set (CMAKE_FIND_FRAMEWORK ${_${_PYTHON_PREFIX}_CMAKE_FIND_FRAMEWORK})
-  unset (_${_PYTHON_PREFIX}_CMAKE_FIND_FRAMEWORK)
-else()
-  unset (CMAKE_FIND_FRAMEWORK)
-endif()
diff --git a/share/cmake-3.17/Modules/FindRuby.cmake b/share/cmake-3.17/Modules/FindRuby.cmake
deleted file mode 100644
index 7e01fbc..0000000
--- a/share/cmake-3.17/Modules/FindRuby.cmake
+++ /dev/null
@@ -1,295 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-FindRuby
---------
-
-Find Ruby
-
-This module finds if Ruby is installed and determines where the
-include files and libraries are.  Ruby 1.8, 1.9, 2.0 and 2.1 are
-supported.
-
-The minimum required version of Ruby can be specified using the
-standard syntax, e.g.  find_package(Ruby 1.8)
-
-It also determines what the name of the library is.  This code sets
-the following variables:
-
-``RUBY_EXECUTABLE``
-  full path to the ruby binary
-``RUBY_INCLUDE_DIRS``
-  include dirs to be used when using the ruby library
-``RUBY_LIBRARY``
-  full path to the ruby library
-``RUBY_VERSION``
-  the version of ruby which was found, e.g. "1.8.7"
-``RUBY_FOUND``
-  set to true if ruby ws found successfully
-
-Also:
-
-``RUBY_INCLUDE_PATH``
-  same as RUBY_INCLUDE_DIRS, only provided for compatibility reasons, don't use it
-#]=======================================================================]
-
-#   RUBY_ARCHDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"archdir"@:>@)'`
-#   RUBY_SITEARCHDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"sitearchdir"@:>@)'`
-#   RUBY_SITEDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"sitelibdir"@:>@)'`
-#   RUBY_LIBDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"libdir"@:>@)'`
-#   RUBY_LIBRUBYARG=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"LIBRUBYARG_SHARED"@:>@)'`
-
-# uncomment the following line to get debug output for this file
-# set(_RUBY_DEBUG_OUTPUT TRUE)
-
-# Determine the list of possible names of the ruby executable depending
-# on which version of ruby is required
-set(_RUBY_POSSIBLE_EXECUTABLE_NAMES ruby)
-
-# if 1.9 is required, don't look for ruby18 and ruby1.8, default to version 1.8
-if(DEFINED Ruby_FIND_VERSION_MAJOR AND DEFINED Ruby_FIND_VERSION_MINOR)
-  set(Ruby_FIND_VERSION_SHORT_NODOT "${Ruby_FIND_VERSION_MAJOR}${RUBY_FIND_VERSION_MINOR}")
-  # we can't construct that if only major version is given
-  set(_RUBY_POSSIBLE_EXECUTABLE_NAMES
-    ruby${Ruby_FIND_VERSION_MAJOR}.${Ruby_FIND_VERSION_MINOR}
-    ruby${Ruby_FIND_VERSION_MAJOR}${Ruby_FIND_VERSION_MINOR}
-    ${_RUBY_POSSIBLE_EXECUTABLE_NAMES})
-else()
-  set(Ruby_FIND_VERSION_SHORT_NODOT "18")
-endif()
-
-if(NOT Ruby_FIND_VERSION_EXACT)
-  list(APPEND _RUBY_POSSIBLE_EXECUTABLE_NAMES ruby2.4 ruby24)
-  list(APPEND _RUBY_POSSIBLE_EXECUTABLE_NAMES ruby2.3 ruby23)
-  list(APPEND _RUBY_POSSIBLE_EXECUTABLE_NAMES ruby2.2 ruby22)
-  list(APPEND _RUBY_POSSIBLE_EXECUTABLE_NAMES ruby2.1 ruby21)
-  list(APPEND _RUBY_POSSIBLE_EXECUTABLE_NAMES ruby2.0 ruby20)
-  list(APPEND _RUBY_POSSIBLE_EXECUTABLE_NAMES ruby1.9 ruby19)
-
-  # if we want a version below 1.9, also look for ruby 1.8
-  if("${Ruby_FIND_VERSION_SHORT_NODOT}" VERSION_LESS "19")
-    list(APPEND _RUBY_POSSIBLE_EXECUTABLE_NAMES ruby1.8 ruby18)
-  endif()
-
-  list(REMOVE_DUPLICATES _RUBY_POSSIBLE_EXECUTABLE_NAMES)
-endif()
-
-find_program(RUBY_EXECUTABLE NAMES ${_RUBY_POSSIBLE_EXECUTABLE_NAMES})
-
-if(RUBY_EXECUTABLE  AND NOT  RUBY_VERSION_MAJOR)
-  function(_RUBY_CONFIG_VAR RBVAR OUTVAR)
-    execute_process(COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print RbConfig::CONFIG['${RBVAR}']"
-      RESULT_VARIABLE _RUBY_SUCCESS
-      OUTPUT_VARIABLE _RUBY_OUTPUT
-      ERROR_QUIET)
-    if(_RUBY_SUCCESS OR _RUBY_OUTPUT STREQUAL "")
-      execute_process(COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print Config::CONFIG['${RBVAR}']"
-        RESULT_VARIABLE _RUBY_SUCCESS
-        OUTPUT_VARIABLE _RUBY_OUTPUT
-        ERROR_QUIET)
-    endif()
-    set(${OUTVAR} "${_RUBY_OUTPUT}" PARENT_SCOPE)
-  endfunction()
-
-
-  # query the ruby version
-  _RUBY_CONFIG_VAR("MAJOR" RUBY_VERSION_MAJOR)
-  _RUBY_CONFIG_VAR("MINOR" RUBY_VERSION_MINOR)
-  _RUBY_CONFIG_VAR("TEENY" RUBY_VERSION_PATCH)
-
-  # query the different directories
-  _RUBY_CONFIG_VAR("archdir" RUBY_ARCH_DIR)
-  _RUBY_CONFIG_VAR("arch" RUBY_ARCH)
-  _RUBY_CONFIG_VAR("rubyhdrdir" RUBY_HDR_DIR)
-  _RUBY_CONFIG_VAR("rubyarchhdrdir" RUBY_ARCHHDR_DIR)
-  _RUBY_CONFIG_VAR("libdir" RUBY_POSSIBLE_LIB_DIR)
-  _RUBY_CONFIG_VAR("rubylibdir" RUBY_RUBY_LIB_DIR)
-
-  # site_ruby
-  _RUBY_CONFIG_VAR("sitearchdir" RUBY_SITEARCH_DIR)
-  _RUBY_CONFIG_VAR("sitelibdir" RUBY_SITELIB_DIR)
-
-  # vendor_ruby available ?
-  execute_process(COMMAND ${RUBY_EXECUTABLE} -r vendor-specific -e "print 'true'"
-    OUTPUT_VARIABLE RUBY_HAS_VENDOR_RUBY  ERROR_QUIET)
-
-  if(RUBY_HAS_VENDOR_RUBY)
-    _RUBY_CONFIG_VAR("vendorlibdir" RUBY_VENDORLIB_DIR)
-    _RUBY_CONFIG_VAR("vendorarchdir" RUBY_VENDORARCH_DIR)
-  endif()
-
-  # save the results in the cache so we don't have to run ruby the next time again
-  set(RUBY_VERSION_MAJOR    ${RUBY_VERSION_MAJOR}    CACHE PATH "The Ruby major version" FORCE)
-  set(RUBY_VERSION_MINOR    ${RUBY_VERSION_MINOR}    CACHE PATH "The Ruby minor version" FORCE)
-  set(RUBY_VERSION_PATCH    ${RUBY_VERSION_PATCH}    CACHE PATH "The Ruby patch version" FORCE)
-  set(RUBY_ARCH_DIR         ${RUBY_ARCH_DIR}         CACHE PATH "The Ruby arch dir" FORCE)
-  set(RUBY_HDR_DIR          ${RUBY_HDR_DIR}          CACHE PATH "The Ruby header dir (1.9+)" FORCE)
-  set(RUBY_ARCHHDR_DIR      ${RUBY_ARCHHDR_DIR}      CACHE PATH "The Ruby arch header dir (2.0+)" FORCE)
-  set(RUBY_POSSIBLE_LIB_DIR ${RUBY_POSSIBLE_LIB_DIR} CACHE PATH "The Ruby lib dir" FORCE)
-  set(RUBY_RUBY_LIB_DIR     ${RUBY_RUBY_LIB_DIR}     CACHE PATH "The Ruby ruby-lib dir" FORCE)
-  set(RUBY_SITEARCH_DIR     ${RUBY_SITEARCH_DIR}     CACHE PATH "The Ruby site arch dir" FORCE)
-  set(RUBY_SITELIB_DIR      ${RUBY_SITELIB_DIR}      CACHE PATH "The Ruby site lib dir" FORCE)
-  set(RUBY_HAS_VENDOR_RUBY  ${RUBY_HAS_VENDOR_RUBY}  CACHE BOOL "Vendor Ruby is available" FORCE)
-  set(RUBY_VENDORARCH_DIR   ${RUBY_VENDORARCH_DIR}   CACHE PATH "The Ruby vendor arch dir" FORCE)
-  set(RUBY_VENDORLIB_DIR    ${RUBY_VENDORLIB_DIR}    CACHE PATH "The Ruby vendor lib dir" FORCE)
-
-  mark_as_advanced(
-    RUBY_ARCH_DIR
-    RUBY_ARCH
-    RUBY_HDR_DIR
-    RUBY_ARCHHDR_DIR
-    RUBY_POSSIBLE_LIB_DIR
-    RUBY_RUBY_LIB_DIR
-    RUBY_SITEARCH_DIR
-    RUBY_SITELIB_DIR
-    RUBY_HAS_VENDOR_RUBY
-    RUBY_VENDORARCH_DIR
-    RUBY_VENDORLIB_DIR
-    RUBY_VERSION_MAJOR
-    RUBY_VERSION_MINOR
-    RUBY_VERSION_PATCH
-    )
-endif()
-
-# In case RUBY_EXECUTABLE could not be executed (e.g. cross compiling)
-# try to detect which version we found. This is not too good.
-if(RUBY_EXECUTABLE AND NOT RUBY_VERSION_MAJOR)
-  # by default assume 1.8.0
-  set(RUBY_VERSION_MAJOR 1)
-  set(RUBY_VERSION_MINOR 8)
-  set(RUBY_VERSION_PATCH 0)
-  # check whether we found 1.9.x
-  if(${RUBY_EXECUTABLE} MATCHES "ruby1\\.?9")
-    set(RUBY_VERSION_MAJOR 1)
-    set(RUBY_VERSION_MINOR 9)
-  endif()
-  # check whether we found 2.0.x
-  if(${RUBY_EXECUTABLE} MATCHES "ruby2\\.?0")
-    set(RUBY_VERSION_MAJOR 2)
-    set(RUBY_VERSION_MINOR 0)
-  endif()
-  # check whether we found 2.1.x
-  if(${RUBY_EXECUTABLE} MATCHES "ruby2\\.?1")
-    set(RUBY_VERSION_MAJOR 2)
-    set(RUBY_VERSION_MINOR 1)
-  endif()
-  # check whether we found 2.2.x
-  if(${RUBY_EXECUTABLE} MATCHES "ruby2\\.?2")
-    set(RUBY_VERSION_MAJOR 2)
-    set(RUBY_VERSION_MINOR 2)
-  endif()
-  # check whether we found 2.3.x
-  if(${RUBY_EXECUTABLE} MATCHES "ruby2\\.?3")
-    set(RUBY_VERSION_MAJOR 2)
-    set(RUBY_VERSION_MINOR 3)
-  endif()
-  # check whether we found 2.4.x
-  if(${RUBY_EXECUTABLE} MATCHES "ruby2\\.?4")
-    set(RUBY_VERSION_MAJOR 2)
-    set(RUBY_VERSION_MINOR 4)
-  endif()
-endif()
-
-if(RUBY_VERSION_MAJOR)
-  set(RUBY_VERSION "${RUBY_VERSION_MAJOR}.${RUBY_VERSION_MINOR}.${RUBY_VERSION_PATCH}")
-  set(_RUBY_VERSION_SHORT "${RUBY_VERSION_MAJOR}.${RUBY_VERSION_MINOR}")
-  set(_RUBY_VERSION_SHORT_NODOT "${RUBY_VERSION_MAJOR}${RUBY_VERSION_MINOR}")
-  set(_RUBY_NODOT_VERSION "${RUBY_VERSION_MAJOR}${RUBY_VERSION_MINOR}${RUBY_VERSION_PATCH}")
-endif()
-
-find_path(RUBY_INCLUDE_DIR
-  NAMES ruby.h
-  HINTS
-    ${RUBY_HDR_DIR}
-    ${RUBY_ARCH_DIR}
-    /usr/lib/ruby/${_RUBY_VERSION_SHORT}/i586-linux-gnu/
-)
-
-set(RUBY_INCLUDE_DIRS ${RUBY_INCLUDE_DIR} )
-
-# if ruby > 1.8 is required or if ruby > 1.8 was found, search for the config.h dir
-if( "${Ruby_FIND_VERSION_SHORT_NODOT}" GREATER 18  OR  "${_RUBY_VERSION_SHORT_NODOT}" GREATER 18  OR  RUBY_HDR_DIR)
-  find_path(RUBY_CONFIG_INCLUDE_DIR
-    NAMES ruby/config.h  config.h
-    HINTS
-      ${RUBY_HDR_DIR}/${RUBY_ARCH}
-      ${RUBY_ARCH_DIR}
-      ${RUBY_ARCHHDR_DIR}
-  )
-
-  set(RUBY_INCLUDE_DIRS ${RUBY_INCLUDE_DIRS} ${RUBY_CONFIG_INCLUDE_DIR} )
-endif()
-
-
-# Determine the list of possible names for the ruby library
-set(_RUBY_POSSIBLE_LIB_NAMES ruby ruby-static ruby${_RUBY_VERSION_SHORT} ruby${_RUBY_VERSION_SHORT_NODOT} ruby-${_RUBY_VERSION_SHORT} ruby-${RUBY_VERSION})
-
-if(WIN32)
-  set( _RUBY_MSVC_RUNTIME "" )
-  if( MSVC_VERSION EQUAL 1200 )
-    set( _RUBY_MSVC_RUNTIME "60" )
-  endif()
-  if( MSVC_VERSION EQUAL 1300 )
-    set( _RUBY_MSVC_RUNTIME "70" )
-  endif()
-  if( MSVC_VERSION EQUAL 1310 )
-    set( _RUBY_MSVC_RUNTIME "71" )
-  endif()
-  if( MSVC_VERSION EQUAL 1400 )
-    set( _RUBY_MSVC_RUNTIME "80" )
-  endif()
-  if( MSVC_VERSION EQUAL 1500 )
-    set( _RUBY_MSVC_RUNTIME "90" )
-  endif()
-
-  set(_RUBY_ARCH_PREFIX "")
-  if(CMAKE_SIZEOF_VOID_P EQUAL 8)
-    set(_RUBY_ARCH_PREFIX "x64-")
-  endif()
-
-  list(APPEND _RUBY_POSSIBLE_LIB_NAMES
-             "${_RUBY_ARCH_PREFIX}msvcr${_RUBY_MSVC_RUNTIME}-ruby${_RUBY_NODOT_VERSION}"
-             "${_RUBY_ARCH_PREFIX}msvcr${_RUBY_MSVC_RUNTIME}-ruby${_RUBY_NODOT_VERSION}-static"
-             "${_RUBY_ARCH_PREFIX}msvcrt-ruby${_RUBY_NODOT_VERSION}"
-             "${_RUBY_ARCH_PREFIX}msvcrt-ruby${_RUBY_NODOT_VERSION}-static" )
-endif()
-
-find_library(RUBY_LIBRARY NAMES ${_RUBY_POSSIBLE_LIB_NAMES} HINTS ${RUBY_POSSIBLE_LIB_DIR} )
-
-include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-set(_RUBY_REQUIRED_VARS RUBY_EXECUTABLE RUBY_INCLUDE_DIR RUBY_LIBRARY)
-if(_RUBY_VERSION_SHORT_NODOT GREATER 18)
-  list(APPEND _RUBY_REQUIRED_VARS RUBY_CONFIG_INCLUDE_DIR)
-endif()
-
-if(_RUBY_DEBUG_OUTPUT)
-  message(STATUS "--------FindRuby.cmake debug------------")
-  message(STATUS "_RUBY_POSSIBLE_EXECUTABLE_NAMES: ${_RUBY_POSSIBLE_EXECUTABLE_NAMES}")
-  message(STATUS "_RUBY_POSSIBLE_LIB_NAMES: ${_RUBY_POSSIBLE_LIB_NAMES}")
-  message(STATUS "RUBY_ARCH_DIR: ${RUBY_ARCH_DIR}")
-  message(STATUS "RUBY_HDR_DIR: ${RUBY_HDR_DIR}")
-  message(STATUS "RUBY_POSSIBLE_LIB_DIR: ${RUBY_POSSIBLE_LIB_DIR}")
-  message(STATUS "Found RUBY_VERSION: \"${RUBY_VERSION}\" , short: \"${_RUBY_VERSION_SHORT}\", nodot: \"${_RUBY_VERSION_SHORT_NODOT}\"")
-  message(STATUS "_RUBY_REQUIRED_VARS: ${_RUBY_REQUIRED_VARS}")
-  message(STATUS "RUBY_EXECUTABLE: ${RUBY_EXECUTABLE}")
-  message(STATUS "RUBY_LIBRARY: ${RUBY_LIBRARY}")
-  message(STATUS "RUBY_INCLUDE_DIR: ${RUBY_INCLUDE_DIR}")
-  message(STATUS "RUBY_CONFIG_INCLUDE_DIR: ${RUBY_CONFIG_INCLUDE_DIR}")
-  message(STATUS "--------------------")
-endif()
-
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(Ruby  REQUIRED_VARS  ${_RUBY_REQUIRED_VARS}
-                                        VERSION_VAR RUBY_VERSION )
-
-mark_as_advanced(
-  RUBY_EXECUTABLE
-  RUBY_LIBRARY
-  RUBY_INCLUDE_DIR
-  RUBY_CONFIG_INCLUDE_DIR
-  )
-
-# Set some variables for compatibility with previous version of this file
-set(RUBY_POSSIBLE_LIB_PATH ${RUBY_POSSIBLE_LIB_DIR})
-set(RUBY_RUBY_LIB_PATH ${RUBY_RUBY_LIB_DIR})
-set(RUBY_INCLUDE_PATH ${RUBY_INCLUDE_DIRS})
diff --git a/share/cmake-3.17/Modules/FindSWIG.cmake b/share/cmake-3.17/Modules/FindSWIG.cmake
deleted file mode 100644
index ae6ae56..0000000
--- a/share/cmake-3.17/Modules/FindSWIG.cmake
+++ /dev/null
@@ -1,67 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-FindSWIG
---------
-
-Find Simplified Wrapper and Interface Generator (SWIG)
-
-This module finds an installed SWIG.  It sets the following variables:
-
-::
-
-  SWIG_FOUND - set to "True" if SWIG is found
-  SWIG_DIR - the directory where swig is installed
-  SWIG_EXECUTABLE - the path to the swig executable
-  SWIG_VERSION   - the version number of the swig executable
-
-
-
-The minimum required version of SWIG can be specified using the
-standard syntax, e.g.   :command:`find_package(SWIG 1.1)`
-
-All information is collected from the ``SWIG_EXECUTABLE``, so the version
-to be found can be changed from the command line by means of setting
-``SWIG_EXECUTABLE``
-#]=======================================================================]
-
-find_program(SWIG_EXECUTABLE NAMES swig4.0 swig3.0 swig2.0 swig)
-
-if(SWIG_EXECUTABLE)
-  execute_process(COMMAND ${SWIG_EXECUTABLE} -swiglib
-    OUTPUT_VARIABLE SWIG_swiglib_output
-    ERROR_VARIABLE SWIG_swiglib_error
-    RESULT_VARIABLE SWIG_swiglib_result)
-
-  if(SWIG_swiglib_result)
-    if(SWIG_FIND_REQUIRED)
-      message(SEND_ERROR "Command \"${SWIG_EXECUTABLE} -swiglib\" failed with output:\n${SWIG_swiglib_error}")
-    else()
-      message(STATUS "Command \"${SWIG_EXECUTABLE} -swiglib\" failed with output:\n${SWIG_swiglib_error}")
-    endif()
-  else()
-    string(REGEX REPLACE "[\n\r]+" ";" SWIG_swiglib_output ${SWIG_swiglib_output})
-    find_path(SWIG_DIR swig.swg PATHS ${SWIG_swiglib_output} NO_CMAKE_FIND_ROOT_PATH)
-    if(SWIG_DIR)
-      set(SWIG_USE_FILE ${CMAKE_CURRENT_LIST_DIR}/UseSWIG.cmake)
-      execute_process(COMMAND ${SWIG_EXECUTABLE} -version
-        OUTPUT_VARIABLE SWIG_version_output
-        ERROR_VARIABLE SWIG_version_output
-        RESULT_VARIABLE SWIG_version_result)
-      if(SWIG_version_result)
-        message(SEND_ERROR "Command \"${SWIG_EXECUTABLE} -version\" failed with output:\n${SWIG_version_output}")
-      else()
-        string(REGEX REPLACE ".*SWIG Version[^0-9.]*\([0-9.]+\).*" "\\1"
-          SWIG_version_output "${SWIG_version_output}")
-        set(SWIG_VERSION ${SWIG_version_output} CACHE STRING "Swig version" FORCE)
-      endif()
-    endif()
-  endif()
-endif()
-
-include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(SWIG  REQUIRED_VARS SWIG_EXECUTABLE SWIG_DIR
-                                        VERSION_VAR SWIG_VERSION )
-
-mark_as_advanced(SWIG_DIR SWIG_VERSION SWIG_EXECUTABLE)
diff --git a/share/cmake-3.17/Modules/GoogleTestAddTests.cmake b/share/cmake-3.17/Modules/GoogleTestAddTests.cmake
deleted file mode 100644
index 4abbbec..0000000
--- a/share/cmake-3.17/Modules/GoogleTestAddTests.cmake
+++ /dev/null
@@ -1,106 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-set(prefix "${TEST_PREFIX}")
-set(suffix "${TEST_SUFFIX}")
-set(extra_args ${TEST_EXTRA_ARGS})
-set(properties ${TEST_PROPERTIES})
-set(script)
-set(suite)
-set(tests)
-
-function(add_command NAME)
-  set(_args "")
-  foreach(_arg ${ARGN})
-    if(_arg MATCHES "[^-./:a-zA-Z0-9_]")
-      set(_args "${_args} [==[${_arg}]==]")
-    else()
-      set(_args "${_args} ${_arg}")
-    endif()
-  endforeach()
-  set(script "${script}${NAME}(${_args})\n" PARENT_SCOPE)
-endfunction()
-
-# Run test executable to get list of available tests
-if(NOT EXISTS "${TEST_EXECUTABLE}")
-  message(FATAL_ERROR
-    "Specified test executable does not exist.\n"
-    "  Path: '${TEST_EXECUTABLE}'"
-  )
-endif()
-execute_process(
-  COMMAND ${TEST_EXECUTOR} "${TEST_EXECUTABLE}" --gtest_list_tests
-  WORKING_DIRECTORY "${TEST_WORKING_DIR}"
-  TIMEOUT ${TEST_DISCOVERY_TIMEOUT}
-  OUTPUT_VARIABLE output
-  RESULT_VARIABLE result
-)
-if(NOT ${result} EQUAL 0)
-  string(REPLACE "\n" "\n    " output "${output}")
-  message(FATAL_ERROR
-    "Error running test executable.\n"
-    "  Path: '${TEST_EXECUTABLE}'\n"
-    "  Result: ${result}\n"
-    "  Output:\n"
-    "    ${output}\n"
-  )
-endif()
-
-string(REPLACE "\n" ";" output "${output}")
-
-# Parse output
-foreach(line ${output})
-  # Skip header
-  if(NOT line MATCHES "gtest_main\\.cc")
-    # Do we have a module name or a test name?
-    if(NOT line MATCHES "^  ")
-      # Module; remove trailing '.' to get just the name...
-      string(REGEX REPLACE "\\.( *#.*)?" "" suite "${line}")
-      if(line MATCHES "#" AND NOT NO_PRETTY_TYPES)
-        string(REGEX REPLACE "/[0-9]\\.+ +#.*= +" "/" pretty_suite "${line}")
-      else()
-        set(pretty_suite "${suite}")
-      endif()
-      string(REGEX REPLACE "^DISABLED_" "" pretty_suite "${pretty_suite}")
-    else()
-      # Test name; strip spaces and comments to get just the name...
-      string(REGEX REPLACE " +" "" test "${line}")
-      if(test MATCHES "#" AND NOT NO_PRETTY_VALUES)
-        string(REGEX REPLACE "/[0-9]+#GetParam..=" "/" pretty_test "${test}")
-      else()
-        string(REGEX REPLACE "#.*" "" pretty_test "${test}")
-      endif()
-      string(REGEX REPLACE "^DISABLED_" "" pretty_test "${pretty_test}")
-      string(REGEX REPLACE "#.*" "" test "${test}")
-      # ...and add to script
-      add_command(add_test
-        "${prefix}${pretty_suite}.${pretty_test}${suffix}"
-        ${TEST_EXECUTOR}
-        "${TEST_EXECUTABLE}"
-        "--gtest_filter=${suite}.${test}"
-        "--gtest_also_run_disabled_tests"
-        ${extra_args}
-      )
-      if(suite MATCHES "^DISABLED" OR test MATCHES "^DISABLED")
-        add_command(set_tests_properties
-          "${prefix}${pretty_suite}.${pretty_test}${suffix}"
-          PROPERTIES DISABLED TRUE
-        )
-      endif()
-      add_command(set_tests_properties
-        "${prefix}${pretty_suite}.${pretty_test}${suffix}"
-        PROPERTIES
-        WORKING_DIRECTORY "${TEST_WORKING_DIR}"
-        ${properties}
-      )
-     list(APPEND tests "${prefix}${pretty_suite}.${pretty_test}${suffix}")
-    endif()
-  endif()
-endforeach()
-
-# Create a list of all discovered tests, which users may use to e.g. set
-# properties on the tests
-add_command(set ${TEST_LIST} ${tests})
-
-# Write CTest script
-file(WRITE "${CTEST_FILE}" "${script}")
diff --git a/share/cmake-3.17/Modules/Platform/Windows-OpenWatcom.cmake b/share/cmake-3.17/Modules/Platform/Windows-OpenWatcom.cmake
deleted file mode 100644
index 76cd28b..0000000
--- a/share/cmake-3.17/Modules/Platform/Windows-OpenWatcom.cmake
+++ /dev/null
@@ -1,129 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-
-# This module is shared by multiple languages; use include blocker.
-if(__WINDOWS_OPENWATCOM)
-  return()
-endif()
-set(__WINDOWS_OPENWATCOM 1)
-
-set(CMAKE_LIBRARY_PATH_FLAG "libpath ")
-set(CMAKE_LINK_LIBRARY_FLAG "library ")
-set(CMAKE_LINK_LIBRARY_FILE_FLAG "library ")
-
-if(CMAKE_VERBOSE_MAKEFILE)
-  set(CMAKE_WCL_QUIET)
-  set(CMAKE_WLINK_QUIET)
-  set(CMAKE_LIB_QUIET)
-else()
-  set(CMAKE_WCL_QUIET "-zq")
-  set(CMAKE_WLINK_QUIET "option quiet")
-  set(CMAKE_LIB_QUIET "-q")
-endif()
-
-string(APPEND CMAKE_EXE_LINKER_FLAGS_INIT " ")
-set(CMAKE_CREATE_WIN32_EXE "system nt_win" )
-set(CMAKE_CREATE_CONSOLE_EXE "system nt" )
-string(APPEND CMAKE_SHARED_LINKER_FLAGS_INIT " system nt_dll")
-string(APPEND CMAKE_MODULE_LINKER_FLAGS_INIT " system nt_dll")
-foreach(type SHARED MODULE EXE)
-  string(APPEND CMAKE_${type}_LINKER_FLAGS_DEBUG_INIT " debug all opt map")
-  string(APPEND CMAKE_${type}_LINKER_FLAGS_RELWITHDEBINFO_INIT " debug all opt map")
-endforeach()
-
-set(CMAKE_C_COMPILE_OPTIONS_DLL "-bd") # Note: This variable is a ';' separated list
-set(CMAKE_SHARED_LIBRARY_C_FLAGS "-bd") # ... while this is a space separated string.
-
-set(CMAKE_RC_COMPILER "rc" )
-
-set(CMAKE_BUILD_TYPE_INIT Debug)
-
-# single/multi-threaded                 /-bm
-# static/DLL run-time libraries         /-br
-# default is setup for multi-threaded + DLL run-time libraries
-string(APPEND CMAKE_C_FLAGS_INIT " -bt=nt -w3 -dWIN32 -br -bm")
-string(APPEND CMAKE_CXX_FLAGS_INIT " -bt=nt -xs -w3 -dWIN32 -br -bm")
-foreach(lang C CXX)
-  string(APPEND CMAKE_${lang}_FLAGS_DEBUG_INIT " -d2")
-  string(APPEND CMAKE_${lang}_FLAGS_MINSIZEREL_INIT " -s -os -d0 -dNDEBUG")
-  string(APPEND CMAKE_${lang}_FLAGS_RELEASE_INIT " -s -ot -d0 -dNDEBUG")
-  string(APPEND CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT " -s -ot -d1 -dNDEBUG")
-endforeach()
-
-foreach(type CREATE_SHARED_LIBRARY CREATE_SHARED_MODULE LINK_EXECUTABLE)
-  set(CMAKE_C_${type}_USE_WATCOM_QUOTE 1)
-  set(CMAKE_CXX_${type}_USE_WATCOM_QUOTE 1)
-endforeach()
-
-set(CMAKE_C_CREATE_IMPORT_LIBRARY
-  "wlib -c -q -n -b <TARGET_IMPLIB> +<TARGET_QUOTED>")
-set(CMAKE_CXX_CREATE_IMPORT_LIBRARY ${CMAKE_C_CREATE_IMPORT_LIBRARY})
-
-set(CMAKE_C_LINK_EXECUTABLE
-    "wlink ${CMAKE_START_TEMP_FILE} ${CMAKE_WLINK_QUIET} name <TARGET> <LINK_FLAGS> file {<OBJECTS>} <LINK_LIBRARIES> ${CMAKE_END_TEMP_FILE}")
-
-
-set(CMAKE_CXX_LINK_EXECUTABLE ${CMAKE_C_LINK_EXECUTABLE})
-
-# compile a C++ file into an object file
-set(CMAKE_CXX_COMPILE_OBJECT
-    "<CMAKE_CXX_COMPILER> ${CMAKE_START_TEMP_FILE} ${CMAKE_WCL_QUIET} -d+ <DEFINES> <INCLUDES> <FLAGS> -fo<OBJECT> -c -cc++ <SOURCE>${CMAKE_END_TEMP_FILE}")
-
-# compile a C file into an object file
-set(CMAKE_C_COMPILE_OBJECT
-    "<CMAKE_C_COMPILER> ${CMAKE_START_TEMP_FILE} ${CMAKE_WCL_QUIET} -d+ <DEFINES> <INCLUDES> <FLAGS> -fo<OBJECT> -c -cc <SOURCE>${CMAKE_END_TEMP_FILE}")
-
-# preprocess a C source file
-set(CMAKE_C_CREATE_PREPROCESSED_SOURCE
-    "<CMAKE_C_COMPILER> ${CMAKE_START_TEMP_FILE} ${CMAKE_WCL_QUIET} -d+ <DEFINES> <INCLUDES> <FLAGS> -fo<PREPROCESSED_SOURCE> -pl -cc <SOURCE>${CMAKE_END_TEMP_FILE}")
-
-# preprocess a C++ source file
-set(CMAKE_CXX_CREATE_PREPROCESSED_SOURCE
-    "<CMAKE_CXX_COMPILER> ${CMAKE_START_TEMP_FILE} ${CMAKE_WCL_QUIET} -d+ <DEFINES> <INCLUDES> <FLAGS> -fo<PREPROCESSED_SOURCE> -pl -cc++ <SOURCE>${CMAKE_END_TEMP_FILE}")
-
-set(CMAKE_CXX_CREATE_SHARED_LIBRARY
- "wlink ${CMAKE_START_TEMP_FILE} ${CMAKE_WLINK_QUIET} name <TARGET> <LINK_FLAGS> option implib=<TARGET_IMPLIB> file {<OBJECTS>} <LINK_LIBRARIES> ${CMAKE_END_TEMP_FILE}")
-string(REPLACE " option implib=<TARGET_IMPLIB>" ""
-  CMAKE_CXX_CREATE_SHARED_MODULE "${CMAKE_CXX_CREATE_SHARED_LIBRARY}")
-
-# create a C shared library
-set(CMAKE_C_CREATE_SHARED_LIBRARY ${CMAKE_CXX_CREATE_SHARED_LIBRARY})
-
-# create a C shared module
-set(CMAKE_C_CREATE_SHARED_MODULE ${CMAKE_CXX_CREATE_SHARED_MODULE})
-
-# create a C++ static library
-set(CMAKE_CXX_CREATE_STATIC_LIBRARY  "wlib ${CMAKE_LIB_QUIET} -c -n -b <TARGET_QUOTED> <LINK_FLAGS> <OBJECTS> ")
-
-# create a C static library
-set(CMAKE_C_CREATE_STATIC_LIBRARY ${CMAKE_CXX_CREATE_STATIC_LIBRARY})
-
-if(NOT _CMAKE_WATCOM_VERSION)
-  set(_CMAKE_WATCOM_VERSION 1)
-  if(CMAKE_C_COMPILER_VERSION)
-    set(_compiler_version ${CMAKE_C_COMPILER_VERSION})
-    set(_compiler_id ${CMAKE_C_COMPILER_ID})
-  else()
-    set(_compiler_version ${CMAKE_CXX_COMPILER_VERSION})
-    set(_compiler_id ${CMAKE_CXX_COMPILER_ID})
-  endif()
-  set(WATCOM16)
-  set(WATCOM17)
-  set(WATCOM18)
-  set(WATCOM19)
-  if("${_compiler_id}" STREQUAL "OpenWatcom")
-    if("${_compiler_version}" VERSION_LESS 1.7)
-      set(WATCOM16 1)
-    endif()
-    if("${_compiler_version}" VERSION_EQUAL 1.7)
-      set(WATCOM17 1)
-    endif()
-    if("${_compiler_version}" VERSION_EQUAL 1.8)
-      set(WATCOM18 1)
-    endif()
-    if("${_compiler_version}" VERSION_EQUAL 1.9)
-      set(WATCOM19 1)
-    endif()
-  endif()
-endif()
diff --git a/share/cmake-3.17/Modules/Squish4RunTestCase.sh b/share/cmake-3.17/Modules/Squish4RunTestCase.sh
deleted file mode 100755
index 39a3907..0000000
--- a/share/cmake-3.17/Modules/Squish4RunTestCase.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/sh
-
-SQUISHSERVER=$1
-SQUISHRUNNER=$2
-TESTSUITE=$3
-TESTCASE=$4
-AUT=$5
-AUTDIR=$6
-SETTINGSGROUP=$7
-
-$SQUISHSERVER --stop > /dev/null 2>&1
-
-echo "Adding AUT... $SQUISHSERVER --settingsGroup $SETTINGSGROUP --config addAUT $AUT $AUTDIR"
-$SQUISHSERVER --settingsGroup "$SETTINGSGROUP" --config addAUT "$AUT" "$AUTDIR" || exit 255
-# sleep 1
-
-echo "Starting the squish server... $SQUISHSERVER --daemon"
-$SQUISHSERVER --daemon || exit 255
-# sleep 2
-
-echo "Running the test case...$SQUISHRUNNER --settingsGroup $SETTINGSGROUP --testsuite $TESTSUITE --testcase $TESTCASE"
-$SQUISHRUNNER --settingsGroup "$SETTINGSGROUP" --testsuite "$TESTSUITE" --testcase "$TESTCASE"
-returnValue=$?
-
-echo "Stopping the squish server... $SQUISHSERVER --stop"
-$SQUISHSERVER --stop
-
-exit $returnValue
diff --git a/share/cmake-3.18/Help/command/DEVICE_LINK_OPTIONS.txt b/share/cmake-3.18/Help/command/DEVICE_LINK_OPTIONS.txt
new file mode 100644
index 0000000..3f0226f
--- /dev/null
+++ b/share/cmake-3.18/Help/command/DEVICE_LINK_OPTIONS.txt
@@ -0,0 +1,11 @@
+
+When a device link step is involved, which is controlled by
+:prop_tgt:`CUDA_SEPARABLE_COMPILATION` and
+:prop_tgt:`CUDA_RESOLVE_DEVICE_SYMBOLS` properties and policy :policy:`CMP0105`,
+the raw options will be delivered to the host and device link steps (wrapped in
+``-Xcompiler`` or equivalent for device link). Options wrapped with
+``$<DEVICE_LINK:...>``
+:manual:`generator expression <cmake-generator-expressions(7)>` will be used
+only for the device link step. Options wrapped with ``$<HOST_LINK:...>``
+:manual:`generator expression <cmake-generator-expressions(7)>` will be used
+only for the host link step.
diff --git a/share/cmake-3.17/Help/command/FIND_XXX.txt b/share/cmake-3.18/Help/command/FIND_XXX.txt
similarity index 92%
rename from share/cmake-3.17/Help/command/FIND_XXX.txt
rename to share/cmake-3.18/Help/command/FIND_XXX.txt
index 42bf52b..4a62c5b 100644
--- a/share/cmake-3.17/Help/command/FIND_XXX.txt
+++ b/share/cmake-3.18/Help/command/FIND_XXX.txt
@@ -15,6 +15,7 @@
              [PATHS path1 [path2 ... ENV var]]
              [PATH_SUFFIXES suffix1 [suffix2 ...]]
              [DOC "cache documentation string"]
+             [REQUIRED]
              [NO_DEFAULT_PATH]
              [NO_PACKAGE_ROOT_PATH]
              [NO_CMAKE_PATH]
@@ -31,8 +32,9 @@
 of this command.
 If the |SEARCH_XXX| is found the result is stored in the variable
 and the search will not be repeated unless the variable is cleared.
-If nothing is found, the result will be
-``<VAR>-NOTFOUND``, and the search will be attempted again the
+If nothing is found, the result will be ``<VAR>-NOTFOUND``.
+The ``REQUIRED`` option stops processing with an error message if nothing
+is found, otherwise the search will be attempted again the
 next time |FIND_XXX| is invoked with the same variable.
 
 Options include:
@@ -57,6 +59,9 @@
 ``DOC``
   Specify the documentation string for the ``<VAR>`` cache entry.
 
+``REQUIRED``
+  Stop processing with an error message if nothing is found.
+
 If ``NO_DEFAULT_PATH`` is specified, then no additional paths are
 added to the search.
 If ``NO_DEFAULT_PATH`` is not specified, the search process is as follows:
@@ -138,6 +143,10 @@
    * |CMAKE_SYSTEM_XXX_PATH|
    * |CMAKE_SYSTEM_XXX_MAC_PATH|
 
+   The platform paths that these variables contain are locations that
+   typically include installed software. An example being ``/usr/local`` for
+   UNIX based platforms.
+
 7. Search the paths specified by the PATHS option
    or in the short-hand version of the command.
    These are typically hard-coded guesses.
diff --git a/share/cmake-3.17/Help/command/FIND_XXX_ORDER.txt b/share/cmake-3.18/Help/command/FIND_XXX_ORDER.txt
similarity index 100%
rename from share/cmake-3.17/Help/command/FIND_XXX_ORDER.txt
rename to share/cmake-3.18/Help/command/FIND_XXX_ORDER.txt
diff --git a/share/cmake-3.17/Help/command/FIND_XXX_ROOT.txt b/share/cmake-3.18/Help/command/FIND_XXX_ROOT.txt
similarity index 100%
rename from share/cmake-3.17/Help/command/FIND_XXX_ROOT.txt
rename to share/cmake-3.18/Help/command/FIND_XXX_ROOT.txt
diff --git a/share/cmake-3.17/Help/command/LINK_OPTIONS_LINKER.txt b/share/cmake-3.18/Help/command/LINK_OPTIONS_LINKER.txt
similarity index 100%
rename from share/cmake-3.17/Help/command/LINK_OPTIONS_LINKER.txt
rename to share/cmake-3.18/Help/command/LINK_OPTIONS_LINKER.txt
diff --git a/share/cmake-3.17/Help/command/OPTIONS_SHELL.txt b/share/cmake-3.18/Help/command/OPTIONS_SHELL.txt
similarity index 100%
rename from share/cmake-3.17/Help/command/OPTIONS_SHELL.txt
rename to share/cmake-3.18/Help/command/OPTIONS_SHELL.txt
diff --git a/share/cmake-3.17/Help/command/add_compile_definitions.rst b/share/cmake-3.18/Help/command/add_compile_definitions.rst
similarity index 69%
rename from share/cmake-3.17/Help/command/add_compile_definitions.rst
rename to share/cmake-3.18/Help/command/add_compile_definitions.rst
index 8225da7..e10aba0 100644
--- a/share/cmake-3.17/Help/command/add_compile_definitions.rst
+++ b/share/cmake-3.18/Help/command/add_compile_definitions.rst
@@ -7,10 +7,12 @@
 
   add_compile_definitions(<definition> ...)
 
-Adds preprocessor definitions to the compiler command line for targets in the
-current directory and below (whether added before or after this command is
-invoked). See documentation of the :prop_dir:`directory <COMPILE_DEFINITIONS>`
-and :prop_tgt:`target <COMPILE_DEFINITIONS>` ``COMPILE_DEFINITIONS`` properties.
+Adds preprocessor definitions to the compiler command line.
+
+The preprocessor definitions are added to the :prop_dir:`COMPILE_DEFINITIONS`
+directory property for the current ``CMakeLists`` file. They are also added to
+the :prop_tgt:`COMPILE_DEFINITIONS` target property for each target in the
+current ``CMakeLists`` file.
 
 Definitions are specified using the syntax ``VAR`` or ``VAR=value``.
 Function-style definitions are not supported. CMake will automatically
diff --git a/share/cmake-3.17/Help/command/add_compile_options.rst b/share/cmake-3.18/Help/command/add_compile_options.rst
similarity index 93%
rename from share/cmake-3.17/Help/command/add_compile_options.rst
rename to share/cmake-3.18/Help/command/add_compile_options.rst
index 43805c3..36f403c 100644
--- a/share/cmake-3.17/Help/command/add_compile_options.rst
+++ b/share/cmake-3.18/Help/command/add_compile_options.rst
@@ -46,3 +46,6 @@
 and :command:`include_directories`.
 
 The command :command:`target_compile_options` adds target-specific options.
+
+The source file property :prop_sf:`COMPILE_OPTIONS` adds options to one
+source file.
diff --git a/share/cmake-3.17/Help/command/add_custom_command.rst b/share/cmake-3.18/Help/command/add_custom_command.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/add_custom_command.rst
rename to share/cmake-3.18/Help/command/add_custom_command.rst
diff --git a/share/cmake-3.17/Help/command/add_custom_target.rst b/share/cmake-3.18/Help/command/add_custom_target.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/add_custom_target.rst
rename to share/cmake-3.18/Help/command/add_custom_target.rst
diff --git a/share/cmake-3.17/Help/command/add_definitions.rst b/share/cmake-3.18/Help/command/add_definitions.rst
similarity index 84%
rename from share/cmake-3.17/Help/command/add_definitions.rst
rename to share/cmake-3.18/Help/command/add_definitions.rst
index d06b01c..fe69188 100644
--- a/share/cmake-3.17/Help/command/add_definitions.rst
+++ b/share/cmake-3.18/Help/command/add_definitions.rst
@@ -8,9 +8,9 @@
   add_definitions(-DFOO -DBAR ...)
 
 Adds definitions to the compiler command line for targets in the current
-directory and below (whether added before or after this command is invoked).
-This command can be used to add any flags, but it is intended to add
-preprocessor definitions.
+directory, whether added before or after this command is invoked, and for
+the ones in sub-directories added after. This command can be used to add any
+flags, but it is intended to add preprocessor definitions.
 
 .. note::
 
diff --git a/share/cmake-3.17/Help/command/add_dependencies.rst b/share/cmake-3.18/Help/command/add_dependencies.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/add_dependencies.rst
rename to share/cmake-3.18/Help/command/add_dependencies.rst
diff --git a/share/cmake-3.17/Help/command/add_executable.rst b/share/cmake-3.18/Help/command/add_executable.rst
similarity index 89%
rename from share/cmake-3.17/Help/command/add_executable.rst
rename to share/cmake-3.18/Help/command/add_executable.rst
index 0a7d7e1..e073228 100644
--- a/share/cmake-3.17/Help/command/add_executable.rst
+++ b/share/cmake-3.18/Help/command/add_executable.rst
@@ -1,8 +1,15 @@
 add_executable
 --------------
 
+.. only:: html
+
+  .. contents::
+
 Add an executable to the project using the specified source files.
 
+Normal Executables
+^^^^^^^^^^^^^^^^^^
+
 .. code-block:: cmake
 
   add_executable(<name> [WIN32] [MACOSX_BUNDLE]
@@ -45,7 +52,8 @@
 pre-processed, and you want to have the original sources reachable from
 within IDE.
 
---------------------------------------------------------------------------
+Imported Executables
+^^^^^^^^^^^^^^^^^^^^
 
 .. code-block:: cmake
 
@@ -65,7 +73,8 @@
 the main executable file on disk.  See documentation of the ``IMPORTED_*``
 properties for more information.
 
---------------------------------------------------------------------------
+Alias Executables
+^^^^^^^^^^^^^^^^^
 
 .. code-block:: cmake
 
@@ -74,8 +83,13 @@
 Creates an :ref:`Alias Target <Alias Targets>`, such that ``<name>`` can
 be used to refer to ``<target>`` in subsequent commands.  The ``<name>``
 does not appear in the generated buildsystem as a make target.  The
-``<target>`` may not be a non-``GLOBAL``
-:ref:`Imported Target <Imported Targets>` or an ``ALIAS``.
+``<target>`` may not be an ``ALIAS``.
+
+An ``ALIAS`` to a non-``GLOBAL`` :ref:`Imported Target <Imported Targets>`
+has scope in the directory in which the alias is created and below.
+The :prop_tgt:`ALIAS_GLOBAL` target property can be used to check if the
+alias is global or not.
+
 ``ALIAS`` targets can be used as targets to read properties
 from, executables for custom commands and custom targets.  They can also be
 tested for existence with the regular :command:`if(TARGET)` subcommand.
diff --git a/share/cmake-3.17/Help/command/add_library.rst b/share/cmake-3.18/Help/command/add_library.rst
similarity index 96%
rename from share/cmake-3.17/Help/command/add_library.rst
rename to share/cmake-3.18/Help/command/add_library.rst
index 7274e44..01c415a 100644
--- a/share/cmake-3.17/Help/command/add_library.rst
+++ b/share/cmake-3.18/Help/command/add_library.rst
@@ -139,8 +139,13 @@
 Creates an :ref:`Alias Target <Alias Targets>`, such that ``<name>`` can be
 used to refer to ``<target>`` in subsequent commands.  The ``<name>`` does
 not appear in the generated buildsystem as a make target.  The ``<target>``
-may not be a non-``GLOBAL`` :ref:`Imported Target <Imported Targets>` or an
-``ALIAS``.
+may not be an ``ALIAS``.
+
+An ``ALIAS`` to a non-``GLOBAL`` :ref:`Imported Target <Imported Targets>`
+has scope in the directory in which the alias is created and below.
+The :prop_tgt:`ALIAS_GLOBAL` target property can be used to check if the
+alias is global or not.
+
 ``ALIAS`` targets can be used as linkable targets and as targets to
 read properties from.  They can also be tested for existence with the
 regular :command:`if(TARGET)` subcommand.  The ``<name>`` may not be used
diff --git a/share/cmake-3.17/Help/command/add_link_options.rst b/share/cmake-3.18/Help/command/add_link_options.rst
similarity index 96%
rename from share/cmake-3.17/Help/command/add_link_options.rst
rename to share/cmake-3.18/Help/command/add_link_options.rst
index a83005b..faa4afb 100644
--- a/share/cmake-3.17/Help/command/add_link_options.rst
+++ b/share/cmake-3.18/Help/command/add_link_options.rst
@@ -26,6 +26,8 @@
 manual for available expressions.  See the :manual:`cmake-buildsystem(7)`
 manual for more on defining buildsystem properties.
 
+.. include:: DEVICE_LINK_OPTIONS.txt
+
 .. include:: OPTIONS_SHELL.txt
 
 .. include:: LINK_OPTIONS_LINKER.txt
diff --git a/share/cmake-3.17/Help/command/add_subdirectory.rst b/share/cmake-3.18/Help/command/add_subdirectory.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/add_subdirectory.rst
rename to share/cmake-3.18/Help/command/add_subdirectory.rst
diff --git a/share/cmake-3.17/Help/command/add_test.rst b/share/cmake-3.18/Help/command/add_test.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/add_test.rst
rename to share/cmake-3.18/Help/command/add_test.rst
diff --git a/share/cmake-3.17/Help/command/aux_source_directory.rst b/share/cmake-3.18/Help/command/aux_source_directory.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/aux_source_directory.rst
rename to share/cmake-3.18/Help/command/aux_source_directory.rst
diff --git a/share/cmake-3.17/Help/command/break.rst b/share/cmake-3.18/Help/command/break.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/break.rst
rename to share/cmake-3.18/Help/command/break.rst
diff --git a/share/cmake-3.17/Help/command/build_command.rst b/share/cmake-3.18/Help/command/build_command.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/build_command.rst
rename to share/cmake-3.18/Help/command/build_command.rst
diff --git a/share/cmake-3.17/Help/command/build_name.rst b/share/cmake-3.18/Help/command/build_name.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/build_name.rst
rename to share/cmake-3.18/Help/command/build_name.rst
diff --git a/share/cmake-3.17/Help/command/cmake_host_system_information.rst b/share/cmake-3.18/Help/command/cmake_host_system_information.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/cmake_host_system_information.rst
rename to share/cmake-3.18/Help/command/cmake_host_system_information.rst
diff --git a/share/cmake-3.18/Help/command/cmake_language.rst b/share/cmake-3.18/Help/command/cmake_language.rst
new file mode 100644
index 0000000..0988097
--- /dev/null
+++ b/share/cmake-3.18/Help/command/cmake_language.rst
@@ -0,0 +1,99 @@
+cmake_language
+--------------
+
+Call meta-operations on CMake commands.
+
+Synopsis
+^^^^^^^^
+
+.. parsed-literal::
+
+  cmake_language(`CALL`_ <command> [<args>...])
+  cmake_language(`EVAL`_ CODE <code>...)
+
+Introduction
+^^^^^^^^^^^^
+
+This command will call meta-operations on built-in CMake commands or
+those created via the :command:`macro` or :command:`function` commands.
+
+``cmake_language`` does not introduce a new variable or policy scope.
+
+Calling Commands
+^^^^^^^^^^^^^^^^
+
+.. _CALL:
+
+.. code-block:: cmake
+
+  cmake_language(CALL <command> [<args>...])
+
+Calls the named ``<command>`` with the given arguments (if any).
+For example, the code:
+
+.. code-block:: cmake
+
+  set(message_command "message")
+  cmake_language(CALL ${message_command} STATUS "Hello World!")
+
+is equivalent to
+
+.. code-block:: cmake
+
+  message(STATUS "Hello World!")
+
+.. note::
+  To ensure consistency of the code, the following commands are not allowed:
+
+  * ``if`` / ``elseif`` / ``else`` / ``endif``
+  * ``while`` / ``endwhile``
+  * ``foreach`` / ``endforeach``
+  * ``function`` / ``endfunction``
+  * ``macro`` / ``endmacro``
+
+Evaluating Code
+^^^^^^^^^^^^^^^
+
+.. _EVAL:
+
+.. code-block:: cmake
+
+  cmake_language(EVAL CODE <code>...)
+
+Evaluates the ``<code>...`` as CMake code.
+
+For example, the code:
+
+.. code-block:: cmake
+
+  set(A TRUE)
+  set(B TRUE)
+  set(C TRUE)
+  set(condition "(A AND B) OR C")
+
+  cmake_language(EVAL CODE "
+    if (${condition})
+      message(STATUS TRUE)
+    else()
+      message(STATUS FALSE)
+    endif()"
+  )
+
+is equivalent to
+
+.. code-block:: cmake
+
+  set(A TRUE)
+  set(B TRUE)
+  set(C TRUE)
+  set(condition "(A AND B) OR C")
+
+  file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/eval.cmake "
+    if (${condition})
+      message(STATUS TRUE)
+    else()
+      message(STATUS FALSE)
+    endif()"
+  )
+
+  include(${CMAKE_CURRENT_BINARY_DIR}/eval.cmake)
diff --git a/share/cmake-3.17/Help/command/cmake_minimum_required.rst b/share/cmake-3.18/Help/command/cmake_minimum_required.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/cmake_minimum_required.rst
rename to share/cmake-3.18/Help/command/cmake_minimum_required.rst
diff --git a/share/cmake-3.17/Help/command/cmake_parse_arguments.rst b/share/cmake-3.18/Help/command/cmake_parse_arguments.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/cmake_parse_arguments.rst
rename to share/cmake-3.18/Help/command/cmake_parse_arguments.rst
diff --git a/share/cmake-3.17/Help/command/cmake_policy.rst b/share/cmake-3.18/Help/command/cmake_policy.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/cmake_policy.rst
rename to share/cmake-3.18/Help/command/cmake_policy.rst
diff --git a/share/cmake-3.17/Help/command/configure_file.rst b/share/cmake-3.18/Help/command/configure_file.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/configure_file.rst
rename to share/cmake-3.18/Help/command/configure_file.rst
diff --git a/share/cmake-3.17/Help/command/continue.rst b/share/cmake-3.18/Help/command/continue.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/continue.rst
rename to share/cmake-3.18/Help/command/continue.rst
diff --git a/share/cmake-3.17/Help/command/create_test_sourcelist.rst b/share/cmake-3.18/Help/command/create_test_sourcelist.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/create_test_sourcelist.rst
rename to share/cmake-3.18/Help/command/create_test_sourcelist.rst
diff --git a/share/cmake-3.17/Help/command/ctest_build.rst b/share/cmake-3.18/Help/command/ctest_build.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/ctest_build.rst
rename to share/cmake-3.18/Help/command/ctest_build.rst
diff --git a/share/cmake-3.17/Help/command/ctest_configure.rst b/share/cmake-3.18/Help/command/ctest_configure.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/ctest_configure.rst
rename to share/cmake-3.18/Help/command/ctest_configure.rst
diff --git a/share/cmake-3.17/Help/command/ctest_coverage.rst b/share/cmake-3.18/Help/command/ctest_coverage.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/ctest_coverage.rst
rename to share/cmake-3.18/Help/command/ctest_coverage.rst
diff --git a/share/cmake-3.17/Help/command/ctest_empty_binary_directory.rst b/share/cmake-3.18/Help/command/ctest_empty_binary_directory.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/ctest_empty_binary_directory.rst
rename to share/cmake-3.18/Help/command/ctest_empty_binary_directory.rst
diff --git a/share/cmake-3.17/Help/command/ctest_memcheck.rst b/share/cmake-3.18/Help/command/ctest_memcheck.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/ctest_memcheck.rst
rename to share/cmake-3.18/Help/command/ctest_memcheck.rst
diff --git a/share/cmake-3.17/Help/command/ctest_read_custom_files.rst b/share/cmake-3.18/Help/command/ctest_read_custom_files.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/ctest_read_custom_files.rst
rename to share/cmake-3.18/Help/command/ctest_read_custom_files.rst
diff --git a/share/cmake-3.17/Help/command/ctest_run_script.rst b/share/cmake-3.18/Help/command/ctest_run_script.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/ctest_run_script.rst
rename to share/cmake-3.18/Help/command/ctest_run_script.rst
diff --git a/share/cmake-3.17/Help/command/ctest_sleep.rst b/share/cmake-3.18/Help/command/ctest_sleep.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/ctest_sleep.rst
rename to share/cmake-3.18/Help/command/ctest_sleep.rst
diff --git a/share/cmake-3.17/Help/command/ctest_start.rst b/share/cmake-3.18/Help/command/ctest_start.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/ctest_start.rst
rename to share/cmake-3.18/Help/command/ctest_start.rst
diff --git a/share/cmake-3.17/Help/command/ctest_submit.rst b/share/cmake-3.18/Help/command/ctest_submit.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/ctest_submit.rst
rename to share/cmake-3.18/Help/command/ctest_submit.rst
diff --git a/share/cmake-3.17/Help/command/ctest_test.rst b/share/cmake-3.18/Help/command/ctest_test.rst
similarity index 97%
rename from share/cmake-3.17/Help/command/ctest_test.rst
rename to share/cmake-3.18/Help/command/ctest_test.rst
index 5c67b2c..3589296 100644
--- a/share/cmake-3.17/Help/command/ctest_test.rst
+++ b/share/cmake-3.18/Help/command/ctest_test.rst
@@ -20,6 +20,7 @@
              [RESOURCE_SPEC_FILE <file>]
              [TEST_LOAD <threshold>]
              [SCHEDULE_RANDOM <ON|OFF>]
+             [STOP_ON_FAILURE]
              [STOP_TIME <time-of-day>]
              [RETURN_VALUE <result-var>]
              [CAPTURE_CMAKE_ERROR <result-var>]
@@ -119,6 +120,9 @@
   Launch tests in a random order.  This may be useful for detecting
   implicit test dependencies.
 
+``STOP_ON_FAILURE``
+  Stop the execution of the tests once one has failed.
+
 ``STOP_TIME <time-of-day>``
   Specify a time of day at which the tests should all stop running.
 
diff --git a/share/cmake-3.17/Help/command/ctest_update.rst b/share/cmake-3.18/Help/command/ctest_update.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/ctest_update.rst
rename to share/cmake-3.18/Help/command/ctest_update.rst
diff --git a/share/cmake-3.17/Help/command/ctest_upload.rst b/share/cmake-3.18/Help/command/ctest_upload.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/ctest_upload.rst
rename to share/cmake-3.18/Help/command/ctest_upload.rst
diff --git a/share/cmake-3.17/Help/command/define_property.rst b/share/cmake-3.18/Help/command/define_property.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/define_property.rst
rename to share/cmake-3.18/Help/command/define_property.rst
diff --git a/share/cmake-3.17/Help/command/else.rst b/share/cmake-3.18/Help/command/else.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/else.rst
rename to share/cmake-3.18/Help/command/else.rst
diff --git a/share/cmake-3.17/Help/command/elseif.rst b/share/cmake-3.18/Help/command/elseif.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/elseif.rst
rename to share/cmake-3.18/Help/command/elseif.rst
diff --git a/share/cmake-3.17/Help/command/enable_language.rst b/share/cmake-3.18/Help/command/enable_language.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/enable_language.rst
rename to share/cmake-3.18/Help/command/enable_language.rst
diff --git a/share/cmake-3.17/Help/command/enable_testing.rst b/share/cmake-3.18/Help/command/enable_testing.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/enable_testing.rst
rename to share/cmake-3.18/Help/command/enable_testing.rst
diff --git a/share/cmake-3.17/Help/command/endforeach.rst b/share/cmake-3.18/Help/command/endforeach.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/endforeach.rst
rename to share/cmake-3.18/Help/command/endforeach.rst
diff --git a/share/cmake-3.17/Help/command/endfunction.rst b/share/cmake-3.18/Help/command/endfunction.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/endfunction.rst
rename to share/cmake-3.18/Help/command/endfunction.rst
diff --git a/share/cmake-3.17/Help/command/endif.rst b/share/cmake-3.18/Help/command/endif.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/endif.rst
rename to share/cmake-3.18/Help/command/endif.rst
diff --git a/share/cmake-3.17/Help/command/endmacro.rst b/share/cmake-3.18/Help/command/endmacro.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/endmacro.rst
rename to share/cmake-3.18/Help/command/endmacro.rst
diff --git a/share/cmake-3.17/Help/command/endwhile.rst b/share/cmake-3.18/Help/command/endwhile.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/endwhile.rst
rename to share/cmake-3.18/Help/command/endwhile.rst
diff --git a/share/cmake-3.17/Help/command/exec_program.rst b/share/cmake-3.18/Help/command/exec_program.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/exec_program.rst
rename to share/cmake-3.18/Help/command/exec_program.rst
diff --git a/share/cmake-3.17/Help/command/execute_process.rst b/share/cmake-3.18/Help/command/execute_process.rst
similarity index 91%
rename from share/cmake-3.17/Help/command/execute_process.rst
rename to share/cmake-3.18/Help/command/execute_process.rst
index 14f879d..b32025f 100644
--- a/share/cmake-3.17/Help/command/execute_process.rst
+++ b/share/cmake-3.18/Help/command/execute_process.rst
@@ -21,7 +21,9 @@
                   [COMMAND_ECHO <where>]
                   [OUTPUT_STRIP_TRAILING_WHITESPACE]
                   [ERROR_STRIP_TRAILING_WHITESPACE]
-                  [ENCODING <name>])
+                  [ENCODING <name>]
+                  [ECHO_OUTPUT_VARIABLE]
+                  [ECHO_ERROR_VARIABLE])
 
 Runs the given sequence of one or more commands.
 
@@ -105,6 +107,15 @@
    for this encoding. In CMake 3.11.0, ``UTF-8`` was added for consistency with
    the `UTF-8 RFC <https://www.ietf.org/rfc/rfc3629>`_ naming convention.
 
+``ECHO_OUTPUT_VARIABLE``, ``ECHO_ERROR_VARIABLE``
+  The standard output or standard error will not be exclusively redirected to
+  the configured variables.
+
+  The output will be duplicated, it will be sent into the configured variables
+  and also on standard output or standard error.
+
+  This is analogous to the ``tee`` Unix command.
+
 If more than one ``OUTPUT_*`` or ``ERROR_*`` option is given for the
 same pipe the precedence is not specified.
 If no ``OUTPUT_*`` or ``ERROR_*`` options are given the output will
diff --git a/share/cmake-3.17/Help/command/export.rst b/share/cmake-3.18/Help/command/export.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/export.rst
rename to share/cmake-3.18/Help/command/export.rst
diff --git a/share/cmake-3.17/Help/command/export_library_dependencies.rst b/share/cmake-3.18/Help/command/export_library_dependencies.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/export_library_dependencies.rst
rename to share/cmake-3.18/Help/command/export_library_dependencies.rst
diff --git a/share/cmake-3.17/Help/command/file.rst b/share/cmake-3.18/Help/command/file.rst
similarity index 88%
rename from share/cmake-3.17/Help/command/file.rst
rename to share/cmake-3.18/Help/command/file.rst
index df7d8ba..693c059 100644
--- a/share/cmake-3.17/Help/command/file.rst
+++ b/share/cmake-3.18/Help/command/file.rst
@@ -19,6 +19,7 @@
     file({`WRITE`_ | `APPEND`_} <filename> <content>...)
     file({`TOUCH`_ | `TOUCH_NOCREATE`_} [<file>...])
     file(`GENERATE`_ OUTPUT <output-file> [...])
+    file(`CONFIGURE`_ OUTPUT <output-file> CONTENT <content> [...])
 
   `Filesystem`_
     file({`GLOB`_ | `GLOB_RECURSE`_} <out-var> [...] [<globbing-expr>...])
@@ -41,6 +42,10 @@
   `Locking`_
     file(`LOCK`_ <path> [...])
 
+  `Archiving`_
+    file(`ARCHIVE_CREATE`_ OUTPUT <archive> PATHS <paths>... [...])
+    file(`ARCHIVE_EXTRACT`_ INPUT <archive> [...])
+
 Reading
 ^^^^^^^
 
@@ -54,7 +59,9 @@
 Read content from a file called ``<filename>`` and store it in a
 ``<variable>``.  Optionally start from the given ``<offset>`` and
 read at most ``<max-in>`` bytes.  The ``HEX`` option causes data to
-be converted to a hexadecimal representation (useful for binary data).
+be converted to a hexadecimal representation (useful for binary data). If the
+``HEX`` option is specified, letters in the output (``a`` through ``f``) are in
+lowercase.
 
 .. _STRINGS:
 
@@ -243,8 +250,8 @@
   List of post-exclude regexes through which to filter the names of resolved
   dependencies.
 
-These arguments can be used to blacklist unwanted system libraries when
-resolving the dependencies, or to whitelist libraries from a specific
+These arguments can be used to exclude unwanted system libraries when
+resolving the dependencies, or to include libraries from a specific
 directory. The filtering works as follows:
 
 1. If the not-yet-resolved dependency matches any of the
@@ -395,8 +402,8 @@
   Determines the path to the tool to use for dependency resolution. This is the
   actual path to ``objdump``, ``dumpbin``, or ``otool``.
 
-  If this variable is not specified, it is determined automatically by system
-  introspection.
+  If this variable is not specified, it is determined by the value of
+  ``CMAKE_OBJDUMP`` if set, else by system introspection.
 
 Writing
 ^^^^^^^
@@ -482,6 +489,44 @@
 ``file(GENERATE)`` command returns, it is written only after processing all
 of a project's ``CMakeLists.txt`` files.
 
+.. _CONFIGURE:
+
+.. code-block:: cmake
+
+  file(CONFIGURE OUTPUT output-file
+       CONTENT content
+       [ESCAPE_QUOTES] [@ONLY]
+       [NEWLINE_STYLE [UNIX|DOS|WIN32|LF|CRLF] ])
+
+Generate an output file using the input given by ``CONTENT`` and substitute
+variable values referenced as ``@VAR@`` or ``${VAR}`` contained therein. The
+substitution rules behave the same as the :command:`configure_file` command.
+In order to match :command:`configure_file`'s behavior, generator expressions
+are not supported for both ``OUTPUT`` and ``CONTENT``.
+
+The arguments are:
+
+``OUTPUT <output-file>``
+  Specify the output file name to generate. A relative path is treated with
+  respect to the value of :variable:`CMAKE_CURRENT_BINARY_DIR`.
+  ``<output-file>`` does not support generator expressions.
+
+``CONTENT <content>``
+  Use the content given explicitly as input.
+  ``<content>`` does not support generator expressions.
+
+``ESCAPE_QUOTES``
+  Escape any substituted quotes with backslashes (C-style).
+
+``@ONLY``
+  Restrict variable replacement to references of the form ``@VAR@``.
+  This is useful for configuring scripts that use ``${VAR}`` syntax.
+
+``NEWLINE_STYLE <style>``
+  Specify the newline style for the output file.  Specify
+  ``UNIX`` or ``LF`` for ``\n`` newlines, or specify
+  ``DOS``, ``WIN32``, or ``CRLF`` for ``\r\n`` newlines.
+
 Filesystem
 ^^^^^^^^^^
 
@@ -790,6 +835,18 @@
 If neither ``NETRC`` option is given CMake will check variables
 ``CMAKE_NETRC`` and ``CMAKE_NETRC_FILE``, respectively.
 
+``TLS_VERIFY <ON|OFF>``
+  Specify whether to verify the server certificate for ``https://`` URLs.
+  The default is to *not* verify.
+
+``TLS_CAINFO <file>``
+  Specify a custom Certificate Authority file for ``https://`` URLs.
+
+For ``https://`` URLs CMake must be built with OpenSSL support.  ``TLS/SSL``
+certificates are not checked by default.  Set ``TLS_VERIFY`` to ``ON`` to
+check certificates. If neither ``TLS`` option is given CMake will check
+variables ``CMAKE_TLS_VERIFY`` and ``CMAKE_TLS_CAINFO``, respectively.
+
 Additional options to ``DOWNLOAD`` are:
 
 ``EXPECTED_HASH ALGO=<value>``
@@ -801,19 +858,6 @@
 ``EXPECTED_MD5 <value>``
   Historical short-hand for ``EXPECTED_HASH MD5=<value>``.
 
-``TLS_VERIFY <ON|OFF>``
-  Specify whether to verify the server certificate for ``https://`` URLs.
-  The default is to *not* verify.
-
-``TLS_CAINFO <file>``
-  Specify a custom Certificate Authority file for ``https://`` URLs.
-
-For ``https://`` URLs CMake must be built with OpenSSL support.  ``TLS/SSL``
-certificates are not checked by default.  Set ``TLS_VERIFY`` to ``ON`` to
-check certificates and/or use ``EXPECTED_HASH`` to verify downloaded content.
-If neither ``TLS`` option is given CMake will check variables
-``CMAKE_TLS_VERIFY`` and ``CMAKE_TLS_CAINFO``, respectively.
-
 Locking
 ^^^^^^^
 
@@ -846,3 +890,66 @@
 Trying to lock file twice is not allowed.  Any intermediate directories and
 file itself will be created if they not exist.  ``GUARD`` and ``TIMEOUT``
 options ignored on ``RELEASE`` operation.
+
+Archiving
+^^^^^^^^^
+
+.. _ARCHIVE_CREATE:
+
+.. code-block:: cmake
+
+  file(ARCHIVE_CREATE OUTPUT <archive>
+    PATHS <paths>...
+    [FORMAT <format>]
+    [COMPRESSION <compression>]
+    [MTIME <mtime>]
+    [VERBOSE])
+
+Creates the specified ``<archive>`` file with the files and directories
+listed in ``<paths>``.  Note that ``<paths>`` must list actual files or
+directories, wildcards are not supported.
+
+Use the ``FORMAT`` option to specify the archive format.  Supported values
+for ``<format>`` are ``7zip``, ``gnutar``, ``pax``, ``paxr``, ``raw`` and
+``zip``.  If ``FORMAT`` is not given, the default format is ``paxr``.
+
+Some archive formats allow the type of compression to be specified.
+The ``7zip`` and ``zip`` archive formats already imply a specific type of
+compression.  The other formats use no compression by default, but can be
+directed to do so with the ``COMPRESSION`` option.  Valid values for
+``<compression>`` are ``None``, ``BZip2``, ``GZip``, ``XZ``, and ``Zstd``.
+
+.. note::
+  With ``FORMAT`` set to ``raw`` only one file will be compressed with the
+  compression type specified by ``COMPRESSION``.
+
+The ``VERBOSE`` option enables verbose output for the archive operation.
+
+To specify the modification time recorded in tarball entries, use
+the ``MTIME`` option.
+
+.. _ARCHIVE_EXTRACT:
+
+.. code-block:: cmake
+
+  file(ARCHIVE_EXTRACT INPUT <archive>
+    [DESTINATION <dir>]
+    [PATTERNS <patterns>...]
+    [LIST_ONLY]
+    [VERBOSE])
+
+Extracts or lists the content of the specified ``<archive>``.
+
+The directory where the content of the archive will be extracted to can
+be specified using the ``DESTINATION`` option.  If the directory does not
+exist, it will be created.  If ``DESTINATION`` is not given, the current
+binary directory will be used.
+
+If required, you may select which files and directories to list or extract
+from the archive using the specified ``<patterns>``.  Wildcards are supported.
+If the ``PATTERNS`` option is not given, the entire archive will be listed or
+extracted.
+
+``LIST_ONLY`` will list the files in the archive rather than extract them.
+
+With ``VERBOSE``, the command will produce verbose output.
diff --git a/share/cmake-3.17/Help/command/find_file.rst b/share/cmake-3.18/Help/command/find_file.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/find_file.rst
rename to share/cmake-3.18/Help/command/find_file.rst
diff --git a/share/cmake-3.17/Help/command/find_library.rst b/share/cmake-3.18/Help/command/find_library.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/find_library.rst
rename to share/cmake-3.18/Help/command/find_library.rst
diff --git a/share/cmake-3.17/Help/command/find_package.rst b/share/cmake-3.18/Help/command/find_package.rst
similarity index 96%
rename from share/cmake-3.17/Help/command/find_package.rst
rename to share/cmake-3.18/Help/command/find_package.rst
index 64a16f3..857de78 100644
--- a/share/cmake-3.17/Help/command/find_package.rst
+++ b/share/cmake-3.18/Help/command/find_package.rst
@@ -59,7 +59,7 @@
 messages.  Some find-modules provide limited or no support for versioning;
 check the module documentation.
 
-If the ``MODULE`` option is not specfied in the above signature,
+If the ``MODULE`` option is not specified in the above signature,
 CMake first searches for the package using Module mode. Then, if the
 package is not found, it searches again using Config mode. A user
 may set the variable :variable:`CMAKE_FIND_PACKAGE_PREFER_CONFIG` to
@@ -302,23 +302,23 @@
    are intended to be used on the command line with a ``-DVAR=value``.
    The values are interpreted as :ref:`semicolon-separated lists <CMake Language Lists>`.
    This can be skipped if ``NO_CMAKE_PATH`` is passed or by setting the
-   :variable:`CMAKE_FIND_USE_CMAKE_PATH` to ``FALSE``::
+   :variable:`CMAKE_FIND_USE_CMAKE_PATH` to ``FALSE``:
 
-     CMAKE_PREFIX_PATH
-     CMAKE_FRAMEWORK_PATH
-     CMAKE_APPBUNDLE_PATH
+   * :variable:`CMAKE_PREFIX_PATH`
+   * :variable:`CMAKE_FRAMEWORK_PATH`
+   * :variable:`CMAKE_APPBUNDLE_PATH`
 
 3. Search paths specified in cmake-specific environment variables.
    These are intended to be set in the user's shell configuration,
    and therefore use the host's native path separator
    (``;`` on Windows and ``:`` on UNIX).
    This can be skipped if ``NO_CMAKE_ENVIRONMENT_PATH`` is passed or by setting
-   the :variable:`CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH` to ``FALSE``::
+   the :variable:`CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH` to ``FALSE``:
 
-     <PackageName>_DIR
-     CMAKE_PREFIX_PATH
-     CMAKE_FRAMEWORK_PATH
-     CMAKE_APPBUNDLE_PATH
+   * ``<PackageName>_DIR``
+   * :envvar:`CMAKE_PREFIX_PATH`
+   * ``CMAKE_FRAMEWORK_PATH``
+   * ``CMAKE_APPBUNDLE_PATH``
 
 4. Search paths specified by the ``HINTS`` option.  These should be paths
    computed by system introspection, such as a hint provided by the
@@ -329,9 +329,9 @@
    skipped if ``NO_SYSTEM_ENVIRONMENT_PATH`` is passed  or by setting the
    :variable:`CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH` to ``FALSE``. Path entries
    ending in ``/bin`` or ``/sbin`` are automatically converted to their
-   parent directories::
+   parent directories:
 
-     PATH
+   * ``PATH``
 
 6. Search paths stored in the CMake :ref:`User Package Registry`.
    This can be skipped if ``NO_CMAKE_PACKAGE_REGISTRY`` is passed or by
@@ -345,11 +345,15 @@
 7. Search cmake variables defined in the Platform files for the
    current system.  This can be skipped if ``NO_CMAKE_SYSTEM_PATH`` is
    passed or by setting the :variable:`CMAKE_FIND_USE_CMAKE_SYSTEM_PATH`
-   to ``FALSE``::
+   to ``FALSE``:
 
-     CMAKE_SYSTEM_PREFIX_PATH
-     CMAKE_SYSTEM_FRAMEWORK_PATH
-     CMAKE_SYSTEM_APPBUNDLE_PATH
+   * :variable:`CMAKE_SYSTEM_PREFIX_PATH`
+   * :variable:`CMAKE_SYSTEM_FRAMEWORK_PATH`
+   * :variable:`CMAKE_SYSTEM_APPBUNDLE_PATH`
+
+   The platform paths that these variables contain are locations that
+   typically include installed software. An example being ``/usr/local`` for
+   UNIX based platforms.
 
 8. Search paths stored in the CMake :ref:`System Package Registry`.
    This can be skipped if ``NO_CMAKE_SYSTEM_PACKAGE_REGISTRY`` is passed
diff --git a/share/cmake-3.17/Help/command/find_path.rst b/share/cmake-3.18/Help/command/find_path.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/find_path.rst
rename to share/cmake-3.18/Help/command/find_path.rst
diff --git a/share/cmake-3.17/Help/command/find_program.rst b/share/cmake-3.18/Help/command/find_program.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/find_program.rst
rename to share/cmake-3.18/Help/command/find_program.rst
diff --git a/share/cmake-3.17/Help/command/fltk_wrap_ui.rst b/share/cmake-3.18/Help/command/fltk_wrap_ui.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/fltk_wrap_ui.rst
rename to share/cmake-3.18/Help/command/fltk_wrap_ui.rst
diff --git a/share/cmake-3.17/Help/command/foreach.rst b/share/cmake-3.18/Help/command/foreach.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/foreach.rst
rename to share/cmake-3.18/Help/command/foreach.rst
diff --git a/share/cmake-3.17/Help/command/function.rst b/share/cmake-3.18/Help/command/function.rst
similarity index 94%
rename from share/cmake-3.17/Help/command/function.rst
rename to share/cmake-3.18/Help/command/function.rst
index 53ba754..7a9b907 100644
--- a/share/cmake-3.17/Help/command/function.rst
+++ b/share/cmake-3.18/Help/command/function.rst
@@ -44,11 +44,15 @@
   foo()
   Foo()
   FOO()
+  cmake_language(CALL foo)
 
 and so on. However, it is strongly recommended to stay with the
 case chosen in the function definition. Typically functions use
 all-lowercase names.
 
+The :command:`cmake_language(CALL ...)` command can also be used to
+invoke the function.
+
 Arguments
 ^^^^^^^^^
 
diff --git a/share/cmake-3.17/Help/command/get_cmake_property.rst b/share/cmake-3.18/Help/command/get_cmake_property.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/get_cmake_property.rst
rename to share/cmake-3.18/Help/command/get_cmake_property.rst
diff --git a/share/cmake-3.17/Help/command/get_directory_property.rst b/share/cmake-3.18/Help/command/get_directory_property.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/get_directory_property.rst
rename to share/cmake-3.18/Help/command/get_directory_property.rst
diff --git a/share/cmake-3.17/Help/command/get_filename_component.rst b/share/cmake-3.18/Help/command/get_filename_component.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/get_filename_component.rst
rename to share/cmake-3.18/Help/command/get_filename_component.rst
diff --git a/share/cmake-3.17/Help/command/get_property.rst b/share/cmake-3.18/Help/command/get_property.rst
similarity index 65%
rename from share/cmake-3.17/Help/command/get_property.rst
rename to share/cmake-3.18/Help/command/get_property.rst
index c0f9b46..0602518 100644
--- a/share/cmake-3.17/Help/command/get_property.rst
+++ b/share/cmake-3.18/Help/command/get_property.rst
@@ -10,6 +10,7 @@
                 DIRECTORY [<dir>]  |
                 TARGET    <target> |
                 SOURCE    <source> |
+                          [DIRECTORY <dir> | TARGET_DIRECTORY <target>] |
                 INSTALL   <file>   |
                 TEST      <test>   |
                 CACHE     <entry>  |
@@ -30,18 +31,36 @@
   Scope defaults to the current directory but another
   directory (already processed by CMake) may be named by the
   full or relative path ``<dir>``.
+  See also the :command:`get_directory_property` command.
 
 ``TARGET``
   Scope must name one existing target.
+  See also the :command:`get_target_property` command.
 
 ``SOURCE``
-  Scope must name one source file.
+  Scope must name one source file.  By default, the source file's property
+  will be read from the current source directory's scope, but this can be
+  overridden with one of the following sub-options:
+
+  ``DIRECTORY <dir>``
+    The source file property will be read from the ``<dir>`` directory's
+    scope.  CMake must already know about that source directory, either by
+    having added it through a call to :command:`add_subdirectory` or ``<dir>``
+    being the top level source directory.  Relative paths are treated as
+    relative to the current source directory.
+
+  ``TARGET_DIRECTORY <target>``
+    The source file property will be read from the directory scope in which
+    ``<target>`` was created (``<target>`` must therefore already exist).
+
+  See also the :command:`get_source_file_property` command.
 
 ``INSTALL``
   Scope must name one installed file path.
 
 ``TEST``
   Scope must name one existing test.
+  See also the :command:`get_test_property` command.
 
 ``CACHE``
   Scope must name one cache entry.
diff --git a/share/cmake-3.18/Help/command/get_source_file_property.rst b/share/cmake-3.18/Help/command/get_source_file_property.rst
new file mode 100644
index 0000000..76ed776
--- /dev/null
+++ b/share/cmake-3.18/Help/command/get_source_file_property.rst
@@ -0,0 +1,40 @@
+get_source_file_property
+------------------------
+
+Get a property for a source file.
+
+.. code-block:: cmake
+
+  get_source_file_property(<variable> <file>
+                           [DIRECTORY <dir> | TARGET_DIRECTORY <target>]
+                           <property>)
+
+Gets a property from a source file.  The value of the property is
+stored in the specified ``<variable>``.  If the source property is not found,
+the behavior depends on whether it has been defined to be an ``INHERITED``
+property or not (see :command:`define_property`).  Non-inherited properties
+will set ``variable`` to ``NOTFOUND``, whereas inherited properties will search
+the relevant parent scope as described for the :command:`define_property`
+command and if still unable to find the property, ``variable`` will be set to
+an empty string.
+
+By default, the source file's property will be read from the current source
+directory's scope, but this can be overridden with one of the following
+sub-options:
+
+``DIRECTORY <dir>``
+  The source file property will be read from the ``<dir>`` directory's
+  scope.  CMake must already know about that source directory, either by
+  having added it through a call to :command:`add_subdirectory` or ``<dir>``
+  being the top level source directory.  Relative paths are treated as
+  relative to the current source directory.
+
+``TARGET_DIRECTORY <target>``
+  The source file property will be read from the directory scope in which
+  ``<target>`` was created (``<target>`` must therefore already exist).
+
+Use :command:`set_source_files_properties` to set property values.  Source
+file properties usually control how the file is built. One property that is
+always there is :prop_sf:`LOCATION`.
+
+See also the more general :command:`get_property` command.
diff --git a/share/cmake-3.17/Help/command/get_target_property.rst b/share/cmake-3.18/Help/command/get_target_property.rst
similarity index 68%
rename from share/cmake-3.17/Help/command/get_target_property.rst
rename to share/cmake-3.18/Help/command/get_target_property.rst
index 11e07ea..985b1ff 100644
--- a/share/cmake-3.17/Help/command/get_target_property.rst
+++ b/share/cmake-3.18/Help/command/get_target_property.rst
@@ -5,15 +5,15 @@
 
 .. code-block:: cmake
 
-  get_target_property(VAR target property)
+  get_target_property(<VAR> target property)
 
 Get a property from a target.  The value of the property is stored in
-the variable ``VAR``.  If the target property is not found, the behavior
+the variable ``<VAR>``.  If the target property is not found, the behavior
 depends on whether it has been defined to be an ``INHERITED`` property
 or not (see :command:`define_property`).  Non-inherited properties will
-set ``VAR`` to ``NOTFOUND``, whereas inherited properties will search the
-relevant parent scope as described for the :command:`define_property`
-command and if still unable to find the property, ``VAR`` will be set to
+set ``<VAR>`` to ``<VAR>-NOTFOUND``, whereas inherited properties will search
+the relevant parent scope as described for the :command:`define_property`
+command and if still unable to find the property, ``<VAR>`` will be set to
 an empty string.
 
 Use :command:`set_target_properties` to set target property values.
diff --git a/share/cmake-3.17/Help/command/get_test_property.rst b/share/cmake-3.18/Help/command/get_test_property.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/get_test_property.rst
rename to share/cmake-3.18/Help/command/get_test_property.rst
diff --git a/share/cmake-3.17/Help/command/if.rst b/share/cmake-3.18/Help/command/if.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/if.rst
rename to share/cmake-3.18/Help/command/if.rst
diff --git a/share/cmake-3.17/Help/command/include.rst b/share/cmake-3.18/Help/command/include.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/include.rst
rename to share/cmake-3.18/Help/command/include.rst
diff --git a/share/cmake-3.17/Help/command/include_directories.rst b/share/cmake-3.18/Help/command/include_directories.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/include_directories.rst
rename to share/cmake-3.18/Help/command/include_directories.rst
diff --git a/share/cmake-3.17/Help/command/include_external_msproject.rst b/share/cmake-3.18/Help/command/include_external_msproject.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/include_external_msproject.rst
rename to share/cmake-3.18/Help/command/include_external_msproject.rst
diff --git a/share/cmake-3.17/Help/command/include_guard.rst b/share/cmake-3.18/Help/command/include_guard.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/include_guard.rst
rename to share/cmake-3.18/Help/command/include_guard.rst
diff --git a/share/cmake-3.17/Help/command/include_regular_expression.rst b/share/cmake-3.18/Help/command/include_regular_expression.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/include_regular_expression.rst
rename to share/cmake-3.18/Help/command/include_regular_expression.rst
diff --git a/share/cmake-3.17/Help/command/install.rst b/share/cmake-3.18/Help/command/install.rst
similarity index 92%
rename from share/cmake-3.17/Help/command/install.rst
rename to share/cmake-3.18/Help/command/install.rst
index 5affc5b..c8df7d9 100644
--- a/share/cmake-3.17/Help/command/install.rst
+++ b/share/cmake-3.18/Help/command/install.rst
@@ -18,10 +18,12 @@
 Introduction
 ^^^^^^^^^^^^
 
-This command generates installation rules for a project.  Rules
-specified by calls to this command within a source directory are
-executed in order during installation.  The order across directories
-is not defined.
+This command generates installation rules for a project.  Install rules
+specified by calls to the ``install()`` command within a source directory
+are executed in order during installation.  Install rules in subdirectories
+added by calls to the :command:`add_subdirectory` command are interleaved
+with those in the parent directory to run in the order declared (see
+policy :policy:`CMP0082`).
 
 There are multiple signatures for this command.  Some of them define
 installation options for files and targets.  Options common to
@@ -30,13 +32,20 @@
 
 ``DESTINATION``
   Specify the directory on disk to which a file will be installed.
-  If a full path (with a leading slash or drive letter) is given
-  it is used directly.  If a relative path is given it is interpreted
-  relative to the value of the :variable:`CMAKE_INSTALL_PREFIX` variable.
+  Arguments can be relative or absolute paths.
+
+  If a relative path is given it is interpreted relative to the value
+  of the :variable:`CMAKE_INSTALL_PREFIX` variable.
   The prefix can be relocated at install time using the ``DESTDIR``
   mechanism explained in the :variable:`CMAKE_INSTALL_PREFIX` variable
   documentation.
 
+  If an absolute path (with a leading slash or drive letter) is given
+  it is used verbatim.
+
+  As absolute paths are not supported by :manual:`cpack <cpack(1)>` installer
+  generators, it is preferable to use relative paths throughout.
+
 ``PERMISSIONS``
   Specify permissions for installed files.  Valid permissions are
   ``OWNER_READ``, ``OWNER_WRITE``, ``OWNER_EXECUTE``, ``GROUP_READ``,
@@ -119,31 +128,38 @@
           )
 
 The ``TARGETS`` form specifies rules for installing targets from a
-project.  There are several kinds of target files that may be installed:
+project.  There are several kinds of target :ref:`Output Artifacts`
+that may be installed:
 
 ``ARCHIVE``
-  Static libraries are treated as ``ARCHIVE`` targets, except those
-  marked with the ``FRAMEWORK`` property on macOS (see ``FRAMEWORK``
-  below.) For DLL platforms (all Windows-based systems including
-  Cygwin), the DLL import library is treated as an ``ARCHIVE`` target.
-  On AIX, the linker import file created for executables with
-  :prop_tgt:`ENABLE_EXPORTS` is treated as an ``ARCHIVE`` target.
+  Target artifacts of this kind include:
+
+  * *Static libraries*
+    (except on macOS when marked as ``FRAMEWORK``, see below);
+  * *DLL import libraries*
+    (on all Windows-based systems including Cygwin; they have extension
+    ``.lib``, in contrast to the ``.dll`` libraries that go to ``RUNTIME``);
+  * On AIX, the *linker import file* created for executables with
+    :prop_tgt:`ENABLE_EXPORTS` enabled.
 
 ``LIBRARY``
-  Module libraries are always treated as ``LIBRARY`` targets. For non-
-  DLL platforms shared libraries are treated as ``LIBRARY`` targets,
-  except those marked with the ``FRAMEWORK`` property on macOS (see
-  ``FRAMEWORK`` below.)
+  Target artifacts of this kind include:
+
+  * *Shared libraries*, except
+
+    - DLLs (these go to ``RUNTIME``, see below),
+    - on macOS when marked as ``FRAMEWORK`` (see below).
 
 ``RUNTIME``
-  Executables are treated as ``RUNTIME`` objects, except those marked
-  with the ``MACOSX_BUNDLE`` property on macOS (see ``BUNDLE`` below.)
-  For DLL platforms (all Windows-based systems including Cygwin), the
-  DLL part of a shared library is treated as a ``RUNTIME`` target.
+  Target artifacts of this kind include:
+
+  * *Executables*
+    (except on macOS when marked as ``MACOSX_BUNDLE``, see ``BUNDLE`` below);
+  * DLLs (on all Windows-based systems including Cygwin; note that the
+    accompanying import libraries are of kind ``ARCHIVE``).
 
 ``OBJECTS``
-  Object libraries (a simple group of object files) are always treated
-  as ``OBJECTS`` targets.
+  Object files associated with *object libraries*.
 
 ``FRAMEWORK``
   Both static and shared libraries marked with the ``FRAMEWORK``
@@ -630,6 +646,13 @@
 ``(IMPORTED_)?LINK_INTERFACE_LIBRARIES(_<CONFIG>)?`` to be exported, when
 policy :policy:`CMP0022` is ``NEW``.
 
+.. note::
+  The installed ``<export-name>.cmake`` file may come with additional
+  per-configuration ``<export-name>-*.cmake`` files to be loaded by
+  globbing.  Do not use an export name that is the same as the package
+  name in combination with installing a ``<package-name>-config.cmake``
+  file or the latter may be incorrectly matched by the glob and loaded.
+
 When a ``COMPONENT`` option is given, the listed ``<component>`` implicitly
 depends on all components mentioned in the export set. The exported
 ``<name>.cmake`` file will require each of the exported components to be
@@ -684,6 +707,11 @@
 Generated Installation Script
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
+.. note::
+
+  Use of this feature is not recommended. Please consider using the
+  ``--install`` argument of :manual:`cmake(1)` instead.
+
 The ``install()`` command generates a file, ``cmake_install.cmake``, inside
 the build directory, which is used internally by the generated install target
 and by CPack. You can also invoke this script manually with ``cmake -P``. This
diff --git a/share/cmake-3.17/Help/command/install_files.rst b/share/cmake-3.18/Help/command/install_files.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/install_files.rst
rename to share/cmake-3.18/Help/command/install_files.rst
diff --git a/share/cmake-3.17/Help/command/install_programs.rst b/share/cmake-3.18/Help/command/install_programs.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/install_programs.rst
rename to share/cmake-3.18/Help/command/install_programs.rst
diff --git a/share/cmake-3.17/Help/command/install_targets.rst b/share/cmake-3.18/Help/command/install_targets.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/install_targets.rst
rename to share/cmake-3.18/Help/command/install_targets.rst
diff --git a/share/cmake-3.17/Help/command/link_directories.rst b/share/cmake-3.18/Help/command/link_directories.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/link_directories.rst
rename to share/cmake-3.18/Help/command/link_directories.rst
diff --git a/share/cmake-3.17/Help/command/link_libraries.rst b/share/cmake-3.18/Help/command/link_libraries.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/link_libraries.rst
rename to share/cmake-3.18/Help/command/link_libraries.rst
diff --git a/share/cmake-3.17/Help/command/list.rst b/share/cmake-3.18/Help/command/list.rst
similarity index 95%
rename from share/cmake-3.17/Help/command/list.rst
rename to share/cmake-3.18/Help/command/list.rst
index 50bf417..4d339a0 100644
--- a/share/cmake-3.17/Help/command/list.rst
+++ b/share/cmake-3.18/Help/command/list.rst
@@ -308,6 +308,13 @@
 * ``STRING``: Sorts a list of strings alphabetically.  This is the
   default behavior if the ``COMPARE`` option is not given.
 * ``FILE_BASENAME``: Sorts a list of pathnames of files by their basenames.
+* ``NATURAL``: Sorts a list of strings using natural order
+  (see ``strverscmp(3)`` manual), i.e. such that contiguous digits
+  are compared as whole numbers.
+  For example: the following list `10.0 1.1 2.1 8.0 2.0 3.1`
+  will be sorted as `1.1 2.0 2.1 3.1 8.0 10.0` if the ``NATURAL``
+  comparison is selected where it will be sorted as
+  `1.1 10.0 2.0 2.1 3.1 8.0` with the ``STRING`` comparison.
 
 Use the ``CASE`` keyword to select a case sensitive or case insensitive
 sort mode.  The ``<case>`` option should be one of:
diff --git a/share/cmake-3.17/Help/command/load_cache.rst b/share/cmake-3.18/Help/command/load_cache.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/load_cache.rst
rename to share/cmake-3.18/Help/command/load_cache.rst
diff --git a/share/cmake-3.17/Help/command/load_command.rst b/share/cmake-3.18/Help/command/load_command.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/load_command.rst
rename to share/cmake-3.18/Help/command/load_command.rst
diff --git a/share/cmake-3.17/Help/command/macro.rst b/share/cmake-3.18/Help/command/macro.rst
similarity index 97%
rename from share/cmake-3.17/Help/command/macro.rst
rename to share/cmake-3.18/Help/command/macro.rst
index 3f6f2f9..797a90d 100644
--- a/share/cmake-3.17/Help/command/macro.rst
+++ b/share/cmake-3.18/Help/command/macro.rst
@@ -42,11 +42,15 @@
   foo()
   Foo()
   FOO()
+  cmake_language(CALL foo)
 
 and so on. However, it is strongly recommended to stay with the
 case chosen in the macro definition.  Typically macros use
 all-lowercase names.
 
+The :command:`cmake_language(CALL ...)` command can also be used to
+invoke the macro.
+
 Arguments
 ^^^^^^^^^
 
@@ -95,7 +99,7 @@
 :variable:`CMAKE_CURRENT_FUNCTION_LIST_DIR`,
 :variable:`CMAKE_CURRENT_FUNCTION_LIST_FILE`,
 :variable:`CMAKE_CURRENT_FUNCTION_LIST_LINE` variables are not
-set for macro.
+set for a macro.
 
 .. _`Argument Caveats`:
 
diff --git a/share/cmake-3.17/Help/command/make_directory.rst b/share/cmake-3.18/Help/command/make_directory.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/make_directory.rst
rename to share/cmake-3.18/Help/command/make_directory.rst
diff --git a/share/cmake-3.17/Help/command/mark_as_advanced.rst b/share/cmake-3.18/Help/command/mark_as_advanced.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/mark_as_advanced.rst
rename to share/cmake-3.18/Help/command/mark_as_advanced.rst
diff --git a/share/cmake-3.17/Help/command/math.rst b/share/cmake-3.18/Help/command/math.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/math.rst
rename to share/cmake-3.18/Help/command/math.rst
diff --git a/share/cmake-3.17/Help/command/message.rst b/share/cmake-3.18/Help/command/message.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/message.rst
rename to share/cmake-3.18/Help/command/message.rst
diff --git a/share/cmake-3.17/Help/command/option.rst b/share/cmake-3.18/Help/command/option.rst
similarity index 87%
rename from share/cmake-3.17/Help/command/option.rst
rename to share/cmake-3.18/Help/command/option.rst
index 8956307..02b8dac 100644
--- a/share/cmake-3.17/Help/command/option.rst
+++ b/share/cmake-3.18/Help/command/option.rst
@@ -9,7 +9,7 @@
 
 Provides an option for the user to select as ``ON`` or ``OFF``.
 If no initial ``<value>`` is provided, ``OFF`` is used.
-If ``<variable>`` is already set as a normal variable
+If ``<variable>`` is already set as a normal or cache variable,
 then the command does nothing (see policy :policy:`CMP0077`).
 
 If you have options that depend on the values of other options, see
diff --git a/share/cmake-3.17/Help/command/output_required_files.rst b/share/cmake-3.18/Help/command/output_required_files.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/output_required_files.rst
rename to share/cmake-3.18/Help/command/output_required_files.rst
diff --git a/share/cmake-3.17/Help/command/project.rst b/share/cmake-3.18/Help/command/project.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/project.rst
rename to share/cmake-3.18/Help/command/project.rst
diff --git a/share/cmake-3.17/Help/command/qt_wrap_cpp.rst b/share/cmake-3.18/Help/command/qt_wrap_cpp.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/qt_wrap_cpp.rst
rename to share/cmake-3.18/Help/command/qt_wrap_cpp.rst
diff --git a/share/cmake-3.17/Help/command/qt_wrap_ui.rst b/share/cmake-3.18/Help/command/qt_wrap_ui.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/qt_wrap_ui.rst
rename to share/cmake-3.18/Help/command/qt_wrap_ui.rst
diff --git a/share/cmake-3.17/Help/command/remove.rst b/share/cmake-3.18/Help/command/remove.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/remove.rst
rename to share/cmake-3.18/Help/command/remove.rst
diff --git a/share/cmake-3.17/Help/command/remove_definitions.rst b/share/cmake-3.18/Help/command/remove_definitions.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/remove_definitions.rst
rename to share/cmake-3.18/Help/command/remove_definitions.rst
diff --git a/share/cmake-3.17/Help/command/return.rst b/share/cmake-3.18/Help/command/return.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/return.rst
rename to share/cmake-3.18/Help/command/return.rst
diff --git a/share/cmake-3.17/Help/command/separate_arguments.rst b/share/cmake-3.18/Help/command/separate_arguments.rst
similarity index 96%
rename from share/cmake-3.17/Help/command/separate_arguments.rst
rename to share/cmake-3.18/Help/command/separate_arguments.rst
index fbca859..ab3d5c1 100644
--- a/share/cmake-3.17/Help/command/separate_arguments.rst
+++ b/share/cmake-3.18/Help/command/separate_arguments.rst
@@ -19,7 +19,7 @@
 be one of the following keywords:
 
 ``UNIX_COMMAND``
-  Arguments are separated by by unquoted whitespace.
+  Arguments are separated by unquoted whitespace.
   Both single-quote and double-quote pairs are respected.
   A backslash escapes the next literal character (``\"`` is ``"``);
   there are no special escapes (``\n`` is just ``n``).
diff --git a/share/cmake-3.17/Help/command/set.rst b/share/cmake-3.18/Help/command/set.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/set.rst
rename to share/cmake-3.18/Help/command/set.rst
diff --git a/share/cmake-3.17/Help/command/set_directory_properties.rst b/share/cmake-3.18/Help/command/set_directory_properties.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/set_directory_properties.rst
rename to share/cmake-3.18/Help/command/set_directory_properties.rst
diff --git a/share/cmake-3.17/Help/command/set_property.rst b/share/cmake-3.18/Help/command/set_property.rst
similarity index 68%
rename from share/cmake-3.17/Help/command/set_property.rst
rename to share/cmake-3.18/Help/command/set_property.rst
index ec08c8f..93c2d9c 100644
--- a/share/cmake-3.17/Help/command/set_property.rst
+++ b/share/cmake-3.18/Help/command/set_property.rst
@@ -8,12 +8,14 @@
   set_property(<GLOBAL                      |
                 DIRECTORY [<dir>]           |
                 TARGET    [<target1> ...]   |
-                SOURCE    [<src1> ...]      |
+                SOURCE    [<src1> ...]
+                          [DIRECTORY <dirs> ...] |
+                          [TARGET_DIRECTORY <targets> ...]
                 INSTALL   [<file1> ...]     |
                 TEST      [<test1> ...]     |
                 CACHE     [<entry1> ...]    >
                [APPEND] [APPEND_STRING]
-               PROPERTY <name> [value1 ...])
+               PROPERTY <name> [<value1> ...])
 
 Sets one property on zero or more objects of a scope.
 
@@ -33,9 +35,23 @@
   See also the :command:`set_target_properties` command.
 
 ``SOURCE``
-  Scope may name zero or more source files.  Note that source
-  file properties are visible only to targets added in the same
-  directory (``CMakeLists.txt``).
+  Scope may name zero or more source files.  By default, source file properties
+  are only visible to targets added in the same directory (``CMakeLists.txt``).
+  Visibility can be set in other directory scopes using one or both of the
+  following sub-options:
+
+  ``DIRECTORY <dirs>...``
+    The source file property will be set in each of the ``<dirs>``
+    directories' scopes.  CMake must already know about each of these
+    source directories, either by having added them through a call to
+    :command:`add_subdirectory` or it being the top level source directory.
+    Relative paths are treated as relative to the current source directory.
+
+  ``TARGET_DIRECTORY <targets>...``
+    The source file property will be set in each of the directory scopes
+    where any of the specified ``<targets>`` were created (the ``<targets>``
+    must therefore already exist).
+
   See also the :command:`set_source_files_properties` command.
 
 ``INSTALL``
@@ -66,7 +82,8 @@
 property value in the form of a semicolon-separated list.
 
 If the ``APPEND`` option is given the list is appended to any existing
-property value.  If the ``APPEND_STRING`` option is given the string is
+property value (except that empty values are ignored and not appended).
+If the ``APPEND_STRING`` option is given the string is
 appended to any existing property value as string, i.e. it results in a
 longer string and not a list of strings.  When using ``APPEND`` or
 ``APPEND_STRING`` with a property defined to support ``INHERITED``
diff --git a/share/cmake-3.18/Help/command/set_source_files_properties.rst b/share/cmake-3.18/Help/command/set_source_files_properties.rst
new file mode 100644
index 0000000..9558b40
--- /dev/null
+++ b/share/cmake-3.18/Help/command/set_source_files_properties.rst
@@ -0,0 +1,37 @@
+set_source_files_properties
+---------------------------
+
+Source files can have properties that affect how they are built.
+
+.. code-block:: cmake
+
+  set_source_files_properties(<files> ...
+                              [DIRECTORY <dirs> ...]
+                              [TARGET_DIRECTORY <targets> ...]
+                              PROPERTIES <prop1> <value1>
+                              [<prop2> <value2>] ...)
+
+Sets properties associated with source files using a key/value paired
+list.
+
+By default, source file properties are only visible to targets added in the
+same directory (``CMakeLists.txt``).  Visibility can be set in other directory
+scopes using one or both of the following options:
+
+``DIRECTORY <dirs>...``
+  The source file properties will be set in each of the ``<dirs>``
+  directories' scopes.  CMake must already know about each of these
+  source directories, either by having added them through a call to
+  :command:`add_subdirectory` or it being the top level source directory.
+  Relative paths are treated as relative to the current source directory.
+
+``TARGET_DIRECTORY <targets>...``
+  The source file properties will be set in each of the directory scopes
+  where any of the specified ``<targets>`` were created (the ``<targets>``
+  must therefore already exist).
+
+Use :command:`get_source_file_property` to get property values.
+See also the :command:`set_property(SOURCE)` command.
+
+See :ref:`Source File Properties` for the list of properties known
+to CMake.
diff --git a/share/cmake-3.17/Help/command/set_target_properties.rst b/share/cmake-3.18/Help/command/set_target_properties.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/set_target_properties.rst
rename to share/cmake-3.18/Help/command/set_target_properties.rst
diff --git a/share/cmake-3.17/Help/command/set_tests_properties.rst b/share/cmake-3.18/Help/command/set_tests_properties.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/set_tests_properties.rst
rename to share/cmake-3.18/Help/command/set_tests_properties.rst
diff --git a/share/cmake-3.17/Help/command/site_name.rst b/share/cmake-3.18/Help/command/site_name.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/site_name.rst
rename to share/cmake-3.18/Help/command/site_name.rst
diff --git a/share/cmake-3.17/Help/command/source_group.rst b/share/cmake-3.18/Help/command/source_group.rst
similarity index 92%
rename from share/cmake-3.17/Help/command/source_group.rst
rename to share/cmake-3.18/Help/command/source_group.rst
index 6623c98..5ae9e51 100644
--- a/share/cmake-3.17/Help/command/source_group.rst
+++ b/share/cmake-3.18/Help/command/source_group.rst
@@ -37,11 +37,13 @@
 If no group explicitly lists the file, the *last* group whose
 regular expression matches the file will be favored.
 
-The ``<name>`` of the group and ``<prefix>`` argument may contain backslashes
-to specify subgroups:
+The ``<name>`` of the group and ``<prefix>`` argument may contain forward
+slashes or backslashes to specify subgroups.  Backslashes need to be escaped
+appropriately:
 
 .. code-block:: cmake
 
+  source_group(base/subdir ...)
   source_group(outer\\inner ...)
   source_group(TREE <root> PREFIX sources\\inc ...)
 
diff --git a/share/cmake-3.17/Help/command/string.rst b/share/cmake-3.18/Help/command/string.rst
similarity index 95%
rename from share/cmake-3.17/Help/command/string.rst
rename to share/cmake-3.18/Help/command/string.rst
index 81a2061..cfcf914 100644
--- a/share/cmake-3.17/Help/command/string.rst
+++ b/share/cmake-3.18/Help/command/string.rst
@@ -11,8 +11,6 @@
   `Search and Replace`_
     string(`FIND`_ <string> <substring> <out-var> [...])
     string(`REPLACE`_ <match-string> <replace-string> <out-var> <input>...)
-
-  `Regular Expressions`_
     string(`REGEX MATCH`_ <match-regex> <out-var> <input>...)
     string(`REGEX MATCHALL`_ <match-regex> <out-var> <input>...)
     string(`REGEX REPLACE`_ <match-regex> <replace-expr> <out-var> <input>...)
@@ -38,6 +36,7 @@
 
   `Generation`_
     string(`ASCII`_ <number>... <out-var>)
+    string(`HEX`_ <string> <out-var>)
     string(`CONFIGURE`_ <string> <out-var> [...])
     string(`MAKE_C_IDENTIFIER`_ <string> <out-var>)
     string(`RANDOM`_ [<option>...] <out-var>)
@@ -47,6 +46,9 @@
 Search and Replace
 ^^^^^^^^^^^^^^^^^^
 
+Search and Replace With Plain Strings
+"""""""""""""""""""""""""""""""""""""
+
 .. _FIND:
 
 .. code-block:: cmake
@@ -74,8 +76,8 @@
 Replace all occurrences of ``<match_string>`` in the ``<input>``
 with ``<replace_string>`` and store the result in the ``<output_variable>``.
 
-Regular Expressions
-^^^^^^^^^^^^^^^^^^^
+Search and Replace With Regular Expressions
+"""""""""""""""""""""""""""""""""""""""""""
 
 .. _`REGEX MATCH`:
 
@@ -87,6 +89,7 @@
 Match the ``<regular_expression>`` once and store the match in the
 ``<output_variable>``.
 All ``<input>`` arguments are concatenated before matching.
+Regular expressions are specified in the subsection just below.
 
 .. _`REGEX MATCHALL`:
 
@@ -353,6 +356,16 @@
 
 Convert all numbers into corresponding ASCII characters.
 
+.. _HEX:
+
+.. code-block:: cmake
+
+  string(HEX <string> <output_variable>)
+
+Convert each byte in the input ``<string>`` to its hexadecimal representation
+and store the concatenated hex digits in the ``<output_variable>``. Letters in
+the output (``a`` through ``f``) are in lowercase.
+
 .. _CONFIGURE:
 
 .. code-block:: cmake
diff --git a/share/cmake-3.17/Help/command/subdir_depends.rst b/share/cmake-3.18/Help/command/subdir_depends.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/subdir_depends.rst
rename to share/cmake-3.18/Help/command/subdir_depends.rst
diff --git a/share/cmake-3.17/Help/command/subdirs.rst b/share/cmake-3.18/Help/command/subdirs.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/subdirs.rst
rename to share/cmake-3.18/Help/command/subdirs.rst
diff --git a/share/cmake-3.17/Help/command/target_compile_definitions.rst b/share/cmake-3.18/Help/command/target_compile_definitions.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/target_compile_definitions.rst
rename to share/cmake-3.18/Help/command/target_compile_definitions.rst
diff --git a/share/cmake-3.17/Help/command/target_compile_features.rst b/share/cmake-3.18/Help/command/target_compile_features.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/target_compile_features.rst
rename to share/cmake-3.18/Help/command/target_compile_features.rst
diff --git a/share/cmake-3.17/Help/command/target_compile_options.rst b/share/cmake-3.18/Help/command/target_compile_options.rst
similarity index 95%
rename from share/cmake-3.17/Help/command/target_compile_options.rst
rename to share/cmake-3.18/Help/command/target_compile_options.rst
index 47e7d86..3c733c5 100644
--- a/share/cmake-3.17/Help/command/target_compile_options.rst
+++ b/share/cmake-3.18/Help/command/target_compile_options.rst
@@ -46,3 +46,5 @@
 and :command:`target_include_directories`.
 
 For directory-wide settings, there is the command :command:`add_compile_options`.
+
+For file-specific settings, there is the source file property :prop_sf:`COMPILE_OPTIONS`.
diff --git a/share/cmake-3.17/Help/command/target_include_directories.rst b/share/cmake-3.18/Help/command/target_include_directories.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/target_include_directories.rst
rename to share/cmake-3.18/Help/command/target_include_directories.rst
diff --git a/share/cmake-3.17/Help/command/target_link_directories.rst b/share/cmake-3.18/Help/command/target_link_directories.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/target_link_directories.rst
rename to share/cmake-3.18/Help/command/target_link_directories.rst
diff --git a/share/cmake-3.17/Help/command/target_link_libraries.rst b/share/cmake-3.18/Help/command/target_link_libraries.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/target_link_libraries.rst
rename to share/cmake-3.18/Help/command/target_link_libraries.rst
diff --git a/share/cmake-3.17/Help/command/target_link_options.rst b/share/cmake-3.18/Help/command/target_link_options.rst
similarity index 97%
rename from share/cmake-3.17/Help/command/target_link_options.rst
rename to share/cmake-3.18/Help/command/target_link_options.rst
index b5abbc4..89038e3 100644
--- a/share/cmake-3.17/Help/command/target_link_options.rst
+++ b/share/cmake-3.18/Help/command/target_link_options.rst
@@ -43,6 +43,8 @@
 manual for available expressions.  See the :manual:`cmake-buildsystem(7)`
 manual for more on defining buildsystem properties.
 
+.. include:: DEVICE_LINK_OPTIONS.txt
+
 .. include:: OPTIONS_SHELL.txt
 
 .. include:: LINK_OPTIONS_LINKER.txt
diff --git a/share/cmake-3.17/Help/command/target_precompile_headers.rst b/share/cmake-3.18/Help/command/target_precompile_headers.rst
similarity index 90%
rename from share/cmake-3.17/Help/command/target_precompile_headers.rst
rename to share/cmake-3.18/Help/command/target_precompile_headers.rst
index 569c7eb..d4280b1 100644
--- a/share/cmake-3.17/Help/command/target_precompile_headers.rst
+++ b/share/cmake-3.18/Help/command/target_precompile_headers.rst
@@ -56,35 +56,34 @@
 must be available for the compiler to find them.  Other header file names
 (e.g. ``project_header.h``) are interpreted as being relative to the current
 source directory (e.g. :variable:`CMAKE_CURRENT_SOURCE_DIR`) and will be
-included by absolute path.
-
-Arguments to ``target_precompile_headers()`` may use "generator expressions"
-with the syntax ``$<...>``.
-See the :manual:`cmake-generator-expressions(7)` manual for available
-expressions.  See the :manual:`cmake-compile-features(7)` manual for
-information on compile features and a list of supported compilers.
-The ``$<COMPILE_LANGUAGE:...>`` generator expression is particularly
-useful for specifying a language-specific header to precompile for
-only one language (e.g. ``CXX`` and not ``C``).  For example:
+included by absolute path.  For example:
 
 .. code-block:: cmake
 
   target_precompile_headers(myTarget
     PUBLIC
       project_header.h
-      "$<$<COMPILE_LANGUAGE:CXX>:cxx_only.h>"
     PRIVATE
       [["other_header.h"]]
       <unordered_map>
   )
 
-When specifying angle brackets inside a :manual:`generator expression
-<cmake-generator-expressions(7)>`, be sure to encode the closing ``>``
-as ``$<ANGLE-R>``.  For example:
+Arguments to ``target_precompile_headers()`` may use "generator expressions"
+with the syntax ``$<...>``.
+See the :manual:`cmake-generator-expressions(7)` manual for available
+expressions.
+The ``$<COMPILE_LANGUAGE:...>`` generator expression is particularly
+useful for specifying a language-specific header to precompile for
+only one language (e.g. ``CXX`` and not ``C``).  In this case, header
+file names that are not explicitly in double quotes or angle brackets
+must be specified by absolute path.  Also, when specifying angle brackets
+inside a generator expression, be sure to encode the closing ``>`` as
+``$<ANGLE-R>``.  For example:
 
 .. code-block:: cmake
 
   target_precompile_headers(mylib PRIVATE
+    "$<$<COMPILE_LANGUAGE:CXX>:${CMAKE_CURRENT_SOURCE_DIR}/cxx_only.h>"
     "$<$<COMPILE_LANGUAGE:C>:<stddef.h$<ANGLE-R>>"
     "$<$<COMPILE_LANGUAGE:CXX>:<cstddef$<ANGLE-R>>"
   )
@@ -94,7 +93,7 @@
 ^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 The command also supports a second signature which can be used to specify that
-one target re-uses a precompiled header file artefact from another target
+one target re-uses a precompiled header file artifact from another target
 instead of generating its own:
 
 .. code-block:: cmake
diff --git a/share/cmake-3.17/Help/command/target_sources.rst b/share/cmake-3.18/Help/command/target_sources.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/target_sources.rst
rename to share/cmake-3.18/Help/command/target_sources.rst
diff --git a/share/cmake-3.17/Help/command/try_compile.rst b/share/cmake-3.18/Help/command/try_compile.rst
similarity index 99%
rename from share/cmake-3.17/Help/command/try_compile.rst
rename to share/cmake-3.18/Help/command/try_compile.rst
index edbf92c..323077a 100644
--- a/share/cmake-3.17/Help/command/try_compile.rst
+++ b/share/cmake-3.18/Help/command/try_compile.rst
@@ -135,6 +135,7 @@
 try_compile CMakeLists.txt to initialize compile target properties with
 default values:
 
+* :variable:`CMAKE_CUDA_RUNTIME_LIBRARY`
 * :variable:`CMAKE_ENABLE_EXPORTS`
 * :variable:`CMAKE_LINK_SEARCH_START_STATIC`
 * :variable:`CMAKE_LINK_SEARCH_END_STATIC`
diff --git a/share/cmake-3.17/Help/command/try_run.rst b/share/cmake-3.18/Help/command/try_run.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/try_run.rst
rename to share/cmake-3.18/Help/command/try_run.rst
diff --git a/share/cmake-3.17/Help/command/unset.rst b/share/cmake-3.18/Help/command/unset.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/unset.rst
rename to share/cmake-3.18/Help/command/unset.rst
diff --git a/share/cmake-3.17/Help/command/use_mangled_mesa.rst b/share/cmake-3.18/Help/command/use_mangled_mesa.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/use_mangled_mesa.rst
rename to share/cmake-3.18/Help/command/use_mangled_mesa.rst
diff --git a/share/cmake-3.17/Help/command/utility_source.rst b/share/cmake-3.18/Help/command/utility_source.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/utility_source.rst
rename to share/cmake-3.18/Help/command/utility_source.rst
diff --git a/share/cmake-3.17/Help/command/variable_requires.rst b/share/cmake-3.18/Help/command/variable_requires.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/variable_requires.rst
rename to share/cmake-3.18/Help/command/variable_requires.rst
diff --git a/share/cmake-3.17/Help/command/variable_watch.rst b/share/cmake-3.18/Help/command/variable_watch.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/variable_watch.rst
rename to share/cmake-3.18/Help/command/variable_watch.rst
diff --git a/share/cmake-3.17/Help/command/while.rst b/share/cmake-3.18/Help/command/while.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/while.rst
rename to share/cmake-3.18/Help/command/while.rst
diff --git a/share/cmake-3.17/Help/command/write_file.rst b/share/cmake-3.18/Help/command/write_file.rst
similarity index 100%
rename from share/cmake-3.17/Help/command/write_file.rst
rename to share/cmake-3.18/Help/command/write_file.rst
diff --git a/share/cmake-3.18/Help/cpack_gen/archive.rst b/share/cmake-3.18/Help/cpack_gen/archive.rst
new file mode 100644
index 0000000..3656aa2
--- /dev/null
+++ b/share/cmake-3.18/Help/cpack_gen/archive.rst
@@ -0,0 +1,75 @@
+CPack Archive Generator
+-----------------------
+
+CPack generator for packaging files into an archive, which can have
+any of the following formats:
+
+  - 7Z - 7zip - (.7z)
+  - TBZ2 (.tar.bz2)
+  - TGZ (.tar.gz)
+  - TXZ (.tar.xz)
+  - TZ (.tar.Z)
+  - TZST (.tar.zst)
+  - ZIP (.zip)
+
+When this generator is called from ``CPackSourceConfig.cmake`` (or through
+the ``package_source`` target), then the generated archive will contain all
+files in the project directory, except those specified in
+:variable:`CPACK_SOURCE_IGNORE_FILES`.  The following is one example of
+packaging all source files of a project:
+
+.. code-block:: cmake
+
+  set(CPACK_SOURCE_GENERATOR "TGZ")
+  set(CPACK_SOURCE_IGNORE_FILES
+    \\.git/
+    build/
+    ".*~$"
+  )
+  set(CPACK_VERBATIM_VARIABLES YES)
+  include(CPack)
+
+When this generator is called from ``CPackConfig.cmake`` (or through the
+``package`` target), then the generated archive will contain all files
+that have been installed via CMake's :command:`install` command (and the
+deprecated commands :command:`install_files`, :command:`install_programs`,
+and :command:`install_targets`).
+
+Variables specific to CPack Archive generator
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. variable:: CPACK_ARCHIVE_FILE_NAME
+              CPACK_ARCHIVE_<component>_FILE_NAME
+
+  Package file name without extension. The extension is determined from the
+  archive format (see list above) and automatically appended to the file name.
+  The default is ``<CPACK_PACKAGE_FILE_NAME>[-<component>]``, with spaces
+  replaced by '-'.
+
+.. variable:: CPACK_ARCHIVE_COMPONENT_INSTALL
+
+  Enable component packaging. If enabled (ON), then the archive generator
+  creates  multiple packages. The default is OFF, which means that a single
+  package containing files of all components is generated.
+
+Variables used by CPack Archive generator
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+These variables are used by the Archive generator, but are also available to
+CPack generators which are essentially archives at their core. These include:
+
+  - :cpack_gen:`CPack Cygwin Generator`
+  - :cpack_gen:`CPack FreeBSD Generator`
+
+.. variable:: CPACK_ARCHIVE_THREADS
+
+  The number of threads to use when performing the compression. If set to
+  ``0``, the number of available cores on the machine will be used instead.
+  The default is ``1`` which limits compression to a single thread. Note that
+  not all compression modes support threading in all environments. Currently,
+  only the XZ compression may support it.
+
+.. note::
+
+    Official CMake binaries available on ``cmake.org`` ship with a ``liblzma``
+    that does not support parallel compression.
diff --git a/share/cmake-3.17/Help/cpack_gen/bundle.rst b/share/cmake-3.18/Help/cpack_gen/bundle.rst
similarity index 100%
rename from share/cmake-3.17/Help/cpack_gen/bundle.rst
rename to share/cmake-3.18/Help/cpack_gen/bundle.rst
diff --git a/share/cmake-3.17/Help/cpack_gen/cygwin.rst b/share/cmake-3.18/Help/cpack_gen/cygwin.rst
similarity index 81%
rename from share/cmake-3.17/Help/cpack_gen/cygwin.rst
rename to share/cmake-3.18/Help/cpack_gen/cygwin.rst
index 1c5f7af..c65653e 100644
--- a/share/cmake-3.17/Help/cpack_gen/cygwin.rst
+++ b/share/cmake-3.18/Help/cpack_gen/cygwin.rst
@@ -3,6 +3,11 @@
 
 Cygwin CPack generator (Cygwin).
 
+Variables affecting the CPack Cygwin generator
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+  - :variable:`CPACK_ARCHIVE_THREADS`
+
 Variables specific to CPack Cygwin generator
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
diff --git a/share/cmake-3.17/Help/cpack_gen/deb.rst b/share/cmake-3.18/Help/cpack_gen/deb.rst
similarity index 98%
rename from share/cmake-3.17/Help/cpack_gen/deb.rst
rename to share/cmake-3.18/Help/cpack_gen/deb.rst
index db71c87..bf50c55 100644
--- a/share/cmake-3.17/Help/cpack_gen/deb.rst
+++ b/share/cmake-3.18/Help/cpack_gen/deb.rst
@@ -25,8 +25,8 @@
 Here are some CPack DEB generator wiki resources that are here for historic
 reasons and are no longer maintained but may still prove useful:
 
- - https://gitlab.kitware.com/cmake/community/wikis/doc/cpack/Configuration
- - https://gitlab.kitware.com/cmake/community/wikis/doc/cpack/PackageGenerators#deb-unix-only
+ - https://gitlab.kitware.com/cmake/community/-/wikis/doc/cpack/Configuration
+ - https://gitlab.kitware.com/cmake/community/-/wikis/doc/cpack/PackageGenerators#deb-unix-only
 
 List of CPack DEB generator specific variables:
 
@@ -282,7 +282,7 @@
    You may need set :variable:`CMAKE_INSTALL_RPATH` to an appropriate value
    if you use this feature, because if you don't ``dpkg-shlibdeps``
    may fail to find your own shared libs.
-   See https://gitlab.kitware.com/cmake/community/wikis/doc/cmake/RPATH-handling
+   See https://gitlab.kitware.com/cmake/community/-/wikis/doc/cmake/RPATH-handling
 
 .. variable:: CPACK_DEBIAN_PACKAGE_DEBUG
 
diff --git a/share/cmake-3.17/Help/cpack_gen/dmg.rst b/share/cmake-3.18/Help/cpack_gen/dmg.rst
similarity index 100%
rename from share/cmake-3.17/Help/cpack_gen/dmg.rst
rename to share/cmake-3.18/Help/cpack_gen/dmg.rst
diff --git a/share/cmake-3.17/Help/cpack_gen/external.rst b/share/cmake-3.18/Help/cpack_gen/external.rst
similarity index 100%
rename from share/cmake-3.17/Help/cpack_gen/external.rst
rename to share/cmake-3.18/Help/cpack_gen/external.rst
diff --git a/share/cmake-3.17/Help/cpack_gen/freebsd.rst b/share/cmake-3.18/Help/cpack_gen/freebsd.rst
similarity index 96%
rename from share/cmake-3.17/Help/cpack_gen/freebsd.rst
rename to share/cmake-3.18/Help/cpack_gen/freebsd.rst
index a8dd320..47a7784 100644
--- a/share/cmake-3.17/Help/cpack_gen/freebsd.rst
+++ b/share/cmake-3.18/Help/cpack_gen/freebsd.rst
@@ -3,6 +3,11 @@
 
 The built in (binary) CPack FreeBSD (pkg) generator (Unix only)
 
+Variables affecting the CPack FreeBSD (pkg) generator
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+  - :variable:`CPACK_ARCHIVE_THREADS`
+
 Variables specific to CPack FreeBSD (pkg) generator
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
diff --git a/share/cmake-3.17/Help/cpack_gen/ifw.rst b/share/cmake-3.18/Help/cpack_gen/ifw.rst
similarity index 79%
rename from share/cmake-3.17/Help/cpack_gen/ifw.rst
rename to share/cmake-3.18/Help/cpack_gen/ifw.rst
index 4a9ab99..776bb46 100644
--- a/share/cmake-3.17/Help/cpack_gen/ifw.rst
+++ b/share/cmake-3.18/Help/cpack_gen/ifw.rst
@@ -1,73 +1,28 @@
 CPack IFW Generator
 -------------------
 
+Configure and run the Qt Installer Framework to generate a Qt installer.
+
+.. only:: html
+
+  .. contents::
+
 Overview
 ^^^^^^^^
 
 This :manual:`cpack generator <cpack-generators(7)>` generates
 configuration and meta information for the `Qt Installer Framework
-<http://doc.qt.io/qtinstallerframework/index.html>`_ (QtIFW).
+<http://doc.qt.io/qtinstallerframework/index.html>`_ (QtIFW),
+and runs QtIFW tools to generate a Qt installer.
 
 QtIFW provides tools and utilities to create installers for
 the platforms supported by `Qt <https://www.qt.io>`_: Linux,
 Microsoft Windows, and macOS.
 
-To make use of this generator, QtIFW should also be installed.
-The module :module:`CPackIFW` looks for the location of the
-QtIFW command-line utilities.
-
-Hints
-^^^^^
-
-Generally, the CPack ``IFW`` generator automatically finds QtIFW tools,
-but if you don't use a default path for installation of the QtIFW tools,
-the path may be specified in either a CMake or an environment variable:
-
-.. variable:: CPACK_IFW_ROOT
-
- An CMake variable which specifies the location of the QtIFW tool suite.
-
- The variable will be cached in the ``CPackConfig.cmake`` file and used at
- CPack runtime.
-
-.. variable:: QTIFWDIR
-
- An environment variable which specifies the location of the QtIFW tool
- suite.
-
-.. note::
-  The specified path should not contain "bin" at the end
-  (for example: "D:\\DevTools\\QtIFW2.0.5").
-
-The :variable:`CPACK_IFW_ROOT` variable has a higher priority and overrides
-the value of the :variable:`QTIFWDIR` variable.
-
-Internationalization
-^^^^^^^^^^^^^^^^^^^^
-
-Some variables and command arguments support internationalization via
-CMake script. This is an optional feature.
-
-Installers created by QtIFW tools have built-in support for
-internationalization and many phrases are localized to many languages,
-but this does not apply to the description of the your components and groups
-that will be distributed.
-
-Localization of the description of your components and groups is useful for
-users of your installers.
-
-A localized variable or argument can contain a single default value, and a
-set of pairs the name of the locale and the localized value.
-
-For example:
-
-.. code-block:: cmake
-
-   set(LOCALIZABLE_VARIABLE "Default value"
-     en "English value"
-     en_US "American value"
-     en_GB "Great Britain value"
-     )
+To make use of this generator, QtIFW needs to be installed.
+The :module:`CPackIFW` module looks for the location of the
+QtIFW command-line utilities, and defines several commands to
+control the behavior of this generator.
 
 Variables
 ^^^^^^^^^
@@ -157,6 +112,8 @@
  Default target directory for installation.
  By default used
  "@ApplicationsDir@/:variable:`CPACK_PACKAGE_INSTALL_DIRECTORY`"
+ (variables embedded in '@' are expanded by the
+ `QtIFW scripting engine <https://doc.qt.io/qtinstallerframework/scripting.html>`_).
 
  You can use predefined variables.
 
@@ -263,55 +220,111 @@
  repack dependent components. This feature available only
  since QtIFW 3.1.
 
-Tools
-"""""
+QtIFW Tools
+"""""""""""
 
 .. variable:: CPACK_IFW_FRAMEWORK_VERSION
 
  The version of used QtIFW tools.
 
+The following variables provide the locations of the QtIFW
+command-line tools as discovered by the module :module:`CPackIFW`.
+These variables are cached, and may be configured if needed.
+
 .. variable:: CPACK_IFW_BINARYCREATOR_EXECUTABLE
 
- The path to "binarycreator" command line client.
-
- This variable is cached and may be configured if needed.
+ The path to ``binarycreator``.
 
 .. variable:: CPACK_IFW_REPOGEN_EXECUTABLE
 
- The path to "repogen" command line client.
-
- This variable is cached and may be configured if needed.
+ The path to ``repogen``.
 
 .. variable:: CPACK_IFW_INSTALLERBASE_EXECUTABLE
 
- The path to "installerbase" installer executable base.
-
- This variable is cached and may be configured if needed.
+ The path to ``installerbase``.
 
 .. variable:: CPACK_IFW_DEVTOOL_EXECUTABLE
 
- The path to "devtool" command line client.
+ The path to ``devtool``.
 
- This variable is cached and may be configured if needed.
+Hints for Finding QtIFW
+"""""""""""""""""""""""
 
+Generally, the CPack ``IFW`` generator automatically finds QtIFW tools,
+but if you don't use a default path for installation of the QtIFW tools,
+the path may be specified in either a CMake or an environment variable:
+
+.. variable:: CPACK_IFW_ROOT
+
+ An CMake variable which specifies the location of the QtIFW tool suite.
+
+ The variable will be cached in the ``CPackConfig.cmake`` file and used at
+ CPack runtime.
+
+.. variable:: QTIFWDIR
+
+ An environment variable which specifies the location of the QtIFW tool
+ suite.
+
+.. note::
+  The specified path should not contain "bin" at the end
+  (for example: "D:\\DevTools\\QtIFW2.0.5").
+
+The :variable:`CPACK_IFW_ROOT` variable has a higher priority and overrides
+the value of the :variable:`QTIFWDIR` variable.
+
+Other Settings
+^^^^^^^^^^^^^^
 
 Online installer
-^^^^^^^^^^^^^^^^
+""""""""""""""""
 
-By default CPack IFW generator makes offline installer. This means that all
-components will be packaged into a binary file.
+By default, this generator generates an *offline installer*. This means that
+that all packaged files are fully contained in the installer executable.
 
-To make a component downloaded, you must set the ``DOWNLOADED`` option in
-:command:`cpack_add_component`.
+In contrast, an *online installer* will download some or all components from
+a remote server.
 
-Then you would use the command :command:`cpack_configure_downloads`.
-If you set ``ALL`` option all components will be downloaded.
+The ``DOWNLOADED`` option in the :command:`cpack_add_component` command
+specifies that a component is to be downloaded. Alternatively, the ``ALL``
+option in the :command:`cpack_configure_downloads` command specifies that
+`all` components are to be be downloaded.
 
-You also can use command :command:`cpack_ifw_add_repository` and
-variable :variable:`CPACK_IFW_DOWNLOAD_ALL` for more specific configuration.
+The :command:`cpack_ifw_add_repository` command and the
+:variable:`CPACK_IFW_DOWNLOAD_ALL` variable allow for more specific
+configuration.
 
-CPack IFW generator creates "repository" dir in current binary dir. You
-would copy content of this dir to specified ``site`` (``url``).
+When there are online components, CPack will write them to archive files.
+The help page of the :module:`CPackComponent` module, especially the section
+on the :command:`cpack_configure_downloads` function, explains how to make
+these files accessible from a download URL.
+
+Internationalization
+""""""""""""""""""""
+
+Some variables and command arguments support internationalization via
+CMake script. This is an optional feature.
+
+Installers created by QtIFW tools have built-in support for
+internationalization and many phrases are localized to many languages,
+but this does not apply to the description of the your components and groups
+that will be distributed.
+
+Localization of the description of your components and groups is useful for
+users of your installers.
+
+A localized variable or argument can contain a single default value, and a
+set of pairs the name of the locale and the localized value.
+
+For example:
+
+.. code-block:: cmake
+
+   set(LOCALIZABLE_VARIABLE "Default value"
+     en "English value"
+     en_US "American value"
+     en_GB "Great Britain value"
+     )
 
 See Also
 ^^^^^^^^
@@ -330,5 +343,5 @@
 * Promoting Updates:
   http://doc.qt.io/qtinstallerframework/ifw-updates.html
 
-Download Qt Installer Framework for you platform from Qt site:
+Download Qt Installer Framework for your platform from Qt site:
  http://download.qt.io/official_releases/qt-installer-framework
diff --git a/share/cmake-3.17/Help/cpack_gen/nsis.rst b/share/cmake-3.18/Help/cpack_gen/nsis.rst
similarity index 96%
rename from share/cmake-3.17/Help/cpack_gen/nsis.rst
rename to share/cmake-3.18/Help/cpack_gen/nsis.rst
index a310e9f..0dd876e 100644
--- a/share/cmake-3.17/Help/cpack_gen/nsis.rst
+++ b/share/cmake-3.18/Help/cpack_gen/nsis.rst
@@ -1,7 +1,9 @@
 CPack NSIS Generator
 --------------------
 
-CPack Nullsoft Scriptable Install System (NSIS) generator specific options
+CPack Nullsoft Scriptable Install System (NSIS) generator specific options.
+
+The NSIS generator requires NSIS 3.0 or newer.
 
 Variables specific to CPack NSIS generator
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -153,3 +155,7 @@
 .. variable:: CPACK_NSIS_MUI_HEADERIMAGE
 
  The image to display on the header of installers pages.
+
+.. variable:: CPACK_NSIS_MANIFEST_DPI_AWARE
+
+ If set, declares that the installer is DPI-aware.
diff --git a/share/cmake-3.17/Help/cpack_gen/nuget.rst b/share/cmake-3.18/Help/cpack_gen/nuget.rst
similarity index 100%
rename from share/cmake-3.17/Help/cpack_gen/nuget.rst
rename to share/cmake-3.18/Help/cpack_gen/nuget.rst
diff --git a/share/cmake-3.17/Help/cpack_gen/packagemaker.rst b/share/cmake-3.18/Help/cpack_gen/packagemaker.rst
similarity index 100%
rename from share/cmake-3.17/Help/cpack_gen/packagemaker.rst
rename to share/cmake-3.18/Help/cpack_gen/packagemaker.rst
diff --git a/share/cmake-3.17/Help/cpack_gen/productbuild.rst b/share/cmake-3.18/Help/cpack_gen/productbuild.rst
similarity index 100%
rename from share/cmake-3.17/Help/cpack_gen/productbuild.rst
rename to share/cmake-3.18/Help/cpack_gen/productbuild.rst
diff --git a/share/cmake-3.17/Help/cpack_gen/rpm.rst b/share/cmake-3.18/Help/cpack_gen/rpm.rst
similarity index 96%
rename from share/cmake-3.17/Help/cpack_gen/rpm.rst
rename to share/cmake-3.18/Help/cpack_gen/rpm.rst
index 2693c7b..ccb7ebd 100644
--- a/share/cmake-3.17/Help/cpack_gen/rpm.rst
+++ b/share/cmake-3.18/Help/cpack_gen/rpm.rst
@@ -36,8 +36,8 @@
 Here are some CPack RPM generator wiki resources that are here for historic
 reasons and are no longer maintained but may still prove useful:
 
- - https://gitlab.kitware.com/cmake/community/wikis/doc/cpack/Configuration
- - https://gitlab.kitware.com/cmake/community/wikis/doc/cpack/PackageGenerators#rpm-unix-only
+ - https://gitlab.kitware.com/cmake/community/-/wikis/doc/cpack/Configuration
+ - https://gitlab.kitware.com/cmake/community/-/wikis/doc/cpack/PackageGenerators#rpm-unix-only
 
 List of CPack RPM generator specific variables:
 
@@ -473,38 +473,42 @@
 
 .. variable:: CPACK_RPM_PRE_INSTALL_SCRIPT_FILE
               CPACK_RPM_PRE_UNINSTALL_SCRIPT_FILE
+              CPACK_RPM_PRE_TRANS_SCRIPT_FILE
 
- Path to file containing pre (un)install script.
+ Path to file containing pre install/uninstall/transaction script.
 
  * Mandatory : NO
  * Default   : -
 
- May be used to embed a pre (un)installation script in the spec file.
+ May be used to embed a pre installation/uninstallation/transaction script in the spec file.
  The referred script file (or both) will be read and directly
  put after the ``%pre`` or ``%preun`` section
- If :variable:`CPACK_RPM_COMPONENT_INSTALL` is set to ON the (un)install
+ If :variable:`CPACK_RPM_COMPONENT_INSTALL` is set to ON the install/uninstall/transaction
  script for each component can be overridden with
- ``CPACK_RPM_<COMPONENT>_PRE_INSTALL_SCRIPT_FILE`` and
- ``CPACK_RPM_<COMPONENT>_PRE_UNINSTALL_SCRIPT_FILE``.
+ ``CPACK_RPM_<COMPONENT>_PRE_INSTALL_SCRIPT_FILE``,
+ ``CPACK_RPM_<COMPONENT>_PRE_UNINSTALL_SCRIPT_FILE``, and
+ ``CPACK_RPM_<COMPONENT>_PRE_TRANS_SCRIPT_FILE``
  One may verify which scriptlet has been included with::
 
   rpm -qp --scripts  package.rpm
 
 .. variable:: CPACK_RPM_POST_INSTALL_SCRIPT_FILE
               CPACK_RPM_POST_UNINSTALL_SCRIPT_FILE
+              CPACK_RPM_POST_TRANS_SCRIPT_FILE
 
- Path to file containing post (un)install script.
+ Path to file containing post install/uninstall/transaction script.
 
  * Mandatory : NO
  * Default   : -
 
- May be used to embed a post (un)installation script in the spec file.
+ May be used to embed a post installation/uninstallation/transaction script in the spec file.
  The referred script file (or both) will be read and directly
  put after the ``%post`` or ``%postun`` section.
- If :variable:`CPACK_RPM_COMPONENT_INSTALL` is set to ON the (un)install
+ If :variable:`CPACK_RPM_COMPONENT_INSTALL` is set to ON the install/uninstall/transaction
  script for each component can be overridden with
- ``CPACK_RPM_<COMPONENT>_POST_INSTALL_SCRIPT_FILE`` and
- ``CPACK_RPM_<COMPONENT>_POST_UNINSTALL_SCRIPT_FILE``.
+ ``CPACK_RPM_<COMPONENT>_POST_INSTALL_SCRIPT_FILE``,
+ ``CPACK_RPM_<COMPONENT>_POST_UNINSTALL_SCRIPT_FILE``, and
+ ``CPACK_RPM_<COMPONENT>_POST_TRANS_SCRIPT_FILE``
  One may verify which scriptlet has been included with::
 
   rpm -qp --scripts  package.rpm
diff --git a/share/cmake-3.17/Help/cpack_gen/wix.rst b/share/cmake-3.18/Help/cpack_gen/wix.rst
similarity index 100%
rename from share/cmake-3.17/Help/cpack_gen/wix.rst
rename to share/cmake-3.18/Help/cpack_gen/wix.rst
diff --git a/share/cmake-3.17/Help/envvar/ASM_DIALECT.rst b/share/cmake-3.18/Help/envvar/ASM_DIALECT.rst
similarity index 100%
rename from share/cmake-3.17/Help/envvar/ASM_DIALECT.rst
rename to share/cmake-3.18/Help/envvar/ASM_DIALECT.rst
diff --git a/share/cmake-3.17/Help/envvar/ASM_DIALECTFLAGS.rst b/share/cmake-3.18/Help/envvar/ASM_DIALECTFLAGS.rst
similarity index 89%
rename from share/cmake-3.17/Help/envvar/ASM_DIALECTFLAGS.rst
rename to share/cmake-3.18/Help/envvar/ASM_DIALECTFLAGS.rst
index 3c3b02a..2e1c6d2 100644
--- a/share/cmake-3.17/Help/envvar/ASM_DIALECTFLAGS.rst
+++ b/share/cmake-3.18/Help/envvar/ASM_DIALECTFLAGS.rst
@@ -11,3 +11,5 @@
 as ``CMAKE_ASM<DIALECT>_FLAGS <CMAKE_<LANG>_FLAGS>``.  For any configuration
 run (including the first), the environment variable will be ignored, if the
 ``CMAKE_ASM<DIALECT>_FLAGS <CMAKE_<LANG>_FLAGS>`` variable is defined.
+
+See also :variable:`CMAKE_ASM<DIALECT>_FLAGS_INIT <CMAKE_<LANG>_FLAGS_INIT>`.
diff --git a/share/cmake-3.17/Help/envvar/CC.rst b/share/cmake-3.18/Help/envvar/CC.rst
similarity index 100%
rename from share/cmake-3.17/Help/envvar/CC.rst
rename to share/cmake-3.18/Help/envvar/CC.rst
diff --git a/share/cmake-3.18/Help/envvar/CCMAKE_COLORS.rst b/share/cmake-3.18/Help/envvar/CCMAKE_COLORS.rst
new file mode 100644
index 0000000..d4750c3
--- /dev/null
+++ b/share/cmake-3.18/Help/envvar/CCMAKE_COLORS.rst
@@ -0,0 +1,34 @@
+CCMAKE_COLORS
+-------------
+
+Determines what colors are used by the CMake curses interface,
+when run on a terminal that supports colors.
+The syntax follows the same conventions as ``LS_COLORS``;
+that is, a list of key/value pairs separated by ``:``.
+
+Keys are a single letter corresponding to a CMake cache variable type:
+
+- ``s``: A ``STRING``.
+- ``p``: A ``FILEPATH``.
+- ``c``: A value which has an associated list of choices.
+- ``y``: A ``BOOL`` which has a true-like value (e.g. ``ON``, ``YES``).
+- ``n``: A ``BOOL`` which has a false-like value (e.g. ``OFF``, ``NO``).
+
+Values are an integer number that specifies what color to use.
+``0`` is black (you probably don't want to use that).
+Others are determined by your terminal's color support.
+Most (color) terminals will support at least 8 or 16 colors.
+Some will support up to 256 colors. The colors will likely match
+`this chart <https://upload.wikimedia.org/wikipedia/commons/1/15/Xterm_256color_chart.svg>`_,
+although the first 16 colors may match the original
+`CGA color palette <https://en.wikipedia.org/wiki/Color_Graphics_Adapter#Color_palette>`_.
+(Many modern terminal emulators also allow their color palette,
+at least for the first 16 colors, to be configured by the user.)
+
+Note that fairly minimal checking is done for bad colors
+(although a value higher than what curses believes your terminal supports
+will be silently ignored) or bad syntax.
+
+For example::
+
+  CCMAKE_COLORS='s=39:p=220:c=207:n=196:y=46'
diff --git a/share/cmake-3.17/Help/envvar/CFLAGS.rst b/share/cmake-3.18/Help/envvar/CFLAGS.rst
similarity index 87%
rename from share/cmake-3.17/Help/envvar/CFLAGS.rst
rename to share/cmake-3.18/Help/envvar/CFLAGS.rst
index fda9ccc..190b4f4 100644
--- a/share/cmake-3.17/Help/envvar/CFLAGS.rst
+++ b/share/cmake-3.18/Help/envvar/CFLAGS.rst
@@ -9,3 +9,5 @@
 as :variable:`CMAKE_C_FLAGS <CMAKE_<LANG>_FLAGS>`. For any configuration run
 (including the first), the environment variable will be ignored if the
 :variable:`CMAKE_C_FLAGS <CMAKE_<LANG>_FLAGS>` variable is defined.
+
+See also :variable:`CMAKE_C_FLAGS_INIT <CMAKE_<LANG>_FLAGS_INIT>`.
diff --git a/share/cmake-3.17/Help/envvar/CMAKE_BUILD_PARALLEL_LEVEL.rst b/share/cmake-3.18/Help/envvar/CMAKE_BUILD_PARALLEL_LEVEL.rst
similarity index 100%
rename from share/cmake-3.17/Help/envvar/CMAKE_BUILD_PARALLEL_LEVEL.rst
rename to share/cmake-3.18/Help/envvar/CMAKE_BUILD_PARALLEL_LEVEL.rst
diff --git a/share/cmake-3.17/Help/envvar/CMAKE_CONFIG_TYPE.rst b/share/cmake-3.18/Help/envvar/CMAKE_CONFIG_TYPE.rst
similarity index 100%
rename from share/cmake-3.17/Help/envvar/CMAKE_CONFIG_TYPE.rst
rename to share/cmake-3.18/Help/envvar/CMAKE_CONFIG_TYPE.rst
diff --git a/share/cmake-3.17/Help/envvar/CMAKE_EXPORT_COMPILE_COMMANDS.rst b/share/cmake-3.18/Help/envvar/CMAKE_EXPORT_COMPILE_COMMANDS.rst
similarity index 100%
rename from share/cmake-3.17/Help/envvar/CMAKE_EXPORT_COMPILE_COMMANDS.rst
rename to share/cmake-3.18/Help/envvar/CMAKE_EXPORT_COMPILE_COMMANDS.rst
diff --git a/share/cmake-3.17/Help/envvar/CMAKE_GENERATOR.rst b/share/cmake-3.18/Help/envvar/CMAKE_GENERATOR.rst
similarity index 100%
rename from share/cmake-3.17/Help/envvar/CMAKE_GENERATOR.rst
rename to share/cmake-3.18/Help/envvar/CMAKE_GENERATOR.rst
diff --git a/share/cmake-3.17/Help/envvar/CMAKE_GENERATOR_INSTANCE.rst b/share/cmake-3.18/Help/envvar/CMAKE_GENERATOR_INSTANCE.rst
similarity index 100%
rename from share/cmake-3.17/Help/envvar/CMAKE_GENERATOR_INSTANCE.rst
rename to share/cmake-3.18/Help/envvar/CMAKE_GENERATOR_INSTANCE.rst
diff --git a/share/cmake-3.17/Help/envvar/CMAKE_GENERATOR_PLATFORM.rst b/share/cmake-3.18/Help/envvar/CMAKE_GENERATOR_PLATFORM.rst
similarity index 100%
rename from share/cmake-3.17/Help/envvar/CMAKE_GENERATOR_PLATFORM.rst
rename to share/cmake-3.18/Help/envvar/CMAKE_GENERATOR_PLATFORM.rst
diff --git a/share/cmake-3.17/Help/envvar/CMAKE_GENERATOR_TOOLSET.rst b/share/cmake-3.18/Help/envvar/CMAKE_GENERATOR_TOOLSET.rst
similarity index 100%
rename from share/cmake-3.17/Help/envvar/CMAKE_GENERATOR_TOOLSET.rst
rename to share/cmake-3.18/Help/envvar/CMAKE_GENERATOR_TOOLSET.rst
diff --git a/share/cmake-3.17/Help/envvar/CMAKE_LANG_COMPILER_LAUNCHER.rst b/share/cmake-3.18/Help/envvar/CMAKE_LANG_COMPILER_LAUNCHER.rst
similarity index 100%
rename from share/cmake-3.17/Help/envvar/CMAKE_LANG_COMPILER_LAUNCHER.rst
rename to share/cmake-3.18/Help/envvar/CMAKE_LANG_COMPILER_LAUNCHER.rst
diff --git a/share/cmake-3.17/Help/envvar/CMAKE_MSVCIDE_RUN_PATH.rst b/share/cmake-3.18/Help/envvar/CMAKE_MSVCIDE_RUN_PATH.rst
similarity index 100%
rename from share/cmake-3.17/Help/envvar/CMAKE_MSVCIDE_RUN_PATH.rst
rename to share/cmake-3.18/Help/envvar/CMAKE_MSVCIDE_RUN_PATH.rst
diff --git a/share/cmake-3.17/Help/envvar/CMAKE_NO_VERBOSE.rst b/share/cmake-3.18/Help/envvar/CMAKE_NO_VERBOSE.rst
similarity index 100%
rename from share/cmake-3.17/Help/envvar/CMAKE_NO_VERBOSE.rst
rename to share/cmake-3.18/Help/envvar/CMAKE_NO_VERBOSE.rst
diff --git a/share/cmake-3.17/Help/envvar/CMAKE_OSX_ARCHITECTURES.rst b/share/cmake-3.18/Help/envvar/CMAKE_OSX_ARCHITECTURES.rst
similarity index 100%
rename from share/cmake-3.17/Help/envvar/CMAKE_OSX_ARCHITECTURES.rst
rename to share/cmake-3.18/Help/envvar/CMAKE_OSX_ARCHITECTURES.rst
diff --git a/share/cmake-3.18/Help/envvar/CMAKE_PREFIX_PATH.rst b/share/cmake-3.18/Help/envvar/CMAKE_PREFIX_PATH.rst
new file mode 100644
index 0000000..276fdd6
--- /dev/null
+++ b/share/cmake-3.18/Help/envvar/CMAKE_PREFIX_PATH.rst
@@ -0,0 +1,17 @@
+CMAKE_PREFIX_PATH
+-----------------
+
+.. include:: ENV_VAR.txt
+
+The ``CMAKE_PREFIX_PATH`` environment variable may be set to a list of
+directories specifying installation *prefixes* to be searched by the
+:command:`find_package`, :command:`find_program`, :command:`find_library`,
+:command:`find_file`, and :command:`find_path` commands.  Each command will
+add appropriate subdirectories (like ``bin``, ``lib``, or ``include``)
+as specified in its own documentation.
+
+This variable may hold a single prefix or a list of prefixes separated
+by ``:`` on UNIX or ``;`` on Windows (the same as the ``PATH`` environment
+variable convention on those platforms).
+
+See also the :variable:`CMAKE_PREFIX_PATH` CMake variable.
diff --git a/share/cmake-3.17/Help/envvar/CSFLAGS.rst b/share/cmake-3.18/Help/envvar/CSFLAGS.rst
similarity index 87%
rename from share/cmake-3.17/Help/envvar/CSFLAGS.rst
rename to share/cmake-3.18/Help/envvar/CSFLAGS.rst
index 404bb59..8762982 100644
--- a/share/cmake-3.17/Help/envvar/CSFLAGS.rst
+++ b/share/cmake-3.18/Help/envvar/CSFLAGS.rst
@@ -9,3 +9,5 @@
 as :variable:`CMAKE_CSharp_FLAGS <CMAKE_<LANG>_FLAGS>`. For any configuration
 run (including the first), the environment variable will be ignored if the
 :variable:`CMAKE_CSharp_FLAGS <CMAKE_<LANG>_FLAGS>` variable is defined.
+
+See also :variable:`CMAKE_CSharp_FLAGS_INIT <CMAKE_<LANG>_FLAGS_INIT>`.
diff --git a/share/cmake-3.17/Help/envvar/CTEST_INTERACTIVE_DEBUG_MODE.rst b/share/cmake-3.18/Help/envvar/CTEST_INTERACTIVE_DEBUG_MODE.rst
similarity index 100%
rename from share/cmake-3.17/Help/envvar/CTEST_INTERACTIVE_DEBUG_MODE.rst
rename to share/cmake-3.18/Help/envvar/CTEST_INTERACTIVE_DEBUG_MODE.rst
diff --git a/share/cmake-3.17/Help/envvar/CTEST_OUTPUT_ON_FAILURE.rst b/share/cmake-3.18/Help/envvar/CTEST_OUTPUT_ON_FAILURE.rst
similarity index 100%
rename from share/cmake-3.17/Help/envvar/CTEST_OUTPUT_ON_FAILURE.rst
rename to share/cmake-3.18/Help/envvar/CTEST_OUTPUT_ON_FAILURE.rst
diff --git a/share/cmake-3.17/Help/envvar/CTEST_PARALLEL_LEVEL.rst b/share/cmake-3.18/Help/envvar/CTEST_PARALLEL_LEVEL.rst
similarity index 100%
rename from share/cmake-3.17/Help/envvar/CTEST_PARALLEL_LEVEL.rst
rename to share/cmake-3.18/Help/envvar/CTEST_PARALLEL_LEVEL.rst
diff --git a/share/cmake-3.17/Help/envvar/CTEST_PROGRESS_OUTPUT.rst b/share/cmake-3.18/Help/envvar/CTEST_PROGRESS_OUTPUT.rst
similarity index 100%
rename from share/cmake-3.17/Help/envvar/CTEST_PROGRESS_OUTPUT.rst
rename to share/cmake-3.18/Help/envvar/CTEST_PROGRESS_OUTPUT.rst
diff --git a/share/cmake-3.17/Help/envvar/CTEST_USE_LAUNCHERS_DEFAULT.rst b/share/cmake-3.18/Help/envvar/CTEST_USE_LAUNCHERS_DEFAULT.rst
similarity index 100%
rename from share/cmake-3.17/Help/envvar/CTEST_USE_LAUNCHERS_DEFAULT.rst
rename to share/cmake-3.18/Help/envvar/CTEST_USE_LAUNCHERS_DEFAULT.rst
diff --git a/share/cmake-3.17/Help/envvar/CUDACXX.rst b/share/cmake-3.18/Help/envvar/CUDACXX.rst
similarity index 100%
rename from share/cmake-3.17/Help/envvar/CUDACXX.rst
rename to share/cmake-3.18/Help/envvar/CUDACXX.rst
diff --git a/share/cmake-3.17/Help/envvar/CUDAFLAGS.rst b/share/cmake-3.18/Help/envvar/CUDAFLAGS.rst
similarity index 87%
rename from share/cmake-3.17/Help/envvar/CUDAFLAGS.rst
rename to share/cmake-3.18/Help/envvar/CUDAFLAGS.rst
index 4456d6b..14c5d84 100644
--- a/share/cmake-3.17/Help/envvar/CUDAFLAGS.rst
+++ b/share/cmake-3.18/Help/envvar/CUDAFLAGS.rst
@@ -9,3 +9,5 @@
 cache as :variable:`CMAKE_CUDA_FLAGS <CMAKE_<LANG>_FLAGS>`. For any configuration
 run (including the first), the environment variable will be ignored if
 the :variable:`CMAKE_CUDA_FLAGS <CMAKE_<LANG>_FLAGS>` variable is defined.
+
+See also :variable:`CMAKE_CUDA_FLAGS_INIT <CMAKE_<LANG>_FLAGS_INIT>`.
diff --git a/share/cmake-3.17/Help/envvar/CUDAHOSTCXX.rst b/share/cmake-3.18/Help/envvar/CUDAHOSTCXX.rst
similarity index 100%
rename from share/cmake-3.17/Help/envvar/CUDAHOSTCXX.rst
rename to share/cmake-3.18/Help/envvar/CUDAHOSTCXX.rst
diff --git a/share/cmake-3.17/Help/envvar/CXX.rst b/share/cmake-3.18/Help/envvar/CXX.rst
similarity index 100%
rename from share/cmake-3.17/Help/envvar/CXX.rst
rename to share/cmake-3.18/Help/envvar/CXX.rst
diff --git a/share/cmake-3.17/Help/envvar/CXXFLAGS.rst b/share/cmake-3.18/Help/envvar/CXXFLAGS.rst
similarity index 87%
rename from share/cmake-3.17/Help/envvar/CXXFLAGS.rst
rename to share/cmake-3.18/Help/envvar/CXXFLAGS.rst
index d7296dc..460a347 100644
--- a/share/cmake-3.17/Help/envvar/CXXFLAGS.rst
+++ b/share/cmake-3.18/Help/envvar/CXXFLAGS.rst
@@ -9,3 +9,5 @@
 as :variable:`CMAKE_CXX_FLAGS <CMAKE_<LANG>_FLAGS>`. For any configuration run (
 including the first), the environment variable will be ignored if
 the :variable:`CMAKE_CXX_FLAGS <CMAKE_<LANG>_FLAGS>` variable is defined.
+
+See also :variable:`CMAKE_CXX_FLAGS_INIT <CMAKE_<LANG>_FLAGS_INIT>`.
diff --git a/share/cmake-3.17/Help/envvar/DASHBOARD_TEST_FROM_CTEST.rst b/share/cmake-3.18/Help/envvar/DASHBOARD_TEST_FROM_CTEST.rst
similarity index 100%
rename from share/cmake-3.17/Help/envvar/DASHBOARD_TEST_FROM_CTEST.rst
rename to share/cmake-3.18/Help/envvar/DASHBOARD_TEST_FROM_CTEST.rst
diff --git a/share/cmake-3.17/Help/envvar/DESTDIR.rst b/share/cmake-3.18/Help/envvar/DESTDIR.rst
similarity index 100%
rename from share/cmake-3.17/Help/envvar/DESTDIR.rst
rename to share/cmake-3.18/Help/envvar/DESTDIR.rst
diff --git a/share/cmake-3.17/Help/envvar/ENV_VAR.txt b/share/cmake-3.18/Help/envvar/ENV_VAR.txt
similarity index 100%
rename from share/cmake-3.17/Help/envvar/ENV_VAR.txt
rename to share/cmake-3.18/Help/envvar/ENV_VAR.txt
diff --git a/share/cmake-3.17/Help/envvar/FC.rst b/share/cmake-3.18/Help/envvar/FC.rst
similarity index 100%
rename from share/cmake-3.17/Help/envvar/FC.rst
rename to share/cmake-3.18/Help/envvar/FC.rst
diff --git a/share/cmake-3.17/Help/envvar/FFLAGS.rst b/share/cmake-3.18/Help/envvar/FFLAGS.rst
similarity index 87%
rename from share/cmake-3.17/Help/envvar/FFLAGS.rst
rename to share/cmake-3.18/Help/envvar/FFLAGS.rst
index 02d3c34..53bffb6 100644
--- a/share/cmake-3.17/Help/envvar/FFLAGS.rst
+++ b/share/cmake-3.18/Help/envvar/FFLAGS.rst
@@ -9,3 +9,5 @@
 as :variable:`CMAKE_Fortran_FLAGS <CMAKE_<LANG>_FLAGS>`. For any configuration
 run (including the first), the environment variable will be ignored if
 the :variable:`CMAKE_Fortran_FLAGS <CMAKE_<LANG>_FLAGS>` variable is defined.
+
+See also :variable:`CMAKE_Fortran_FLAGS_INIT <CMAKE_<LANG>_FLAGS_INIT>`.
diff --git a/share/cmake-3.17/Help/envvar/LDFLAGS.rst b/share/cmake-3.18/Help/envvar/LDFLAGS.rst
similarity index 100%
rename from share/cmake-3.17/Help/envvar/LDFLAGS.rst
rename to share/cmake-3.18/Help/envvar/LDFLAGS.rst
diff --git a/share/cmake-3.17/Help/envvar/MACOSX_DEPLOYMENT_TARGET.rst b/share/cmake-3.18/Help/envvar/MACOSX_DEPLOYMENT_TARGET.rst
similarity index 100%
rename from share/cmake-3.17/Help/envvar/MACOSX_DEPLOYMENT_TARGET.rst
rename to share/cmake-3.18/Help/envvar/MACOSX_DEPLOYMENT_TARGET.rst
diff --git a/share/cmake-3.18/Help/envvar/OBJC.rst b/share/cmake-3.18/Help/envvar/OBJC.rst
new file mode 100644
index 0000000..30c0d13
--- /dev/null
+++ b/share/cmake-3.18/Help/envvar/OBJC.rst
@@ -0,0 +1,14 @@
+OBJC
+----
+
+.. include:: ENV_VAR.txt
+
+Preferred executable for compiling ``OBJC`` language files. Will only be used
+by CMake on the first configuration to determine ``OBJC`` compiler, after
+which the value for ``OBJC`` is stored in the cache as
+:variable:`CMAKE_OBJC_COMPILER <CMAKE_<LANG>_COMPILER>`. For any configuration
+run (including the first), the environment variable will be ignored if the
+:variable:`CMAKE_OBJC_COMPILER <CMAKE_<LANG>_COMPILER>` variable is defined.
+
+If ``OBJC`` is not defined, the :envvar:`CC` environment variable will
+be checked instead.
diff --git a/share/cmake-3.18/Help/envvar/OBJCXX.rst b/share/cmake-3.18/Help/envvar/OBJCXX.rst
new file mode 100644
index 0000000..a72f7e7
--- /dev/null
+++ b/share/cmake-3.18/Help/envvar/OBJCXX.rst
@@ -0,0 +1,14 @@
+OBJCXX
+------
+
+.. include:: ENV_VAR.txt
+
+Preferred executable for compiling ``OBJCXX`` language files. Will only be used
+by CMake on the first configuration to determine ``OBJCXX`` compiler, after
+which the value for ``OBJCXX`` is stored in the cache as
+:variable:`CMAKE_OBJCXX_COMPILER <CMAKE_<LANG>_COMPILER>`. For any configuration
+run (including the first), the environment variable will be ignored if the
+:variable:`CMAKE_OBJCXX_COMPILER <CMAKE_<LANG>_COMPILER>` variable is defined.
+
+If ``OBJCXX`` is not defined, the :envvar:`CXX` environment variable will
+be checked instead.
diff --git a/share/cmake-3.17/Help/envvar/PackageName_ROOT.rst b/share/cmake-3.18/Help/envvar/PackageName_ROOT.rst
similarity index 100%
rename from share/cmake-3.17/Help/envvar/PackageName_ROOT.rst
rename to share/cmake-3.18/Help/envvar/PackageName_ROOT.rst
diff --git a/share/cmake-3.17/Help/envvar/RC.rst b/share/cmake-3.18/Help/envvar/RC.rst
similarity index 100%
rename from share/cmake-3.17/Help/envvar/RC.rst
rename to share/cmake-3.18/Help/envvar/RC.rst
diff --git a/share/cmake-3.17/Help/envvar/RCFLAGS.rst b/share/cmake-3.18/Help/envvar/RCFLAGS.rst
similarity index 87%
rename from share/cmake-3.17/Help/envvar/RCFLAGS.rst
rename to share/cmake-3.18/Help/envvar/RCFLAGS.rst
index 45419fe..bc43cb2 100644
--- a/share/cmake-3.17/Help/envvar/RCFLAGS.rst
+++ b/share/cmake-3.18/Help/envvar/RCFLAGS.rst
@@ -9,3 +9,5 @@
 the cache as :variable:`CMAKE_RC_FLAGS <CMAKE_<LANG>_FLAGS>`. For any
 configuration run (including the first), the environment variable will be ignored
 if the :variable:`CMAKE_RC_FLAGS <CMAKE_<LANG>_FLAGS>` variable is defined.
+
+See also :variable:`CMAKE_RC_FLAGS_INIT <CMAKE_<LANG>_FLAGS_INIT>`.
diff --git a/share/cmake-3.17/Help/envvar/SWIFTC.rst b/share/cmake-3.18/Help/envvar/SWIFTC.rst
similarity index 100%
rename from share/cmake-3.17/Help/envvar/SWIFTC.rst
rename to share/cmake-3.18/Help/envvar/SWIFTC.rst
diff --git a/share/cmake-3.17/Help/envvar/VERBOSE.rst b/share/cmake-3.18/Help/envvar/VERBOSE.rst
similarity index 100%
rename from share/cmake-3.17/Help/envvar/VERBOSE.rst
rename to share/cmake-3.18/Help/envvar/VERBOSE.rst
diff --git a/share/cmake-3.17/Help/generator/Borland Makefiles.rst b/share/cmake-3.18/Help/generator/Borland Makefiles.rst
similarity index 100%
rename from share/cmake-3.17/Help/generator/Borland Makefiles.rst
rename to share/cmake-3.18/Help/generator/Borland Makefiles.rst
diff --git a/share/cmake-3.17/Help/generator/CodeBlocks.rst b/share/cmake-3.18/Help/generator/CodeBlocks.rst
similarity index 100%
rename from share/cmake-3.17/Help/generator/CodeBlocks.rst
rename to share/cmake-3.18/Help/generator/CodeBlocks.rst
diff --git a/share/cmake-3.17/Help/generator/CodeLite.rst b/share/cmake-3.18/Help/generator/CodeLite.rst
similarity index 100%
rename from share/cmake-3.17/Help/generator/CodeLite.rst
rename to share/cmake-3.18/Help/generator/CodeLite.rst
diff --git a/share/cmake-3.17/Help/generator/Eclipse CDT4.rst b/share/cmake-3.18/Help/generator/Eclipse CDT4.rst
similarity index 100%
rename from share/cmake-3.17/Help/generator/Eclipse CDT4.rst
rename to share/cmake-3.18/Help/generator/Eclipse CDT4.rst
diff --git a/share/cmake-3.17/Help/generator/Green Hills MULTI.rst b/share/cmake-3.18/Help/generator/Green Hills MULTI.rst
similarity index 100%
rename from share/cmake-3.17/Help/generator/Green Hills MULTI.rst
rename to share/cmake-3.18/Help/generator/Green Hills MULTI.rst
diff --git a/share/cmake-3.17/Help/generator/Kate.rst b/share/cmake-3.18/Help/generator/Kate.rst
similarity index 100%
rename from share/cmake-3.17/Help/generator/Kate.rst
rename to share/cmake-3.18/Help/generator/Kate.rst
diff --git a/share/cmake-3.17/Help/generator/MSYS Makefiles.rst b/share/cmake-3.18/Help/generator/MSYS Makefiles.rst
similarity index 100%
rename from share/cmake-3.17/Help/generator/MSYS Makefiles.rst
rename to share/cmake-3.18/Help/generator/MSYS Makefiles.rst
diff --git a/share/cmake-3.17/Help/generator/MinGW Makefiles.rst b/share/cmake-3.18/Help/generator/MinGW Makefiles.rst
similarity index 100%
rename from share/cmake-3.17/Help/generator/MinGW Makefiles.rst
rename to share/cmake-3.18/Help/generator/MinGW Makefiles.rst
diff --git a/share/cmake-3.17/Help/generator/NMake Makefiles JOM.rst b/share/cmake-3.18/Help/generator/NMake Makefiles JOM.rst
similarity index 100%
rename from share/cmake-3.17/Help/generator/NMake Makefiles JOM.rst
rename to share/cmake-3.18/Help/generator/NMake Makefiles JOM.rst
diff --git a/share/cmake-3.17/Help/generator/NMake Makefiles.rst b/share/cmake-3.18/Help/generator/NMake Makefiles.rst
similarity index 100%
rename from share/cmake-3.17/Help/generator/NMake Makefiles.rst
rename to share/cmake-3.18/Help/generator/NMake Makefiles.rst
diff --git a/share/cmake-3.17/Help/generator/Ninja Multi-Config.rst b/share/cmake-3.18/Help/generator/Ninja Multi-Config.rst
similarity index 65%
rename from share/cmake-3.17/Help/generator/Ninja Multi-Config.rst
rename to share/cmake-3.18/Help/generator/Ninja Multi-Config.rst
index 1f68535..f480eb8 100644
--- a/share/cmake-3.17/Help/generator/Ninja Multi-Config.rst
+++ b/share/cmake-3.18/Help/generator/Ninja Multi-Config.rst
@@ -33,53 +33,19 @@
 The ``Ninja Multi-Config`` generator recognizes the following variables:
 
 :variable:`CMAKE_CONFIGURATION_TYPES`
-  Specifies the total set of configurations to build. See the variable's
-  documentation for more information.
+  Specifies the total set of configurations to build.
 
 :variable:`CMAKE_CROSS_CONFIGS`
   Specifies a :ref:`semicolon-separated list <CMake Language Lists>` of
   configurations available from all ``build-<Config>.ninja`` files.
-  This variable activates cross-config mode.
-  Targets from each config specified in this variable can be built from any
-  ``build-<Config>.ninja`` file. Custom commands will use the configuration
-  native to ``build-<Config>.ninja``. If it is set to ``all``, all
-  configurations from :variable:`CMAKE_CONFIGURATION_TYPES` are cross-configs.
-  If it is not specified, or empty, each ``build-<Config>.ninja`` file will
-  only contain build rules for its own configuration.
-
-  The value of this variable must be a subset of
-  :variable:`CMAKE_CONFIGURATION_TYPES`.
 
 :variable:`CMAKE_DEFAULT_BUILD_TYPE`
-  Specifies the configuration to use by default in a ``build.ninja`` file. If
-  this variable is specified, ``build.ninja`` uses build rules from
-  ``build-<Config>.ninja`` by default. All custom commands are executed with
-  this configuration. If the variable is not specified, the first item from
-  :variable:`CMAKE_CONFIGURATION_TYPES` is used instead.
-
-  The value of this variable must be one of the items from
-  :variable:`CMAKE_CONFIGURATION_TYPES`.
+  Specifies the configuration to use by default in a ``build.ninja`` file.
 
 :variable:`CMAKE_DEFAULT_CONFIGS`
   Specifies a :ref:`semicolon-separated list <CMake Language Lists>` of
   configurations to build for a target in ``build.ninja``
-  if no ``:<Config>`` suffix is specified. If it is set to ``all``, all
-  configurations from :variable:`CMAKE_CROSS_CONFIGS` are used. If
-  it is not specified, it defaults to
-  :variable:`CMAKE_DEFAULT_BUILD_TYPE`.
-
-  For example, if you set
-  :variable:`CMAKE_DEFAULT_BUILD_TYPE` to ``Release``, but
-  set :variable:`CMAKE_DEFAULT_CONFIGS` to ``Debug`` or ``all``,
-  all ``<target>`` aliases in ``build.ninja`` will resolve to
-  ``<target>:Debug`` or ``<target>:all``, but custom commands will still use
-  the ``Release`` configuration.
-
-  The value of this variable must be a subset of
-  :variable:`CMAKE_CROSS_CONFIGS` or be the same as
-  :variable:`CMAKE_DEFAULT_BUILD_TYPE`. It must not be
-  specified if :variable:`CMAKE_DEFAULT_BUILD_TYPE` or
-  :variable:`CMAKE_CROSS_CONFIGS` is not used.
+  if no ``:<Config>`` suffix is specified.
 
 Consider the following example:
 
diff --git a/share/cmake-3.17/Help/generator/Ninja.rst b/share/cmake-3.18/Help/generator/Ninja.rst
similarity index 78%
rename from share/cmake-3.17/Help/generator/Ninja.rst
rename to share/cmake-3.18/Help/generator/Ninja.rst
index 275055d..08ee81b 100644
--- a/share/cmake-3.17/Help/generator/Ninja.rst
+++ b/share/cmake-3.18/Help/generator/Ninja.rst
@@ -33,11 +33,7 @@
 ^^^^^^^^^^^^^^^
 
 The ``Ninja`` generator conditionally supports Fortran when the ``ninja``
-tool has the required features.  As of this version of CMake the needed
-features have not been integrated into upstream Ninja.  Kitware maintains
-a branch of Ninja with the required features on `github.com/Kitware/ninja`_.
-
-.. _`github.com/Kitware/ninja`: https://github.com/Kitware/ninja/tree/features-for-fortran#readme
+tool is at least version 1.10 (which has the required features).
 
 See Also
 ^^^^^^^^
diff --git a/share/cmake-3.17/Help/generator/Sublime Text 2.rst b/share/cmake-3.18/Help/generator/Sublime Text 2.rst
similarity index 100%
rename from share/cmake-3.17/Help/generator/Sublime Text 2.rst
rename to share/cmake-3.18/Help/generator/Sublime Text 2.rst
diff --git a/share/cmake-3.17/Help/generator/Unix Makefiles.rst b/share/cmake-3.18/Help/generator/Unix Makefiles.rst
similarity index 100%
rename from share/cmake-3.17/Help/generator/Unix Makefiles.rst
rename to share/cmake-3.18/Help/generator/Unix Makefiles.rst
diff --git a/share/cmake-3.17/Help/generator/VS_TOOLSET_HOST_ARCH.txt b/share/cmake-3.18/Help/generator/VS_TOOLSET_HOST_ARCH.txt
similarity index 100%
rename from share/cmake-3.17/Help/generator/VS_TOOLSET_HOST_ARCH.txt
rename to share/cmake-3.18/Help/generator/VS_TOOLSET_HOST_ARCH.txt
diff --git a/share/cmake-3.17/Help/generator/Visual Studio 10 2010.rst b/share/cmake-3.18/Help/generator/Visual Studio 10 2010.rst
similarity index 100%
rename from share/cmake-3.17/Help/generator/Visual Studio 10 2010.rst
rename to share/cmake-3.18/Help/generator/Visual Studio 10 2010.rst
diff --git a/share/cmake-3.17/Help/generator/Visual Studio 11 2012.rst b/share/cmake-3.18/Help/generator/Visual Studio 11 2012.rst
similarity index 100%
rename from share/cmake-3.17/Help/generator/Visual Studio 11 2012.rst
rename to share/cmake-3.18/Help/generator/Visual Studio 11 2012.rst
diff --git a/share/cmake-3.17/Help/generator/Visual Studio 12 2013.rst b/share/cmake-3.18/Help/generator/Visual Studio 12 2013.rst
similarity index 100%
rename from share/cmake-3.17/Help/generator/Visual Studio 12 2013.rst
rename to share/cmake-3.18/Help/generator/Visual Studio 12 2013.rst
diff --git a/share/cmake-3.17/Help/generator/Visual Studio 14 2015.rst b/share/cmake-3.18/Help/generator/Visual Studio 14 2015.rst
similarity index 100%
rename from share/cmake-3.17/Help/generator/Visual Studio 14 2015.rst
rename to share/cmake-3.18/Help/generator/Visual Studio 14 2015.rst
diff --git a/share/cmake-3.17/Help/generator/Visual Studio 15 2017.rst b/share/cmake-3.18/Help/generator/Visual Studio 15 2017.rst
similarity index 100%
rename from share/cmake-3.17/Help/generator/Visual Studio 15 2017.rst
rename to share/cmake-3.18/Help/generator/Visual Studio 15 2017.rst
diff --git a/share/cmake-3.17/Help/generator/Visual Studio 16 2019.rst b/share/cmake-3.18/Help/generator/Visual Studio 16 2019.rst
similarity index 100%
rename from share/cmake-3.17/Help/generator/Visual Studio 16 2019.rst
rename to share/cmake-3.18/Help/generator/Visual Studio 16 2019.rst
diff --git a/share/cmake-3.17/Help/generator/Visual Studio 6.rst b/share/cmake-3.18/Help/generator/Visual Studio 6.rst
similarity index 100%
rename from share/cmake-3.17/Help/generator/Visual Studio 6.rst
rename to share/cmake-3.18/Help/generator/Visual Studio 6.rst
diff --git a/share/cmake-3.17/Help/generator/Visual Studio 7 .NET 2003.rst b/share/cmake-3.18/Help/generator/Visual Studio 7 .NET 2003.rst
similarity index 100%
rename from share/cmake-3.17/Help/generator/Visual Studio 7 .NET 2003.rst
rename to share/cmake-3.18/Help/generator/Visual Studio 7 .NET 2003.rst
diff --git a/share/cmake-3.17/Help/generator/Visual Studio 7.rst b/share/cmake-3.18/Help/generator/Visual Studio 7.rst
similarity index 100%
rename from share/cmake-3.17/Help/generator/Visual Studio 7.rst
rename to share/cmake-3.18/Help/generator/Visual Studio 7.rst
diff --git a/share/cmake-3.17/Help/generator/Visual Studio 8 2005.rst b/share/cmake-3.18/Help/generator/Visual Studio 8 2005.rst
similarity index 100%
rename from share/cmake-3.17/Help/generator/Visual Studio 8 2005.rst
rename to share/cmake-3.18/Help/generator/Visual Studio 8 2005.rst
diff --git a/share/cmake-3.17/Help/generator/Visual Studio 9 2008.rst b/share/cmake-3.18/Help/generator/Visual Studio 9 2008.rst
similarity index 100%
rename from share/cmake-3.17/Help/generator/Visual Studio 9 2008.rst
rename to share/cmake-3.18/Help/generator/Visual Studio 9 2008.rst
diff --git a/share/cmake-3.17/Help/generator/Watcom WMake.rst b/share/cmake-3.18/Help/generator/Watcom WMake.rst
similarity index 100%
rename from share/cmake-3.17/Help/generator/Watcom WMake.rst
rename to share/cmake-3.18/Help/generator/Watcom WMake.rst
diff --git a/share/cmake-3.17/Help/generator/Xcode.rst b/share/cmake-3.18/Help/generator/Xcode.rst
similarity index 100%
rename from share/cmake-3.17/Help/generator/Xcode.rst
rename to share/cmake-3.18/Help/generator/Xcode.rst
diff --git a/share/cmake-3.17/Help/include/COMPILE_DEFINITIONS_DISCLAIMER.txt b/share/cmake-3.18/Help/include/COMPILE_DEFINITIONS_DISCLAIMER.txt
similarity index 100%
rename from share/cmake-3.17/Help/include/COMPILE_DEFINITIONS_DISCLAIMER.txt
rename to share/cmake-3.18/Help/include/COMPILE_DEFINITIONS_DISCLAIMER.txt
diff --git a/share/cmake-3.17/Help/include/INTERFACE_INCLUDE_DIRECTORIES_WARNING.txt b/share/cmake-3.18/Help/include/INTERFACE_INCLUDE_DIRECTORIES_WARNING.txt
similarity index 100%
rename from share/cmake-3.17/Help/include/INTERFACE_INCLUDE_DIRECTORIES_WARNING.txt
rename to share/cmake-3.18/Help/include/INTERFACE_INCLUDE_DIRECTORIES_WARNING.txt
diff --git a/share/cmake-3.17/Help/include/INTERFACE_LINK_LIBRARIES_WARNING.txt b/share/cmake-3.18/Help/include/INTERFACE_LINK_LIBRARIES_WARNING.txt
similarity index 100%
rename from share/cmake-3.17/Help/include/INTERFACE_LINK_LIBRARIES_WARNING.txt
rename to share/cmake-3.18/Help/include/INTERFACE_LINK_LIBRARIES_WARNING.txt
diff --git a/share/cmake-3.17/Help/index.rst b/share/cmake-3.18/Help/index.rst
similarity index 100%
rename from share/cmake-3.17/Help/index.rst
rename to share/cmake-3.18/Help/index.rst
diff --git a/share/cmake-3.17/Help/manual/ID_RESERVE.txt b/share/cmake-3.18/Help/manual/ID_RESERVE.txt
similarity index 100%
rename from share/cmake-3.17/Help/manual/ID_RESERVE.txt
rename to share/cmake-3.18/Help/manual/ID_RESERVE.txt
diff --git a/share/cmake-3.17/Help/manual/LINKS.txt b/share/cmake-3.18/Help/manual/LINKS.txt
similarity index 100%
rename from share/cmake-3.17/Help/manual/LINKS.txt
rename to share/cmake-3.18/Help/manual/LINKS.txt
diff --git a/share/cmake-3.17/Help/manual/OPTIONS_BUILD.txt b/share/cmake-3.18/Help/manual/OPTIONS_BUILD.txt
similarity index 100%
rename from share/cmake-3.17/Help/manual/OPTIONS_BUILD.txt
rename to share/cmake-3.18/Help/manual/OPTIONS_BUILD.txt
diff --git a/share/cmake-3.17/Help/manual/OPTIONS_HELP.txt b/share/cmake-3.18/Help/manual/OPTIONS_HELP.txt
similarity index 100%
rename from share/cmake-3.17/Help/manual/OPTIONS_HELP.txt
rename to share/cmake-3.18/Help/manual/OPTIONS_HELP.txt
diff --git a/share/cmake-3.17/Help/manual/VS-Choose-Arch.png b/share/cmake-3.18/Help/manual/VS-Choose-Arch.png
similarity index 100%
rename from share/cmake-3.17/Help/manual/VS-Choose-Arch.png
rename to share/cmake-3.18/Help/manual/VS-Choose-Arch.png
Binary files differ
diff --git a/share/cmake-3.17/Help/manual/ccmake.1.rst b/share/cmake-3.18/Help/manual/ccmake.1.rst
similarity index 100%
rename from share/cmake-3.17/Help/manual/ccmake.1.rst
rename to share/cmake-3.18/Help/manual/ccmake.1.rst
diff --git a/share/cmake-3.17/Help/manual/cmake-buildsystem.7.rst b/share/cmake-3.18/Help/manual/cmake-buildsystem.7.rst
similarity index 100%
rename from share/cmake-3.17/Help/manual/cmake-buildsystem.7.rst
rename to share/cmake-3.18/Help/manual/cmake-buildsystem.7.rst
diff --git a/share/cmake-3.17/Help/manual/cmake-commands.7.rst b/share/cmake-3.18/Help/manual/cmake-commands.7.rst
similarity index 99%
rename from share/cmake-3.17/Help/manual/cmake-commands.7.rst
rename to share/cmake-3.18/Help/manual/cmake-commands.7.rst
index 59ba897..0aa4f75 100644
--- a/share/cmake-3.17/Help/manual/cmake-commands.7.rst
+++ b/share/cmake-3.18/Help/manual/cmake-commands.7.rst
@@ -17,6 +17,7 @@
 
    /command/break
    /command/cmake_host_system_information
+   /command/cmake_language
    /command/cmake_minimum_required
    /command/cmake_parse_arguments
    /command/cmake_policy
diff --git a/share/cmake-3.17/Help/manual/cmake-compile-features.7.rst b/share/cmake-3.18/Help/manual/cmake-compile-features.7.rst
similarity index 100%
rename from share/cmake-3.17/Help/manual/cmake-compile-features.7.rst
rename to share/cmake-3.18/Help/manual/cmake-compile-features.7.rst
diff --git a/share/cmake-3.17/Help/manual/cmake-developer.7.rst b/share/cmake-3.18/Help/manual/cmake-developer.7.rst
similarity index 100%
rename from share/cmake-3.17/Help/manual/cmake-developer.7.rst
rename to share/cmake-3.18/Help/manual/cmake-developer.7.rst
diff --git a/share/cmake-3.17/Help/manual/cmake-env-variables.7.rst b/share/cmake-3.18/Help/manual/cmake-env-variables.7.rst
similarity index 83%
rename from share/cmake-3.17/Help/manual/cmake-env-variables.7.rst
rename to share/cmake-3.18/Help/manual/cmake-env-variables.7.rst
index adfc39e..ce1e360 100644
--- a/share/cmake-3.17/Help/manual/cmake-env-variables.7.rst
+++ b/share/cmake-3.18/Help/manual/cmake-env-variables.7.rst
@@ -14,6 +14,13 @@
 :ref:`Environment Variables <CMake Language Environment Variables>`
 section in the cmake-language manual.
 
+Environment Variables that Change Behavior
+==========================================
+
+.. toctree::
+   :maxdepth: 1
+
+   /envvar/CMAKE_PREFIX_PATH
 
 Environment Variables that Control the Build
 ============================================
@@ -56,6 +63,8 @@
    /envvar/CXXFLAGS
    /envvar/FC
    /envvar/FFLAGS
+   /envvar/OBJC
+   /envvar/OBJCXX
    /envvar/RC
    /envvar/RCFLAGS
    /envvar/SWIFTC
@@ -73,3 +82,11 @@
    /envvar/CTEST_PROGRESS_OUTPUT
    /envvar/CTEST_USE_LAUNCHERS_DEFAULT
    /envvar/DASHBOARD_TEST_FROM_CTEST
+
+Environment Variables for the CMake curses interface
+====================================================
+
+.. toctree::
+   :maxdepth: 1
+
+   /envvar/CCMAKE_COLORS
diff --git a/share/cmake-3.17/Help/manual/cmake-file-api.7.rst b/share/cmake-3.18/Help/manual/cmake-file-api.7.rst
similarity index 97%
rename from share/cmake-3.17/Help/manual/cmake-file-api.7.rst
rename to share/cmake-3.18/Help/manual/cmake-file-api.7.rst
index 12eecd9..cc50952 100644
--- a/share/cmake-3.17/Help/manual/cmake-file-api.7.rst
+++ b/share/cmake-3.18/Help/manual/cmake-file-api.7.rst
@@ -425,7 +425,7 @@
 
   {
     "kind": "codemodel",
-    "version": { "major": 2, "minor": 0 },
+    "version": { "major": 2, "minor": 1 },
     "paths": {
       "source": "/path/to/top-level-source-dir",
       "build": "/path/to/top-level-build-dir"
@@ -899,6 +899,24 @@
       an unsigned integer 0-based index into the ``backtraceGraph``
       member's ``nodes`` array.
 
+  ``precompileHeaders``
+    Optional member that is present when :command:`target_precompile_headers`
+    or other command invocations set :prop_tgt:`PRECOMPILE_HEADERS` on the
+    target.  The value is a JSON array with an entry for each header.  Each
+    entry is a JSON object with members:
+
+    ``header``
+      Full path to the precompile header file.
+
+    ``backtrace``
+      Optional member that is present when a CMake language backtrace to
+      the :command:`target_precompile_headers` or other command invocation
+      that added this precompiled header is available.  The value is an
+      unsigned integer 0-based index into the ``backtraceGraph`` member's
+      ``nodes`` array.
+
+    This field was added in codemodel version 2.1.
+
   ``defines``
     Optional member that is present when there are preprocessor definitions.
     The value is a JSON array with an entry for each definition.  Each
diff --git a/share/cmake-3.17/Help/manual/cmake-generator-expressions.7.rst b/share/cmake-3.18/Help/manual/cmake-generator-expressions.7.rst
similarity index 77%
rename from share/cmake-3.17/Help/manual/cmake-generator-expressions.7.rst
rename to share/cmake-3.18/Help/manual/cmake-generator-expressions.7.rst
index 691481b..124da44 100644
--- a/share/cmake-3.17/Help/manual/cmake-generator-expressions.7.rst
+++ b/share/cmake-3.18/Help/manual/cmake-generator-expressions.7.rst
@@ -259,6 +259,122 @@
     add_executable(myapp main.cpp)
     target_link_libraries(myapp myapp_c myapp_cxx)
 
+.. _`Boolean LINK_LANGUAGE Generator Expression`:
+
+``$<LINK_LANG_AND_ID:language,compiler_ids>``
+  ``1`` when the language used for link step matches ``language`` and the
+  CMake's compiler id of the language linker matches any one of the entries
+  in ``compiler_ids``, otherwise ``0``. This expression is a short form for the
+  combination of ``$<LINK_LANGUAGE:language>`` and
+  ``$<LANG_COMPILER_ID:compiler_ids>``. This expression may be used to specify
+  link libraries, link options, link directories and link dependencies of a
+  particular language and linker combination in a target. For example:
+
+  .. code-block:: cmake
+
+    add_library(libC_Clang ...)
+    add_library(libCXX_Clang ...)
+    add_library(libC_Intel ...)
+    add_library(libCXX_Intel ...)
+
+    add_executable(myapp main.c)
+    if (CXX_CONFIG)
+      target_sources(myapp PRIVATE file.cxx)
+    endif()
+    target_link_libraries(myapp
+      PRIVATE $<$<LINK_LANG_AND_ID:CXX,Clang,AppleClang>:libCXX_Clang>
+              $<$<LINK_LANG_AND_ID:C,Clang,AppleClang>:libC_Clang>
+              $<$<LINK_LANG_AND_ID:CXX,Intel>:libCXX_Intel>
+              $<$<LINK_LANG_AND_ID:C,Intel>:libC_Intel>)
+
+  This specifies the use of different link libraries based on both the
+  compiler id and link language. This example will have target ``libCXX_Clang``
+  as link dependency when ``Clang`` or ``AppleClang`` is the ``CXX``
+  linker, and ``libCXX_Intel`` when ``Intel`` is the ``CXX`` linker.
+  Likewise when the ``C`` linker is ``Clang`` or ``AppleClang``, target
+  ``libC_Clang`` will be added as link dependency and ``libC_Intel`` when
+  ``Intel`` is the ``C`` linker.
+
+  See :ref:`the note related to
+  <Constraints LINK_LANGUAGE Generator Expression>`
+  ``$<LINK_LANGUAGE:language>`` for constraints about the usage of this
+  generator expression.
+
+``$<LINK_LANGUAGE:languages>``
+  ``1`` when the language used for link step matches any of the entries
+  in ``languages``, otherwise ``0``.  This expression may be used to specify
+  link libraries, link options, link directories and link dependencies of a
+  particular language in a target. For example:
+
+  .. code-block:: cmake
+
+    add_library(api_C ...)
+    add_library(api_CXX ...)
+    add_library(api INTERFACE)
+    target_link_options(api INTERFACE $<$<LINK_LANGUAGE:C>:-opt_c>
+                                        $<$<LINK_LANGUAGE:CXX>:-opt_cxx>)
+    target_link_libraries(api INTERFACE $<$<LINK_LANGUAGE:C>:api_C>
+                                        $<$<LINK_LANGUAGE:CXX>:api_CXX>)
+
+    add_executable(myapp1 main.c)
+    target_link_options(myapp1 PRIVATE api)
+
+    add_executable(myapp2 main.cpp)
+    target_link_options(myapp2 PRIVATE api)
+
+  This specifies to use the ``api`` target for linking targets ``myapp1`` and
+  ``myapp2``. In practice, ``myapp1`` will link with target ``api_C`` and
+  option ``-opt_c`` because it will use ``C`` as link language. And ``myapp2``
+  will link with ``api_CXX`` and option ``-opt_cxx`` because ``CXX`` will be
+  the link language.
+
+  .. _`Constraints LINK_LANGUAGE Generator Expression`:
+
+  .. note::
+
+    To determine the link language of a target, it is required to collect,
+    transitively, all the targets which will be linked to it. So, for link
+    libraries properties, a double evaluation will be done. During the first
+    evaluation, ``$<LINK_LANGUAGE:..>`` expressions will always return ``0``.
+    The link language computed after this first pass will be used to do the
+    second pass. To avoid inconsistency, it is required that the second pass
+    do not change the link language. Moreover, to avoid unexpected
+    side-effects, it is required to specify complete entities as part of the
+    ``$<LINK_LANGUAGE:..>`` expression. For example:
+
+    .. code-block:: cmake
+
+      add_library(lib STATIC file.cxx)
+      add_library(libother STATIC file.c)
+
+      # bad usage
+      add_executable(myapp1 main.c)
+      target_link_libraries(myapp1 PRIVATE lib$<$<LINK_LANGUAGE:C>:other>)
+
+      # correct usage
+      add_executable(myapp2 main.c)
+      target_link_libraries(myapp2 PRIVATE $<$<LINK_LANGUAGE:C>:libother>)
+
+    In this example, for ``myapp1``, the first pass will, unexpectedly,
+    determine that the link language is ``CXX`` because the evaluation of the
+    generator expression will be an empty string so ``myapp1`` will depends on
+    target ``lib`` which is ``C++``. On the contrary, for ``myapp2``, the first
+    evaluation will give ``C`` as link language, so the second pass will
+    correctly add target ``libother`` as link dependency.
+
+``$<DEVICE_LINK:list>``
+  Returns the list if it is the device link step, an empty list otherwise.
+  The device link step is controlled by :prop_tgt:`CUDA_SEPARABLE_COMPILATION`
+  and :prop_tgt:`CUDA_RESOLVE_DEVICE_SYMBOLS` properties and
+  policy :policy:`CMP0105`. This expression can only be used to specify link
+  options.
+
+``$<HOST_LINK:list>``
+  Returns the list if it is the normal link step, an empty list otherwise.
+  This expression is mainly useful when a device link step is also involved
+  (see ``$<DEVICE_LINK:list>`` generator expression). This expression can only
+  be used to specify link options.
+
 String-Valued Generator Expressions
 ===================================
 
@@ -450,22 +566,41 @@
   <Boolean COMPILE_LANGUAGE Generator Expression>`
   ``$<COMPILE_LANGUAGE:language>``
   for notes about the portability of this generator expression.
+``$<LINK_LANGUAGE>``
+  The link language of target when evaluating link options.
+  See :ref:`the related boolean expression
+  <Boolean LINK_LANGUAGE Generator Expression>` ``$<LINK_LANGUAGE:language>``
+  for notes about the portability of this generator expression.
+
+  .. note::
+
+    This generator expression is not supported by the link libraries
+    properties to avoid side-effects due to the double evaluation of
+    these properties.
 
 Target-Dependent Queries
 ------------------------
 
-``$<TARGET_NAME_IF_EXISTS:tgt>``
-  Expands to the ``tgt`` if the given target exists, an empty string
-  otherwise.
-``$<TARGET_FILE:tgt>``
-  Full path to main file (.exe, .so.1.2, .a) where ``tgt`` is the name of a
-  target.
-``$<TARGET_FILE_BASE_NAME:tgt>``
-  Base name of main file where ``tgt`` is the name of a target.
+These queries refer to a target ``tgt``. This can be any runtime artifact,
+namely:
 
-  The base name corresponds to the target file name (see
-  ``$<TARGET_FILE_NAME:tgt>``) without prefix and suffix. For example, if
-  target file name is ``libbase.so``, the base name is ``base``.
+* an executable target created by :command:`add_executable`
+* a shared library target (``.so``, ``.dll`` but not their ``.lib`` import library)
+  created by :command:`add_library`
+* a static library target created by :command:`add_library`
+
+In the following, "the ``tgt`` filename" means the name of the ``tgt``
+binary file. This has to be distinguished from "the target name",
+which is just the string ``tgt``.
+
+``$<TARGET_NAME_IF_EXISTS:tgt>``
+  The target name ``tgt`` if the target exists, an empty string otherwise.
+``$<TARGET_FILE:tgt>``
+  Full path to the ``tgt`` binary file.
+``$<TARGET_FILE_BASE_NAME:tgt>``
+  Base name of ``tgt``, i.e. ``$<TARGET_FILE_NAME:tgt>`` without prefix and
+  suffix.
+  For example, if the ``tgt`` filename is ``libbase.so``, the base name is ``base``.
 
   See also the :prop_tgt:`OUTPUT_NAME`, :prop_tgt:`ARCHIVE_OUTPUT_NAME`,
   :prop_tgt:`LIBRARY_OUTPUT_NAME` and :prop_tgt:`RUNTIME_OUTPUT_NAME`
@@ -480,32 +615,31 @@
   Note that ``tgt`` is not added as a dependency of the target this
   expression is evaluated on.
 ``$<TARGET_FILE_PREFIX:tgt>``
-  Prefix of main file where ``tgt`` is the name of a target.
+  Prefix of the ``tgt`` filename (such as ``lib``).
 
   See also the :prop_tgt:`PREFIX` target property.
 
   Note that ``tgt`` is not added as a dependency of the target this
   expression is evaluated on.
 ``$<TARGET_FILE_SUFFIX:tgt>``
-  Suffix of main file where ``tgt`` is the name of a target.
-
-  The suffix corresponds to the file extension (such as ".so" or ".exe").
+  Suffix of the ``tgt`` filename (extension such as ``.so`` or ``.exe``).
 
   See also the :prop_tgt:`SUFFIX` target property.
 
   Note that ``tgt`` is not added as a dependency of the target this
   expression is evaluated on.
 ``$<TARGET_FILE_NAME:tgt>``
-  Name of main file (.exe, .so.1.2, .a).
+  The ``tgt`` filename.
 ``$<TARGET_FILE_DIR:tgt>``
-  Directory of main file (.exe, .so.1.2, .a).
+  Directory of the ``tgt`` binary file.
 ``$<TARGET_LINKER_FILE:tgt>``
-  File used to link (.a, .lib, .so) where ``tgt`` is the name of a target.
+  File used when linking to the ``tgt`` target.  This will usually
+  be the library that ``tgt`` represents (``.a``, ``.lib``, ``.so``),
+  but for a shared library on DLL platforms, it would be the ``.lib``
+  import library associated with the DLL.
 ``$<TARGET_LINKER_FILE_BASE_NAME:tgt>``
-  Base name of file used to link where ``tgt`` is the name of a target.
-
-  The base name corresponds to the target linker file name (see
-  ``$<TARGET_LINKER_FILE_NAME:tgt>``) without prefix and suffix. For example,
+  Base name of file used to link the target ``tgt``, i.e.
+  ``$<TARGET_LINKER_FILE_NAME:tgt>`` without prefix and suffix. For example,
   if target file name is ``libbase.a``, the base name is ``base``.
 
   See also the :prop_tgt:`OUTPUT_NAME`, :prop_tgt:`ARCHIVE_OUTPUT_NAME`,
@@ -520,7 +654,7 @@
   Note that ``tgt`` is not added as a dependency of the target this
   expression is evaluated on.
 ``$<TARGET_LINKER_FILE_PREFIX:tgt>``
-  Prefix of file used to link where ``tgt`` is the name of a target.
+  Prefix of file used to link target ``tgt``.
 
   See also the :prop_tgt:`PREFIX` and :prop_tgt:`IMPORT_PREFIX` target
   properties.
@@ -538,15 +672,15 @@
   Note that ``tgt`` is not added as a dependency of the target this
   expression is evaluated on.
 ``$<TARGET_LINKER_FILE_NAME:tgt>``
-  Name of file used to link (.a, .lib, .so).
+  Name of file used to link target ``tgt``.
 ``$<TARGET_LINKER_FILE_DIR:tgt>``
-  Directory of file used to link (.a, .lib, .so).
+  Directory of file used to link target ``tgt``.
 ``$<TARGET_SONAME_FILE:tgt>``
-  File with soname (.so.3) where ``tgt`` is the name of a target.
+  File with soname (``.so.3``) where ``tgt`` is the name of a target.
 ``$<TARGET_SONAME_FILE_NAME:tgt>``
-  Name of file with soname (.so.3).
+  Name of file with soname (``.so.3``).
 ``$<TARGET_SONAME_FILE_DIR:tgt>``
-  Directory of with soname (.so.3).
+  Directory of with soname (``.so.3``).
 ``$<TARGET_PDB_FILE:tgt>``
   Full path to the linker generated program database file (.pdb)
   where ``tgt`` is the name of a target.
@@ -589,11 +723,10 @@
   Note that ``tgt`` is not added as a dependency of the target this
   expression is evaluated on.
 ``$<TARGET_PROPERTY:prop>``
-  Value of the property ``prop`` on the target on which the generator
-  expression is evaluated. Note that for generator expressions in
-  :ref:`Target Usage Requirements` this is the value of the property
-  on the consuming target rather than the target specifying the
-  requirement.
+  Value of the property ``prop`` on the target for which the expression
+  is being evaluated. Note that for generator expressions in
+  :ref:`Target Usage Requirements` this is the consuming target rather
+  than the target specifying the requirement.
 ``$<INSTALL_PREFIX>``
   Content of the install prefix when the target is exported via
   :command:`install(EXPORT)`, or when evaluated in
diff --git a/share/cmake-3.17/Help/manual/cmake-generators.7.rst b/share/cmake-3.18/Help/manual/cmake-generators.7.rst
similarity index 100%
rename from share/cmake-3.17/Help/manual/cmake-generators.7.rst
rename to share/cmake-3.18/Help/manual/cmake-generators.7.rst
diff --git a/share/cmake-3.17/Help/manual/cmake-gui.1.rst b/share/cmake-3.18/Help/manual/cmake-gui.1.rst
similarity index 100%
rename from share/cmake-3.17/Help/manual/cmake-gui.1.rst
rename to share/cmake-3.18/Help/manual/cmake-gui.1.rst
diff --git a/share/cmake-3.17/Help/manual/cmake-language.7.rst b/share/cmake-3.18/Help/manual/cmake-language.7.rst
similarity index 100%
rename from share/cmake-3.17/Help/manual/cmake-language.7.rst
rename to share/cmake-3.18/Help/manual/cmake-language.7.rst
diff --git a/share/cmake-3.17/Help/manual/cmake-modules.7.rst b/share/cmake-3.18/Help/manual/cmake-modules.7.rst
similarity index 99%
rename from share/cmake-3.17/Help/manual/cmake-modules.7.rst
rename to share/cmake-3.18/Help/manual/cmake-modules.7.rst
index be64112..50131e8 100644
--- a/share/cmake-3.17/Help/manual/cmake-modules.7.rst
+++ b/share/cmake-3.18/Help/manual/cmake-modules.7.rst
@@ -36,6 +36,7 @@
    /module/CheckIncludeFiles
    /module/CheckLanguage
    /module/CheckLibraryExists
+   /module/CheckLinkerFlag
    /module/CheckOBJCCompilerFlag
    /module/CheckOBJCSourceCompiles
    /module/CheckOBJCSourceRuns
diff --git a/share/cmake-3.17/Help/manual/cmake-packages.7.rst b/share/cmake-3.18/Help/manual/cmake-packages.7.rst
similarity index 100%
rename from share/cmake-3.17/Help/manual/cmake-packages.7.rst
rename to share/cmake-3.18/Help/manual/cmake-packages.7.rst
diff --git a/share/cmake-3.17/Help/manual/cmake-policies.7.rst b/share/cmake-3.18/Help/manual/cmake-policies.7.rst
similarity index 95%
rename from share/cmake-3.17/Help/manual/cmake-policies.7.rst
rename to share/cmake-3.18/Help/manual/cmake-policies.7.rst
index c256250..e98038a 100644
--- a/share/cmake-3.17/Help/manual/cmake-policies.7.rst
+++ b/share/cmake-3.18/Help/manual/cmake-policies.7.rst
@@ -51,6 +51,19 @@
 to determine whether to report an error on use of deprecated macros or
 functions.
 
+Policies Introduced by CMake 3.18
+=================================
+
+.. toctree::
+   :maxdepth: 1
+
+   CMP0108: A target cannot link to itself through an alias. </policy/CMP0108>
+   CMP0107: An ALIAS target cannot overwrite another target. </policy/CMP0107>
+   CMP0106: The Documentation module is removed. </policy/CMP0106>
+   CMP0105: Device link step uses the link options. </policy/CMP0105>
+   CMP0104: CMAKE_CUDA_ARCHITECTURES now detected for NVCC, empty CUDA_ARCHITECTURES not allowed. </policy/CMP0104>
+   CMP0103: Multiple export() with same FILE without APPEND is not allowed. </policy/CMP0103>
+
 Policies Introduced by CMake 3.17
 =================================
 
diff --git a/share/cmake-3.17/Help/manual/cmake-properties.7.rst b/share/cmake-3.18/Help/manual/cmake-properties.7.rst
similarity index 97%
rename from share/cmake-3.17/Help/manual/cmake-properties.7.rst
rename to share/cmake-3.18/Help/manual/cmake-properties.7.rst
index 060a072..30b2a05 100644
--- a/share/cmake-3.17/Help/manual/cmake-properties.7.rst
+++ b/share/cmake-3.18/Help/manual/cmake-properties.7.rst
@@ -105,6 +105,7 @@
 
    /prop_tgt/ADDITIONAL_CLEAN_FILES
    /prop_tgt/AIX_EXPORT_ALL_SYMBOLS
+   /prop_tgt/ALIAS_GLOBAL
    /prop_tgt/ALIASED_TARGET
    /prop_tgt/ANDROID_ANT_ADDITIONAL_OPTIONS
    /prop_tgt/ANDROID_API
@@ -171,6 +172,7 @@
    /prop_tgt/CONFIG_OUTPUT_NAME
    /prop_tgt/CONFIG_POSTFIX
    /prop_tgt/CROSSCOMPILING_EMULATOR
+   /prop_tgt/CUDA_ARCHITECTURES
    /prop_tgt/CUDA_PTX_COMPILATION
    /prop_tgt/CUDA_SEPARABLE_COMPILATION
    /prop_tgt/CUDA_RESOLVE_DEVICE_SYMBOLS
@@ -199,7 +201,9 @@
    /prop_tgt/FOLDER
    /prop_tgt/Fortran_FORMAT
    /prop_tgt/Fortran_MODULE_DIRECTORY
+   /prop_tgt/Fortran_PREPROCESS
    /prop_tgt/FRAMEWORK
+   /prop_tgt/FRAMEWORK_MULTI_CONFIG_POSTFIX_CONFIG
    /prop_tgt/FRAMEWORK_VERSION
    /prop_tgt/GENERATOR_FILE_NAME
    /prop_tgt/GHS_INTEGRITY_APP
@@ -307,6 +311,7 @@
    /prop_tgt/OSX_ARCHITECTURES
    /prop_tgt/OUTPUT_NAME_CONFIG
    /prop_tgt/OUTPUT_NAME
+   /prop_tgt/PCH_WARN_INVALID
    /prop_tgt/PDB_NAME_CONFIG
    /prop_tgt/PDB_NAME
    /prop_tgt/PDB_OUTPUT_DIRECTORY_CONFIG
@@ -343,6 +348,7 @@
    /prop_tgt/UNITY_BUILD_BATCH_SIZE
    /prop_tgt/UNITY_BUILD_CODE_AFTER_INCLUDE
    /prop_tgt/UNITY_BUILD_CODE_BEFORE_INCLUDE
+   /prop_tgt/UNITY_BUILD_MODE
    /prop_tgt/VERSION
    /prop_tgt/VISIBILITY_INLINES_HIDDEN
    /prop_tgt/VS_CONFIGURATION_TYPE
@@ -369,12 +375,15 @@
    /prop_tgt/VS_MOBILE_EXTENSIONS_VERSION
    /prop_tgt/VS_NO_SOLUTION_DEPLOY
    /prop_tgt/VS_PACKAGE_REFERENCES
+   /prop_tgt/VS_PLATFORM_TOOLSET
    /prop_tgt/VS_PROJECT_IMPORT
    /prop_tgt/VS_SCC_AUXPATH
    /prop_tgt/VS_SCC_LOCALPATH
    /prop_tgt/VS_SCC_PROJECTNAME
    /prop_tgt/VS_SCC_PROVIDER
    /prop_tgt/VS_SDK_REFERENCES
+   /prop_tgt/VS_SOLUTION_DEPLOY
+   /prop_tgt/VS_SOURCE_SETTINGS_tool
    /prop_tgt/VS_USER_PROPS
    /prop_tgt/VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION
    /prop_tgt/VS_WINRT_COMPONENT
@@ -459,6 +468,7 @@
    /prop_sf/COMPILE_OPTIONS
    /prop_sf/EXTERNAL_OBJECT
    /prop_sf/Fortran_FORMAT
+   /prop_sf/Fortran_PREPROCESS
    /prop_sf/GENERATED
    /prop_sf/HEADER_FILE_ONLY
    /prop_sf/INCLUDE_DIRECTORIES
@@ -478,12 +488,14 @@
    /prop_sf/Swift_DEPENDENCIES_FILE
    /prop_sf/Swift_DIAGNOSTICS_FILE
    /prop_sf/SYMBOLIC
+   /prop_sf/UNITY_GROUP
    /prop_sf/VS_COPY_TO_OUT_DIR
    /prop_sf/VS_CSHARP_tagname
    /prop_sf/VS_DEPLOYMENT_CONTENT
    /prop_sf/VS_DEPLOYMENT_LOCATION
    /prop_sf/VS_INCLUDE_IN_VSIX
    /prop_sf/VS_RESOURCE_GENERATOR
+   /prop_sf/VS_SETTINGS
    /prop_sf/VS_SHADER_DISABLE_OPTIMIZATIONS
    /prop_sf/VS_SHADER_ENABLE_DEBUG
    /prop_sf/VS_SHADER_ENTRYPOINT
diff --git a/share/cmake-3.17/Help/manual/cmake-qt.7.rst b/share/cmake-3.18/Help/manual/cmake-qt.7.rst
similarity index 100%
rename from share/cmake-3.17/Help/manual/cmake-qt.7.rst
rename to share/cmake-3.18/Help/manual/cmake-qt.7.rst
diff --git a/share/cmake-3.17/Help/manual/cmake-server.7.rst b/share/cmake-3.18/Help/manual/cmake-server.7.rst
similarity index 100%
rename from share/cmake-3.17/Help/manual/cmake-server.7.rst
rename to share/cmake-3.18/Help/manual/cmake-server.7.rst
diff --git a/share/cmake-3.17/Help/manual/cmake-toolchains.7.rst b/share/cmake-3.18/Help/manual/cmake-toolchains.7.rst
similarity index 100%
rename from share/cmake-3.17/Help/manual/cmake-toolchains.7.rst
rename to share/cmake-3.18/Help/manual/cmake-toolchains.7.rst
diff --git a/share/cmake-3.17/Help/manual/cmake-variables.7.rst b/share/cmake-3.18/Help/manual/cmake-variables.7.rst
similarity index 98%
rename from share/cmake-3.17/Help/manual/cmake-variables.7.rst
rename to share/cmake-3.18/Help/manual/cmake-variables.7.rst
index fc27739..4ce8365 100644
--- a/share/cmake-3.17/Help/manual/cmake-variables.7.rst
+++ b/share/cmake-3.18/Help/manual/cmake-variables.7.rst
@@ -388,8 +388,10 @@
    /variable/CMAKE_EXE_LINKER_FLAGS_INIT
    /variable/CMAKE_FOLDER
    /variable/CMAKE_FRAMEWORK
+   /variable/CMAKE_FRAMEWORK_MULTI_CONFIG_POSTFIX_CONFIG
    /variable/CMAKE_Fortran_FORMAT
    /variable/CMAKE_Fortran_MODULE_DIRECTORY
+   /variable/CMAKE_Fortran_PREPROCESS
    /variable/CMAKE_GHS_NO_SOURCE_GROUP_FILE
    /variable/CMAKE_GLOBAL_AUTOGEN_TARGET
    /variable/CMAKE_GLOBAL_AUTOGEN_TARGET_NAME
@@ -437,6 +439,7 @@
    /variable/CMAKE_OSX_ARCHITECTURES
    /variable/CMAKE_OSX_DEPLOYMENT_TARGET
    /variable/CMAKE_OSX_SYSROOT
+   /variable/CMAKE_PCH_WARN_INVALID
    /variable/CMAKE_PDB_OUTPUT_DIRECTORY
    /variable/CMAKE_PDB_OUTPUT_DIRECTORY_CONFIG
    /variable/CMAKE_POSITION_INDEPENDENT_CODE
@@ -486,6 +489,7 @@
    /variable/CMAKE_COMPILER_IS_GNUCC
    /variable/CMAKE_COMPILER_IS_GNUCXX
    /variable/CMAKE_COMPILER_IS_GNUG77
+   /variable/CMAKE_CUDA_ARCHITECTURES
    /variable/CMAKE_CUDA_COMPILE_FEATURES
    /variable/CMAKE_CUDA_HOST_COMPILER
    /variable/CMAKE_CUDA_EXTENSIONS
@@ -621,6 +625,7 @@
    /variable/CTEST_P4_COMMAND
    /variable/CTEST_P4_OPTIONS
    /variable/CTEST_P4_UPDATE_OPTIONS
+   /variable/CTEST_RESOURCE_SPEC_FILE
    /variable/CTEST_RUN_CURRENT_SCRIPT
    /variable/CTEST_SCP_COMMAND
    /variable/CTEST_SITE
diff --git a/share/cmake-3.17/Help/manual/cmake.1.rst b/share/cmake-3.18/Help/manual/cmake.1.rst
similarity index 95%
rename from share/cmake-3.17/Help/manual/cmake.1.rst
rename to share/cmake-3.18/Help/manual/cmake.1.rst
index 28a081f..9becfc6 100644
--- a/share/cmake-3.17/Help/manual/cmake.1.rst
+++ b/share/cmake-3.18/Help/manual/cmake.1.rst
@@ -242,10 +242,12 @@
  :command:`message(SEND_ERROR)` calls.
 
 ``--debug-find``
- Put cmake find in a debug mode.
+ Put cmake find commands in a debug mode.
 
  Print extra find call information during the cmake run to standard
  error. Output is designed for human consumption and not for parsing.
+ See also the :variable:`CMAKE_FIND_DEBUG_MODE` variable for debugging
+ a more local part of the project.
 
 ``--trace``
  Put cmake in trace mode.
@@ -356,6 +358,20 @@
  in :variable:`CMAKE_SOURCE_DIR` and :variable:`CMAKE_BINARY_DIR`.
  This flag tells CMake to warn about other files as well.
 
+``--profiling-output=<path>``
+ Used in conjuction with ``--profiling-format`` to output to a given path.
+
+``--profiling-format=<file>``
+ Enable the output of profiling data of CMake script in the given format.
+
+ This can aid performance analysis of CMake scripts executed. Third party
+ applications should be used to process the output into human readable format.
+
+ Currently supported values are:
+ ``google-trace`` Outputs in Google Trace Format, which can be parsed by the
+ about:tracing tab of Google Chrome or using a plugin for a tool like Trace
+ Compass.
+
 .. _`Build Tool Mode`:
 
 Build a Project
@@ -465,13 +481,17 @@
 
 .. code-block:: shell
 
-  cmake [{-D <var>=<value>}...] -P <cmake-script-file>
+  cmake [{-D <var>=<value>}...] -P <cmake-script-file> [-- <unparsed-options>...]
 
 Process the given cmake file as a script written in the CMake
 language.  No configure or generate step is performed and the cache
 is not modified.  If variables are defined using ``-D``, this must be
 done before the ``-P`` argument.
 
+Any options after ``--`` are not parsed by CMake, but they are still included
+in the set of :variable:`CMAKE_ARGV<n> <CMAKE_ARGV0>` variables passed to the
+script (including the ``--`` itself).
+
 
 Run a Command-Line Tool
 =======================
@@ -538,6 +558,9 @@
   ``serverMode``
     ``true`` if cmake supports server-mode and ``false`` otherwise.
 
+``cat <files>...``
+  Concatenate files and print on the standard output.
+
 ``chdir <dir> <cmd> [<arg>...]``
   Change the current working directory and run a command.
 
diff --git a/share/cmake-3.17/Help/manual/cpack-generators.7.rst b/share/cmake-3.18/Help/manual/cpack-generators.7.rst
similarity index 100%
rename from share/cmake-3.17/Help/manual/cpack-generators.7.rst
rename to share/cmake-3.18/Help/manual/cpack-generators.7.rst
diff --git a/share/cmake-3.17/Help/manual/cpack.1.rst b/share/cmake-3.18/Help/manual/cpack.1.rst
similarity index 100%
rename from share/cmake-3.17/Help/manual/cpack.1.rst
rename to share/cmake-3.18/Help/manual/cpack.1.rst
diff --git a/share/cmake-3.17/Help/manual/ctest.1.rst b/share/cmake-3.18/Help/manual/ctest.1.rst
similarity index 98%
rename from share/cmake-3.17/Help/manual/ctest.1.rst
rename to share/cmake-3.18/Help/manual/ctest.1.rst
index 6503f0e..d3ab75a 100644
--- a/share/cmake-3.17/Help/manual/ctest.1.rst
+++ b/share/cmake-3.18/Help/manual/ctest.1.rst
@@ -72,6 +72,9 @@
  This option can also be enabled by setting the
  :envvar:`CTEST_OUTPUT_ON_FAILURE` environment variable
 
+``--stop-on-failure``
+ Stop running the tests when the first failure happens.
+
 ``-F``
  Enable failover.
 
@@ -994,8 +997,12 @@
 
 ``ResourceSpecFile``
   Specify a
-  :ref:`resource specification file <ctest-resource-specification-file>`. See
-  :ref:`ctest-resource-allocation` for more information.
+  :ref:`resource specification file <ctest-resource-specification-file>`.
+
+  * `CTest Script`_ variable: :variable:`CTEST_RESOURCE_SPEC_FILE`
+  * :module:`CTest` module variable: ``CTEST_RESOURCE_SPEC_FILE``
+
+  See :ref:`ctest-resource-allocation` for more information.
 
 ``LabelsForSubprojects``
   Specify a semicolon-separated list of labels that will be treated as
@@ -1403,9 +1410,16 @@
 
 The resource specification file is a JSON file which is passed to CTest, either
 on the :manual:`ctest(1)` command line as ``--resource-spec-file``, or as the
-``RESOURCE_SPEC_FILE`` argument of :command:`ctest_test`. The resource
-specification file must be a JSON object. All examples in this document assume
-the following resource specification file:
+``RESOURCE_SPEC_FILE`` argument of :command:`ctest_test`. If a dashboard script
+is used and ``RESOURCE_SPEC_FILE`` is not specified, the value of
+:variable:`CTEST_RESOURCE_SPEC_FILE` in the dashboard script is used instead.
+If ``--resource-spec-file``, ``RESOURCE_SPEC_FILE``, and
+:variable:`CTEST_RESOURCE_SPEC_FILE` in the dashboard script are not specified,
+the value of :variable:`CTEST_RESOURCE_SPEC_FILE` in the CMake build is used
+instead. If none of these are specified, no resource spec file is used.
+
+The resource specification file must be a JSON object. All examples in this
+document assume the following resource specification file:
 
 .. code-block:: json
 
diff --git a/share/cmake-3.17/Help/module/AddFileDependencies.rst b/share/cmake-3.18/Help/module/AddFileDependencies.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/AddFileDependencies.rst
rename to share/cmake-3.18/Help/module/AddFileDependencies.rst
diff --git a/share/cmake-3.17/Help/module/AndroidTestUtilities.rst b/share/cmake-3.18/Help/module/AndroidTestUtilities.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/AndroidTestUtilities.rst
rename to share/cmake-3.18/Help/module/AndroidTestUtilities.rst
diff --git a/share/cmake-3.17/Help/module/BundleUtilities.rst b/share/cmake-3.18/Help/module/BundleUtilities.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/BundleUtilities.rst
rename to share/cmake-3.18/Help/module/BundleUtilities.rst
diff --git a/share/cmake-3.17/Help/module/CMakeAddFortranSubdirectory.rst b/share/cmake-3.18/Help/module/CMakeAddFortranSubdirectory.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CMakeAddFortranSubdirectory.rst
rename to share/cmake-3.18/Help/module/CMakeAddFortranSubdirectory.rst
diff --git a/share/cmake-3.17/Help/module/CMakeBackwardCompatibilityCXX.rst b/share/cmake-3.18/Help/module/CMakeBackwardCompatibilityCXX.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CMakeBackwardCompatibilityCXX.rst
rename to share/cmake-3.18/Help/module/CMakeBackwardCompatibilityCXX.rst
diff --git a/share/cmake-3.17/Help/module/CMakeDependentOption.rst b/share/cmake-3.18/Help/module/CMakeDependentOption.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CMakeDependentOption.rst
rename to share/cmake-3.18/Help/module/CMakeDependentOption.rst
diff --git a/share/cmake-3.17/Help/module/CMakeDetermineVSServicePack.rst b/share/cmake-3.18/Help/module/CMakeDetermineVSServicePack.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CMakeDetermineVSServicePack.rst
rename to share/cmake-3.18/Help/module/CMakeDetermineVSServicePack.rst
diff --git a/share/cmake-3.17/Help/module/CMakeExpandImportedTargets.rst b/share/cmake-3.18/Help/module/CMakeExpandImportedTargets.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CMakeExpandImportedTargets.rst
rename to share/cmake-3.18/Help/module/CMakeExpandImportedTargets.rst
diff --git a/share/cmake-3.17/Help/module/CMakeFindDependencyMacro.rst b/share/cmake-3.18/Help/module/CMakeFindDependencyMacro.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CMakeFindDependencyMacro.rst
rename to share/cmake-3.18/Help/module/CMakeFindDependencyMacro.rst
diff --git a/share/cmake-3.17/Help/module/CMakeFindFrameworks.rst b/share/cmake-3.18/Help/module/CMakeFindFrameworks.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CMakeFindFrameworks.rst
rename to share/cmake-3.18/Help/module/CMakeFindFrameworks.rst
diff --git a/share/cmake-3.17/Help/module/CMakeFindPackageMode.rst b/share/cmake-3.18/Help/module/CMakeFindPackageMode.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CMakeFindPackageMode.rst
rename to share/cmake-3.18/Help/module/CMakeFindPackageMode.rst
diff --git a/share/cmake-3.17/Help/module/CMakeForceCompiler.rst b/share/cmake-3.18/Help/module/CMakeForceCompiler.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CMakeForceCompiler.rst
rename to share/cmake-3.18/Help/module/CMakeForceCompiler.rst
diff --git a/share/cmake-3.17/Help/module/CMakeGraphVizOptions.rst b/share/cmake-3.18/Help/module/CMakeGraphVizOptions.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CMakeGraphVizOptions.rst
rename to share/cmake-3.18/Help/module/CMakeGraphVizOptions.rst
diff --git a/share/cmake-3.17/Help/module/CMakePackageConfigHelpers.rst b/share/cmake-3.18/Help/module/CMakePackageConfigHelpers.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CMakePackageConfigHelpers.rst
rename to share/cmake-3.18/Help/module/CMakePackageConfigHelpers.rst
diff --git a/share/cmake-3.17/Help/module/CMakeParseArguments.rst b/share/cmake-3.18/Help/module/CMakeParseArguments.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CMakeParseArguments.rst
rename to share/cmake-3.18/Help/module/CMakeParseArguments.rst
diff --git a/share/cmake-3.17/Help/module/CMakePrintHelpers.rst b/share/cmake-3.18/Help/module/CMakePrintHelpers.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CMakePrintHelpers.rst
rename to share/cmake-3.18/Help/module/CMakePrintHelpers.rst
diff --git a/share/cmake-3.17/Help/module/CMakePrintSystemInformation.rst b/share/cmake-3.18/Help/module/CMakePrintSystemInformation.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CMakePrintSystemInformation.rst
rename to share/cmake-3.18/Help/module/CMakePrintSystemInformation.rst
diff --git a/share/cmake-3.17/Help/module/CMakePushCheckState.rst b/share/cmake-3.18/Help/module/CMakePushCheckState.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CMakePushCheckState.rst
rename to share/cmake-3.18/Help/module/CMakePushCheckState.rst
diff --git a/share/cmake-3.17/Help/module/CMakeVerifyManifest.rst b/share/cmake-3.18/Help/module/CMakeVerifyManifest.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CMakeVerifyManifest.rst
rename to share/cmake-3.18/Help/module/CMakeVerifyManifest.rst
diff --git a/share/cmake-3.17/Help/module/CPack.rst b/share/cmake-3.18/Help/module/CPack.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CPack.rst
rename to share/cmake-3.18/Help/module/CPack.rst
diff --git a/share/cmake-3.17/Help/module/CPackArchive.rst b/share/cmake-3.18/Help/module/CPackArchive.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CPackArchive.rst
rename to share/cmake-3.18/Help/module/CPackArchive.rst
diff --git a/share/cmake-3.17/Help/module/CPackBundle.rst b/share/cmake-3.18/Help/module/CPackBundle.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CPackBundle.rst
rename to share/cmake-3.18/Help/module/CPackBundle.rst
diff --git a/share/cmake-3.17/Help/module/CPackComponent.rst b/share/cmake-3.18/Help/module/CPackComponent.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CPackComponent.rst
rename to share/cmake-3.18/Help/module/CPackComponent.rst
diff --git a/share/cmake-3.17/Help/module/CPackCygwin.rst b/share/cmake-3.18/Help/module/CPackCygwin.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CPackCygwin.rst
rename to share/cmake-3.18/Help/module/CPackCygwin.rst
diff --git a/share/cmake-3.17/Help/module/CPackDMG.rst b/share/cmake-3.18/Help/module/CPackDMG.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CPackDMG.rst
rename to share/cmake-3.18/Help/module/CPackDMG.rst
diff --git a/share/cmake-3.17/Help/module/CPackDeb.rst b/share/cmake-3.18/Help/module/CPackDeb.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CPackDeb.rst
rename to share/cmake-3.18/Help/module/CPackDeb.rst
diff --git a/share/cmake-3.17/Help/module/CPackFreeBSD.rst b/share/cmake-3.18/Help/module/CPackFreeBSD.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CPackFreeBSD.rst
rename to share/cmake-3.18/Help/module/CPackFreeBSD.rst
diff --git a/share/cmake-3.17/Help/module/CPackIFW.rst b/share/cmake-3.18/Help/module/CPackIFW.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CPackIFW.rst
rename to share/cmake-3.18/Help/module/CPackIFW.rst
diff --git a/share/cmake-3.17/Help/module/CPackIFWConfigureFile.rst b/share/cmake-3.18/Help/module/CPackIFWConfigureFile.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CPackIFWConfigureFile.rst
rename to share/cmake-3.18/Help/module/CPackIFWConfigureFile.rst
diff --git a/share/cmake-3.17/Help/module/CPackNSIS.rst b/share/cmake-3.18/Help/module/CPackNSIS.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CPackNSIS.rst
rename to share/cmake-3.18/Help/module/CPackNSIS.rst
diff --git a/share/cmake-3.17/Help/module/CPackNuGet.rst b/share/cmake-3.18/Help/module/CPackNuGet.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CPackNuGet.rst
rename to share/cmake-3.18/Help/module/CPackNuGet.rst
diff --git a/share/cmake-3.17/Help/module/CPackPackageMaker.rst b/share/cmake-3.18/Help/module/CPackPackageMaker.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CPackPackageMaker.rst
rename to share/cmake-3.18/Help/module/CPackPackageMaker.rst
diff --git a/share/cmake-3.17/Help/module/CPackProductBuild.rst b/share/cmake-3.18/Help/module/CPackProductBuild.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CPackProductBuild.rst
rename to share/cmake-3.18/Help/module/CPackProductBuild.rst
diff --git a/share/cmake-3.17/Help/module/CPackRPM.rst b/share/cmake-3.18/Help/module/CPackRPM.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CPackRPM.rst
rename to share/cmake-3.18/Help/module/CPackRPM.rst
diff --git a/share/cmake-3.17/Help/module/CPackWIX.rst b/share/cmake-3.18/Help/module/CPackWIX.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CPackWIX.rst
rename to share/cmake-3.18/Help/module/CPackWIX.rst
diff --git a/share/cmake-3.17/Help/module/CSharpUtilities.rst b/share/cmake-3.18/Help/module/CSharpUtilities.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CSharpUtilities.rst
rename to share/cmake-3.18/Help/module/CSharpUtilities.rst
diff --git a/share/cmake-3.17/Help/module/CTest.rst b/share/cmake-3.18/Help/module/CTest.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CTest.rst
rename to share/cmake-3.18/Help/module/CTest.rst
diff --git a/share/cmake-3.17/Help/module/CTestCoverageCollectGCOV.rst b/share/cmake-3.18/Help/module/CTestCoverageCollectGCOV.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CTestCoverageCollectGCOV.rst
rename to share/cmake-3.18/Help/module/CTestCoverageCollectGCOV.rst
diff --git a/share/cmake-3.17/Help/module/CTestScriptMode.rst b/share/cmake-3.18/Help/module/CTestScriptMode.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CTestScriptMode.rst
rename to share/cmake-3.18/Help/module/CTestScriptMode.rst
diff --git a/share/cmake-3.17/Help/module/CTestUseLaunchers.rst b/share/cmake-3.18/Help/module/CTestUseLaunchers.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CTestUseLaunchers.rst
rename to share/cmake-3.18/Help/module/CTestUseLaunchers.rst
diff --git a/share/cmake-3.17/Help/module/CheckCCompilerFlag.rst b/share/cmake-3.18/Help/module/CheckCCompilerFlag.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CheckCCompilerFlag.rst
rename to share/cmake-3.18/Help/module/CheckCCompilerFlag.rst
diff --git a/share/cmake-3.17/Help/module/CheckCSourceCompiles.rst b/share/cmake-3.18/Help/module/CheckCSourceCompiles.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CheckCSourceCompiles.rst
rename to share/cmake-3.18/Help/module/CheckCSourceCompiles.rst
diff --git a/share/cmake-3.17/Help/module/CheckCSourceRuns.rst b/share/cmake-3.18/Help/module/CheckCSourceRuns.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CheckCSourceRuns.rst
rename to share/cmake-3.18/Help/module/CheckCSourceRuns.rst
diff --git a/share/cmake-3.17/Help/module/CheckCXXCompilerFlag.rst b/share/cmake-3.18/Help/module/CheckCXXCompilerFlag.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CheckCXXCompilerFlag.rst
rename to share/cmake-3.18/Help/module/CheckCXXCompilerFlag.rst
diff --git a/share/cmake-3.17/Help/module/CheckCXXSourceCompiles.rst b/share/cmake-3.18/Help/module/CheckCXXSourceCompiles.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CheckCXXSourceCompiles.rst
rename to share/cmake-3.18/Help/module/CheckCXXSourceCompiles.rst
diff --git a/share/cmake-3.17/Help/module/CheckCXXSourceRuns.rst b/share/cmake-3.18/Help/module/CheckCXXSourceRuns.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CheckCXXSourceRuns.rst
rename to share/cmake-3.18/Help/module/CheckCXXSourceRuns.rst
diff --git a/share/cmake-3.17/Help/module/CheckCXXSymbolExists.rst b/share/cmake-3.18/Help/module/CheckCXXSymbolExists.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CheckCXXSymbolExists.rst
rename to share/cmake-3.18/Help/module/CheckCXXSymbolExists.rst
diff --git a/share/cmake-3.17/Help/module/CheckFortranCompilerFlag.rst b/share/cmake-3.18/Help/module/CheckFortranCompilerFlag.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CheckFortranCompilerFlag.rst
rename to share/cmake-3.18/Help/module/CheckFortranCompilerFlag.rst
diff --git a/share/cmake-3.17/Help/module/CheckFortranFunctionExists.rst b/share/cmake-3.18/Help/module/CheckFortranFunctionExists.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CheckFortranFunctionExists.rst
rename to share/cmake-3.18/Help/module/CheckFortranFunctionExists.rst
diff --git a/share/cmake-3.17/Help/module/CheckFortranSourceCompiles.rst b/share/cmake-3.18/Help/module/CheckFortranSourceCompiles.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CheckFortranSourceCompiles.rst
rename to share/cmake-3.18/Help/module/CheckFortranSourceCompiles.rst
diff --git a/share/cmake-3.17/Help/module/CheckFortranSourceRuns.rst b/share/cmake-3.18/Help/module/CheckFortranSourceRuns.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CheckFortranSourceRuns.rst
rename to share/cmake-3.18/Help/module/CheckFortranSourceRuns.rst
diff --git a/share/cmake-3.17/Help/module/CheckFunctionExists.rst b/share/cmake-3.18/Help/module/CheckFunctionExists.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CheckFunctionExists.rst
rename to share/cmake-3.18/Help/module/CheckFunctionExists.rst
diff --git a/share/cmake-3.17/Help/module/CheckIPOSupported.rst b/share/cmake-3.18/Help/module/CheckIPOSupported.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CheckIPOSupported.rst
rename to share/cmake-3.18/Help/module/CheckIPOSupported.rst
diff --git a/share/cmake-3.17/Help/module/CheckIncludeFile.rst b/share/cmake-3.18/Help/module/CheckIncludeFile.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CheckIncludeFile.rst
rename to share/cmake-3.18/Help/module/CheckIncludeFile.rst
diff --git a/share/cmake-3.17/Help/module/CheckIncludeFileCXX.rst b/share/cmake-3.18/Help/module/CheckIncludeFileCXX.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CheckIncludeFileCXX.rst
rename to share/cmake-3.18/Help/module/CheckIncludeFileCXX.rst
diff --git a/share/cmake-3.17/Help/module/CheckIncludeFiles.rst b/share/cmake-3.18/Help/module/CheckIncludeFiles.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CheckIncludeFiles.rst
rename to share/cmake-3.18/Help/module/CheckIncludeFiles.rst
diff --git a/share/cmake-3.17/Help/module/CheckLanguage.rst b/share/cmake-3.18/Help/module/CheckLanguage.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CheckLanguage.rst
rename to share/cmake-3.18/Help/module/CheckLanguage.rst
diff --git a/share/cmake-3.17/Help/module/CheckLibraryExists.rst b/share/cmake-3.18/Help/module/CheckLibraryExists.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CheckLibraryExists.rst
rename to share/cmake-3.18/Help/module/CheckLibraryExists.rst
diff --git a/share/cmake-3.18/Help/module/CheckLinkerFlag.rst b/share/cmake-3.18/Help/module/CheckLinkerFlag.rst
new file mode 100644
index 0000000..4005725
--- /dev/null
+++ b/share/cmake-3.18/Help/module/CheckLinkerFlag.rst
@@ -0,0 +1 @@
+.. cmake-module:: ../../Modules/CheckLinkerFlag.cmake
diff --git a/share/cmake-3.17/Help/module/CheckOBJCCompilerFlag.rst b/share/cmake-3.18/Help/module/CheckOBJCCompilerFlag.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CheckOBJCCompilerFlag.rst
rename to share/cmake-3.18/Help/module/CheckOBJCCompilerFlag.rst
diff --git a/share/cmake-3.17/Help/module/CheckOBJCSourceCompiles.rst b/share/cmake-3.18/Help/module/CheckOBJCSourceCompiles.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CheckOBJCSourceCompiles.rst
rename to share/cmake-3.18/Help/module/CheckOBJCSourceCompiles.rst
diff --git a/share/cmake-3.17/Help/module/CheckOBJCSourceRuns.rst b/share/cmake-3.18/Help/module/CheckOBJCSourceRuns.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CheckOBJCSourceRuns.rst
rename to share/cmake-3.18/Help/module/CheckOBJCSourceRuns.rst
diff --git a/share/cmake-3.17/Help/module/CheckOBJCXXCompilerFlag.rst b/share/cmake-3.18/Help/module/CheckOBJCXXCompilerFlag.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CheckOBJCXXCompilerFlag.rst
rename to share/cmake-3.18/Help/module/CheckOBJCXXCompilerFlag.rst
diff --git a/share/cmake-3.17/Help/module/CheckOBJCXXSourceCompiles.rst b/share/cmake-3.18/Help/module/CheckOBJCXXSourceCompiles.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CheckOBJCXXSourceCompiles.rst
rename to share/cmake-3.18/Help/module/CheckOBJCXXSourceCompiles.rst
diff --git a/share/cmake-3.17/Help/module/CheckOBJCXXSourceRuns.rst b/share/cmake-3.18/Help/module/CheckOBJCXXSourceRuns.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CheckOBJCXXSourceRuns.rst
rename to share/cmake-3.18/Help/module/CheckOBJCXXSourceRuns.rst
diff --git a/share/cmake-3.17/Help/module/CheckPIESupported.rst b/share/cmake-3.18/Help/module/CheckPIESupported.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CheckPIESupported.rst
rename to share/cmake-3.18/Help/module/CheckPIESupported.rst
diff --git a/share/cmake-3.17/Help/module/CheckPrototypeDefinition.rst b/share/cmake-3.18/Help/module/CheckPrototypeDefinition.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CheckPrototypeDefinition.rst
rename to share/cmake-3.18/Help/module/CheckPrototypeDefinition.rst
diff --git a/share/cmake-3.17/Help/module/CheckStructHasMember.rst b/share/cmake-3.18/Help/module/CheckStructHasMember.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CheckStructHasMember.rst
rename to share/cmake-3.18/Help/module/CheckStructHasMember.rst
diff --git a/share/cmake-3.17/Help/module/CheckSymbolExists.rst b/share/cmake-3.18/Help/module/CheckSymbolExists.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CheckSymbolExists.rst
rename to share/cmake-3.18/Help/module/CheckSymbolExists.rst
diff --git a/share/cmake-3.17/Help/module/CheckTypeSize.rst b/share/cmake-3.18/Help/module/CheckTypeSize.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CheckTypeSize.rst
rename to share/cmake-3.18/Help/module/CheckTypeSize.rst
diff --git a/share/cmake-3.17/Help/module/CheckVariableExists.rst b/share/cmake-3.18/Help/module/CheckVariableExists.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/CheckVariableExists.rst
rename to share/cmake-3.18/Help/module/CheckVariableExists.rst
diff --git a/share/cmake-3.17/Help/module/Dart.rst b/share/cmake-3.18/Help/module/Dart.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/Dart.rst
rename to share/cmake-3.18/Help/module/Dart.rst
diff --git a/share/cmake-3.17/Help/module/DeployQt4.rst b/share/cmake-3.18/Help/module/DeployQt4.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/DeployQt4.rst
rename to share/cmake-3.18/Help/module/DeployQt4.rst
diff --git a/share/cmake-3.17/Help/module/Documentation.rst b/share/cmake-3.18/Help/module/Documentation.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/Documentation.rst
rename to share/cmake-3.18/Help/module/Documentation.rst
diff --git a/share/cmake-3.17/Help/module/ExternalData.rst b/share/cmake-3.18/Help/module/ExternalData.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/ExternalData.rst
rename to share/cmake-3.18/Help/module/ExternalData.rst
diff --git a/share/cmake-3.17/Help/module/ExternalProject.rst b/share/cmake-3.18/Help/module/ExternalProject.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/ExternalProject.rst
rename to share/cmake-3.18/Help/module/ExternalProject.rst
diff --git a/share/cmake-3.17/Help/module/FeatureSummary.rst b/share/cmake-3.18/Help/module/FeatureSummary.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FeatureSummary.rst
rename to share/cmake-3.18/Help/module/FeatureSummary.rst
diff --git a/share/cmake-3.17/Help/module/FetchContent.rst b/share/cmake-3.18/Help/module/FetchContent.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FetchContent.rst
rename to share/cmake-3.18/Help/module/FetchContent.rst
diff --git a/share/cmake-3.17/Help/module/FindALSA.rst b/share/cmake-3.18/Help/module/FindALSA.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindALSA.rst
rename to share/cmake-3.18/Help/module/FindALSA.rst
diff --git a/share/cmake-3.17/Help/module/FindASPELL.rst b/share/cmake-3.18/Help/module/FindASPELL.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindASPELL.rst
rename to share/cmake-3.18/Help/module/FindASPELL.rst
diff --git a/share/cmake-3.17/Help/module/FindAVIFile.rst b/share/cmake-3.18/Help/module/FindAVIFile.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindAVIFile.rst
rename to share/cmake-3.18/Help/module/FindAVIFile.rst
diff --git a/share/cmake-3.17/Help/module/FindArmadillo.rst b/share/cmake-3.18/Help/module/FindArmadillo.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindArmadillo.rst
rename to share/cmake-3.18/Help/module/FindArmadillo.rst
diff --git a/share/cmake-3.17/Help/module/FindBISON.rst b/share/cmake-3.18/Help/module/FindBISON.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindBISON.rst
rename to share/cmake-3.18/Help/module/FindBISON.rst
diff --git a/share/cmake-3.17/Help/module/FindBLAS.rst b/share/cmake-3.18/Help/module/FindBLAS.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindBLAS.rst
rename to share/cmake-3.18/Help/module/FindBLAS.rst
diff --git a/share/cmake-3.17/Help/module/FindBZip2.rst b/share/cmake-3.18/Help/module/FindBZip2.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindBZip2.rst
rename to share/cmake-3.18/Help/module/FindBZip2.rst
diff --git a/share/cmake-3.17/Help/module/FindBacktrace.rst b/share/cmake-3.18/Help/module/FindBacktrace.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindBacktrace.rst
rename to share/cmake-3.18/Help/module/FindBacktrace.rst
diff --git a/share/cmake-3.17/Help/module/FindBoost.rst b/share/cmake-3.18/Help/module/FindBoost.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindBoost.rst
rename to share/cmake-3.18/Help/module/FindBoost.rst
diff --git a/share/cmake-3.17/Help/module/FindBullet.rst b/share/cmake-3.18/Help/module/FindBullet.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindBullet.rst
rename to share/cmake-3.18/Help/module/FindBullet.rst
diff --git a/share/cmake-3.17/Help/module/FindCABLE.rst b/share/cmake-3.18/Help/module/FindCABLE.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindCABLE.rst
rename to share/cmake-3.18/Help/module/FindCABLE.rst
diff --git a/share/cmake-3.17/Help/module/FindCUDA.rst b/share/cmake-3.18/Help/module/FindCUDA.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindCUDA.rst
rename to share/cmake-3.18/Help/module/FindCUDA.rst
diff --git a/share/cmake-3.17/Help/module/FindCUDAToolkit.rst b/share/cmake-3.18/Help/module/FindCUDAToolkit.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindCUDAToolkit.rst
rename to share/cmake-3.18/Help/module/FindCUDAToolkit.rst
diff --git a/share/cmake-3.17/Help/module/FindCURL.rst b/share/cmake-3.18/Help/module/FindCURL.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindCURL.rst
rename to share/cmake-3.18/Help/module/FindCURL.rst
diff --git a/share/cmake-3.17/Help/module/FindCVS.rst b/share/cmake-3.18/Help/module/FindCVS.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindCVS.rst
rename to share/cmake-3.18/Help/module/FindCVS.rst
diff --git a/share/cmake-3.17/Help/module/FindCoin3D.rst b/share/cmake-3.18/Help/module/FindCoin3D.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindCoin3D.rst
rename to share/cmake-3.18/Help/module/FindCoin3D.rst
diff --git a/share/cmake-3.17/Help/module/FindCups.rst b/share/cmake-3.18/Help/module/FindCups.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindCups.rst
rename to share/cmake-3.18/Help/module/FindCups.rst
diff --git a/share/cmake-3.17/Help/module/FindCurses.rst b/share/cmake-3.18/Help/module/FindCurses.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindCurses.rst
rename to share/cmake-3.18/Help/module/FindCurses.rst
diff --git a/share/cmake-3.17/Help/module/FindCxxTest.rst b/share/cmake-3.18/Help/module/FindCxxTest.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindCxxTest.rst
rename to share/cmake-3.18/Help/module/FindCxxTest.rst
diff --git a/share/cmake-3.17/Help/module/FindCygwin.rst b/share/cmake-3.18/Help/module/FindCygwin.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindCygwin.rst
rename to share/cmake-3.18/Help/module/FindCygwin.rst
diff --git a/share/cmake-3.17/Help/module/FindDCMTK.rst b/share/cmake-3.18/Help/module/FindDCMTK.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindDCMTK.rst
rename to share/cmake-3.18/Help/module/FindDCMTK.rst
diff --git a/share/cmake-3.17/Help/module/FindDart.rst b/share/cmake-3.18/Help/module/FindDart.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindDart.rst
rename to share/cmake-3.18/Help/module/FindDart.rst
diff --git a/share/cmake-3.17/Help/module/FindDevIL.rst b/share/cmake-3.18/Help/module/FindDevIL.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindDevIL.rst
rename to share/cmake-3.18/Help/module/FindDevIL.rst
diff --git a/share/cmake-3.17/Help/module/FindDoxygen.rst b/share/cmake-3.18/Help/module/FindDoxygen.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindDoxygen.rst
rename to share/cmake-3.18/Help/module/FindDoxygen.rst
diff --git a/share/cmake-3.17/Help/module/FindEXPAT.rst b/share/cmake-3.18/Help/module/FindEXPAT.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindEXPAT.rst
rename to share/cmake-3.18/Help/module/FindEXPAT.rst
diff --git a/share/cmake-3.17/Help/module/FindEnvModules.rst b/share/cmake-3.18/Help/module/FindEnvModules.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindEnvModules.rst
rename to share/cmake-3.18/Help/module/FindEnvModules.rst
diff --git a/share/cmake-3.17/Help/module/FindFLEX.rst b/share/cmake-3.18/Help/module/FindFLEX.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindFLEX.rst
rename to share/cmake-3.18/Help/module/FindFLEX.rst
diff --git a/share/cmake-3.17/Help/module/FindFLTK.rst b/share/cmake-3.18/Help/module/FindFLTK.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindFLTK.rst
rename to share/cmake-3.18/Help/module/FindFLTK.rst
diff --git a/share/cmake-3.17/Help/module/FindFLTK2.rst b/share/cmake-3.18/Help/module/FindFLTK2.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindFLTK2.rst
rename to share/cmake-3.18/Help/module/FindFLTK2.rst
diff --git a/share/cmake-3.17/Help/module/FindFontconfig.rst b/share/cmake-3.18/Help/module/FindFontconfig.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindFontconfig.rst
rename to share/cmake-3.18/Help/module/FindFontconfig.rst
diff --git a/share/cmake-3.17/Help/module/FindFreetype.rst b/share/cmake-3.18/Help/module/FindFreetype.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindFreetype.rst
rename to share/cmake-3.18/Help/module/FindFreetype.rst
diff --git a/share/cmake-3.17/Help/module/FindGCCXML.rst b/share/cmake-3.18/Help/module/FindGCCXML.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindGCCXML.rst
rename to share/cmake-3.18/Help/module/FindGCCXML.rst
diff --git a/share/cmake-3.17/Help/module/FindGDAL.rst b/share/cmake-3.18/Help/module/FindGDAL.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindGDAL.rst
rename to share/cmake-3.18/Help/module/FindGDAL.rst
diff --git a/share/cmake-3.17/Help/module/FindGIF.rst b/share/cmake-3.18/Help/module/FindGIF.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindGIF.rst
rename to share/cmake-3.18/Help/module/FindGIF.rst
diff --git a/share/cmake-3.17/Help/module/FindGLEW.rst b/share/cmake-3.18/Help/module/FindGLEW.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindGLEW.rst
rename to share/cmake-3.18/Help/module/FindGLEW.rst
diff --git a/share/cmake-3.17/Help/module/FindGLUT.rst b/share/cmake-3.18/Help/module/FindGLUT.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindGLUT.rst
rename to share/cmake-3.18/Help/module/FindGLUT.rst
diff --git a/share/cmake-3.17/Help/module/FindGSL.rst b/share/cmake-3.18/Help/module/FindGSL.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindGSL.rst
rename to share/cmake-3.18/Help/module/FindGSL.rst
diff --git a/share/cmake-3.17/Help/module/FindGTK.rst b/share/cmake-3.18/Help/module/FindGTK.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindGTK.rst
rename to share/cmake-3.18/Help/module/FindGTK.rst
diff --git a/share/cmake-3.17/Help/module/FindGTK2.rst b/share/cmake-3.18/Help/module/FindGTK2.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindGTK2.rst
rename to share/cmake-3.18/Help/module/FindGTK2.rst
diff --git a/share/cmake-3.17/Help/module/FindGTest.rst b/share/cmake-3.18/Help/module/FindGTest.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindGTest.rst
rename to share/cmake-3.18/Help/module/FindGTest.rst
diff --git a/share/cmake-3.17/Help/module/FindGettext.rst b/share/cmake-3.18/Help/module/FindGettext.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindGettext.rst
rename to share/cmake-3.18/Help/module/FindGettext.rst
diff --git a/share/cmake-3.17/Help/module/FindGit.rst b/share/cmake-3.18/Help/module/FindGit.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindGit.rst
rename to share/cmake-3.18/Help/module/FindGit.rst
diff --git a/share/cmake-3.17/Help/module/FindGnuTLS.rst b/share/cmake-3.18/Help/module/FindGnuTLS.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindGnuTLS.rst
rename to share/cmake-3.18/Help/module/FindGnuTLS.rst
diff --git a/share/cmake-3.17/Help/module/FindGnuplot.rst b/share/cmake-3.18/Help/module/FindGnuplot.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindGnuplot.rst
rename to share/cmake-3.18/Help/module/FindGnuplot.rst
diff --git a/share/cmake-3.17/Help/module/FindHDF5.rst b/share/cmake-3.18/Help/module/FindHDF5.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindHDF5.rst
rename to share/cmake-3.18/Help/module/FindHDF5.rst
diff --git a/share/cmake-3.17/Help/module/FindHSPELL.rst b/share/cmake-3.18/Help/module/FindHSPELL.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindHSPELL.rst
rename to share/cmake-3.18/Help/module/FindHSPELL.rst
diff --git a/share/cmake-3.17/Help/module/FindHTMLHelp.rst b/share/cmake-3.18/Help/module/FindHTMLHelp.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindHTMLHelp.rst
rename to share/cmake-3.18/Help/module/FindHTMLHelp.rst
diff --git a/share/cmake-3.17/Help/module/FindHg.rst b/share/cmake-3.18/Help/module/FindHg.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindHg.rst
rename to share/cmake-3.18/Help/module/FindHg.rst
diff --git a/share/cmake-3.17/Help/module/FindICU.rst b/share/cmake-3.18/Help/module/FindICU.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindICU.rst
rename to share/cmake-3.18/Help/module/FindICU.rst
diff --git a/share/cmake-3.17/Help/module/FindITK.rst b/share/cmake-3.18/Help/module/FindITK.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindITK.rst
rename to share/cmake-3.18/Help/module/FindITK.rst
diff --git a/share/cmake-3.17/Help/module/FindIce.rst b/share/cmake-3.18/Help/module/FindIce.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindIce.rst
rename to share/cmake-3.18/Help/module/FindIce.rst
diff --git a/share/cmake-3.17/Help/module/FindIconv.rst b/share/cmake-3.18/Help/module/FindIconv.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindIconv.rst
rename to share/cmake-3.18/Help/module/FindIconv.rst
diff --git a/share/cmake-3.17/Help/module/FindIcotool.rst b/share/cmake-3.18/Help/module/FindIcotool.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindIcotool.rst
rename to share/cmake-3.18/Help/module/FindIcotool.rst
diff --git a/share/cmake-3.17/Help/module/FindImageMagick.rst b/share/cmake-3.18/Help/module/FindImageMagick.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindImageMagick.rst
rename to share/cmake-3.18/Help/module/FindImageMagick.rst
diff --git a/share/cmake-3.17/Help/module/FindIntl.rst b/share/cmake-3.18/Help/module/FindIntl.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindIntl.rst
rename to share/cmake-3.18/Help/module/FindIntl.rst
diff --git a/share/cmake-3.17/Help/module/FindJNI.rst b/share/cmake-3.18/Help/module/FindJNI.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindJNI.rst
rename to share/cmake-3.18/Help/module/FindJNI.rst
diff --git a/share/cmake-3.17/Help/module/FindJPEG.rst b/share/cmake-3.18/Help/module/FindJPEG.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindJPEG.rst
rename to share/cmake-3.18/Help/module/FindJPEG.rst
diff --git a/share/cmake-3.17/Help/module/FindJasper.rst b/share/cmake-3.18/Help/module/FindJasper.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindJasper.rst
rename to share/cmake-3.18/Help/module/FindJasper.rst
diff --git a/share/cmake-3.17/Help/module/FindJava.rst b/share/cmake-3.18/Help/module/FindJava.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindJava.rst
rename to share/cmake-3.18/Help/module/FindJava.rst
diff --git a/share/cmake-3.17/Help/module/FindKDE3.rst b/share/cmake-3.18/Help/module/FindKDE3.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindKDE3.rst
rename to share/cmake-3.18/Help/module/FindKDE3.rst
diff --git a/share/cmake-3.17/Help/module/FindKDE4.rst b/share/cmake-3.18/Help/module/FindKDE4.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindKDE4.rst
rename to share/cmake-3.18/Help/module/FindKDE4.rst
diff --git a/share/cmake-3.17/Help/module/FindLAPACK.rst b/share/cmake-3.18/Help/module/FindLAPACK.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindLAPACK.rst
rename to share/cmake-3.18/Help/module/FindLAPACK.rst
diff --git a/share/cmake-3.17/Help/module/FindLATEX.rst b/share/cmake-3.18/Help/module/FindLATEX.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindLATEX.rst
rename to share/cmake-3.18/Help/module/FindLATEX.rst
diff --git a/share/cmake-3.17/Help/module/FindLTTngUST.rst b/share/cmake-3.18/Help/module/FindLTTngUST.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindLTTngUST.rst
rename to share/cmake-3.18/Help/module/FindLTTngUST.rst
diff --git a/share/cmake-3.17/Help/module/FindLibArchive.rst b/share/cmake-3.18/Help/module/FindLibArchive.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindLibArchive.rst
rename to share/cmake-3.18/Help/module/FindLibArchive.rst
diff --git a/share/cmake-3.17/Help/module/FindLibLZMA.rst b/share/cmake-3.18/Help/module/FindLibLZMA.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindLibLZMA.rst
rename to share/cmake-3.18/Help/module/FindLibLZMA.rst
diff --git a/share/cmake-3.17/Help/module/FindLibXml2.rst b/share/cmake-3.18/Help/module/FindLibXml2.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindLibXml2.rst
rename to share/cmake-3.18/Help/module/FindLibXml2.rst
diff --git a/share/cmake-3.17/Help/module/FindLibXslt.rst b/share/cmake-3.18/Help/module/FindLibXslt.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindLibXslt.rst
rename to share/cmake-3.18/Help/module/FindLibXslt.rst
diff --git a/share/cmake-3.17/Help/module/FindLibinput.rst b/share/cmake-3.18/Help/module/FindLibinput.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindLibinput.rst
rename to share/cmake-3.18/Help/module/FindLibinput.rst
diff --git a/share/cmake-3.17/Help/module/FindLua.rst b/share/cmake-3.18/Help/module/FindLua.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindLua.rst
rename to share/cmake-3.18/Help/module/FindLua.rst
diff --git a/share/cmake-3.17/Help/module/FindLua50.rst b/share/cmake-3.18/Help/module/FindLua50.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindLua50.rst
rename to share/cmake-3.18/Help/module/FindLua50.rst
diff --git a/share/cmake-3.17/Help/module/FindLua51.rst b/share/cmake-3.18/Help/module/FindLua51.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindLua51.rst
rename to share/cmake-3.18/Help/module/FindLua51.rst
diff --git a/share/cmake-3.17/Help/module/FindMFC.rst b/share/cmake-3.18/Help/module/FindMFC.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindMFC.rst
rename to share/cmake-3.18/Help/module/FindMFC.rst
diff --git a/share/cmake-3.17/Help/module/FindMPEG.rst b/share/cmake-3.18/Help/module/FindMPEG.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindMPEG.rst
rename to share/cmake-3.18/Help/module/FindMPEG.rst
diff --git a/share/cmake-3.17/Help/module/FindMPEG2.rst b/share/cmake-3.18/Help/module/FindMPEG2.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindMPEG2.rst
rename to share/cmake-3.18/Help/module/FindMPEG2.rst
diff --git a/share/cmake-3.17/Help/module/FindMPI.rst b/share/cmake-3.18/Help/module/FindMPI.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindMPI.rst
rename to share/cmake-3.18/Help/module/FindMPI.rst
diff --git a/share/cmake-3.17/Help/module/FindMatlab.rst b/share/cmake-3.18/Help/module/FindMatlab.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindMatlab.rst
rename to share/cmake-3.18/Help/module/FindMatlab.rst
diff --git a/share/cmake-3.17/Help/module/FindMotif.rst b/share/cmake-3.18/Help/module/FindMotif.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindMotif.rst
rename to share/cmake-3.18/Help/module/FindMotif.rst
diff --git a/share/cmake-3.17/Help/module/FindODBC.rst b/share/cmake-3.18/Help/module/FindODBC.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindODBC.rst
rename to share/cmake-3.18/Help/module/FindODBC.rst
diff --git a/share/cmake-3.17/Help/module/FindOpenACC.rst b/share/cmake-3.18/Help/module/FindOpenACC.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindOpenACC.rst
rename to share/cmake-3.18/Help/module/FindOpenACC.rst
diff --git a/share/cmake-3.17/Help/module/FindOpenAL.rst b/share/cmake-3.18/Help/module/FindOpenAL.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindOpenAL.rst
rename to share/cmake-3.18/Help/module/FindOpenAL.rst
diff --git a/share/cmake-3.17/Help/module/FindOpenCL.rst b/share/cmake-3.18/Help/module/FindOpenCL.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindOpenCL.rst
rename to share/cmake-3.18/Help/module/FindOpenCL.rst
diff --git a/share/cmake-3.17/Help/module/FindOpenGL.rst b/share/cmake-3.18/Help/module/FindOpenGL.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindOpenGL.rst
rename to share/cmake-3.18/Help/module/FindOpenGL.rst
diff --git a/share/cmake-3.17/Help/module/FindOpenMP.rst b/share/cmake-3.18/Help/module/FindOpenMP.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindOpenMP.rst
rename to share/cmake-3.18/Help/module/FindOpenMP.rst
diff --git a/share/cmake-3.17/Help/module/FindOpenSSL.rst b/share/cmake-3.18/Help/module/FindOpenSSL.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindOpenSSL.rst
rename to share/cmake-3.18/Help/module/FindOpenSSL.rst
diff --git a/share/cmake-3.17/Help/module/FindOpenSceneGraph.rst b/share/cmake-3.18/Help/module/FindOpenSceneGraph.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindOpenSceneGraph.rst
rename to share/cmake-3.18/Help/module/FindOpenSceneGraph.rst
diff --git a/share/cmake-3.17/Help/module/FindOpenThreads.rst b/share/cmake-3.18/Help/module/FindOpenThreads.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindOpenThreads.rst
rename to share/cmake-3.18/Help/module/FindOpenThreads.rst
diff --git a/share/cmake-3.17/Help/module/FindPHP4.rst b/share/cmake-3.18/Help/module/FindPHP4.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindPHP4.rst
rename to share/cmake-3.18/Help/module/FindPHP4.rst
diff --git a/share/cmake-3.17/Help/module/FindPNG.rst b/share/cmake-3.18/Help/module/FindPNG.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindPNG.rst
rename to share/cmake-3.18/Help/module/FindPNG.rst
diff --git a/share/cmake-3.17/Help/module/FindPackageHandleStandardArgs.rst b/share/cmake-3.18/Help/module/FindPackageHandleStandardArgs.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindPackageHandleStandardArgs.rst
rename to share/cmake-3.18/Help/module/FindPackageHandleStandardArgs.rst
diff --git a/share/cmake-3.17/Help/module/FindPackageMessage.rst b/share/cmake-3.18/Help/module/FindPackageMessage.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindPackageMessage.rst
rename to share/cmake-3.18/Help/module/FindPackageMessage.rst
diff --git a/share/cmake-3.17/Help/module/FindPatch.rst b/share/cmake-3.18/Help/module/FindPatch.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindPatch.rst
rename to share/cmake-3.18/Help/module/FindPatch.rst
diff --git a/share/cmake-3.17/Help/module/FindPerl.rst b/share/cmake-3.18/Help/module/FindPerl.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindPerl.rst
rename to share/cmake-3.18/Help/module/FindPerl.rst
diff --git a/share/cmake-3.17/Help/module/FindPerlLibs.rst b/share/cmake-3.18/Help/module/FindPerlLibs.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindPerlLibs.rst
rename to share/cmake-3.18/Help/module/FindPerlLibs.rst
diff --git a/share/cmake-3.17/Help/module/FindPhysFS.rst b/share/cmake-3.18/Help/module/FindPhysFS.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindPhysFS.rst
rename to share/cmake-3.18/Help/module/FindPhysFS.rst
diff --git a/share/cmake-3.17/Help/module/FindPike.rst b/share/cmake-3.18/Help/module/FindPike.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindPike.rst
rename to share/cmake-3.18/Help/module/FindPike.rst
diff --git a/share/cmake-3.17/Help/module/FindPkgConfig.rst b/share/cmake-3.18/Help/module/FindPkgConfig.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindPkgConfig.rst
rename to share/cmake-3.18/Help/module/FindPkgConfig.rst
diff --git a/share/cmake-3.17/Help/module/FindPostgreSQL.rst b/share/cmake-3.18/Help/module/FindPostgreSQL.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindPostgreSQL.rst
rename to share/cmake-3.18/Help/module/FindPostgreSQL.rst
diff --git a/share/cmake-3.17/Help/module/FindProducer.rst b/share/cmake-3.18/Help/module/FindProducer.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindProducer.rst
rename to share/cmake-3.18/Help/module/FindProducer.rst
diff --git a/share/cmake-3.17/Help/module/FindProtobuf.rst b/share/cmake-3.18/Help/module/FindProtobuf.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindProtobuf.rst
rename to share/cmake-3.18/Help/module/FindProtobuf.rst
diff --git a/share/cmake-3.17/Help/module/FindPython.rst b/share/cmake-3.18/Help/module/FindPython.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindPython.rst
rename to share/cmake-3.18/Help/module/FindPython.rst
diff --git a/share/cmake-3.17/Help/module/FindPython2.rst b/share/cmake-3.18/Help/module/FindPython2.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindPython2.rst
rename to share/cmake-3.18/Help/module/FindPython2.rst
diff --git a/share/cmake-3.17/Help/module/FindPython3.rst b/share/cmake-3.18/Help/module/FindPython3.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindPython3.rst
rename to share/cmake-3.18/Help/module/FindPython3.rst
diff --git a/share/cmake-3.17/Help/module/FindPythonInterp.rst b/share/cmake-3.18/Help/module/FindPythonInterp.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindPythonInterp.rst
rename to share/cmake-3.18/Help/module/FindPythonInterp.rst
diff --git a/share/cmake-3.17/Help/module/FindPythonLibs.rst b/share/cmake-3.18/Help/module/FindPythonLibs.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindPythonLibs.rst
rename to share/cmake-3.18/Help/module/FindPythonLibs.rst
diff --git a/share/cmake-3.17/Help/module/FindQt.rst b/share/cmake-3.18/Help/module/FindQt.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindQt.rst
rename to share/cmake-3.18/Help/module/FindQt.rst
diff --git a/share/cmake-3.17/Help/module/FindQt3.rst b/share/cmake-3.18/Help/module/FindQt3.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindQt3.rst
rename to share/cmake-3.18/Help/module/FindQt3.rst
diff --git a/share/cmake-3.17/Help/module/FindQt4.rst b/share/cmake-3.18/Help/module/FindQt4.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindQt4.rst
rename to share/cmake-3.18/Help/module/FindQt4.rst
diff --git a/share/cmake-3.17/Help/module/FindQuickTime.rst b/share/cmake-3.18/Help/module/FindQuickTime.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindQuickTime.rst
rename to share/cmake-3.18/Help/module/FindQuickTime.rst
diff --git a/share/cmake-3.17/Help/module/FindRTI.rst b/share/cmake-3.18/Help/module/FindRTI.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindRTI.rst
rename to share/cmake-3.18/Help/module/FindRTI.rst
diff --git a/share/cmake-3.17/Help/module/FindRuby.rst b/share/cmake-3.18/Help/module/FindRuby.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindRuby.rst
rename to share/cmake-3.18/Help/module/FindRuby.rst
diff --git a/share/cmake-3.17/Help/module/FindSDL.rst b/share/cmake-3.18/Help/module/FindSDL.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindSDL.rst
rename to share/cmake-3.18/Help/module/FindSDL.rst
diff --git a/share/cmake-3.17/Help/module/FindSDL_image.rst b/share/cmake-3.18/Help/module/FindSDL_image.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindSDL_image.rst
rename to share/cmake-3.18/Help/module/FindSDL_image.rst
diff --git a/share/cmake-3.17/Help/module/FindSDL_mixer.rst b/share/cmake-3.18/Help/module/FindSDL_mixer.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindSDL_mixer.rst
rename to share/cmake-3.18/Help/module/FindSDL_mixer.rst
diff --git a/share/cmake-3.17/Help/module/FindSDL_net.rst b/share/cmake-3.18/Help/module/FindSDL_net.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindSDL_net.rst
rename to share/cmake-3.18/Help/module/FindSDL_net.rst
diff --git a/share/cmake-3.17/Help/module/FindSDL_sound.rst b/share/cmake-3.18/Help/module/FindSDL_sound.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindSDL_sound.rst
rename to share/cmake-3.18/Help/module/FindSDL_sound.rst
diff --git a/share/cmake-3.17/Help/module/FindSDL_ttf.rst b/share/cmake-3.18/Help/module/FindSDL_ttf.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindSDL_ttf.rst
rename to share/cmake-3.18/Help/module/FindSDL_ttf.rst
diff --git a/share/cmake-3.17/Help/module/FindSQLite3.rst b/share/cmake-3.18/Help/module/FindSQLite3.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindSQLite3.rst
rename to share/cmake-3.18/Help/module/FindSQLite3.rst
diff --git a/share/cmake-3.17/Help/module/FindSWIG.rst b/share/cmake-3.18/Help/module/FindSWIG.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindSWIG.rst
rename to share/cmake-3.18/Help/module/FindSWIG.rst
diff --git a/share/cmake-3.17/Help/module/FindSelfPackers.rst b/share/cmake-3.18/Help/module/FindSelfPackers.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindSelfPackers.rst
rename to share/cmake-3.18/Help/module/FindSelfPackers.rst
diff --git a/share/cmake-3.17/Help/module/FindSquish.rst b/share/cmake-3.18/Help/module/FindSquish.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindSquish.rst
rename to share/cmake-3.18/Help/module/FindSquish.rst
diff --git a/share/cmake-3.17/Help/module/FindSubversion.rst b/share/cmake-3.18/Help/module/FindSubversion.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindSubversion.rst
rename to share/cmake-3.18/Help/module/FindSubversion.rst
diff --git a/share/cmake-3.17/Help/module/FindTCL.rst b/share/cmake-3.18/Help/module/FindTCL.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindTCL.rst
rename to share/cmake-3.18/Help/module/FindTCL.rst
diff --git a/share/cmake-3.17/Help/module/FindTIFF.rst b/share/cmake-3.18/Help/module/FindTIFF.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindTIFF.rst
rename to share/cmake-3.18/Help/module/FindTIFF.rst
diff --git a/share/cmake-3.17/Help/module/FindTclStub.rst b/share/cmake-3.18/Help/module/FindTclStub.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindTclStub.rst
rename to share/cmake-3.18/Help/module/FindTclStub.rst
diff --git a/share/cmake-3.17/Help/module/FindTclsh.rst b/share/cmake-3.18/Help/module/FindTclsh.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindTclsh.rst
rename to share/cmake-3.18/Help/module/FindTclsh.rst
diff --git a/share/cmake-3.17/Help/module/FindThreads.rst b/share/cmake-3.18/Help/module/FindThreads.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindThreads.rst
rename to share/cmake-3.18/Help/module/FindThreads.rst
diff --git a/share/cmake-3.17/Help/module/FindUnixCommands.rst b/share/cmake-3.18/Help/module/FindUnixCommands.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindUnixCommands.rst
rename to share/cmake-3.18/Help/module/FindUnixCommands.rst
diff --git a/share/cmake-3.17/Help/module/FindVTK.rst b/share/cmake-3.18/Help/module/FindVTK.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindVTK.rst
rename to share/cmake-3.18/Help/module/FindVTK.rst
diff --git a/share/cmake-3.17/Help/module/FindVulkan.rst b/share/cmake-3.18/Help/module/FindVulkan.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindVulkan.rst
rename to share/cmake-3.18/Help/module/FindVulkan.rst
diff --git a/share/cmake-3.17/Help/module/FindWget.rst b/share/cmake-3.18/Help/module/FindWget.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindWget.rst
rename to share/cmake-3.18/Help/module/FindWget.rst
diff --git a/share/cmake-3.17/Help/module/FindWish.rst b/share/cmake-3.18/Help/module/FindWish.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindWish.rst
rename to share/cmake-3.18/Help/module/FindWish.rst
diff --git a/share/cmake-3.17/Help/module/FindX11.rst b/share/cmake-3.18/Help/module/FindX11.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindX11.rst
rename to share/cmake-3.18/Help/module/FindX11.rst
diff --git a/share/cmake-3.17/Help/module/FindXCTest.rst b/share/cmake-3.18/Help/module/FindXCTest.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindXCTest.rst
rename to share/cmake-3.18/Help/module/FindXCTest.rst
diff --git a/share/cmake-3.17/Help/module/FindXMLRPC.rst b/share/cmake-3.18/Help/module/FindXMLRPC.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindXMLRPC.rst
rename to share/cmake-3.18/Help/module/FindXMLRPC.rst
diff --git a/share/cmake-3.17/Help/module/FindXalanC.rst b/share/cmake-3.18/Help/module/FindXalanC.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindXalanC.rst
rename to share/cmake-3.18/Help/module/FindXalanC.rst
diff --git a/share/cmake-3.17/Help/module/FindXercesC.rst b/share/cmake-3.18/Help/module/FindXercesC.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindXercesC.rst
rename to share/cmake-3.18/Help/module/FindXercesC.rst
diff --git a/share/cmake-3.17/Help/module/FindZLIB.rst b/share/cmake-3.18/Help/module/FindZLIB.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindZLIB.rst
rename to share/cmake-3.18/Help/module/FindZLIB.rst
diff --git a/share/cmake-3.17/Help/module/Findosg.rst b/share/cmake-3.18/Help/module/Findosg.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/Findosg.rst
rename to share/cmake-3.18/Help/module/Findosg.rst
diff --git a/share/cmake-3.17/Help/module/FindosgAnimation.rst b/share/cmake-3.18/Help/module/FindosgAnimation.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindosgAnimation.rst
rename to share/cmake-3.18/Help/module/FindosgAnimation.rst
diff --git a/share/cmake-3.17/Help/module/FindosgDB.rst b/share/cmake-3.18/Help/module/FindosgDB.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindosgDB.rst
rename to share/cmake-3.18/Help/module/FindosgDB.rst
diff --git a/share/cmake-3.17/Help/module/FindosgFX.rst b/share/cmake-3.18/Help/module/FindosgFX.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindosgFX.rst
rename to share/cmake-3.18/Help/module/FindosgFX.rst
diff --git a/share/cmake-3.17/Help/module/FindosgGA.rst b/share/cmake-3.18/Help/module/FindosgGA.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindosgGA.rst
rename to share/cmake-3.18/Help/module/FindosgGA.rst
diff --git a/share/cmake-3.17/Help/module/FindosgIntrospection.rst b/share/cmake-3.18/Help/module/FindosgIntrospection.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindosgIntrospection.rst
rename to share/cmake-3.18/Help/module/FindosgIntrospection.rst
diff --git a/share/cmake-3.17/Help/module/FindosgManipulator.rst b/share/cmake-3.18/Help/module/FindosgManipulator.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindosgManipulator.rst
rename to share/cmake-3.18/Help/module/FindosgManipulator.rst
diff --git a/share/cmake-3.17/Help/module/FindosgParticle.rst b/share/cmake-3.18/Help/module/FindosgParticle.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindosgParticle.rst
rename to share/cmake-3.18/Help/module/FindosgParticle.rst
diff --git a/share/cmake-3.17/Help/module/FindosgPresentation.rst b/share/cmake-3.18/Help/module/FindosgPresentation.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindosgPresentation.rst
rename to share/cmake-3.18/Help/module/FindosgPresentation.rst
diff --git a/share/cmake-3.17/Help/module/FindosgProducer.rst b/share/cmake-3.18/Help/module/FindosgProducer.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindosgProducer.rst
rename to share/cmake-3.18/Help/module/FindosgProducer.rst
diff --git a/share/cmake-3.17/Help/module/FindosgQt.rst b/share/cmake-3.18/Help/module/FindosgQt.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindosgQt.rst
rename to share/cmake-3.18/Help/module/FindosgQt.rst
diff --git a/share/cmake-3.17/Help/module/FindosgShadow.rst b/share/cmake-3.18/Help/module/FindosgShadow.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindosgShadow.rst
rename to share/cmake-3.18/Help/module/FindosgShadow.rst
diff --git a/share/cmake-3.17/Help/module/FindosgSim.rst b/share/cmake-3.18/Help/module/FindosgSim.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindosgSim.rst
rename to share/cmake-3.18/Help/module/FindosgSim.rst
diff --git a/share/cmake-3.17/Help/module/FindosgTerrain.rst b/share/cmake-3.18/Help/module/FindosgTerrain.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindosgTerrain.rst
rename to share/cmake-3.18/Help/module/FindosgTerrain.rst
diff --git a/share/cmake-3.17/Help/module/FindosgText.rst b/share/cmake-3.18/Help/module/FindosgText.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindosgText.rst
rename to share/cmake-3.18/Help/module/FindosgText.rst
diff --git a/share/cmake-3.17/Help/module/FindosgUtil.rst b/share/cmake-3.18/Help/module/FindosgUtil.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindosgUtil.rst
rename to share/cmake-3.18/Help/module/FindosgUtil.rst
diff --git a/share/cmake-3.17/Help/module/FindosgViewer.rst b/share/cmake-3.18/Help/module/FindosgViewer.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindosgViewer.rst
rename to share/cmake-3.18/Help/module/FindosgViewer.rst
diff --git a/share/cmake-3.17/Help/module/FindosgVolume.rst b/share/cmake-3.18/Help/module/FindosgVolume.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindosgVolume.rst
rename to share/cmake-3.18/Help/module/FindosgVolume.rst
diff --git a/share/cmake-3.17/Help/module/FindosgWidget.rst b/share/cmake-3.18/Help/module/FindosgWidget.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindosgWidget.rst
rename to share/cmake-3.18/Help/module/FindosgWidget.rst
diff --git a/share/cmake-3.17/Help/module/Findosg_functions.rst b/share/cmake-3.18/Help/module/Findosg_functions.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/Findosg_functions.rst
rename to share/cmake-3.18/Help/module/Findosg_functions.rst
diff --git a/share/cmake-3.17/Help/module/FindwxWidgets.rst b/share/cmake-3.18/Help/module/FindwxWidgets.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindwxWidgets.rst
rename to share/cmake-3.18/Help/module/FindwxWidgets.rst
diff --git a/share/cmake-3.17/Help/module/FindwxWindows.rst b/share/cmake-3.18/Help/module/FindwxWindows.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FindwxWindows.rst
rename to share/cmake-3.18/Help/module/FindwxWindows.rst
diff --git a/share/cmake-3.17/Help/module/FortranCInterface.rst b/share/cmake-3.18/Help/module/FortranCInterface.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/FortranCInterface.rst
rename to share/cmake-3.18/Help/module/FortranCInterface.rst
diff --git a/share/cmake-3.17/Help/module/GNUInstallDirs.rst b/share/cmake-3.18/Help/module/GNUInstallDirs.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/GNUInstallDirs.rst
rename to share/cmake-3.18/Help/module/GNUInstallDirs.rst
diff --git a/share/cmake-3.17/Help/module/GenerateExportHeader.rst b/share/cmake-3.18/Help/module/GenerateExportHeader.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/GenerateExportHeader.rst
rename to share/cmake-3.18/Help/module/GenerateExportHeader.rst
diff --git a/share/cmake-3.17/Help/module/GetPrerequisites.rst b/share/cmake-3.18/Help/module/GetPrerequisites.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/GetPrerequisites.rst
rename to share/cmake-3.18/Help/module/GetPrerequisites.rst
diff --git a/share/cmake-3.17/Help/module/GoogleTest.rst b/share/cmake-3.18/Help/module/GoogleTest.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/GoogleTest.rst
rename to share/cmake-3.18/Help/module/GoogleTest.rst
diff --git a/share/cmake-3.17/Help/module/InstallRequiredSystemLibraries.rst b/share/cmake-3.18/Help/module/InstallRequiredSystemLibraries.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/InstallRequiredSystemLibraries.rst
rename to share/cmake-3.18/Help/module/InstallRequiredSystemLibraries.rst
diff --git a/share/cmake-3.17/Help/module/MacroAddFileDependencies.rst b/share/cmake-3.18/Help/module/MacroAddFileDependencies.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/MacroAddFileDependencies.rst
rename to share/cmake-3.18/Help/module/MacroAddFileDependencies.rst
diff --git a/share/cmake-3.17/Help/module/ProcessorCount.rst b/share/cmake-3.18/Help/module/ProcessorCount.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/ProcessorCount.rst
rename to share/cmake-3.18/Help/module/ProcessorCount.rst
diff --git a/share/cmake-3.17/Help/module/SelectLibraryConfigurations.rst b/share/cmake-3.18/Help/module/SelectLibraryConfigurations.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/SelectLibraryConfigurations.rst
rename to share/cmake-3.18/Help/module/SelectLibraryConfigurations.rst
diff --git a/share/cmake-3.17/Help/module/SquishTestScript.rst b/share/cmake-3.18/Help/module/SquishTestScript.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/SquishTestScript.rst
rename to share/cmake-3.18/Help/module/SquishTestScript.rst
diff --git a/share/cmake-3.17/Help/module/TestBigEndian.rst b/share/cmake-3.18/Help/module/TestBigEndian.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/TestBigEndian.rst
rename to share/cmake-3.18/Help/module/TestBigEndian.rst
diff --git a/share/cmake-3.17/Help/module/TestCXXAcceptsFlag.rst b/share/cmake-3.18/Help/module/TestCXXAcceptsFlag.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/TestCXXAcceptsFlag.rst
rename to share/cmake-3.18/Help/module/TestCXXAcceptsFlag.rst
diff --git a/share/cmake-3.17/Help/module/TestForANSIForScope.rst b/share/cmake-3.18/Help/module/TestForANSIForScope.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/TestForANSIForScope.rst
rename to share/cmake-3.18/Help/module/TestForANSIForScope.rst
diff --git a/share/cmake-3.17/Help/module/TestForANSIStreamHeaders.rst b/share/cmake-3.18/Help/module/TestForANSIStreamHeaders.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/TestForANSIStreamHeaders.rst
rename to share/cmake-3.18/Help/module/TestForANSIStreamHeaders.rst
diff --git a/share/cmake-3.17/Help/module/TestForSSTREAM.rst b/share/cmake-3.18/Help/module/TestForSSTREAM.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/TestForSSTREAM.rst
rename to share/cmake-3.18/Help/module/TestForSSTREAM.rst
diff --git a/share/cmake-3.17/Help/module/TestForSTDNamespace.rst b/share/cmake-3.18/Help/module/TestForSTDNamespace.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/TestForSTDNamespace.rst
rename to share/cmake-3.18/Help/module/TestForSTDNamespace.rst
diff --git a/share/cmake-3.17/Help/module/UseEcos.rst b/share/cmake-3.18/Help/module/UseEcos.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/UseEcos.rst
rename to share/cmake-3.18/Help/module/UseEcos.rst
diff --git a/share/cmake-3.17/Help/module/UseJava.rst b/share/cmake-3.18/Help/module/UseJava.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/UseJava.rst
rename to share/cmake-3.18/Help/module/UseJava.rst
diff --git a/share/cmake-3.17/Help/module/UseJavaClassFilelist.rst b/share/cmake-3.18/Help/module/UseJavaClassFilelist.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/UseJavaClassFilelist.rst
rename to share/cmake-3.18/Help/module/UseJavaClassFilelist.rst
diff --git a/share/cmake-3.17/Help/module/UseJavaSymlinks.rst b/share/cmake-3.18/Help/module/UseJavaSymlinks.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/UseJavaSymlinks.rst
rename to share/cmake-3.18/Help/module/UseJavaSymlinks.rst
diff --git a/share/cmake-3.17/Help/module/UsePkgConfig.rst b/share/cmake-3.18/Help/module/UsePkgConfig.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/UsePkgConfig.rst
rename to share/cmake-3.18/Help/module/UsePkgConfig.rst
diff --git a/share/cmake-3.17/Help/module/UseSWIG.rst b/share/cmake-3.18/Help/module/UseSWIG.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/UseSWIG.rst
rename to share/cmake-3.18/Help/module/UseSWIG.rst
diff --git a/share/cmake-3.17/Help/module/Use_wxWindows.rst b/share/cmake-3.18/Help/module/Use_wxWindows.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/Use_wxWindows.rst
rename to share/cmake-3.18/Help/module/Use_wxWindows.rst
diff --git a/share/cmake-3.17/Help/module/UsewxWidgets.rst b/share/cmake-3.18/Help/module/UsewxWidgets.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/UsewxWidgets.rst
rename to share/cmake-3.18/Help/module/UsewxWidgets.rst
diff --git a/share/cmake-3.17/Help/module/WriteBasicConfigVersionFile.rst b/share/cmake-3.18/Help/module/WriteBasicConfigVersionFile.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/WriteBasicConfigVersionFile.rst
rename to share/cmake-3.18/Help/module/WriteBasicConfigVersionFile.rst
diff --git a/share/cmake-3.17/Help/module/WriteCompilerDetectionHeader.rst b/share/cmake-3.18/Help/module/WriteCompilerDetectionHeader.rst
similarity index 100%
rename from share/cmake-3.17/Help/module/WriteCompilerDetectionHeader.rst
rename to share/cmake-3.18/Help/module/WriteCompilerDetectionHeader.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0000.rst b/share/cmake-3.18/Help/policy/CMP0000.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0000.rst
rename to share/cmake-3.18/Help/policy/CMP0000.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0001.rst b/share/cmake-3.18/Help/policy/CMP0001.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0001.rst
rename to share/cmake-3.18/Help/policy/CMP0001.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0002.rst b/share/cmake-3.18/Help/policy/CMP0002.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0002.rst
rename to share/cmake-3.18/Help/policy/CMP0002.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0003.rst b/share/cmake-3.18/Help/policy/CMP0003.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0003.rst
rename to share/cmake-3.18/Help/policy/CMP0003.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0004.rst b/share/cmake-3.18/Help/policy/CMP0004.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0004.rst
rename to share/cmake-3.18/Help/policy/CMP0004.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0005.rst b/share/cmake-3.18/Help/policy/CMP0005.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0005.rst
rename to share/cmake-3.18/Help/policy/CMP0005.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0006.rst b/share/cmake-3.18/Help/policy/CMP0006.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0006.rst
rename to share/cmake-3.18/Help/policy/CMP0006.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0007.rst b/share/cmake-3.18/Help/policy/CMP0007.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0007.rst
rename to share/cmake-3.18/Help/policy/CMP0007.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0008.rst b/share/cmake-3.18/Help/policy/CMP0008.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0008.rst
rename to share/cmake-3.18/Help/policy/CMP0008.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0009.rst b/share/cmake-3.18/Help/policy/CMP0009.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0009.rst
rename to share/cmake-3.18/Help/policy/CMP0009.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0010.rst b/share/cmake-3.18/Help/policy/CMP0010.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0010.rst
rename to share/cmake-3.18/Help/policy/CMP0010.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0011.rst b/share/cmake-3.18/Help/policy/CMP0011.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0011.rst
rename to share/cmake-3.18/Help/policy/CMP0011.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0012.rst b/share/cmake-3.18/Help/policy/CMP0012.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0012.rst
rename to share/cmake-3.18/Help/policy/CMP0012.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0013.rst b/share/cmake-3.18/Help/policy/CMP0013.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0013.rst
rename to share/cmake-3.18/Help/policy/CMP0013.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0014.rst b/share/cmake-3.18/Help/policy/CMP0014.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0014.rst
rename to share/cmake-3.18/Help/policy/CMP0014.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0015.rst b/share/cmake-3.18/Help/policy/CMP0015.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0015.rst
rename to share/cmake-3.18/Help/policy/CMP0015.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0016.rst b/share/cmake-3.18/Help/policy/CMP0016.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0016.rst
rename to share/cmake-3.18/Help/policy/CMP0016.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0017.rst b/share/cmake-3.18/Help/policy/CMP0017.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0017.rst
rename to share/cmake-3.18/Help/policy/CMP0017.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0018.rst b/share/cmake-3.18/Help/policy/CMP0018.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0018.rst
rename to share/cmake-3.18/Help/policy/CMP0018.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0019.rst b/share/cmake-3.18/Help/policy/CMP0019.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0019.rst
rename to share/cmake-3.18/Help/policy/CMP0019.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0020.rst b/share/cmake-3.18/Help/policy/CMP0020.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0020.rst
rename to share/cmake-3.18/Help/policy/CMP0020.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0021.rst b/share/cmake-3.18/Help/policy/CMP0021.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0021.rst
rename to share/cmake-3.18/Help/policy/CMP0021.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0022.rst b/share/cmake-3.18/Help/policy/CMP0022.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0022.rst
rename to share/cmake-3.18/Help/policy/CMP0022.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0023.rst b/share/cmake-3.18/Help/policy/CMP0023.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0023.rst
rename to share/cmake-3.18/Help/policy/CMP0023.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0024.rst b/share/cmake-3.18/Help/policy/CMP0024.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0024.rst
rename to share/cmake-3.18/Help/policy/CMP0024.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0025.rst b/share/cmake-3.18/Help/policy/CMP0025.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0025.rst
rename to share/cmake-3.18/Help/policy/CMP0025.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0026.rst b/share/cmake-3.18/Help/policy/CMP0026.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0026.rst
rename to share/cmake-3.18/Help/policy/CMP0026.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0027.rst b/share/cmake-3.18/Help/policy/CMP0027.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0027.rst
rename to share/cmake-3.18/Help/policy/CMP0027.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0028.rst b/share/cmake-3.18/Help/policy/CMP0028.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0028.rst
rename to share/cmake-3.18/Help/policy/CMP0028.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0029.rst b/share/cmake-3.18/Help/policy/CMP0029.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0029.rst
rename to share/cmake-3.18/Help/policy/CMP0029.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0030.rst b/share/cmake-3.18/Help/policy/CMP0030.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0030.rst
rename to share/cmake-3.18/Help/policy/CMP0030.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0031.rst b/share/cmake-3.18/Help/policy/CMP0031.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0031.rst
rename to share/cmake-3.18/Help/policy/CMP0031.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0032.rst b/share/cmake-3.18/Help/policy/CMP0032.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0032.rst
rename to share/cmake-3.18/Help/policy/CMP0032.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0033.rst b/share/cmake-3.18/Help/policy/CMP0033.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0033.rst
rename to share/cmake-3.18/Help/policy/CMP0033.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0034.rst b/share/cmake-3.18/Help/policy/CMP0034.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0034.rst
rename to share/cmake-3.18/Help/policy/CMP0034.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0035.rst b/share/cmake-3.18/Help/policy/CMP0035.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0035.rst
rename to share/cmake-3.18/Help/policy/CMP0035.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0036.rst b/share/cmake-3.18/Help/policy/CMP0036.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0036.rst
rename to share/cmake-3.18/Help/policy/CMP0036.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0037.rst b/share/cmake-3.18/Help/policy/CMP0037.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0037.rst
rename to share/cmake-3.18/Help/policy/CMP0037.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0038.rst b/share/cmake-3.18/Help/policy/CMP0038.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0038.rst
rename to share/cmake-3.18/Help/policy/CMP0038.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0039.rst b/share/cmake-3.18/Help/policy/CMP0039.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0039.rst
rename to share/cmake-3.18/Help/policy/CMP0039.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0040.rst b/share/cmake-3.18/Help/policy/CMP0040.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0040.rst
rename to share/cmake-3.18/Help/policy/CMP0040.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0041.rst b/share/cmake-3.18/Help/policy/CMP0041.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0041.rst
rename to share/cmake-3.18/Help/policy/CMP0041.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0042.rst b/share/cmake-3.18/Help/policy/CMP0042.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0042.rst
rename to share/cmake-3.18/Help/policy/CMP0042.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0043.rst b/share/cmake-3.18/Help/policy/CMP0043.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0043.rst
rename to share/cmake-3.18/Help/policy/CMP0043.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0044.rst b/share/cmake-3.18/Help/policy/CMP0044.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0044.rst
rename to share/cmake-3.18/Help/policy/CMP0044.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0045.rst b/share/cmake-3.18/Help/policy/CMP0045.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0045.rst
rename to share/cmake-3.18/Help/policy/CMP0045.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0046.rst b/share/cmake-3.18/Help/policy/CMP0046.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0046.rst
rename to share/cmake-3.18/Help/policy/CMP0046.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0047.rst b/share/cmake-3.18/Help/policy/CMP0047.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0047.rst
rename to share/cmake-3.18/Help/policy/CMP0047.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0048.rst b/share/cmake-3.18/Help/policy/CMP0048.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0048.rst
rename to share/cmake-3.18/Help/policy/CMP0048.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0049.rst b/share/cmake-3.18/Help/policy/CMP0049.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0049.rst
rename to share/cmake-3.18/Help/policy/CMP0049.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0050.rst b/share/cmake-3.18/Help/policy/CMP0050.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0050.rst
rename to share/cmake-3.18/Help/policy/CMP0050.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0051.rst b/share/cmake-3.18/Help/policy/CMP0051.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0051.rst
rename to share/cmake-3.18/Help/policy/CMP0051.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0052.rst b/share/cmake-3.18/Help/policy/CMP0052.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0052.rst
rename to share/cmake-3.18/Help/policy/CMP0052.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0053.rst b/share/cmake-3.18/Help/policy/CMP0053.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0053.rst
rename to share/cmake-3.18/Help/policy/CMP0053.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0054.rst b/share/cmake-3.18/Help/policy/CMP0054.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0054.rst
rename to share/cmake-3.18/Help/policy/CMP0054.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0055.rst b/share/cmake-3.18/Help/policy/CMP0055.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0055.rst
rename to share/cmake-3.18/Help/policy/CMP0055.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0056.rst b/share/cmake-3.18/Help/policy/CMP0056.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0056.rst
rename to share/cmake-3.18/Help/policy/CMP0056.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0057.rst b/share/cmake-3.18/Help/policy/CMP0057.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0057.rst
rename to share/cmake-3.18/Help/policy/CMP0057.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0058.rst b/share/cmake-3.18/Help/policy/CMP0058.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0058.rst
rename to share/cmake-3.18/Help/policy/CMP0058.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0059.rst b/share/cmake-3.18/Help/policy/CMP0059.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0059.rst
rename to share/cmake-3.18/Help/policy/CMP0059.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0060.rst b/share/cmake-3.18/Help/policy/CMP0060.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0060.rst
rename to share/cmake-3.18/Help/policy/CMP0060.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0061.rst b/share/cmake-3.18/Help/policy/CMP0061.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0061.rst
rename to share/cmake-3.18/Help/policy/CMP0061.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0062.rst b/share/cmake-3.18/Help/policy/CMP0062.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0062.rst
rename to share/cmake-3.18/Help/policy/CMP0062.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0063.rst b/share/cmake-3.18/Help/policy/CMP0063.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0063.rst
rename to share/cmake-3.18/Help/policy/CMP0063.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0064.rst b/share/cmake-3.18/Help/policy/CMP0064.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0064.rst
rename to share/cmake-3.18/Help/policy/CMP0064.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0065.rst b/share/cmake-3.18/Help/policy/CMP0065.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0065.rst
rename to share/cmake-3.18/Help/policy/CMP0065.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0066.rst b/share/cmake-3.18/Help/policy/CMP0066.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0066.rst
rename to share/cmake-3.18/Help/policy/CMP0066.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0067.rst b/share/cmake-3.18/Help/policy/CMP0067.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0067.rst
rename to share/cmake-3.18/Help/policy/CMP0067.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0068.rst b/share/cmake-3.18/Help/policy/CMP0068.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0068.rst
rename to share/cmake-3.18/Help/policy/CMP0068.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0069.rst b/share/cmake-3.18/Help/policy/CMP0069.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0069.rst
rename to share/cmake-3.18/Help/policy/CMP0069.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0070.rst b/share/cmake-3.18/Help/policy/CMP0070.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0070.rst
rename to share/cmake-3.18/Help/policy/CMP0070.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0071.rst b/share/cmake-3.18/Help/policy/CMP0071.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0071.rst
rename to share/cmake-3.18/Help/policy/CMP0071.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0072.rst b/share/cmake-3.18/Help/policy/CMP0072.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0072.rst
rename to share/cmake-3.18/Help/policy/CMP0072.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0073.rst b/share/cmake-3.18/Help/policy/CMP0073.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0073.rst
rename to share/cmake-3.18/Help/policy/CMP0073.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0074.rst b/share/cmake-3.18/Help/policy/CMP0074.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0074.rst
rename to share/cmake-3.18/Help/policy/CMP0074.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0075.rst b/share/cmake-3.18/Help/policy/CMP0075.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0075.rst
rename to share/cmake-3.18/Help/policy/CMP0075.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0076.rst b/share/cmake-3.18/Help/policy/CMP0076.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0076.rst
rename to share/cmake-3.18/Help/policy/CMP0076.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0077.rst b/share/cmake-3.18/Help/policy/CMP0077.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0077.rst
rename to share/cmake-3.18/Help/policy/CMP0077.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0078.rst b/share/cmake-3.18/Help/policy/CMP0078.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0078.rst
rename to share/cmake-3.18/Help/policy/CMP0078.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0079.rst b/share/cmake-3.18/Help/policy/CMP0079.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0079.rst
rename to share/cmake-3.18/Help/policy/CMP0079.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0080.rst b/share/cmake-3.18/Help/policy/CMP0080.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0080.rst
rename to share/cmake-3.18/Help/policy/CMP0080.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0081.rst b/share/cmake-3.18/Help/policy/CMP0081.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0081.rst
rename to share/cmake-3.18/Help/policy/CMP0081.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0082.rst b/share/cmake-3.18/Help/policy/CMP0082.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0082.rst
rename to share/cmake-3.18/Help/policy/CMP0082.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0083.rst b/share/cmake-3.18/Help/policy/CMP0083.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0083.rst
rename to share/cmake-3.18/Help/policy/CMP0083.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0084.rst b/share/cmake-3.18/Help/policy/CMP0084.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0084.rst
rename to share/cmake-3.18/Help/policy/CMP0084.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0085.rst b/share/cmake-3.18/Help/policy/CMP0085.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0085.rst
rename to share/cmake-3.18/Help/policy/CMP0085.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0086.rst b/share/cmake-3.18/Help/policy/CMP0086.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0086.rst
rename to share/cmake-3.18/Help/policy/CMP0086.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0087.rst b/share/cmake-3.18/Help/policy/CMP0087.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0087.rst
rename to share/cmake-3.18/Help/policy/CMP0087.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0088.rst b/share/cmake-3.18/Help/policy/CMP0088.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0088.rst
rename to share/cmake-3.18/Help/policy/CMP0088.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0089.rst b/share/cmake-3.18/Help/policy/CMP0089.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0089.rst
rename to share/cmake-3.18/Help/policy/CMP0089.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0090.rst b/share/cmake-3.18/Help/policy/CMP0090.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0090.rst
rename to share/cmake-3.18/Help/policy/CMP0090.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0091.rst b/share/cmake-3.18/Help/policy/CMP0091.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0091.rst
rename to share/cmake-3.18/Help/policy/CMP0091.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0092.rst b/share/cmake-3.18/Help/policy/CMP0092.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0092.rst
rename to share/cmake-3.18/Help/policy/CMP0092.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0093.rst b/share/cmake-3.18/Help/policy/CMP0093.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0093.rst
rename to share/cmake-3.18/Help/policy/CMP0093.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0094.rst b/share/cmake-3.18/Help/policy/CMP0094.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0094.rst
rename to share/cmake-3.18/Help/policy/CMP0094.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0095.rst b/share/cmake-3.18/Help/policy/CMP0095.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0095.rst
rename to share/cmake-3.18/Help/policy/CMP0095.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0096.rst b/share/cmake-3.18/Help/policy/CMP0096.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0096.rst
rename to share/cmake-3.18/Help/policy/CMP0096.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0097.rst b/share/cmake-3.18/Help/policy/CMP0097.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0097.rst
rename to share/cmake-3.18/Help/policy/CMP0097.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0098.rst b/share/cmake-3.18/Help/policy/CMP0098.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0098.rst
rename to share/cmake-3.18/Help/policy/CMP0098.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0099.rst b/share/cmake-3.18/Help/policy/CMP0099.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0099.rst
rename to share/cmake-3.18/Help/policy/CMP0099.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0100.rst b/share/cmake-3.18/Help/policy/CMP0100.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0100.rst
rename to share/cmake-3.18/Help/policy/CMP0100.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0101.rst b/share/cmake-3.18/Help/policy/CMP0101.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0101.rst
rename to share/cmake-3.18/Help/policy/CMP0101.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0102.rst b/share/cmake-3.18/Help/policy/CMP0102.rst
similarity index 100%
rename from share/cmake-3.17/Help/policy/CMP0102.rst
rename to share/cmake-3.18/Help/policy/CMP0102.rst
diff --git a/share/cmake-3.18/Help/policy/CMP0103.rst b/share/cmake-3.18/Help/policy/CMP0103.rst
new file mode 100644
index 0000000..223e0cb
--- /dev/null
+++ b/share/cmake-3.18/Help/policy/CMP0103.rst
@@ -0,0 +1,22 @@
+CMP0103
+-------
+
+Multiple calls to :command:`export` command with same ``FILE`` without
+``APPEND`` is no longer allowed.
+
+In CMake 3.17 and below, multiple calls to :command:`export` command with the
+same ``FILE`` without ``APPEND`` are accepted silently but only the last
+occurrence is taken into account during the generation.
+
+The ``OLD`` behavior for this policy is to ignore the multiple occurrences of
+ :command:`export` command except the last one.
+
+The ``NEW`` behavior of this policy is to raise an error on second call to
+:command:`export` command with same ``FILE`` without ``APPEND``.
+
+This policy was introduced in CMake version 3.18.  CMake version
+|release| warns when the policy is not set and uses ``OLD`` behavior.
+Use the :command:`cmake_policy` command to set it to ``OLD`` or ``NEW``
+explicitly.
+
+.. include:: DEPRECATED.txt
diff --git a/share/cmake-3.18/Help/policy/CMP0104.rst b/share/cmake-3.18/Help/policy/CMP0104.rst
new file mode 100644
index 0000000..8516716
--- /dev/null
+++ b/share/cmake-3.18/Help/policy/CMP0104.rst
@@ -0,0 +1,56 @@
+CMP0104
+-------
+
+Initialize :variable:`CMAKE_CUDA_ARCHITECTURES` when
+:variable:`CMAKE_CUDA_COMPILER_ID <CMAKE_<LANG>_COMPILER_ID>` is ``NVIDIA``.
+Raise an error if :prop_tgt:`CUDA_ARCHITECTURES` is empty.
+
+:variable:`CMAKE_CUDA_ARCHITECTURES` introduced in CMake 3.18 is used to
+initialize :prop_tgt:`CUDA_ARCHITECTURES`, which passes correct code generation
+flags to the CUDA compiler.
+
+Previous to this users had to manually specify the code generation flags. This
+policy is for backwards compatibility with manually specifying code generation
+flags.
+
+The ``OLD`` behavior for this policy is to not initialize
+:variable:`CMAKE_CUDA_ARCHITECTURES` when
+:variable:`CMAKE_CUDA_COMPILER_ID <CMAKE_<LANG>_COMPILER_ID>` is ``NVIDIA``.
+Empty :prop_tgt:`CUDA_ARCHITECTURES` is allowed.
+
+The ``NEW`` behavior of this policy is to initialize
+:variable:`CMAKE_CUDA_ARCHITECTURES` when
+:variable:`CMAKE_CUDA_COMPILER_ID <CMAKE_<LANG>_COMPILER_ID>` is ``NVIDIA``
+and raise an error if :prop_tgt:`CUDA_ARCHITECTURES` is empty during generation.
+
+If :prop_tgt:`CUDA_ARCHITECTURES` is set to a false value no architectures
+flags are passed to the compiler. This is intended to support packagers and
+the rare cases where full control over the passed flags is required.
+
+This policy was introduced in CMake version 3.18.  CMake version
+|release| warns when the policy is not set and uses ``OLD`` behavior.
+Use the :command:`cmake_policy` command to set it to ``OLD`` or ``NEW``
+explicitly.
+
+.. include:: DEPRECATED.txt
+
+Examples
+^^^^^^^^
+
+.. code-block:: cmake
+
+  set_property(TARGET tgt PROPERTY CUDA_ARCHITECTURES 35 50 72)
+
+Generates code for real and virtual architectures ``30``, ``50`` and ``72``.
+
+.. code-block:: cmake
+
+  set_property(TARGET tgt PROPERTY CUDA_ARCHITECTURES 70-real 72-virtual)
+
+Generates code for real architecture ``70`` and virtual architecture ``72``.
+
+.. code-block:: cmake
+
+  set_property(TARGET tgt PROPERTY CUDA_ARCHITECTURES OFF)
+
+CMake will not pass any architecture flags to the compiler.
diff --git a/share/cmake-3.18/Help/policy/CMP0105.rst b/share/cmake-3.18/Help/policy/CMP0105.rst
new file mode 100644
index 0000000..19a1edb
--- /dev/null
+++ b/share/cmake-3.18/Help/policy/CMP0105.rst
@@ -0,0 +1,19 @@
+CMP0105
+-------
+
+:prop_tgt:`LINK_OPTIONS` and :prop_tgt:`INTERFACE_LINK_OPTIONS` target
+properties are now used for the device link step.
+
+In CMake 3.17 and below, link options are not used by the device link step.
+
+The ``OLD`` behavior for this policy is to ignore the link options.
+
+The ``NEW`` behavior of this policy is to use the link options during the
+device link step.
+
+This policy was introduced in CMake version 3.17.  Use the
+:command:`cmake_policy` command to set it to ``OLD`` or ``NEW`` explicitly.
+Unlike many policies, CMake version |release| does *not* warn
+when this policy is not set and simply uses ``OLD`` behavior.
+
+.. include:: DEPRECATED.txt
diff --git a/share/cmake-3.18/Help/policy/CMP0106.rst b/share/cmake-3.18/Help/policy/CMP0106.rst
new file mode 100644
index 0000000..e34d15a
--- /dev/null
+++ b/share/cmake-3.18/Help/policy/CMP0106.rst
@@ -0,0 +1,19 @@
+CMP0106
+-------
+
+The :module:`Documentation` module is removed.
+
+The :module:`Documentation` was added as a support mechanism for the VTK
+project and was tuned for that project. Instead of CMake providing this module
+with (now old) VTK patterns for cache variables and required packages, the
+module is now deprecated by CMake itself.
+
+The ``OLD`` behavior of this policy is for :module:`Documentation` to add
+cache variables and find VTK documentation dependent packages. The ``NEW``
+behavior is to act as an empty module.
+
+This policy was introduced in CMake version 3.18.  CMake version |release|
+warns when the policy is not set and uses ``OLD`` behavior. Use the
+:command:`cmake_policy` command to set it to ``OLD`` or ``NEW`` explicitly.
+
+.. include:: DEPRECATED.txt
diff --git a/share/cmake-3.18/Help/policy/CMP0107.rst b/share/cmake-3.18/Help/policy/CMP0107.rst
new file mode 100644
index 0000000..111bef7
--- /dev/null
+++ b/share/cmake-3.18/Help/policy/CMP0107.rst
@@ -0,0 +1,19 @@
+CMP0107
+-------
+
+It is not allowed to create an ``ALIAS`` target with the same name as an
+another target.
+
+In CMake 3.17 and below, an ``ALIAS`` target can overwrite silently an existing
+target with the same name.
+
+The ``OLD`` behavior for this policy is to allow target overwrite.
+
+The ``NEW`` behavior of this policy is to prevent target overwriting.
+
+This policy was introduced in CMake version 3.17.  Use the
+:command:`cmake_policy` command to set it to ``OLD`` or ``NEW`` explicitly.
+Unlike many policies, CMake version |release| does *not* warn
+when this policy is not set and simply uses ``OLD`` behavior.
+
+.. include:: DEPRECATED.txt
diff --git a/share/cmake-3.18/Help/policy/CMP0108.rst b/share/cmake-3.18/Help/policy/CMP0108.rst
new file mode 100644
index 0000000..0d54cfa
--- /dev/null
+++ b/share/cmake-3.18/Help/policy/CMP0108.rst
@@ -0,0 +1,19 @@
+CMP0108
+-------
+
+A target is not allowed to link to itself even through an ``ALIAS`` target.
+
+In CMake 3.17 and below, a target can link to a target aliased to itself.
+
+The ``OLD`` behavior for this policy is to allow a target to link to a target
+aliased to itself.
+
+The ``NEW`` behavior of this policy is to prevent a target to link to itself
+through an ``ALIAS`` target.
+
+This policy was introduced in CMake version 3.17.  Use the
+:command:`cmake_policy` command to set it to ``OLD`` or ``NEW`` explicitly.
+Unlike many policies, CMake version |release| does *not* warn
+when this policy is not set and simply uses ``OLD`` behavior.
+
+.. include:: DEPRECATED.txt
diff --git a/share/cmake-3.17/Help/policy/DEPRECATED.txt b/share/cmake-3.18/Help/policy/DEPRECATED.txt
similarity index 100%
rename from share/cmake-3.17/Help/policy/DEPRECATED.txt
rename to share/cmake-3.18/Help/policy/DEPRECATED.txt
diff --git a/share/cmake-3.17/Help/policy/DISALLOWED_COMMAND.txt b/share/cmake-3.18/Help/policy/DISALLOWED_COMMAND.txt
similarity index 100%
rename from share/cmake-3.17/Help/policy/DISALLOWED_COMMAND.txt
rename to share/cmake-3.18/Help/policy/DISALLOWED_COMMAND.txt
diff --git a/share/cmake-3.17/Help/prop_cache/ADVANCED.rst b/share/cmake-3.18/Help/prop_cache/ADVANCED.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_cache/ADVANCED.rst
rename to share/cmake-3.18/Help/prop_cache/ADVANCED.rst
diff --git a/share/cmake-3.17/Help/prop_cache/HELPSTRING.rst b/share/cmake-3.18/Help/prop_cache/HELPSTRING.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_cache/HELPSTRING.rst
rename to share/cmake-3.18/Help/prop_cache/HELPSTRING.rst
diff --git a/share/cmake-3.17/Help/prop_cache/MODIFIED.rst b/share/cmake-3.18/Help/prop_cache/MODIFIED.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_cache/MODIFIED.rst
rename to share/cmake-3.18/Help/prop_cache/MODIFIED.rst
diff --git a/share/cmake-3.17/Help/prop_cache/STRINGS.rst b/share/cmake-3.18/Help/prop_cache/STRINGS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_cache/STRINGS.rst
rename to share/cmake-3.18/Help/prop_cache/STRINGS.rst
diff --git a/share/cmake-3.17/Help/prop_cache/TYPE.rst b/share/cmake-3.18/Help/prop_cache/TYPE.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_cache/TYPE.rst
rename to share/cmake-3.18/Help/prop_cache/TYPE.rst
diff --git a/share/cmake-3.17/Help/prop_cache/VALUE.rst b/share/cmake-3.18/Help/prop_cache/VALUE.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_cache/VALUE.rst
rename to share/cmake-3.18/Help/prop_cache/VALUE.rst
diff --git a/share/cmake-3.17/Help/prop_dir/ADDITIONAL_CLEAN_FILES.rst b/share/cmake-3.18/Help/prop_dir/ADDITIONAL_CLEAN_FILES.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_dir/ADDITIONAL_CLEAN_FILES.rst
rename to share/cmake-3.18/Help/prop_dir/ADDITIONAL_CLEAN_FILES.rst
diff --git a/share/cmake-3.17/Help/prop_dir/ADDITIONAL_MAKE_CLEAN_FILES.rst b/share/cmake-3.18/Help/prop_dir/ADDITIONAL_MAKE_CLEAN_FILES.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_dir/ADDITIONAL_MAKE_CLEAN_FILES.rst
rename to share/cmake-3.18/Help/prop_dir/ADDITIONAL_MAKE_CLEAN_FILES.rst
diff --git a/share/cmake-3.17/Help/prop_dir/BINARY_DIR.rst b/share/cmake-3.18/Help/prop_dir/BINARY_DIR.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_dir/BINARY_DIR.rst
rename to share/cmake-3.18/Help/prop_dir/BINARY_DIR.rst
diff --git a/share/cmake-3.17/Help/prop_dir/BUILDSYSTEM_TARGETS.rst b/share/cmake-3.18/Help/prop_dir/BUILDSYSTEM_TARGETS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_dir/BUILDSYSTEM_TARGETS.rst
rename to share/cmake-3.18/Help/prop_dir/BUILDSYSTEM_TARGETS.rst
diff --git a/share/cmake-3.17/Help/prop_dir/CACHE_VARIABLES.rst b/share/cmake-3.18/Help/prop_dir/CACHE_VARIABLES.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_dir/CACHE_VARIABLES.rst
rename to share/cmake-3.18/Help/prop_dir/CACHE_VARIABLES.rst
diff --git a/share/cmake-3.17/Help/prop_dir/CLEAN_NO_CUSTOM.rst b/share/cmake-3.18/Help/prop_dir/CLEAN_NO_CUSTOM.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_dir/CLEAN_NO_CUSTOM.rst
rename to share/cmake-3.18/Help/prop_dir/CLEAN_NO_CUSTOM.rst
diff --git a/share/cmake-3.17/Help/prop_dir/CMAKE_CONFIGURE_DEPENDS.rst b/share/cmake-3.18/Help/prop_dir/CMAKE_CONFIGURE_DEPENDS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_dir/CMAKE_CONFIGURE_DEPENDS.rst
rename to share/cmake-3.18/Help/prop_dir/CMAKE_CONFIGURE_DEPENDS.rst
diff --git a/share/cmake-3.17/Help/prop_dir/COMPILE_DEFINITIONS.rst b/share/cmake-3.18/Help/prop_dir/COMPILE_DEFINITIONS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_dir/COMPILE_DEFINITIONS.rst
rename to share/cmake-3.18/Help/prop_dir/COMPILE_DEFINITIONS.rst
diff --git a/share/cmake-3.17/Help/prop_dir/COMPILE_DEFINITIONS_CONFIG.rst b/share/cmake-3.18/Help/prop_dir/COMPILE_DEFINITIONS_CONFIG.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_dir/COMPILE_DEFINITIONS_CONFIG.rst
rename to share/cmake-3.18/Help/prop_dir/COMPILE_DEFINITIONS_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_dir/COMPILE_OPTIONS.rst b/share/cmake-3.18/Help/prop_dir/COMPILE_OPTIONS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_dir/COMPILE_OPTIONS.rst
rename to share/cmake-3.18/Help/prop_dir/COMPILE_OPTIONS.rst
diff --git a/share/cmake-3.17/Help/prop_dir/DEFINITIONS.rst b/share/cmake-3.18/Help/prop_dir/DEFINITIONS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_dir/DEFINITIONS.rst
rename to share/cmake-3.18/Help/prop_dir/DEFINITIONS.rst
diff --git a/share/cmake-3.17/Help/prop_dir/EXCLUDE_FROM_ALL.rst b/share/cmake-3.18/Help/prop_dir/EXCLUDE_FROM_ALL.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_dir/EXCLUDE_FROM_ALL.rst
rename to share/cmake-3.18/Help/prop_dir/EXCLUDE_FROM_ALL.rst
diff --git a/share/cmake-3.17/Help/prop_dir/IMPLICIT_DEPENDS_INCLUDE_TRANSFORM.rst b/share/cmake-3.18/Help/prop_dir/IMPLICIT_DEPENDS_INCLUDE_TRANSFORM.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_dir/IMPLICIT_DEPENDS_INCLUDE_TRANSFORM.rst
rename to share/cmake-3.18/Help/prop_dir/IMPLICIT_DEPENDS_INCLUDE_TRANSFORM.rst
diff --git a/share/cmake-3.17/Help/prop_dir/INCLUDE_DIRECTORIES.rst b/share/cmake-3.18/Help/prop_dir/INCLUDE_DIRECTORIES.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_dir/INCLUDE_DIRECTORIES.rst
rename to share/cmake-3.18/Help/prop_dir/INCLUDE_DIRECTORIES.rst
diff --git a/share/cmake-3.17/Help/prop_dir/INCLUDE_REGULAR_EXPRESSION.rst b/share/cmake-3.18/Help/prop_dir/INCLUDE_REGULAR_EXPRESSION.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_dir/INCLUDE_REGULAR_EXPRESSION.rst
rename to share/cmake-3.18/Help/prop_dir/INCLUDE_REGULAR_EXPRESSION.rst
diff --git a/share/cmake-3.17/Help/prop_dir/INTERPROCEDURAL_OPTIMIZATION.rst b/share/cmake-3.18/Help/prop_dir/INTERPROCEDURAL_OPTIMIZATION.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_dir/INTERPROCEDURAL_OPTIMIZATION.rst
rename to share/cmake-3.18/Help/prop_dir/INTERPROCEDURAL_OPTIMIZATION.rst
diff --git a/share/cmake-3.17/Help/prop_dir/INTERPROCEDURAL_OPTIMIZATION_CONFIG.rst b/share/cmake-3.18/Help/prop_dir/INTERPROCEDURAL_OPTIMIZATION_CONFIG.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_dir/INTERPROCEDURAL_OPTIMIZATION_CONFIG.rst
rename to share/cmake-3.18/Help/prop_dir/INTERPROCEDURAL_OPTIMIZATION_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_dir/LABELS.rst b/share/cmake-3.18/Help/prop_dir/LABELS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_dir/LABELS.rst
rename to share/cmake-3.18/Help/prop_dir/LABELS.rst
diff --git a/share/cmake-3.17/Help/prop_dir/LINK_DIRECTORIES.rst b/share/cmake-3.18/Help/prop_dir/LINK_DIRECTORIES.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_dir/LINK_DIRECTORIES.rst
rename to share/cmake-3.18/Help/prop_dir/LINK_DIRECTORIES.rst
diff --git a/share/cmake-3.17/Help/prop_dir/LINK_OPTIONS.rst b/share/cmake-3.18/Help/prop_dir/LINK_OPTIONS.rst
similarity index 92%
rename from share/cmake-3.17/Help/prop_dir/LINK_OPTIONS.rst
rename to share/cmake-3.18/Help/prop_dir/LINK_OPTIONS.rst
index 54ac6dd..f229ba6 100644
--- a/share/cmake-3.17/Help/prop_dir/LINK_OPTIONS.rst
+++ b/share/cmake-3.18/Help/prop_dir/LINK_OPTIONS.rst
@@ -2,7 +2,7 @@
 ------------
 
 List of options to use for the link step of shared library, module
-and executable targets.
+and executable targets as well as the device link step.
 
 This property holds a :ref:`semicolon-separated list <CMake Language Lists>` of options
 given so far to the :command:`add_link_options` command.
diff --git a/share/cmake-3.17/Help/prop_dir/LISTFILE_STACK.rst b/share/cmake-3.18/Help/prop_dir/LISTFILE_STACK.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_dir/LISTFILE_STACK.rst
rename to share/cmake-3.18/Help/prop_dir/LISTFILE_STACK.rst
diff --git a/share/cmake-3.17/Help/prop_dir/MACROS.rst b/share/cmake-3.18/Help/prop_dir/MACROS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_dir/MACROS.rst
rename to share/cmake-3.18/Help/prop_dir/MACROS.rst
diff --git a/share/cmake-3.17/Help/prop_dir/PARENT_DIRECTORY.rst b/share/cmake-3.18/Help/prop_dir/PARENT_DIRECTORY.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_dir/PARENT_DIRECTORY.rst
rename to share/cmake-3.18/Help/prop_dir/PARENT_DIRECTORY.rst
diff --git a/share/cmake-3.17/Help/prop_dir/RULE_LAUNCH_COMPILE.rst b/share/cmake-3.18/Help/prop_dir/RULE_LAUNCH_COMPILE.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_dir/RULE_LAUNCH_COMPILE.rst
rename to share/cmake-3.18/Help/prop_dir/RULE_LAUNCH_COMPILE.rst
diff --git a/share/cmake-3.17/Help/prop_dir/RULE_LAUNCH_CUSTOM.rst b/share/cmake-3.18/Help/prop_dir/RULE_LAUNCH_CUSTOM.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_dir/RULE_LAUNCH_CUSTOM.rst
rename to share/cmake-3.18/Help/prop_dir/RULE_LAUNCH_CUSTOM.rst
diff --git a/share/cmake-3.17/Help/prop_dir/RULE_LAUNCH_LINK.rst b/share/cmake-3.18/Help/prop_dir/RULE_LAUNCH_LINK.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_dir/RULE_LAUNCH_LINK.rst
rename to share/cmake-3.18/Help/prop_dir/RULE_LAUNCH_LINK.rst
diff --git a/share/cmake-3.17/Help/prop_dir/SOURCE_DIR.rst b/share/cmake-3.18/Help/prop_dir/SOURCE_DIR.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_dir/SOURCE_DIR.rst
rename to share/cmake-3.18/Help/prop_dir/SOURCE_DIR.rst
diff --git a/share/cmake-3.17/Help/prop_dir/SUBDIRECTORIES.rst b/share/cmake-3.18/Help/prop_dir/SUBDIRECTORIES.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_dir/SUBDIRECTORIES.rst
rename to share/cmake-3.18/Help/prop_dir/SUBDIRECTORIES.rst
diff --git a/share/cmake-3.17/Help/prop_dir/TESTS.rst b/share/cmake-3.18/Help/prop_dir/TESTS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_dir/TESTS.rst
rename to share/cmake-3.18/Help/prop_dir/TESTS.rst
diff --git a/share/cmake-3.17/Help/prop_dir/TEST_INCLUDE_FILE.rst b/share/cmake-3.18/Help/prop_dir/TEST_INCLUDE_FILE.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_dir/TEST_INCLUDE_FILE.rst
rename to share/cmake-3.18/Help/prop_dir/TEST_INCLUDE_FILE.rst
diff --git a/share/cmake-3.17/Help/prop_dir/TEST_INCLUDE_FILES.rst b/share/cmake-3.18/Help/prop_dir/TEST_INCLUDE_FILES.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_dir/TEST_INCLUDE_FILES.rst
rename to share/cmake-3.18/Help/prop_dir/TEST_INCLUDE_FILES.rst
diff --git a/share/cmake-3.17/Help/prop_dir/VARIABLES.rst b/share/cmake-3.18/Help/prop_dir/VARIABLES.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_dir/VARIABLES.rst
rename to share/cmake-3.18/Help/prop_dir/VARIABLES.rst
diff --git a/share/cmake-3.17/Help/prop_dir/VS_GLOBAL_SECTION_POST_section.rst b/share/cmake-3.18/Help/prop_dir/VS_GLOBAL_SECTION_POST_section.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_dir/VS_GLOBAL_SECTION_POST_section.rst
rename to share/cmake-3.18/Help/prop_dir/VS_GLOBAL_SECTION_POST_section.rst
diff --git a/share/cmake-3.17/Help/prop_dir/VS_GLOBAL_SECTION_PRE_section.rst b/share/cmake-3.18/Help/prop_dir/VS_GLOBAL_SECTION_PRE_section.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_dir/VS_GLOBAL_SECTION_PRE_section.rst
rename to share/cmake-3.18/Help/prop_dir/VS_GLOBAL_SECTION_PRE_section.rst
diff --git a/share/cmake-3.17/Help/prop_dir/VS_STARTUP_PROJECT.rst b/share/cmake-3.18/Help/prop_dir/VS_STARTUP_PROJECT.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_dir/VS_STARTUP_PROJECT.rst
rename to share/cmake-3.18/Help/prop_dir/VS_STARTUP_PROJECT.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/ALLOW_DUPLICATE_CUSTOM_TARGETS.rst b/share/cmake-3.18/Help/prop_gbl/ALLOW_DUPLICATE_CUSTOM_TARGETS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_gbl/ALLOW_DUPLICATE_CUSTOM_TARGETS.rst
rename to share/cmake-3.18/Help/prop_gbl/ALLOW_DUPLICATE_CUSTOM_TARGETS.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/AUTOGEN_SOURCE_GROUP.rst b/share/cmake-3.18/Help/prop_gbl/AUTOGEN_SOURCE_GROUP.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_gbl/AUTOGEN_SOURCE_GROUP.rst
rename to share/cmake-3.18/Help/prop_gbl/AUTOGEN_SOURCE_GROUP.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/AUTOGEN_TARGETS_FOLDER.rst b/share/cmake-3.18/Help/prop_gbl/AUTOGEN_TARGETS_FOLDER.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_gbl/AUTOGEN_TARGETS_FOLDER.rst
rename to share/cmake-3.18/Help/prop_gbl/AUTOGEN_TARGETS_FOLDER.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/AUTOMOC_SOURCE_GROUP.rst b/share/cmake-3.18/Help/prop_gbl/AUTOMOC_SOURCE_GROUP.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_gbl/AUTOMOC_SOURCE_GROUP.rst
rename to share/cmake-3.18/Help/prop_gbl/AUTOMOC_SOURCE_GROUP.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/AUTOMOC_TARGETS_FOLDER.rst b/share/cmake-3.18/Help/prop_gbl/AUTOMOC_TARGETS_FOLDER.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_gbl/AUTOMOC_TARGETS_FOLDER.rst
rename to share/cmake-3.18/Help/prop_gbl/AUTOMOC_TARGETS_FOLDER.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/AUTORCC_SOURCE_GROUP.rst b/share/cmake-3.18/Help/prop_gbl/AUTORCC_SOURCE_GROUP.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_gbl/AUTORCC_SOURCE_GROUP.rst
rename to share/cmake-3.18/Help/prop_gbl/AUTORCC_SOURCE_GROUP.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/CMAKE_CUDA_KNOWN_FEATURES.rst b/share/cmake-3.18/Help/prop_gbl/CMAKE_CUDA_KNOWN_FEATURES.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_gbl/CMAKE_CUDA_KNOWN_FEATURES.rst
rename to share/cmake-3.18/Help/prop_gbl/CMAKE_CUDA_KNOWN_FEATURES.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/CMAKE_CXX_KNOWN_FEATURES.rst b/share/cmake-3.18/Help/prop_gbl/CMAKE_CXX_KNOWN_FEATURES.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_gbl/CMAKE_CXX_KNOWN_FEATURES.rst
rename to share/cmake-3.18/Help/prop_gbl/CMAKE_CXX_KNOWN_FEATURES.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/CMAKE_C_KNOWN_FEATURES.rst b/share/cmake-3.18/Help/prop_gbl/CMAKE_C_KNOWN_FEATURES.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_gbl/CMAKE_C_KNOWN_FEATURES.rst
rename to share/cmake-3.18/Help/prop_gbl/CMAKE_C_KNOWN_FEATURES.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/CMAKE_ROLE.rst b/share/cmake-3.18/Help/prop_gbl/CMAKE_ROLE.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_gbl/CMAKE_ROLE.rst
rename to share/cmake-3.18/Help/prop_gbl/CMAKE_ROLE.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/DEBUG_CONFIGURATIONS.rst b/share/cmake-3.18/Help/prop_gbl/DEBUG_CONFIGURATIONS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_gbl/DEBUG_CONFIGURATIONS.rst
rename to share/cmake-3.18/Help/prop_gbl/DEBUG_CONFIGURATIONS.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/DISABLED_FEATURES.rst b/share/cmake-3.18/Help/prop_gbl/DISABLED_FEATURES.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_gbl/DISABLED_FEATURES.rst
rename to share/cmake-3.18/Help/prop_gbl/DISABLED_FEATURES.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/ECLIPSE_EXTRA_CPROJECT_CONTENTS.rst b/share/cmake-3.18/Help/prop_gbl/ECLIPSE_EXTRA_CPROJECT_CONTENTS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_gbl/ECLIPSE_EXTRA_CPROJECT_CONTENTS.rst
rename to share/cmake-3.18/Help/prop_gbl/ECLIPSE_EXTRA_CPROJECT_CONTENTS.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/ECLIPSE_EXTRA_NATURES.rst b/share/cmake-3.18/Help/prop_gbl/ECLIPSE_EXTRA_NATURES.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_gbl/ECLIPSE_EXTRA_NATURES.rst
rename to share/cmake-3.18/Help/prop_gbl/ECLIPSE_EXTRA_NATURES.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/ENABLED_FEATURES.rst b/share/cmake-3.18/Help/prop_gbl/ENABLED_FEATURES.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_gbl/ENABLED_FEATURES.rst
rename to share/cmake-3.18/Help/prop_gbl/ENABLED_FEATURES.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/ENABLED_LANGUAGES.rst b/share/cmake-3.18/Help/prop_gbl/ENABLED_LANGUAGES.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_gbl/ENABLED_LANGUAGES.rst
rename to share/cmake-3.18/Help/prop_gbl/ENABLED_LANGUAGES.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/FIND_LIBRARY_USE_LIB32_PATHS.rst b/share/cmake-3.18/Help/prop_gbl/FIND_LIBRARY_USE_LIB32_PATHS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_gbl/FIND_LIBRARY_USE_LIB32_PATHS.rst
rename to share/cmake-3.18/Help/prop_gbl/FIND_LIBRARY_USE_LIB32_PATHS.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/FIND_LIBRARY_USE_LIB64_PATHS.rst b/share/cmake-3.18/Help/prop_gbl/FIND_LIBRARY_USE_LIB64_PATHS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_gbl/FIND_LIBRARY_USE_LIB64_PATHS.rst
rename to share/cmake-3.18/Help/prop_gbl/FIND_LIBRARY_USE_LIB64_PATHS.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/FIND_LIBRARY_USE_LIBX32_PATHS.rst b/share/cmake-3.18/Help/prop_gbl/FIND_LIBRARY_USE_LIBX32_PATHS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_gbl/FIND_LIBRARY_USE_LIBX32_PATHS.rst
rename to share/cmake-3.18/Help/prop_gbl/FIND_LIBRARY_USE_LIBX32_PATHS.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/FIND_LIBRARY_USE_OPENBSD_VERSIONING.rst b/share/cmake-3.18/Help/prop_gbl/FIND_LIBRARY_USE_OPENBSD_VERSIONING.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_gbl/FIND_LIBRARY_USE_OPENBSD_VERSIONING.rst
rename to share/cmake-3.18/Help/prop_gbl/FIND_LIBRARY_USE_OPENBSD_VERSIONING.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/GENERATOR_IS_MULTI_CONFIG.rst b/share/cmake-3.18/Help/prop_gbl/GENERATOR_IS_MULTI_CONFIG.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_gbl/GENERATOR_IS_MULTI_CONFIG.rst
rename to share/cmake-3.18/Help/prop_gbl/GENERATOR_IS_MULTI_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/GLOBAL_DEPENDS_DEBUG_MODE.rst b/share/cmake-3.18/Help/prop_gbl/GLOBAL_DEPENDS_DEBUG_MODE.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_gbl/GLOBAL_DEPENDS_DEBUG_MODE.rst
rename to share/cmake-3.18/Help/prop_gbl/GLOBAL_DEPENDS_DEBUG_MODE.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/GLOBAL_DEPENDS_NO_CYCLES.rst b/share/cmake-3.18/Help/prop_gbl/GLOBAL_DEPENDS_NO_CYCLES.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_gbl/GLOBAL_DEPENDS_NO_CYCLES.rst
rename to share/cmake-3.18/Help/prop_gbl/GLOBAL_DEPENDS_NO_CYCLES.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/IN_TRY_COMPILE.rst b/share/cmake-3.18/Help/prop_gbl/IN_TRY_COMPILE.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_gbl/IN_TRY_COMPILE.rst
rename to share/cmake-3.18/Help/prop_gbl/IN_TRY_COMPILE.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/JOB_POOLS.rst b/share/cmake-3.18/Help/prop_gbl/JOB_POOLS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_gbl/JOB_POOLS.rst
rename to share/cmake-3.18/Help/prop_gbl/JOB_POOLS.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/PACKAGES_FOUND.rst b/share/cmake-3.18/Help/prop_gbl/PACKAGES_FOUND.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_gbl/PACKAGES_FOUND.rst
rename to share/cmake-3.18/Help/prop_gbl/PACKAGES_FOUND.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/PACKAGES_NOT_FOUND.rst b/share/cmake-3.18/Help/prop_gbl/PACKAGES_NOT_FOUND.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_gbl/PACKAGES_NOT_FOUND.rst
rename to share/cmake-3.18/Help/prop_gbl/PACKAGES_NOT_FOUND.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/PREDEFINED_TARGETS_FOLDER.rst b/share/cmake-3.18/Help/prop_gbl/PREDEFINED_TARGETS_FOLDER.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_gbl/PREDEFINED_TARGETS_FOLDER.rst
rename to share/cmake-3.18/Help/prop_gbl/PREDEFINED_TARGETS_FOLDER.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/REPORT_UNDEFINED_PROPERTIES.rst b/share/cmake-3.18/Help/prop_gbl/REPORT_UNDEFINED_PROPERTIES.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_gbl/REPORT_UNDEFINED_PROPERTIES.rst
rename to share/cmake-3.18/Help/prop_gbl/REPORT_UNDEFINED_PROPERTIES.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/RULE_LAUNCH_COMPILE.rst b/share/cmake-3.18/Help/prop_gbl/RULE_LAUNCH_COMPILE.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_gbl/RULE_LAUNCH_COMPILE.rst
rename to share/cmake-3.18/Help/prop_gbl/RULE_LAUNCH_COMPILE.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/RULE_LAUNCH_CUSTOM.rst b/share/cmake-3.18/Help/prop_gbl/RULE_LAUNCH_CUSTOM.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_gbl/RULE_LAUNCH_CUSTOM.rst
rename to share/cmake-3.18/Help/prop_gbl/RULE_LAUNCH_CUSTOM.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/RULE_LAUNCH_LINK.rst b/share/cmake-3.18/Help/prop_gbl/RULE_LAUNCH_LINK.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_gbl/RULE_LAUNCH_LINK.rst
rename to share/cmake-3.18/Help/prop_gbl/RULE_LAUNCH_LINK.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/RULE_MESSAGES.rst b/share/cmake-3.18/Help/prop_gbl/RULE_MESSAGES.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_gbl/RULE_MESSAGES.rst
rename to share/cmake-3.18/Help/prop_gbl/RULE_MESSAGES.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/TARGET_ARCHIVES_MAY_BE_SHARED_LIBS.rst b/share/cmake-3.18/Help/prop_gbl/TARGET_ARCHIVES_MAY_BE_SHARED_LIBS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_gbl/TARGET_ARCHIVES_MAY_BE_SHARED_LIBS.rst
rename to share/cmake-3.18/Help/prop_gbl/TARGET_ARCHIVES_MAY_BE_SHARED_LIBS.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/TARGET_MESSAGES.rst b/share/cmake-3.18/Help/prop_gbl/TARGET_MESSAGES.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_gbl/TARGET_MESSAGES.rst
rename to share/cmake-3.18/Help/prop_gbl/TARGET_MESSAGES.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/TARGET_SUPPORTS_SHARED_LIBS.rst b/share/cmake-3.18/Help/prop_gbl/TARGET_SUPPORTS_SHARED_LIBS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_gbl/TARGET_SUPPORTS_SHARED_LIBS.rst
rename to share/cmake-3.18/Help/prop_gbl/TARGET_SUPPORTS_SHARED_LIBS.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/USE_FOLDERS.rst b/share/cmake-3.18/Help/prop_gbl/USE_FOLDERS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_gbl/USE_FOLDERS.rst
rename to share/cmake-3.18/Help/prop_gbl/USE_FOLDERS.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/XCODE_EMIT_EFFECTIVE_PLATFORM_NAME.rst b/share/cmake-3.18/Help/prop_gbl/XCODE_EMIT_EFFECTIVE_PLATFORM_NAME.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_gbl/XCODE_EMIT_EFFECTIVE_PLATFORM_NAME.rst
rename to share/cmake-3.18/Help/prop_gbl/XCODE_EMIT_EFFECTIVE_PLATFORM_NAME.rst
diff --git a/share/cmake-3.17/Help/prop_inst/CPACK_DESKTOP_SHORTCUTS.rst b/share/cmake-3.18/Help/prop_inst/CPACK_DESKTOP_SHORTCUTS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_inst/CPACK_DESKTOP_SHORTCUTS.rst
rename to share/cmake-3.18/Help/prop_inst/CPACK_DESKTOP_SHORTCUTS.rst
diff --git a/share/cmake-3.17/Help/prop_inst/CPACK_NEVER_OVERWRITE.rst b/share/cmake-3.18/Help/prop_inst/CPACK_NEVER_OVERWRITE.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_inst/CPACK_NEVER_OVERWRITE.rst
rename to share/cmake-3.18/Help/prop_inst/CPACK_NEVER_OVERWRITE.rst
diff --git a/share/cmake-3.17/Help/prop_inst/CPACK_PERMANENT.rst b/share/cmake-3.18/Help/prop_inst/CPACK_PERMANENT.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_inst/CPACK_PERMANENT.rst
rename to share/cmake-3.18/Help/prop_inst/CPACK_PERMANENT.rst
diff --git a/share/cmake-3.17/Help/prop_inst/CPACK_STARTUP_SHORTCUTS.rst b/share/cmake-3.18/Help/prop_inst/CPACK_STARTUP_SHORTCUTS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_inst/CPACK_STARTUP_SHORTCUTS.rst
rename to share/cmake-3.18/Help/prop_inst/CPACK_STARTUP_SHORTCUTS.rst
diff --git a/share/cmake-3.17/Help/prop_inst/CPACK_START_MENU_SHORTCUTS.rst b/share/cmake-3.18/Help/prop_inst/CPACK_START_MENU_SHORTCUTS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_inst/CPACK_START_MENU_SHORTCUTS.rst
rename to share/cmake-3.18/Help/prop_inst/CPACK_START_MENU_SHORTCUTS.rst
diff --git a/share/cmake-3.17/Help/prop_inst/CPACK_WIX_ACL.rst b/share/cmake-3.18/Help/prop_inst/CPACK_WIX_ACL.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_inst/CPACK_WIX_ACL.rst
rename to share/cmake-3.18/Help/prop_inst/CPACK_WIX_ACL.rst
diff --git a/share/cmake-3.17/Help/prop_sf/ABSTRACT.rst b/share/cmake-3.18/Help/prop_sf/ABSTRACT.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_sf/ABSTRACT.rst
rename to share/cmake-3.18/Help/prop_sf/ABSTRACT.rst
diff --git a/share/cmake-3.17/Help/prop_sf/AUTORCC_OPTIONS.rst b/share/cmake-3.18/Help/prop_sf/AUTORCC_OPTIONS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_sf/AUTORCC_OPTIONS.rst
rename to share/cmake-3.18/Help/prop_sf/AUTORCC_OPTIONS.rst
diff --git a/share/cmake-3.17/Help/prop_sf/AUTOUIC_OPTIONS.rst b/share/cmake-3.18/Help/prop_sf/AUTOUIC_OPTIONS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_sf/AUTOUIC_OPTIONS.rst
rename to share/cmake-3.18/Help/prop_sf/AUTOUIC_OPTIONS.rst
diff --git a/share/cmake-3.17/Help/prop_sf/COMPILE_DEFINITIONS.rst b/share/cmake-3.18/Help/prop_sf/COMPILE_DEFINITIONS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_sf/COMPILE_DEFINITIONS.rst
rename to share/cmake-3.18/Help/prop_sf/COMPILE_DEFINITIONS.rst
diff --git a/share/cmake-3.17/Help/prop_sf/COMPILE_DEFINITIONS_CONFIG.rst b/share/cmake-3.18/Help/prop_sf/COMPILE_DEFINITIONS_CONFIG.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_sf/COMPILE_DEFINITIONS_CONFIG.rst
rename to share/cmake-3.18/Help/prop_sf/COMPILE_DEFINITIONS_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_sf/COMPILE_FLAGS.rst b/share/cmake-3.18/Help/prop_sf/COMPILE_FLAGS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_sf/COMPILE_FLAGS.rst
rename to share/cmake-3.18/Help/prop_sf/COMPILE_FLAGS.rst
diff --git a/share/cmake-3.18/Help/prop_sf/COMPILE_OPTIONS.rst b/share/cmake-3.18/Help/prop_sf/COMPILE_OPTIONS.rst
new file mode 100644
index 0000000..537dcec
--- /dev/null
+++ b/share/cmake-3.18/Help/prop_sf/COMPILE_OPTIONS.rst
@@ -0,0 +1,32 @@
+COMPILE_OPTIONS
+---------------
+
+List of additional options to pass to the compiler.
+
+This property holds a :ref:`semicolon-separated list <CMake Language Lists>` of options
+and will be added to the list of compile flags when this
+source file builds.
+
+Contents of ``COMPILE_OPTIONS`` may use "generator expressions" with the
+syntax ``$<...>``.  See the :manual:`cmake-generator-expressions(7)` manual
+for available expressions.  However, :generator:`Xcode`
+does not support per-config per-source settings, so expressions
+that depend on the build configuration are not allowed with that
+generator.
+
+Usage example:
+
+.. code-block:: cmake
+
+  set_source_files_properties(foo.cpp PROPERTIES COMPILE_OPTIONS "-Wno-unused-parameter;-Wno-missing-field-initializer")
+
+Related properties:
+
+* Prefer this property over :prop_sf:`COMPILE_FLAGS`.
+* Use :prop_sf:`COMPILE_DEFINITIONS` to pass additional preprocessor definitions.
+* Use :prop_sf:`INCLUDE_DIRECTORIES` to pass additional include directories.
+
+Related commands:
+
+* :command:`add_compile_options` for directory-wide settings
+* :command:`target_compile_options` for target-specific settings
diff --git a/share/cmake-3.17/Help/prop_sf/EXTERNAL_OBJECT.rst b/share/cmake-3.18/Help/prop_sf/EXTERNAL_OBJECT.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_sf/EXTERNAL_OBJECT.rst
rename to share/cmake-3.18/Help/prop_sf/EXTERNAL_OBJECT.rst
diff --git a/share/cmake-3.18/Help/prop_sf/Fortran_FORMAT.rst b/share/cmake-3.18/Help/prop_sf/Fortran_FORMAT.rst
new file mode 100644
index 0000000..ef33926
--- /dev/null
+++ b/share/cmake-3.18/Help/prop_sf/Fortran_FORMAT.rst
@@ -0,0 +1,12 @@
+Fortran_FORMAT
+--------------
+
+Set to ``FIXED`` or ``FREE`` to indicate the Fortran source layout.
+
+This property tells CMake whether a given Fortran source file uses
+fixed-format or free-format.  CMake will pass the corresponding format flag
+to the compiler.  Consider using the target-wide :prop_tgt:`Fortran_FORMAT`
+property if all source files in a target share the same format.
+
+.. note:: For some compilers, ``NAG``, ``PGI`` and ``Solaris Studio``,
+          setting this to ``OFF`` will have no effect.
diff --git a/share/cmake-3.18/Help/prop_sf/Fortran_PREPROCESS.rst b/share/cmake-3.18/Help/prop_sf/Fortran_PREPROCESS.rst
new file mode 100644
index 0000000..25ea827
--- /dev/null
+++ b/share/cmake-3.18/Help/prop_sf/Fortran_PREPROCESS.rst
@@ -0,0 +1,17 @@
+Fortran_PREPROCESS
+------------------
+
+Control whether the Fortran source file should be unconditionally preprocessed.
+
+If unset or empty, rely on the compiler to determine whether the file
+should be preprocessed. If explicitly set to ``OFF`` then the file
+does not need to be preprocessed. If explicitly set to ``ON``, then
+the file does need to be preprocessed as part of the compilation step.
+
+When using the :generator:`Ninja` generator, all source files are
+first preprocessed in order to generate module dependency
+information. Setting this property to ``OFF`` will make ``Ninja``
+skip this step.
+
+Consider using the target-wide :prop_tgt:`Fortran_PREPROCESS` property
+if all source files in a target need to be preprocessed.
diff --git a/share/cmake-3.17/Help/prop_sf/GENERATED.rst b/share/cmake-3.18/Help/prop_sf/GENERATED.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_sf/GENERATED.rst
rename to share/cmake-3.18/Help/prop_sf/GENERATED.rst
diff --git a/share/cmake-3.17/Help/prop_sf/HEADER_FILE_ONLY.rst b/share/cmake-3.18/Help/prop_sf/HEADER_FILE_ONLY.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_sf/HEADER_FILE_ONLY.rst
rename to share/cmake-3.18/Help/prop_sf/HEADER_FILE_ONLY.rst
diff --git a/share/cmake-3.17/Help/prop_sf/INCLUDE_DIRECTORIES.rst b/share/cmake-3.18/Help/prop_sf/INCLUDE_DIRECTORIES.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_sf/INCLUDE_DIRECTORIES.rst
rename to share/cmake-3.18/Help/prop_sf/INCLUDE_DIRECTORIES.rst
diff --git a/share/cmake-3.17/Help/prop_sf/KEEP_EXTENSION.rst b/share/cmake-3.18/Help/prop_sf/KEEP_EXTENSION.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_sf/KEEP_EXTENSION.rst
rename to share/cmake-3.18/Help/prop_sf/KEEP_EXTENSION.rst
diff --git a/share/cmake-3.17/Help/prop_sf/LABELS.rst b/share/cmake-3.18/Help/prop_sf/LABELS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_sf/LABELS.rst
rename to share/cmake-3.18/Help/prop_sf/LABELS.rst
diff --git a/share/cmake-3.17/Help/prop_sf/LANGUAGE.rst b/share/cmake-3.18/Help/prop_sf/LANGUAGE.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_sf/LANGUAGE.rst
rename to share/cmake-3.18/Help/prop_sf/LANGUAGE.rst
diff --git a/share/cmake-3.17/Help/prop_sf/LOCATION.rst b/share/cmake-3.18/Help/prop_sf/LOCATION.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_sf/LOCATION.rst
rename to share/cmake-3.18/Help/prop_sf/LOCATION.rst
diff --git a/share/cmake-3.17/Help/prop_sf/MACOSX_PACKAGE_LOCATION.rst b/share/cmake-3.18/Help/prop_sf/MACOSX_PACKAGE_LOCATION.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_sf/MACOSX_PACKAGE_LOCATION.rst
rename to share/cmake-3.18/Help/prop_sf/MACOSX_PACKAGE_LOCATION.rst
diff --git a/share/cmake-3.17/Help/prop_sf/OBJECT_DEPENDS.rst b/share/cmake-3.18/Help/prop_sf/OBJECT_DEPENDS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_sf/OBJECT_DEPENDS.rst
rename to share/cmake-3.18/Help/prop_sf/OBJECT_DEPENDS.rst
diff --git a/share/cmake-3.17/Help/prop_sf/OBJECT_OUTPUTS.rst b/share/cmake-3.18/Help/prop_sf/OBJECT_OUTPUTS.rst
similarity index 80%
rename from share/cmake-3.17/Help/prop_sf/OBJECT_OUTPUTS.rst
rename to share/cmake-3.18/Help/prop_sf/OBJECT_OUTPUTS.rst
index e7e880b..3e799ed 100644
--- a/share/cmake-3.17/Help/prop_sf/OBJECT_OUTPUTS.rst
+++ b/share/cmake-3.18/Help/prop_sf/OBJECT_OUTPUTS.rst
@@ -7,3 +7,6 @@
 of these outputs is missing the object will be recompiled.  This is
 supported only on the :generator:`Ninja` and :ref:`Makefile Generators`
 and will be ignored on other generators.
+
+This property supports
+:manual:`generator expressions <cmake-generator-expressions(7)>`.
diff --git a/share/cmake-3.17/Help/prop_sf/SKIP_AUTOGEN.rst b/share/cmake-3.18/Help/prop_sf/SKIP_AUTOGEN.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_sf/SKIP_AUTOGEN.rst
rename to share/cmake-3.18/Help/prop_sf/SKIP_AUTOGEN.rst
diff --git a/share/cmake-3.17/Help/prop_sf/SKIP_AUTOMOC.rst b/share/cmake-3.18/Help/prop_sf/SKIP_AUTOMOC.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_sf/SKIP_AUTOMOC.rst
rename to share/cmake-3.18/Help/prop_sf/SKIP_AUTOMOC.rst
diff --git a/share/cmake-3.17/Help/prop_sf/SKIP_AUTORCC.rst b/share/cmake-3.18/Help/prop_sf/SKIP_AUTORCC.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_sf/SKIP_AUTORCC.rst
rename to share/cmake-3.18/Help/prop_sf/SKIP_AUTORCC.rst
diff --git a/share/cmake-3.17/Help/prop_sf/SKIP_AUTOUIC.rst b/share/cmake-3.18/Help/prop_sf/SKIP_AUTOUIC.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_sf/SKIP_AUTOUIC.rst
rename to share/cmake-3.18/Help/prop_sf/SKIP_AUTOUIC.rst
diff --git a/share/cmake-3.17/Help/prop_sf/SKIP_PRECOMPILE_HEADERS.rst b/share/cmake-3.18/Help/prop_sf/SKIP_PRECOMPILE_HEADERS.rst
similarity index 74%
rename from share/cmake-3.17/Help/prop_sf/SKIP_PRECOMPILE_HEADERS.rst
rename to share/cmake-3.18/Help/prop_sf/SKIP_PRECOMPILE_HEADERS.rst
index 5f39f30..0031da3 100644
--- a/share/cmake-3.17/Help/prop_sf/SKIP_PRECOMPILE_HEADERS.rst
+++ b/share/cmake-3.18/Help/prop_sf/SKIP_PRECOMPILE_HEADERS.rst
@@ -6,8 +6,8 @@
 This property helps with build problems that one would run into
 when using the :prop_tgt:`PRECOMPILE_HEADERS` feature.
 
-One example would be the usage of Objective-C (*.m) files, and
-Objective-C++ (*.mm) files, which lead to compilation failure
+One example would be the usage of Objective-C (``*.m``) files, and
+Objective-C++ (``*.mm``) files, which lead to compilation failure
 because they are treated (in case of Ninja / Makefile generator)
 as C, and CXX respectively. The precompile headers are not
 compatible between languages.
diff --git a/share/cmake-3.17/Help/prop_sf/SKIP_UNITY_BUILD_INCLUSION.rst b/share/cmake-3.18/Help/prop_sf/SKIP_UNITY_BUILD_INCLUSION.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_sf/SKIP_UNITY_BUILD_INCLUSION.rst
rename to share/cmake-3.18/Help/prop_sf/SKIP_UNITY_BUILD_INCLUSION.rst
diff --git a/share/cmake-3.17/Help/prop_sf/SYMBOLIC.rst b/share/cmake-3.18/Help/prop_sf/SYMBOLIC.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_sf/SYMBOLIC.rst
rename to share/cmake-3.18/Help/prop_sf/SYMBOLIC.rst
diff --git a/share/cmake-3.17/Help/prop_sf/Swift_DEPENDENCIES_FILE.rst b/share/cmake-3.18/Help/prop_sf/Swift_DEPENDENCIES_FILE.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_sf/Swift_DEPENDENCIES_FILE.rst
rename to share/cmake-3.18/Help/prop_sf/Swift_DEPENDENCIES_FILE.rst
diff --git a/share/cmake-3.17/Help/prop_sf/Swift_DIAGNOSTICS_FILE.rst b/share/cmake-3.18/Help/prop_sf/Swift_DIAGNOSTICS_FILE.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_sf/Swift_DIAGNOSTICS_FILE.rst
rename to share/cmake-3.18/Help/prop_sf/Swift_DIAGNOSTICS_FILE.rst
diff --git a/share/cmake-3.18/Help/prop_sf/UNITY_GROUP.rst b/share/cmake-3.18/Help/prop_sf/UNITY_GROUP.rst
new file mode 100644
index 0000000..ec6b0f6
--- /dev/null
+++ b/share/cmake-3.18/Help/prop_sf/UNITY_GROUP.rst
@@ -0,0 +1,5 @@
+UNITY_GROUP
+-----------
+
+This property controls which *bucket* the source will be part of when
+the :prop_tgt:`UNITY_BUILD_MODE` is set to ``GROUP``.
diff --git a/share/cmake-3.17/Help/prop_sf/VS_COPY_TO_OUT_DIR.rst b/share/cmake-3.18/Help/prop_sf/VS_COPY_TO_OUT_DIR.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_sf/VS_COPY_TO_OUT_DIR.rst
rename to share/cmake-3.18/Help/prop_sf/VS_COPY_TO_OUT_DIR.rst
diff --git a/share/cmake-3.17/Help/prop_sf/VS_CSHARP_tagname.rst b/share/cmake-3.18/Help/prop_sf/VS_CSHARP_tagname.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_sf/VS_CSHARP_tagname.rst
rename to share/cmake-3.18/Help/prop_sf/VS_CSHARP_tagname.rst
diff --git a/share/cmake-3.17/Help/prop_sf/VS_DEPLOYMENT_CONTENT.rst b/share/cmake-3.18/Help/prop_sf/VS_DEPLOYMENT_CONTENT.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_sf/VS_DEPLOYMENT_CONTENT.rst
rename to share/cmake-3.18/Help/prop_sf/VS_DEPLOYMENT_CONTENT.rst
diff --git a/share/cmake-3.17/Help/prop_sf/VS_DEPLOYMENT_LOCATION.rst b/share/cmake-3.18/Help/prop_sf/VS_DEPLOYMENT_LOCATION.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_sf/VS_DEPLOYMENT_LOCATION.rst
rename to share/cmake-3.18/Help/prop_sf/VS_DEPLOYMENT_LOCATION.rst
diff --git a/share/cmake-3.17/Help/prop_sf/VS_INCLUDE_IN_VSIX.rst b/share/cmake-3.18/Help/prop_sf/VS_INCLUDE_IN_VSIX.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_sf/VS_INCLUDE_IN_VSIX.rst
rename to share/cmake-3.18/Help/prop_sf/VS_INCLUDE_IN_VSIX.rst
diff --git a/share/cmake-3.17/Help/prop_sf/VS_RESOURCE_GENERATOR.rst b/share/cmake-3.18/Help/prop_sf/VS_RESOURCE_GENERATOR.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_sf/VS_RESOURCE_GENERATOR.rst
rename to share/cmake-3.18/Help/prop_sf/VS_RESOURCE_GENERATOR.rst
diff --git a/share/cmake-3.18/Help/prop_sf/VS_SETTINGS.rst b/share/cmake-3.18/Help/prop_sf/VS_SETTINGS.rst
new file mode 100644
index 0000000..50034fb
--- /dev/null
+++ b/share/cmake-3.18/Help/prop_sf/VS_SETTINGS.rst
@@ -0,0 +1,18 @@
+VS_SETTINGS
+-----------
+
+Set any item metadata on a non-built file.
+
+Takes a list of ``Key=Value`` pairs. Tells the Visual Studio generator to set
+``Key`` to ``Value`` as item metadata on the file.
+
+For example:
+
+.. code-block:: cmake
+
+  set_property(SOURCE file.hlsl PROPERTY VS_SETTINGS "Key=Value" "Key2=Value2")
+
+will set ``Key`` to ``Value`` and ``Key2`` to ``Value2`` on the
+``file.hlsl`` item as metadata.
+
+:manual:`Generator expressions <cmake-generator-expressions(7)>` are supported.
diff --git a/share/cmake-3.17/Help/prop_sf/VS_SHADER_DISABLE_OPTIMIZATIONS.rst b/share/cmake-3.18/Help/prop_sf/VS_SHADER_DISABLE_OPTIMIZATIONS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_sf/VS_SHADER_DISABLE_OPTIMIZATIONS.rst
rename to share/cmake-3.18/Help/prop_sf/VS_SHADER_DISABLE_OPTIMIZATIONS.rst
diff --git a/share/cmake-3.17/Help/prop_sf/VS_SHADER_ENABLE_DEBUG.rst b/share/cmake-3.18/Help/prop_sf/VS_SHADER_ENABLE_DEBUG.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_sf/VS_SHADER_ENABLE_DEBUG.rst
rename to share/cmake-3.18/Help/prop_sf/VS_SHADER_ENABLE_DEBUG.rst
diff --git a/share/cmake-3.17/Help/prop_sf/VS_SHADER_ENTRYPOINT.rst b/share/cmake-3.18/Help/prop_sf/VS_SHADER_ENTRYPOINT.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_sf/VS_SHADER_ENTRYPOINT.rst
rename to share/cmake-3.18/Help/prop_sf/VS_SHADER_ENTRYPOINT.rst
diff --git a/share/cmake-3.17/Help/prop_sf/VS_SHADER_FLAGS.rst b/share/cmake-3.18/Help/prop_sf/VS_SHADER_FLAGS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_sf/VS_SHADER_FLAGS.rst
rename to share/cmake-3.18/Help/prop_sf/VS_SHADER_FLAGS.rst
diff --git a/share/cmake-3.17/Help/prop_sf/VS_SHADER_MODEL.rst b/share/cmake-3.18/Help/prop_sf/VS_SHADER_MODEL.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_sf/VS_SHADER_MODEL.rst
rename to share/cmake-3.18/Help/prop_sf/VS_SHADER_MODEL.rst
diff --git a/share/cmake-3.17/Help/prop_sf/VS_SHADER_OBJECT_FILE_NAME.rst b/share/cmake-3.18/Help/prop_sf/VS_SHADER_OBJECT_FILE_NAME.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_sf/VS_SHADER_OBJECT_FILE_NAME.rst
rename to share/cmake-3.18/Help/prop_sf/VS_SHADER_OBJECT_FILE_NAME.rst
diff --git a/share/cmake-3.17/Help/prop_sf/VS_SHADER_OUTPUT_HEADER_FILE.rst b/share/cmake-3.18/Help/prop_sf/VS_SHADER_OUTPUT_HEADER_FILE.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_sf/VS_SHADER_OUTPUT_HEADER_FILE.rst
rename to share/cmake-3.18/Help/prop_sf/VS_SHADER_OUTPUT_HEADER_FILE.rst
diff --git a/share/cmake-3.17/Help/prop_sf/VS_SHADER_TYPE.rst b/share/cmake-3.18/Help/prop_sf/VS_SHADER_TYPE.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_sf/VS_SHADER_TYPE.rst
rename to share/cmake-3.18/Help/prop_sf/VS_SHADER_TYPE.rst
diff --git a/share/cmake-3.17/Help/prop_sf/VS_SHADER_VARIABLE_NAME.rst b/share/cmake-3.18/Help/prop_sf/VS_SHADER_VARIABLE_NAME.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_sf/VS_SHADER_VARIABLE_NAME.rst
rename to share/cmake-3.18/Help/prop_sf/VS_SHADER_VARIABLE_NAME.rst
diff --git a/share/cmake-3.17/Help/prop_sf/VS_TOOL_OVERRIDE.rst b/share/cmake-3.18/Help/prop_sf/VS_TOOL_OVERRIDE.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_sf/VS_TOOL_OVERRIDE.rst
rename to share/cmake-3.18/Help/prop_sf/VS_TOOL_OVERRIDE.rst
diff --git a/share/cmake-3.17/Help/prop_sf/VS_XAML_TYPE.rst b/share/cmake-3.18/Help/prop_sf/VS_XAML_TYPE.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_sf/VS_XAML_TYPE.rst
rename to share/cmake-3.18/Help/prop_sf/VS_XAML_TYPE.rst
diff --git a/share/cmake-3.17/Help/prop_sf/WRAP_EXCLUDE.rst b/share/cmake-3.18/Help/prop_sf/WRAP_EXCLUDE.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_sf/WRAP_EXCLUDE.rst
rename to share/cmake-3.18/Help/prop_sf/WRAP_EXCLUDE.rst
diff --git a/share/cmake-3.17/Help/prop_sf/XCODE_EXPLICIT_FILE_TYPE.rst b/share/cmake-3.18/Help/prop_sf/XCODE_EXPLICIT_FILE_TYPE.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_sf/XCODE_EXPLICIT_FILE_TYPE.rst
rename to share/cmake-3.18/Help/prop_sf/XCODE_EXPLICIT_FILE_TYPE.rst
diff --git a/share/cmake-3.17/Help/prop_sf/XCODE_FILE_ATTRIBUTES.rst b/share/cmake-3.18/Help/prop_sf/XCODE_FILE_ATTRIBUTES.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_sf/XCODE_FILE_ATTRIBUTES.rst
rename to share/cmake-3.18/Help/prop_sf/XCODE_FILE_ATTRIBUTES.rst
diff --git a/share/cmake-3.17/Help/prop_sf/XCODE_LAST_KNOWN_FILE_TYPE.rst b/share/cmake-3.18/Help/prop_sf/XCODE_LAST_KNOWN_FILE_TYPE.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_sf/XCODE_LAST_KNOWN_FILE_TYPE.rst
rename to share/cmake-3.18/Help/prop_sf/XCODE_LAST_KNOWN_FILE_TYPE.rst
diff --git a/share/cmake-3.17/Help/prop_test/ATTACHED_FILES.rst b/share/cmake-3.18/Help/prop_test/ATTACHED_FILES.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_test/ATTACHED_FILES.rst
rename to share/cmake-3.18/Help/prop_test/ATTACHED_FILES.rst
diff --git a/share/cmake-3.17/Help/prop_test/ATTACHED_FILES_ON_FAIL.rst b/share/cmake-3.18/Help/prop_test/ATTACHED_FILES_ON_FAIL.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_test/ATTACHED_FILES_ON_FAIL.rst
rename to share/cmake-3.18/Help/prop_test/ATTACHED_FILES_ON_FAIL.rst
diff --git a/share/cmake-3.17/Help/prop_test/COST.rst b/share/cmake-3.18/Help/prop_test/COST.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_test/COST.rst
rename to share/cmake-3.18/Help/prop_test/COST.rst
diff --git a/share/cmake-3.17/Help/prop_test/DEPENDS.rst b/share/cmake-3.18/Help/prop_test/DEPENDS.rst
similarity index 61%
rename from share/cmake-3.17/Help/prop_test/DEPENDS.rst
rename to share/cmake-3.18/Help/prop_test/DEPENDS.rst
index 89c7553..5aa36b4 100644
--- a/share/cmake-3.17/Help/prop_test/DEPENDS.rst
+++ b/share/cmake-3.18/Help/prop_test/DEPENDS.rst
@@ -8,3 +8,15 @@
 purely for order of execution (i.e. it is really just a *run after*
 relationship). Consider using test fixtures with setup tests if a dependency
 with successful completion is required (see :prop_test:`FIXTURES_REQUIRED`).
+
+Examples
+~~~~~~~~
+
+.. code-block:: cmake
+
+  add_test(NAME baseTest1 ...)
+  add_test(NAME baseTest2 ...)
+  add_test(NAME dependsTest12 ...)
+
+  set_tests_properties(dependsTest12 PROPERTIES DEPENDS "baseTest1;baseTest2")
+  # dependsTest12 runs after baseTest1 and baseTest2, even if they fail
diff --git a/share/cmake-3.17/Help/prop_test/DISABLED.rst b/share/cmake-3.18/Help/prop_test/DISABLED.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_test/DISABLED.rst
rename to share/cmake-3.18/Help/prop_test/DISABLED.rst
diff --git a/share/cmake-3.17/Help/prop_test/ENVIRONMENT.rst b/share/cmake-3.18/Help/prop_test/ENVIRONMENT.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_test/ENVIRONMENT.rst
rename to share/cmake-3.18/Help/prop_test/ENVIRONMENT.rst
diff --git a/share/cmake-3.17/Help/prop_test/FAIL_REGULAR_EXPRESSION.rst b/share/cmake-3.18/Help/prop_test/FAIL_REGULAR_EXPRESSION.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_test/FAIL_REGULAR_EXPRESSION.rst
rename to share/cmake-3.18/Help/prop_test/FAIL_REGULAR_EXPRESSION.rst
diff --git a/share/cmake-3.17/Help/prop_test/FIXTURES_CLEANUP.rst b/share/cmake-3.18/Help/prop_test/FIXTURES_CLEANUP.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_test/FIXTURES_CLEANUP.rst
rename to share/cmake-3.18/Help/prop_test/FIXTURES_CLEANUP.rst
diff --git a/share/cmake-3.17/Help/prop_test/FIXTURES_REQUIRED.rst b/share/cmake-3.18/Help/prop_test/FIXTURES_REQUIRED.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_test/FIXTURES_REQUIRED.rst
rename to share/cmake-3.18/Help/prop_test/FIXTURES_REQUIRED.rst
diff --git a/share/cmake-3.17/Help/prop_test/FIXTURES_SETUP.rst b/share/cmake-3.18/Help/prop_test/FIXTURES_SETUP.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_test/FIXTURES_SETUP.rst
rename to share/cmake-3.18/Help/prop_test/FIXTURES_SETUP.rst
diff --git a/share/cmake-3.17/Help/prop_test/LABELS.rst b/share/cmake-3.18/Help/prop_test/LABELS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_test/LABELS.rst
rename to share/cmake-3.18/Help/prop_test/LABELS.rst
diff --git a/share/cmake-3.17/Help/prop_test/MEASUREMENT.rst b/share/cmake-3.18/Help/prop_test/MEASUREMENT.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_test/MEASUREMENT.rst
rename to share/cmake-3.18/Help/prop_test/MEASUREMENT.rst
diff --git a/share/cmake-3.17/Help/prop_test/PASS_REGULAR_EXPRESSION.rst b/share/cmake-3.18/Help/prop_test/PASS_REGULAR_EXPRESSION.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_test/PASS_REGULAR_EXPRESSION.rst
rename to share/cmake-3.18/Help/prop_test/PASS_REGULAR_EXPRESSION.rst
diff --git a/share/cmake-3.17/Help/prop_test/PROCESSORS.rst b/share/cmake-3.18/Help/prop_test/PROCESSORS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_test/PROCESSORS.rst
rename to share/cmake-3.18/Help/prop_test/PROCESSORS.rst
diff --git a/share/cmake-3.17/Help/prop_test/PROCESSOR_AFFINITY.rst b/share/cmake-3.18/Help/prop_test/PROCESSOR_AFFINITY.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_test/PROCESSOR_AFFINITY.rst
rename to share/cmake-3.18/Help/prop_test/PROCESSOR_AFFINITY.rst
diff --git a/share/cmake-3.18/Help/prop_test/REQUIRED_FILES.rst b/share/cmake-3.18/Help/prop_test/REQUIRED_FILES.rst
new file mode 100644
index 0000000..baf209c
--- /dev/null
+++ b/share/cmake-3.18/Help/prop_test/REQUIRED_FILES.rst
@@ -0,0 +1,38 @@
+REQUIRED_FILES
+--------------
+
+List of files required to run the test.  The filenames are relative to the
+test :prop_test:`WORKING_DIRECTORY` unless an absolute path is specified.
+
+If set to a list of files, the test will not be run unless all of the
+files exist.
+
+Examples
+~~~~~~~~
+
+Suppose that ``test.txt`` is created by test ``baseTest`` and ``none.txt``
+does not exist:
+
+.. code-block:: cmake
+
+  add_test(NAME baseTest ...)   # Assumed to create test.txt
+  add_test(NAME fileTest ...)
+
+  # The following ensures that if baseTest is successful, test.txt will
+  # have been created before fileTest is run
+  set_tests_properties(fileTest PROPERTIES
+    DEPENDS baseTest
+    REQUIRED_FILES test.txt
+  )
+
+  add_test(NAME notRunTest ...)
+
+  # The following makes notRunTest depend on two files. Nothing creates
+  # the none.txt file, so notRunTest will fail with status "Not Run".
+  set_tests_properties(notRunTest PROPERTIES
+    REQUIRED_FILES "test.txt;none.txt"
+  )
+
+The above example demonstrates how ``REQUIRED_FILES`` works, but it is not the
+most robust way to implement test ordering with failure detection.  For that,
+test fixtures are a better alternative (see :prop_test:`FIXTURES_REQUIRED`).
diff --git a/share/cmake-3.17/Help/prop_test/RESOURCE_GROUPS.rst b/share/cmake-3.18/Help/prop_test/RESOURCE_GROUPS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_test/RESOURCE_GROUPS.rst
rename to share/cmake-3.18/Help/prop_test/RESOURCE_GROUPS.rst
diff --git a/share/cmake-3.17/Help/prop_test/RESOURCE_LOCK.rst b/share/cmake-3.18/Help/prop_test/RESOURCE_LOCK.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_test/RESOURCE_LOCK.rst
rename to share/cmake-3.18/Help/prop_test/RESOURCE_LOCK.rst
diff --git a/share/cmake-3.17/Help/prop_test/RUN_SERIAL.rst b/share/cmake-3.18/Help/prop_test/RUN_SERIAL.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_test/RUN_SERIAL.rst
rename to share/cmake-3.18/Help/prop_test/RUN_SERIAL.rst
diff --git a/share/cmake-3.17/Help/prop_test/SKIP_REGULAR_EXPRESSION.rst b/share/cmake-3.18/Help/prop_test/SKIP_REGULAR_EXPRESSION.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_test/SKIP_REGULAR_EXPRESSION.rst
rename to share/cmake-3.18/Help/prop_test/SKIP_REGULAR_EXPRESSION.rst
diff --git a/share/cmake-3.17/Help/prop_test/SKIP_RETURN_CODE.rst b/share/cmake-3.18/Help/prop_test/SKIP_RETURN_CODE.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_test/SKIP_RETURN_CODE.rst
rename to share/cmake-3.18/Help/prop_test/SKIP_RETURN_CODE.rst
diff --git a/share/cmake-3.17/Help/prop_test/TIMEOUT.rst b/share/cmake-3.18/Help/prop_test/TIMEOUT.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_test/TIMEOUT.rst
rename to share/cmake-3.18/Help/prop_test/TIMEOUT.rst
diff --git a/share/cmake-3.17/Help/prop_test/TIMEOUT_AFTER_MATCH.rst b/share/cmake-3.18/Help/prop_test/TIMEOUT_AFTER_MATCH.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_test/TIMEOUT_AFTER_MATCH.rst
rename to share/cmake-3.18/Help/prop_test/TIMEOUT_AFTER_MATCH.rst
diff --git a/share/cmake-3.17/Help/prop_test/WILL_FAIL.rst b/share/cmake-3.18/Help/prop_test/WILL_FAIL.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_test/WILL_FAIL.rst
rename to share/cmake-3.18/Help/prop_test/WILL_FAIL.rst
diff --git a/share/cmake-3.17/Help/prop_test/WORKING_DIRECTORY.rst b/share/cmake-3.18/Help/prop_test/WORKING_DIRECTORY.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_test/WORKING_DIRECTORY.rst
rename to share/cmake-3.18/Help/prop_test/WORKING_DIRECTORY.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/ADDITIONAL_CLEAN_FILES.rst b/share/cmake-3.18/Help/prop_tgt/ADDITIONAL_CLEAN_FILES.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/ADDITIONAL_CLEAN_FILES.rst
rename to share/cmake-3.18/Help/prop_tgt/ADDITIONAL_CLEAN_FILES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/AIX_EXPORT_ALL_SYMBOLS.rst b/share/cmake-3.18/Help/prop_tgt/AIX_EXPORT_ALL_SYMBOLS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/AIX_EXPORT_ALL_SYMBOLS.rst
rename to share/cmake-3.18/Help/prop_tgt/AIX_EXPORT_ALL_SYMBOLS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/ALIASED_TARGET.rst b/share/cmake-3.18/Help/prop_tgt/ALIASED_TARGET.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/ALIASED_TARGET.rst
rename to share/cmake-3.18/Help/prop_tgt/ALIASED_TARGET.rst
diff --git a/share/cmake-3.18/Help/prop_tgt/ALIAS_GLOBAL.rst b/share/cmake-3.18/Help/prop_tgt/ALIAS_GLOBAL.rst
new file mode 100644
index 0000000..8854f57
--- /dev/null
+++ b/share/cmake-3.18/Help/prop_tgt/ALIAS_GLOBAL.rst
@@ -0,0 +1,17 @@
+ALIAS_GLOBAL
+------------
+
+Read-only property indicating of whether an :ref:`ALIAS target <Alias Targets>`
+is globally visible.
+
+The boolean value of this property is ``TRUE`` for aliases to
+:ref:`IMPORTED targets <Imported Targets>` created
+with the ``GLOBAL`` options to :command:`add_executable()` or
+:command:`add_library()`, ``FALSE`` otherwise. It is undefined for
+targets built within the project.
+
+.. note::
+
+  Promoting an :ref:`IMPORTED target <Imported Targets>` from ``LOCAL``
+  to ``GLOBAL`` scope by changing the value or :prop_tgt:`IMPORTED_GLOBAL`
+  target property do not change the scope of local aliases.
diff --git a/share/cmake-3.17/Help/prop_tgt/ANDROID_ANT_ADDITIONAL_OPTIONS.rst b/share/cmake-3.18/Help/prop_tgt/ANDROID_ANT_ADDITIONAL_OPTIONS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/ANDROID_ANT_ADDITIONAL_OPTIONS.rst
rename to share/cmake-3.18/Help/prop_tgt/ANDROID_ANT_ADDITIONAL_OPTIONS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/ANDROID_API.rst b/share/cmake-3.18/Help/prop_tgt/ANDROID_API.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/ANDROID_API.rst
rename to share/cmake-3.18/Help/prop_tgt/ANDROID_API.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/ANDROID_API_MIN.rst b/share/cmake-3.18/Help/prop_tgt/ANDROID_API_MIN.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/ANDROID_API_MIN.rst
rename to share/cmake-3.18/Help/prop_tgt/ANDROID_API_MIN.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/ANDROID_ARCH.rst b/share/cmake-3.18/Help/prop_tgt/ANDROID_ARCH.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/ANDROID_ARCH.rst
rename to share/cmake-3.18/Help/prop_tgt/ANDROID_ARCH.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/ANDROID_ASSETS_DIRECTORIES.rst b/share/cmake-3.18/Help/prop_tgt/ANDROID_ASSETS_DIRECTORIES.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/ANDROID_ASSETS_DIRECTORIES.rst
rename to share/cmake-3.18/Help/prop_tgt/ANDROID_ASSETS_DIRECTORIES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/ANDROID_GUI.rst b/share/cmake-3.18/Help/prop_tgt/ANDROID_GUI.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/ANDROID_GUI.rst
rename to share/cmake-3.18/Help/prop_tgt/ANDROID_GUI.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/ANDROID_JAR_DEPENDENCIES.rst b/share/cmake-3.18/Help/prop_tgt/ANDROID_JAR_DEPENDENCIES.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/ANDROID_JAR_DEPENDENCIES.rst
rename to share/cmake-3.18/Help/prop_tgt/ANDROID_JAR_DEPENDENCIES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/ANDROID_JAR_DIRECTORIES.rst b/share/cmake-3.18/Help/prop_tgt/ANDROID_JAR_DIRECTORIES.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/ANDROID_JAR_DIRECTORIES.rst
rename to share/cmake-3.18/Help/prop_tgt/ANDROID_JAR_DIRECTORIES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/ANDROID_JAVA_SOURCE_DIR.rst b/share/cmake-3.18/Help/prop_tgt/ANDROID_JAVA_SOURCE_DIR.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/ANDROID_JAVA_SOURCE_DIR.rst
rename to share/cmake-3.18/Help/prop_tgt/ANDROID_JAVA_SOURCE_DIR.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/ANDROID_NATIVE_LIB_DEPENDENCIES.rst b/share/cmake-3.18/Help/prop_tgt/ANDROID_NATIVE_LIB_DEPENDENCIES.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/ANDROID_NATIVE_LIB_DEPENDENCIES.rst
rename to share/cmake-3.18/Help/prop_tgt/ANDROID_NATIVE_LIB_DEPENDENCIES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/ANDROID_NATIVE_LIB_DIRECTORIES.rst b/share/cmake-3.18/Help/prop_tgt/ANDROID_NATIVE_LIB_DIRECTORIES.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/ANDROID_NATIVE_LIB_DIRECTORIES.rst
rename to share/cmake-3.18/Help/prop_tgt/ANDROID_NATIVE_LIB_DIRECTORIES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/ANDROID_PROCESS_MAX.rst b/share/cmake-3.18/Help/prop_tgt/ANDROID_PROCESS_MAX.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/ANDROID_PROCESS_MAX.rst
rename to share/cmake-3.18/Help/prop_tgt/ANDROID_PROCESS_MAX.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/ANDROID_PROGUARD.rst b/share/cmake-3.18/Help/prop_tgt/ANDROID_PROGUARD.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/ANDROID_PROGUARD.rst
rename to share/cmake-3.18/Help/prop_tgt/ANDROID_PROGUARD.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/ANDROID_PROGUARD_CONFIG_PATH.rst b/share/cmake-3.18/Help/prop_tgt/ANDROID_PROGUARD_CONFIG_PATH.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/ANDROID_PROGUARD_CONFIG_PATH.rst
rename to share/cmake-3.18/Help/prop_tgt/ANDROID_PROGUARD_CONFIG_PATH.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/ANDROID_SECURE_PROPS_PATH.rst b/share/cmake-3.18/Help/prop_tgt/ANDROID_SECURE_PROPS_PATH.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/ANDROID_SECURE_PROPS_PATH.rst
rename to share/cmake-3.18/Help/prop_tgt/ANDROID_SECURE_PROPS_PATH.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/ANDROID_SKIP_ANT_STEP.rst b/share/cmake-3.18/Help/prop_tgt/ANDROID_SKIP_ANT_STEP.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/ANDROID_SKIP_ANT_STEP.rst
rename to share/cmake-3.18/Help/prop_tgt/ANDROID_SKIP_ANT_STEP.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/ANDROID_STL_TYPE.rst b/share/cmake-3.18/Help/prop_tgt/ANDROID_STL_TYPE.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/ANDROID_STL_TYPE.rst
rename to share/cmake-3.18/Help/prop_tgt/ANDROID_STL_TYPE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/ARCHIVE_OUTPUT_DIRECTORY.rst b/share/cmake-3.18/Help/prop_tgt/ARCHIVE_OUTPUT_DIRECTORY.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/ARCHIVE_OUTPUT_DIRECTORY.rst
rename to share/cmake-3.18/Help/prop_tgt/ARCHIVE_OUTPUT_DIRECTORY.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/ARCHIVE_OUTPUT_DIRECTORY_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/ARCHIVE_OUTPUT_DIRECTORY_CONFIG.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/ARCHIVE_OUTPUT_DIRECTORY_CONFIG.rst
rename to share/cmake-3.18/Help/prop_tgt/ARCHIVE_OUTPUT_DIRECTORY_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/ARCHIVE_OUTPUT_NAME.rst b/share/cmake-3.18/Help/prop_tgt/ARCHIVE_OUTPUT_NAME.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/ARCHIVE_OUTPUT_NAME.rst
rename to share/cmake-3.18/Help/prop_tgt/ARCHIVE_OUTPUT_NAME.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/ARCHIVE_OUTPUT_NAME_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/ARCHIVE_OUTPUT_NAME_CONFIG.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/ARCHIVE_OUTPUT_NAME_CONFIG.rst
rename to share/cmake-3.18/Help/prop_tgt/ARCHIVE_OUTPUT_NAME_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/AUTOGEN_BUILD_DIR.rst b/share/cmake-3.18/Help/prop_tgt/AUTOGEN_BUILD_DIR.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/AUTOGEN_BUILD_DIR.rst
rename to share/cmake-3.18/Help/prop_tgt/AUTOGEN_BUILD_DIR.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/AUTOGEN_ORIGIN_DEPENDS.rst b/share/cmake-3.18/Help/prop_tgt/AUTOGEN_ORIGIN_DEPENDS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/AUTOGEN_ORIGIN_DEPENDS.rst
rename to share/cmake-3.18/Help/prop_tgt/AUTOGEN_ORIGIN_DEPENDS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/AUTOGEN_PARALLEL.rst b/share/cmake-3.18/Help/prop_tgt/AUTOGEN_PARALLEL.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/AUTOGEN_PARALLEL.rst
rename to share/cmake-3.18/Help/prop_tgt/AUTOGEN_PARALLEL.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/AUTOGEN_TARGET_DEPENDS.rst b/share/cmake-3.18/Help/prop_tgt/AUTOGEN_TARGET_DEPENDS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/AUTOGEN_TARGET_DEPENDS.rst
rename to share/cmake-3.18/Help/prop_tgt/AUTOGEN_TARGET_DEPENDS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/AUTOMOC.rst b/share/cmake-3.18/Help/prop_tgt/AUTOMOC.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/AUTOMOC.rst
rename to share/cmake-3.18/Help/prop_tgt/AUTOMOC.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/AUTOMOC_COMPILER_PREDEFINES.rst b/share/cmake-3.18/Help/prop_tgt/AUTOMOC_COMPILER_PREDEFINES.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/AUTOMOC_COMPILER_PREDEFINES.rst
rename to share/cmake-3.18/Help/prop_tgt/AUTOMOC_COMPILER_PREDEFINES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/AUTOMOC_DEPEND_FILTERS.rst b/share/cmake-3.18/Help/prop_tgt/AUTOMOC_DEPEND_FILTERS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/AUTOMOC_DEPEND_FILTERS.rst
rename to share/cmake-3.18/Help/prop_tgt/AUTOMOC_DEPEND_FILTERS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/AUTOMOC_EXECUTABLE.rst b/share/cmake-3.18/Help/prop_tgt/AUTOMOC_EXECUTABLE.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/AUTOMOC_EXECUTABLE.rst
rename to share/cmake-3.18/Help/prop_tgt/AUTOMOC_EXECUTABLE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/AUTOMOC_MACRO_NAMES.rst b/share/cmake-3.18/Help/prop_tgt/AUTOMOC_MACRO_NAMES.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/AUTOMOC_MACRO_NAMES.rst
rename to share/cmake-3.18/Help/prop_tgt/AUTOMOC_MACRO_NAMES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/AUTOMOC_MOC_OPTIONS.rst b/share/cmake-3.18/Help/prop_tgt/AUTOMOC_MOC_OPTIONS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/AUTOMOC_MOC_OPTIONS.rst
rename to share/cmake-3.18/Help/prop_tgt/AUTOMOC_MOC_OPTIONS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/AUTOMOC_PATH_PREFIX.rst b/share/cmake-3.18/Help/prop_tgt/AUTOMOC_PATH_PREFIX.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/AUTOMOC_PATH_PREFIX.rst
rename to share/cmake-3.18/Help/prop_tgt/AUTOMOC_PATH_PREFIX.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/AUTORCC.rst b/share/cmake-3.18/Help/prop_tgt/AUTORCC.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/AUTORCC.rst
rename to share/cmake-3.18/Help/prop_tgt/AUTORCC.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/AUTORCC_EXECUTABLE.rst b/share/cmake-3.18/Help/prop_tgt/AUTORCC_EXECUTABLE.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/AUTORCC_EXECUTABLE.rst
rename to share/cmake-3.18/Help/prop_tgt/AUTORCC_EXECUTABLE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/AUTORCC_OPTIONS.rst b/share/cmake-3.18/Help/prop_tgt/AUTORCC_OPTIONS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/AUTORCC_OPTIONS.rst
rename to share/cmake-3.18/Help/prop_tgt/AUTORCC_OPTIONS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/AUTOUIC.rst b/share/cmake-3.18/Help/prop_tgt/AUTOUIC.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/AUTOUIC.rst
rename to share/cmake-3.18/Help/prop_tgt/AUTOUIC.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/AUTOUIC_EXECUTABLE.rst b/share/cmake-3.18/Help/prop_tgt/AUTOUIC_EXECUTABLE.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/AUTOUIC_EXECUTABLE.rst
rename to share/cmake-3.18/Help/prop_tgt/AUTOUIC_EXECUTABLE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/AUTOUIC_OPTIONS.rst b/share/cmake-3.18/Help/prop_tgt/AUTOUIC_OPTIONS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/AUTOUIC_OPTIONS.rst
rename to share/cmake-3.18/Help/prop_tgt/AUTOUIC_OPTIONS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/AUTOUIC_SEARCH_PATHS.rst b/share/cmake-3.18/Help/prop_tgt/AUTOUIC_SEARCH_PATHS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/AUTOUIC_SEARCH_PATHS.rst
rename to share/cmake-3.18/Help/prop_tgt/AUTOUIC_SEARCH_PATHS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/BINARY_DIR.rst b/share/cmake-3.18/Help/prop_tgt/BINARY_DIR.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/BINARY_DIR.rst
rename to share/cmake-3.18/Help/prop_tgt/BINARY_DIR.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/BUILD_RPATH.rst b/share/cmake-3.18/Help/prop_tgt/BUILD_RPATH.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/BUILD_RPATH.rst
rename to share/cmake-3.18/Help/prop_tgt/BUILD_RPATH.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/BUILD_RPATH_USE_ORIGIN.rst b/share/cmake-3.18/Help/prop_tgt/BUILD_RPATH_USE_ORIGIN.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/BUILD_RPATH_USE_ORIGIN.rst
rename to share/cmake-3.18/Help/prop_tgt/BUILD_RPATH_USE_ORIGIN.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/BUILD_WITH_INSTALL_NAME_DIR.rst b/share/cmake-3.18/Help/prop_tgt/BUILD_WITH_INSTALL_NAME_DIR.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/BUILD_WITH_INSTALL_NAME_DIR.rst
rename to share/cmake-3.18/Help/prop_tgt/BUILD_WITH_INSTALL_NAME_DIR.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/BUILD_WITH_INSTALL_RPATH.rst b/share/cmake-3.18/Help/prop_tgt/BUILD_WITH_INSTALL_RPATH.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/BUILD_WITH_INSTALL_RPATH.rst
rename to share/cmake-3.18/Help/prop_tgt/BUILD_WITH_INSTALL_RPATH.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/BUNDLE.rst b/share/cmake-3.18/Help/prop_tgt/BUNDLE.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/BUNDLE.rst
rename to share/cmake-3.18/Help/prop_tgt/BUNDLE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/BUNDLE_EXTENSION.rst b/share/cmake-3.18/Help/prop_tgt/BUNDLE_EXTENSION.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/BUNDLE_EXTENSION.rst
rename to share/cmake-3.18/Help/prop_tgt/BUNDLE_EXTENSION.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/COMMON_LANGUAGE_RUNTIME.rst b/share/cmake-3.18/Help/prop_tgt/COMMON_LANGUAGE_RUNTIME.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/COMMON_LANGUAGE_RUNTIME.rst
rename to share/cmake-3.18/Help/prop_tgt/COMMON_LANGUAGE_RUNTIME.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/COMPATIBLE_INTERFACE_BOOL.rst b/share/cmake-3.18/Help/prop_tgt/COMPATIBLE_INTERFACE_BOOL.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/COMPATIBLE_INTERFACE_BOOL.rst
rename to share/cmake-3.18/Help/prop_tgt/COMPATIBLE_INTERFACE_BOOL.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/COMPATIBLE_INTERFACE_NUMBER_MAX.rst b/share/cmake-3.18/Help/prop_tgt/COMPATIBLE_INTERFACE_NUMBER_MAX.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/COMPATIBLE_INTERFACE_NUMBER_MAX.rst
rename to share/cmake-3.18/Help/prop_tgt/COMPATIBLE_INTERFACE_NUMBER_MAX.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/COMPATIBLE_INTERFACE_NUMBER_MIN.rst b/share/cmake-3.18/Help/prop_tgt/COMPATIBLE_INTERFACE_NUMBER_MIN.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/COMPATIBLE_INTERFACE_NUMBER_MIN.rst
rename to share/cmake-3.18/Help/prop_tgt/COMPATIBLE_INTERFACE_NUMBER_MIN.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/COMPATIBLE_INTERFACE_STRING.rst b/share/cmake-3.18/Help/prop_tgt/COMPATIBLE_INTERFACE_STRING.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/COMPATIBLE_INTERFACE_STRING.rst
rename to share/cmake-3.18/Help/prop_tgt/COMPATIBLE_INTERFACE_STRING.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/COMPILE_DEFINITIONS.rst b/share/cmake-3.18/Help/prop_tgt/COMPILE_DEFINITIONS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/COMPILE_DEFINITIONS.rst
rename to share/cmake-3.18/Help/prop_tgt/COMPILE_DEFINITIONS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/COMPILE_DEFINITIONS_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/COMPILE_DEFINITIONS_CONFIG.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/COMPILE_DEFINITIONS_CONFIG.rst
rename to share/cmake-3.18/Help/prop_tgt/COMPILE_DEFINITIONS_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/COMPILE_FEATURES.rst b/share/cmake-3.18/Help/prop_tgt/COMPILE_FEATURES.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/COMPILE_FEATURES.rst
rename to share/cmake-3.18/Help/prop_tgt/COMPILE_FEATURES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/COMPILE_FLAGS.rst b/share/cmake-3.18/Help/prop_tgt/COMPILE_FLAGS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/COMPILE_FLAGS.rst
rename to share/cmake-3.18/Help/prop_tgt/COMPILE_FLAGS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/COMPILE_OPTIONS.rst b/share/cmake-3.18/Help/prop_tgt/COMPILE_OPTIONS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/COMPILE_OPTIONS.rst
rename to share/cmake-3.18/Help/prop_tgt/COMPILE_OPTIONS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/COMPILE_PDB_NAME.rst b/share/cmake-3.18/Help/prop_tgt/COMPILE_PDB_NAME.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/COMPILE_PDB_NAME.rst
rename to share/cmake-3.18/Help/prop_tgt/COMPILE_PDB_NAME.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/COMPILE_PDB_NAME_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/COMPILE_PDB_NAME_CONFIG.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/COMPILE_PDB_NAME_CONFIG.rst
rename to share/cmake-3.18/Help/prop_tgt/COMPILE_PDB_NAME_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/COMPILE_PDB_NOTE.txt b/share/cmake-3.18/Help/prop_tgt/COMPILE_PDB_NOTE.txt
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/COMPILE_PDB_NOTE.txt
rename to share/cmake-3.18/Help/prop_tgt/COMPILE_PDB_NOTE.txt
diff --git a/share/cmake-3.17/Help/prop_tgt/COMPILE_PDB_OUTPUT_DIRECTORY.rst b/share/cmake-3.18/Help/prop_tgt/COMPILE_PDB_OUTPUT_DIRECTORY.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/COMPILE_PDB_OUTPUT_DIRECTORY.rst
rename to share/cmake-3.18/Help/prop_tgt/COMPILE_PDB_OUTPUT_DIRECTORY.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/COMPILE_PDB_OUTPUT_DIRECTORY_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/COMPILE_PDB_OUTPUT_DIRECTORY_CONFIG.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/COMPILE_PDB_OUTPUT_DIRECTORY_CONFIG.rst
rename to share/cmake-3.18/Help/prop_tgt/COMPILE_PDB_OUTPUT_DIRECTORY_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/CONFIG_OUTPUT_NAME.rst b/share/cmake-3.18/Help/prop_tgt/CONFIG_OUTPUT_NAME.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/CONFIG_OUTPUT_NAME.rst
rename to share/cmake-3.18/Help/prop_tgt/CONFIG_OUTPUT_NAME.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/CONFIG_POSTFIX.rst b/share/cmake-3.18/Help/prop_tgt/CONFIG_POSTFIX.rst
similarity index 82%
rename from share/cmake-3.17/Help/prop_tgt/CONFIG_POSTFIX.rst
rename to share/cmake-3.18/Help/prop_tgt/CONFIG_POSTFIX.rst
index 11b50b9..5c2fbd7 100644
--- a/share/cmake-3.17/Help/prop_tgt/CONFIG_POSTFIX.rst
+++ b/share/cmake-3.18/Help/prop_tgt/CONFIG_POSTFIX.rst
@@ -8,3 +8,6 @@
 targets, this property is initialized by the value of the variable
 CMAKE_<CONFIG>_POSTFIX if it is set when a target is created.  This
 property is ignored on the Mac for Frameworks and App Bundles.
+
+For macOS see also the :prop_tgt:`FRAMEWORK_MULTI_CONFIG_POSTFIX_<CONFIG>`
+target property.
diff --git a/share/cmake-3.17/Help/prop_tgt/CROSSCOMPILING_EMULATOR.rst b/share/cmake-3.18/Help/prop_tgt/CROSSCOMPILING_EMULATOR.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/CROSSCOMPILING_EMULATOR.rst
rename to share/cmake-3.18/Help/prop_tgt/CROSSCOMPILING_EMULATOR.rst
diff --git a/share/cmake-3.18/Help/prop_tgt/CUDA_ARCHITECTURES.rst b/share/cmake-3.18/Help/prop_tgt/CUDA_ARCHITECTURES.rst
new file mode 100644
index 0000000..bae3c6f
--- /dev/null
+++ b/share/cmake-3.18/Help/prop_tgt/CUDA_ARCHITECTURES.rst
@@ -0,0 +1,40 @@
+CUDA_ARCHITECTURES
+------------------
+
+List of architectures to generate device code for.
+
+An architecture can be suffixed by either ``-real`` or ``-virtual`` to specify
+the kind of architecture to generate code for.
+If no suffix is given then code is generated for both real and virtual
+architectures.
+
+A non-empty false value (e.g. ``OFF``) disables adding architectures.
+This is intended to support packagers and rare cases where full control
+over the passed flags is required.
+
+This property is initialized by the value of the :variable:`CMAKE_CUDA_ARCHITECTURES`
+variable if it is set when a target is created.
+
+The ``CUDA_ARCHITECTURES`` target property must be set to a non-empty value on targets
+that compile CUDA sources, or it is an error.  See policy :policy:`CMP0104`.
+
+Examples
+^^^^^^^^
+
+.. code-block:: cmake
+
+  set_property(TARGET tgt PROPERTY CUDA_ARCHITECTURES 35 50 72)
+
+Generates code for real and virtual architectures ``30``, ``50`` and ``72``.
+
+.. code-block:: cmake
+
+  set_property(TARGET tgt PROPERTY CUDA_ARCHITECTURES 70-real 72-virtual)
+
+Generates code for real architecture ``70`` and virtual architecture ``72``.
+
+.. code-block:: cmake
+
+  set_property(TARGET tgt PROPERTY CUDA_ARCHITECTURES OFF)
+
+CMake will not pass any architecture flags to the compiler.
diff --git a/share/cmake-3.17/Help/prop_tgt/CUDA_EXTENSIONS.rst b/share/cmake-3.18/Help/prop_tgt/CUDA_EXTENSIONS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/CUDA_EXTENSIONS.rst
rename to share/cmake-3.18/Help/prop_tgt/CUDA_EXTENSIONS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/CUDA_PTX_COMPILATION.rst b/share/cmake-3.18/Help/prop_tgt/CUDA_PTX_COMPILATION.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/CUDA_PTX_COMPILATION.rst
rename to share/cmake-3.18/Help/prop_tgt/CUDA_PTX_COMPILATION.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/CUDA_RESOLVE_DEVICE_SYMBOLS.rst b/share/cmake-3.18/Help/prop_tgt/CUDA_RESOLVE_DEVICE_SYMBOLS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/CUDA_RESOLVE_DEVICE_SYMBOLS.rst
rename to share/cmake-3.18/Help/prop_tgt/CUDA_RESOLVE_DEVICE_SYMBOLS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/CUDA_RUNTIME_LIBRARY-VALUES.txt b/share/cmake-3.18/Help/prop_tgt/CUDA_RUNTIME_LIBRARY-VALUES.txt
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/CUDA_RUNTIME_LIBRARY-VALUES.txt
rename to share/cmake-3.18/Help/prop_tgt/CUDA_RUNTIME_LIBRARY-VALUES.txt
diff --git a/share/cmake-3.17/Help/prop_tgt/CUDA_RUNTIME_LIBRARY.rst b/share/cmake-3.18/Help/prop_tgt/CUDA_RUNTIME_LIBRARY.rst
similarity index 81%
rename from share/cmake-3.17/Help/prop_tgt/CUDA_RUNTIME_LIBRARY.rst
rename to share/cmake-3.18/Help/prop_tgt/CUDA_RUNTIME_LIBRARY.rst
index 0782765..11b344c 100644
--- a/share/cmake-3.17/Help/prop_tgt/CUDA_RUNTIME_LIBRARY.rst
+++ b/share/cmake-3.18/Help/prop_tgt/CUDA_RUNTIME_LIBRARY.rst
@@ -10,8 +10,8 @@
 Contents of ``CUDA_RUNTIME_LIBRARY`` may use
 :manual:`generator expressions <cmake-generator-expressions(7)>`.
 
-If this property is not set then CMake uses the default value
-``Static`` to select the CUDA runtime library.
+If that property is not set then CMake uses an appropriate default
+value based on the compiler to select the CUDA runtime library.
 
 .. note::
 
diff --git a/share/cmake-3.17/Help/prop_tgt/CUDA_SEPARABLE_COMPILATION.rst b/share/cmake-3.18/Help/prop_tgt/CUDA_SEPARABLE_COMPILATION.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/CUDA_SEPARABLE_COMPILATION.rst
rename to share/cmake-3.18/Help/prop_tgt/CUDA_SEPARABLE_COMPILATION.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/CUDA_STANDARD.rst b/share/cmake-3.18/Help/prop_tgt/CUDA_STANDARD.rst
similarity index 94%
rename from share/cmake-3.17/Help/prop_tgt/CUDA_STANDARD.rst
rename to share/cmake-3.18/Help/prop_tgt/CUDA_STANDARD.rst
index a3a2f56..6d6774e 100644
--- a/share/cmake-3.17/Help/prop_tgt/CUDA_STANDARD.rst
+++ b/share/cmake-3.18/Help/prop_tgt/CUDA_STANDARD.rst
@@ -7,7 +7,7 @@
 to build this target.  For some compilers, this results in adding a
 flag such as ``-std=gnu++11`` to the compile line.
 
-Supported values are ``98``, ``11``, ``14``.
+Supported values are ``98``, ``03``, ``11``, ``14``, ``17``, ``20``.
 
 If the value requested does not result in a compile flag being added for
 the compiler in use, a previous standard flag will be added instead.  This
diff --git a/share/cmake-3.17/Help/prop_tgt/CUDA_STANDARD_REQUIRED.rst b/share/cmake-3.18/Help/prop_tgt/CUDA_STANDARD_REQUIRED.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/CUDA_STANDARD_REQUIRED.rst
rename to share/cmake-3.18/Help/prop_tgt/CUDA_STANDARD_REQUIRED.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/CXX_EXTENSIONS.rst b/share/cmake-3.18/Help/prop_tgt/CXX_EXTENSIONS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/CXX_EXTENSIONS.rst
rename to share/cmake-3.18/Help/prop_tgt/CXX_EXTENSIONS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/CXX_STANDARD.rst b/share/cmake-3.18/Help/prop_tgt/CXX_STANDARD.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/CXX_STANDARD.rst
rename to share/cmake-3.18/Help/prop_tgt/CXX_STANDARD.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/CXX_STANDARD_REQUIRED.rst b/share/cmake-3.18/Help/prop_tgt/CXX_STANDARD_REQUIRED.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/CXX_STANDARD_REQUIRED.rst
rename to share/cmake-3.18/Help/prop_tgt/CXX_STANDARD_REQUIRED.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/C_EXTENSIONS.rst b/share/cmake-3.18/Help/prop_tgt/C_EXTENSIONS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/C_EXTENSIONS.rst
rename to share/cmake-3.18/Help/prop_tgt/C_EXTENSIONS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/C_STANDARD.rst b/share/cmake-3.18/Help/prop_tgt/C_STANDARD.rst
similarity index 91%
rename from share/cmake-3.17/Help/prop_tgt/C_STANDARD.rst
rename to share/cmake-3.18/Help/prop_tgt/C_STANDARD.rst
index e7f7904..6a05139 100644
--- a/share/cmake-3.17/Help/prop_tgt/C_STANDARD.rst
+++ b/share/cmake-3.18/Help/prop_tgt/C_STANDARD.rst
@@ -6,8 +6,8 @@
 This property specifies the C standard whose features are requested
 to build this target.  For some compilers, this results in adding a
 flag such as ``-std=gnu11`` to the compile line.  For compilers that
-have no notion of a standard level, such as Microsoft Visual C++ before
-2015 Update 3, this has no effect.
+have no notion of a C standard level, such as all versions of
+MSVC known as of this version of CMake, this has no effect.
 
 Supported values are ``90``, ``99`` and ``11``.
 
diff --git a/share/cmake-3.17/Help/prop_tgt/C_STANDARD_REQUIRED.rst b/share/cmake-3.18/Help/prop_tgt/C_STANDARD_REQUIRED.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/C_STANDARD_REQUIRED.rst
rename to share/cmake-3.18/Help/prop_tgt/C_STANDARD_REQUIRED.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/DEBUG_POSTFIX.rst b/share/cmake-3.18/Help/prop_tgt/DEBUG_POSTFIX.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/DEBUG_POSTFIX.rst
rename to share/cmake-3.18/Help/prop_tgt/DEBUG_POSTFIX.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/DEFINE_SYMBOL.rst b/share/cmake-3.18/Help/prop_tgt/DEFINE_SYMBOL.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/DEFINE_SYMBOL.rst
rename to share/cmake-3.18/Help/prop_tgt/DEFINE_SYMBOL.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/DEPLOYMENT_ADDITIONAL_FILES.rst b/share/cmake-3.18/Help/prop_tgt/DEPLOYMENT_ADDITIONAL_FILES.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/DEPLOYMENT_ADDITIONAL_FILES.rst
rename to share/cmake-3.18/Help/prop_tgt/DEPLOYMENT_ADDITIONAL_FILES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/DEPLOYMENT_REMOTE_DIRECTORY.rst b/share/cmake-3.18/Help/prop_tgt/DEPLOYMENT_REMOTE_DIRECTORY.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/DEPLOYMENT_REMOTE_DIRECTORY.rst
rename to share/cmake-3.18/Help/prop_tgt/DEPLOYMENT_REMOTE_DIRECTORY.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/DEPRECATION.rst b/share/cmake-3.18/Help/prop_tgt/DEPRECATION.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/DEPRECATION.rst
rename to share/cmake-3.18/Help/prop_tgt/DEPRECATION.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/DISABLE_PRECOMPILE_HEADERS.rst b/share/cmake-3.18/Help/prop_tgt/DISABLE_PRECOMPILE_HEADERS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/DISABLE_PRECOMPILE_HEADERS.rst
rename to share/cmake-3.18/Help/prop_tgt/DISABLE_PRECOMPILE_HEADERS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/DOTNET_TARGET_FRAMEWORK.rst b/share/cmake-3.18/Help/prop_tgt/DOTNET_TARGET_FRAMEWORK.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/DOTNET_TARGET_FRAMEWORK.rst
rename to share/cmake-3.18/Help/prop_tgt/DOTNET_TARGET_FRAMEWORK.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/DOTNET_TARGET_FRAMEWORK_VERSION.rst b/share/cmake-3.18/Help/prop_tgt/DOTNET_TARGET_FRAMEWORK_VERSION.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/DOTNET_TARGET_FRAMEWORK_VERSION.rst
rename to share/cmake-3.18/Help/prop_tgt/DOTNET_TARGET_FRAMEWORK_VERSION.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/ENABLE_EXPORTS.rst b/share/cmake-3.18/Help/prop_tgt/ENABLE_EXPORTS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/ENABLE_EXPORTS.rst
rename to share/cmake-3.18/Help/prop_tgt/ENABLE_EXPORTS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/EXCLUDE_FROM_ALL.rst b/share/cmake-3.18/Help/prop_tgt/EXCLUDE_FROM_ALL.rst
similarity index 65%
rename from share/cmake-3.17/Help/prop_tgt/EXCLUDE_FROM_ALL.rst
rename to share/cmake-3.18/Help/prop_tgt/EXCLUDE_FROM_ALL.rst
index 3aa296d..c9ece22 100644
--- a/share/cmake-3.17/Help/prop_tgt/EXCLUDE_FROM_ALL.rst
+++ b/share/cmake-3.18/Help/prop_tgt/EXCLUDE_FROM_ALL.rst
@@ -13,9 +13,9 @@
 
 With ``EXCLUDE_FROM_ALL`` set to false or not set at all, the target
 will be brought up to date as part of doing a ``make install`` or its
-equivalent for the CMake generator being used.  If a target has
-``EXCLUDE_FROM_ALL`` set to true, then any attempt to install that
-target has undefined behavior.  Note that such a target can still safely
-be listed in an :command:`install(TARGETS)` command as long as the install
-components the target belongs to are not part of the set of components
-that anything tries to install.
+equivalent for the CMake generator being used.
+
+If a target has ``EXCLUDE_FROM_ALL`` set to true, it may still be listed
+in an :command:`install(TARGETS)` command, but the user is responsible for
+ensuring that the target's build artifacts are not missing or outdated when
+an install is performed.
diff --git a/share/cmake-3.17/Help/prop_tgt/EXCLUDE_FROM_DEFAULT_BUILD.rst b/share/cmake-3.18/Help/prop_tgt/EXCLUDE_FROM_DEFAULT_BUILD.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/EXCLUDE_FROM_DEFAULT_BUILD.rst
rename to share/cmake-3.18/Help/prop_tgt/EXCLUDE_FROM_DEFAULT_BUILD.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/EXCLUDE_FROM_DEFAULT_BUILD_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/EXCLUDE_FROM_DEFAULT_BUILD_CONFIG.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/EXCLUDE_FROM_DEFAULT_BUILD_CONFIG.rst
rename to share/cmake-3.18/Help/prop_tgt/EXCLUDE_FROM_DEFAULT_BUILD_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/EXPORT_NAME.rst b/share/cmake-3.18/Help/prop_tgt/EXPORT_NAME.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/EXPORT_NAME.rst
rename to share/cmake-3.18/Help/prop_tgt/EXPORT_NAME.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/EXPORT_PROPERTIES.rst b/share/cmake-3.18/Help/prop_tgt/EXPORT_PROPERTIES.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/EXPORT_PROPERTIES.rst
rename to share/cmake-3.18/Help/prop_tgt/EXPORT_PROPERTIES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/EchoString.rst b/share/cmake-3.18/Help/prop_tgt/EchoString.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/EchoString.rst
rename to share/cmake-3.18/Help/prop_tgt/EchoString.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/FOLDER.rst b/share/cmake-3.18/Help/prop_tgt/FOLDER.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/FOLDER.rst
rename to share/cmake-3.18/Help/prop_tgt/FOLDER.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/FRAMEWORK.rst b/share/cmake-3.18/Help/prop_tgt/FRAMEWORK.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/FRAMEWORK.rst
rename to share/cmake-3.18/Help/prop_tgt/FRAMEWORK.rst
diff --git a/share/cmake-3.18/Help/prop_tgt/FRAMEWORK_MULTI_CONFIG_POSTFIX_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/FRAMEWORK_MULTI_CONFIG_POSTFIX_CONFIG.rst
new file mode 100644
index 0000000..243c0cd
--- /dev/null
+++ b/share/cmake-3.18/Help/prop_tgt/FRAMEWORK_MULTI_CONFIG_POSTFIX_CONFIG.rst
@@ -0,0 +1,26 @@
+FRAMEWORK_MULTI_CONFIG_POSTFIX_<CONFIG>
+---------------------------------------
+
+Postfix to append to the framework file name for configuration ``<CONFIG>``,
+when using a multi-config generator (like Xcode and Ninja Multi-Config).
+
+When building with configuration ``<CONFIG>`` the value of this property
+is appended to the framework file name built on disk.
+
+For example, given a framework called ``my_fw``, a value of ``_debug``
+for the ``FRAMEWORK_MULTI_CONFIG_POSTFIX_DEBUG`` property, and
+``Debug;Release`` in :variable:`CMAKE_CONFIGURATION_TYPES`, the following
+relevant files would be created for the ``Debug`` and ``Release``
+configurations:
+
+- ``Release/my_fw.framework/my_fw``
+- ``Release/my_fw.framework/Versions/A/my_fw``
+- ``Debug/my_fw.framework/my_fw_debug``
+- ``Debug/my_fw.framework/Versions/A/my_fw_debug``
+
+For framework targets, this property is initialized by the value of the
+:variable:`CMAKE_FRAMEWORK_MULTI_CONFIG_POSTFIX_<CONFIG>` variable if it
+is set when a target is created.
+
+This property is ignored for non-framework targets, and when using single
+config generators.
diff --git a/share/cmake-3.17/Help/prop_tgt/FRAMEWORK_VERSION.rst b/share/cmake-3.18/Help/prop_tgt/FRAMEWORK_VERSION.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/FRAMEWORK_VERSION.rst
rename to share/cmake-3.18/Help/prop_tgt/FRAMEWORK_VERSION.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/Fortran_FORMAT.rst b/share/cmake-3.18/Help/prop_tgt/Fortran_FORMAT.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/Fortran_FORMAT.rst
rename to share/cmake-3.18/Help/prop_tgt/Fortran_FORMAT.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/Fortran_MODULE_DIRECTORY.rst b/share/cmake-3.18/Help/prop_tgt/Fortran_MODULE_DIRECTORY.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/Fortran_MODULE_DIRECTORY.rst
rename to share/cmake-3.18/Help/prop_tgt/Fortran_MODULE_DIRECTORY.rst
diff --git a/share/cmake-3.18/Help/prop_tgt/Fortran_PREPROCESS.rst b/share/cmake-3.18/Help/prop_tgt/Fortran_PREPROCESS.rst
new file mode 100644
index 0000000..47a15c0
--- /dev/null
+++ b/share/cmake-3.18/Help/prop_tgt/Fortran_PREPROCESS.rst
@@ -0,0 +1,23 @@
+Fortran_PREPROCESS
+------------------
+
+Control whether the Fortran source file should be unconditionally
+preprocessed.
+
+If unset or empty, rely on the compiler to determine whether the file
+should be preprocessed. If explicitly set to ``OFF`` then the file does not
+need to be preprocessed. If explicitly set to ``ON``, then the file does
+need to be preprocessed as part of the compilation step.
+
+When using the :generator:`Ninja` generator, all source files are
+first preprocessed in order to generate module dependency
+information. Setting this property to ``OFF`` will make ``Ninja``
+skip this step.
+
+Use the source-specific :prop_sf:`Fortran_PREPROCESS` property if a single
+file needs to be preprocessed. If the variable
+:variable:`CMAKE_Fortran_PREPROCESS` is set when a target is created its
+value is used to initialize this property.
+
+.. note:: For some compilers, ``NAG``, ``PGI`` and ``Solaris Studio``,
+          setting this to ``OFF`` will have no effect.
diff --git a/share/cmake-3.17/Help/prop_tgt/GENERATOR_FILE_NAME.rst b/share/cmake-3.18/Help/prop_tgt/GENERATOR_FILE_NAME.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/GENERATOR_FILE_NAME.rst
rename to share/cmake-3.18/Help/prop_tgt/GENERATOR_FILE_NAME.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/GHS_INTEGRITY_APP.rst b/share/cmake-3.18/Help/prop_tgt/GHS_INTEGRITY_APP.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/GHS_INTEGRITY_APP.rst
rename to share/cmake-3.18/Help/prop_tgt/GHS_INTEGRITY_APP.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/GHS_NO_SOURCE_GROUP_FILE.rst b/share/cmake-3.18/Help/prop_tgt/GHS_NO_SOURCE_GROUP_FILE.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/GHS_NO_SOURCE_GROUP_FILE.rst
rename to share/cmake-3.18/Help/prop_tgt/GHS_NO_SOURCE_GROUP_FILE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/GNUtoMS.rst b/share/cmake-3.18/Help/prop_tgt/GNUtoMS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/GNUtoMS.rst
rename to share/cmake-3.18/Help/prop_tgt/GNUtoMS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/HAS_CXX.rst b/share/cmake-3.18/Help/prop_tgt/HAS_CXX.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/HAS_CXX.rst
rename to share/cmake-3.18/Help/prop_tgt/HAS_CXX.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/IMPLICIT_DEPENDS_INCLUDE_TRANSFORM.rst b/share/cmake-3.18/Help/prop_tgt/IMPLICIT_DEPENDS_INCLUDE_TRANSFORM.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/IMPLICIT_DEPENDS_INCLUDE_TRANSFORM.rst
rename to share/cmake-3.18/Help/prop_tgt/IMPLICIT_DEPENDS_INCLUDE_TRANSFORM.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/IMPORTED.rst b/share/cmake-3.18/Help/prop_tgt/IMPORTED.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/IMPORTED.rst
rename to share/cmake-3.18/Help/prop_tgt/IMPORTED.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/IMPORTED_COMMON_LANGUAGE_RUNTIME.rst b/share/cmake-3.18/Help/prop_tgt/IMPORTED_COMMON_LANGUAGE_RUNTIME.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/IMPORTED_COMMON_LANGUAGE_RUNTIME.rst
rename to share/cmake-3.18/Help/prop_tgt/IMPORTED_COMMON_LANGUAGE_RUNTIME.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/IMPORTED_CONFIGURATIONS.rst b/share/cmake-3.18/Help/prop_tgt/IMPORTED_CONFIGURATIONS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/IMPORTED_CONFIGURATIONS.rst
rename to share/cmake-3.18/Help/prop_tgt/IMPORTED_CONFIGURATIONS.rst
diff --git a/share/cmake-3.18/Help/prop_tgt/IMPORTED_GLOBAL.rst b/share/cmake-3.18/Help/prop_tgt/IMPORTED_GLOBAL.rst
new file mode 100644
index 0000000..1a9129f
--- /dev/null
+++ b/share/cmake-3.18/Help/prop_tgt/IMPORTED_GLOBAL.rst
@@ -0,0 +1,30 @@
+IMPORTED_GLOBAL
+---------------
+
+Indication of whether an :ref:`IMPORTED target <Imported Targets>` is
+globally visible.
+
+The boolean value of this property is True for targets created with the
+``IMPORTED`` ``GLOBAL`` options to :command:`add_executable()` or
+:command:`add_library()`. It is always False for targets built within the
+project.
+
+For targets created with the ``IMPORTED`` option to
+:command:`add_executable()` or :command:`add_library()` but without the
+additional option ``GLOBAL`` this is False, too. However, setting this
+property for such a locally ``IMPORTED`` target to True promotes that
+target to global scope. This promotion can only be done in the same
+directory where that ``IMPORTED`` target was created in the first place.
+
+.. note::
+
+  Once an imported target has been made global, it cannot be changed back to
+  non-global. Therefore, if a project sets this property, it may only
+  provide a value of True. CMake will issue an error if the project tries to
+  set the property to a non-True value, even if the value was already False.
+
+.. note::
+
+  Local :ref:`ALIAS targets <Alias Targets>` created before promoting an
+  :ref:`IMPORTED target <Imported Targets>` from ``LOCAL`` to ``GLOBAL``, keep
+  their initial scope (see :prop_tgt:`ALIAS_GLOBAL` target property).
diff --git a/share/cmake-3.17/Help/prop_tgt/IMPORTED_IMPLIB.rst b/share/cmake-3.18/Help/prop_tgt/IMPORTED_IMPLIB.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/IMPORTED_IMPLIB.rst
rename to share/cmake-3.18/Help/prop_tgt/IMPORTED_IMPLIB.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/IMPORTED_IMPLIB_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/IMPORTED_IMPLIB_CONFIG.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/IMPORTED_IMPLIB_CONFIG.rst
rename to share/cmake-3.18/Help/prop_tgt/IMPORTED_IMPLIB_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/IMPORTED_LIBNAME.rst b/share/cmake-3.18/Help/prop_tgt/IMPORTED_LIBNAME.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/IMPORTED_LIBNAME.rst
rename to share/cmake-3.18/Help/prop_tgt/IMPORTED_LIBNAME.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/IMPORTED_LIBNAME_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/IMPORTED_LIBNAME_CONFIG.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/IMPORTED_LIBNAME_CONFIG.rst
rename to share/cmake-3.18/Help/prop_tgt/IMPORTED_LIBNAME_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_DEPENDENT_LIBRARIES.rst b/share/cmake-3.18/Help/prop_tgt/IMPORTED_LINK_DEPENDENT_LIBRARIES.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_DEPENDENT_LIBRARIES.rst
rename to share/cmake-3.18/Help/prop_tgt/IMPORTED_LINK_DEPENDENT_LIBRARIES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_DEPENDENT_LIBRARIES_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/IMPORTED_LINK_DEPENDENT_LIBRARIES_CONFIG.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_DEPENDENT_LIBRARIES_CONFIG.rst
rename to share/cmake-3.18/Help/prop_tgt/IMPORTED_LINK_DEPENDENT_LIBRARIES_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LANGUAGES.rst b/share/cmake-3.18/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LANGUAGES.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LANGUAGES.rst
rename to share/cmake-3.18/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LANGUAGES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LANGUAGES_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LANGUAGES_CONFIG.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LANGUAGES_CONFIG.rst
rename to share/cmake-3.18/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LANGUAGES_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LIBRARIES.rst b/share/cmake-3.18/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LIBRARIES.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LIBRARIES.rst
rename to share/cmake-3.18/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LIBRARIES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LIBRARIES_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LIBRARIES_CONFIG.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LIBRARIES_CONFIG.rst
rename to share/cmake-3.18/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LIBRARIES_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_INTERFACE_MULTIPLICITY.rst b/share/cmake-3.18/Help/prop_tgt/IMPORTED_LINK_INTERFACE_MULTIPLICITY.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_INTERFACE_MULTIPLICITY.rst
rename to share/cmake-3.18/Help/prop_tgt/IMPORTED_LINK_INTERFACE_MULTIPLICITY.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_INTERFACE_MULTIPLICITY_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/IMPORTED_LINK_INTERFACE_MULTIPLICITY_CONFIG.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_INTERFACE_MULTIPLICITY_CONFIG.rst
rename to share/cmake-3.18/Help/prop_tgt/IMPORTED_LINK_INTERFACE_MULTIPLICITY_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/IMPORTED_LOCATION.rst b/share/cmake-3.18/Help/prop_tgt/IMPORTED_LOCATION.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/IMPORTED_LOCATION.rst
rename to share/cmake-3.18/Help/prop_tgt/IMPORTED_LOCATION.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/IMPORTED_LOCATION_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/IMPORTED_LOCATION_CONFIG.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/IMPORTED_LOCATION_CONFIG.rst
rename to share/cmake-3.18/Help/prop_tgt/IMPORTED_LOCATION_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/IMPORTED_NO_SONAME.rst b/share/cmake-3.18/Help/prop_tgt/IMPORTED_NO_SONAME.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/IMPORTED_NO_SONAME.rst
rename to share/cmake-3.18/Help/prop_tgt/IMPORTED_NO_SONAME.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/IMPORTED_NO_SONAME_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/IMPORTED_NO_SONAME_CONFIG.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/IMPORTED_NO_SONAME_CONFIG.rst
rename to share/cmake-3.18/Help/prop_tgt/IMPORTED_NO_SONAME_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/IMPORTED_OBJECTS.rst b/share/cmake-3.18/Help/prop_tgt/IMPORTED_OBJECTS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/IMPORTED_OBJECTS.rst
rename to share/cmake-3.18/Help/prop_tgt/IMPORTED_OBJECTS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/IMPORTED_OBJECTS_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/IMPORTED_OBJECTS_CONFIG.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/IMPORTED_OBJECTS_CONFIG.rst
rename to share/cmake-3.18/Help/prop_tgt/IMPORTED_OBJECTS_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/IMPORTED_SONAME.rst b/share/cmake-3.18/Help/prop_tgt/IMPORTED_SONAME.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/IMPORTED_SONAME.rst
rename to share/cmake-3.18/Help/prop_tgt/IMPORTED_SONAME.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/IMPORTED_SONAME_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/IMPORTED_SONAME_CONFIG.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/IMPORTED_SONAME_CONFIG.rst
rename to share/cmake-3.18/Help/prop_tgt/IMPORTED_SONAME_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/IMPORT_PREFIX.rst b/share/cmake-3.18/Help/prop_tgt/IMPORT_PREFIX.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/IMPORT_PREFIX.rst
rename to share/cmake-3.18/Help/prop_tgt/IMPORT_PREFIX.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/IMPORT_SUFFIX.rst b/share/cmake-3.18/Help/prop_tgt/IMPORT_SUFFIX.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/IMPORT_SUFFIX.rst
rename to share/cmake-3.18/Help/prop_tgt/IMPORT_SUFFIX.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/INCLUDE_DIRECTORIES.rst b/share/cmake-3.18/Help/prop_tgt/INCLUDE_DIRECTORIES.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/INCLUDE_DIRECTORIES.rst
rename to share/cmake-3.18/Help/prop_tgt/INCLUDE_DIRECTORIES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/INSTALL_NAME_DIR.rst b/share/cmake-3.18/Help/prop_tgt/INSTALL_NAME_DIR.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/INSTALL_NAME_DIR.rst
rename to share/cmake-3.18/Help/prop_tgt/INSTALL_NAME_DIR.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/INSTALL_REMOVE_ENVIRONMENT_RPATH.rst b/share/cmake-3.18/Help/prop_tgt/INSTALL_REMOVE_ENVIRONMENT_RPATH.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/INSTALL_REMOVE_ENVIRONMENT_RPATH.rst
rename to share/cmake-3.18/Help/prop_tgt/INSTALL_REMOVE_ENVIRONMENT_RPATH.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/INSTALL_RPATH.rst b/share/cmake-3.18/Help/prop_tgt/INSTALL_RPATH.rst
similarity index 66%
rename from share/cmake-3.17/Help/prop_tgt/INSTALL_RPATH.rst
rename to share/cmake-3.18/Help/prop_tgt/INSTALL_RPATH.rst
index 93b4488..4549b92 100644
--- a/share/cmake-3.17/Help/prop_tgt/INSTALL_RPATH.rst
+++ b/share/cmake-3.18/Help/prop_tgt/INSTALL_RPATH.rst
@@ -8,5 +8,9 @@
 by the value of the variable :variable:`CMAKE_INSTALL_RPATH` if it is set when
 a target is created.
 
+Because the rpath may contain ``${ORIGIN}``, which coincides with CMake syntax,
+the contents of ``INSTALL_RPATH`` are properly escaped in the
+``cmake_install.cmake`` script (see policy :policy:`CMP0095`.)
+
 This property supports
 :manual:`generator expressions <cmake-generator-expressions(7)>`.
diff --git a/share/cmake-3.17/Help/prop_tgt/INSTALL_RPATH_USE_LINK_PATH.rst b/share/cmake-3.18/Help/prop_tgt/INSTALL_RPATH_USE_LINK_PATH.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/INSTALL_RPATH_USE_LINK_PATH.rst
rename to share/cmake-3.18/Help/prop_tgt/INSTALL_RPATH_USE_LINK_PATH.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/INTERFACE_AUTOUIC_OPTIONS.rst b/share/cmake-3.18/Help/prop_tgt/INTERFACE_AUTOUIC_OPTIONS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/INTERFACE_AUTOUIC_OPTIONS.rst
rename to share/cmake-3.18/Help/prop_tgt/INTERFACE_AUTOUIC_OPTIONS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/INTERFACE_BUILD_PROPERTY.txt b/share/cmake-3.18/Help/prop_tgt/INTERFACE_BUILD_PROPERTY.txt
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/INTERFACE_BUILD_PROPERTY.txt
rename to share/cmake-3.18/Help/prop_tgt/INTERFACE_BUILD_PROPERTY.txt
diff --git a/share/cmake-3.17/Help/prop_tgt/INTERFACE_COMPILE_DEFINITIONS.rst b/share/cmake-3.18/Help/prop_tgt/INTERFACE_COMPILE_DEFINITIONS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/INTERFACE_COMPILE_DEFINITIONS.rst
rename to share/cmake-3.18/Help/prop_tgt/INTERFACE_COMPILE_DEFINITIONS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/INTERFACE_COMPILE_FEATURES.rst b/share/cmake-3.18/Help/prop_tgt/INTERFACE_COMPILE_FEATURES.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/INTERFACE_COMPILE_FEATURES.rst
rename to share/cmake-3.18/Help/prop_tgt/INTERFACE_COMPILE_FEATURES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/INTERFACE_COMPILE_OPTIONS.rst b/share/cmake-3.18/Help/prop_tgt/INTERFACE_COMPILE_OPTIONS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/INTERFACE_COMPILE_OPTIONS.rst
rename to share/cmake-3.18/Help/prop_tgt/INTERFACE_COMPILE_OPTIONS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/INTERFACE_INCLUDE_DIRECTORIES.rst b/share/cmake-3.18/Help/prop_tgt/INTERFACE_INCLUDE_DIRECTORIES.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/INTERFACE_INCLUDE_DIRECTORIES.rst
rename to share/cmake-3.18/Help/prop_tgt/INTERFACE_INCLUDE_DIRECTORIES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/INTERFACE_LINK_DEPENDS.rst b/share/cmake-3.18/Help/prop_tgt/INTERFACE_LINK_DEPENDS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/INTERFACE_LINK_DEPENDS.rst
rename to share/cmake-3.18/Help/prop_tgt/INTERFACE_LINK_DEPENDS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/INTERFACE_LINK_DIRECTORIES.rst b/share/cmake-3.18/Help/prop_tgt/INTERFACE_LINK_DIRECTORIES.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/INTERFACE_LINK_DIRECTORIES.rst
rename to share/cmake-3.18/Help/prop_tgt/INTERFACE_LINK_DIRECTORIES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/INTERFACE_LINK_LIBRARIES.rst b/share/cmake-3.18/Help/prop_tgt/INTERFACE_LINK_LIBRARIES.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/INTERFACE_LINK_LIBRARIES.rst
rename to share/cmake-3.18/Help/prop_tgt/INTERFACE_LINK_LIBRARIES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/INTERFACE_LINK_OPTIONS.rst b/share/cmake-3.18/Help/prop_tgt/INTERFACE_LINK_OPTIONS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/INTERFACE_LINK_OPTIONS.rst
rename to share/cmake-3.18/Help/prop_tgt/INTERFACE_LINK_OPTIONS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/INTERFACE_POSITION_INDEPENDENT_CODE.rst b/share/cmake-3.18/Help/prop_tgt/INTERFACE_POSITION_INDEPENDENT_CODE.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/INTERFACE_POSITION_INDEPENDENT_CODE.rst
rename to share/cmake-3.18/Help/prop_tgt/INTERFACE_POSITION_INDEPENDENT_CODE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/INTERFACE_PRECOMPILE_HEADERS.rst b/share/cmake-3.18/Help/prop_tgt/INTERFACE_PRECOMPILE_HEADERS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/INTERFACE_PRECOMPILE_HEADERS.rst
rename to share/cmake-3.18/Help/prop_tgt/INTERFACE_PRECOMPILE_HEADERS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/INTERFACE_SOURCES.rst b/share/cmake-3.18/Help/prop_tgt/INTERFACE_SOURCES.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/INTERFACE_SOURCES.rst
rename to share/cmake-3.18/Help/prop_tgt/INTERFACE_SOURCES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/INTERFACE_SYSTEM_INCLUDE_DIRECTORIES.rst b/share/cmake-3.18/Help/prop_tgt/INTERFACE_SYSTEM_INCLUDE_DIRECTORIES.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/INTERFACE_SYSTEM_INCLUDE_DIRECTORIES.rst
rename to share/cmake-3.18/Help/prop_tgt/INTERFACE_SYSTEM_INCLUDE_DIRECTORIES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/INTERPROCEDURAL_OPTIMIZATION.rst b/share/cmake-3.18/Help/prop_tgt/INTERPROCEDURAL_OPTIMIZATION.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/INTERPROCEDURAL_OPTIMIZATION.rst
rename to share/cmake-3.18/Help/prop_tgt/INTERPROCEDURAL_OPTIMIZATION.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/INTERPROCEDURAL_OPTIMIZATION_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/INTERPROCEDURAL_OPTIMIZATION_CONFIG.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/INTERPROCEDURAL_OPTIMIZATION_CONFIG.rst
rename to share/cmake-3.18/Help/prop_tgt/INTERPROCEDURAL_OPTIMIZATION_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/IOS_INSTALL_COMBINED.rst b/share/cmake-3.18/Help/prop_tgt/IOS_INSTALL_COMBINED.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/IOS_INSTALL_COMBINED.rst
rename to share/cmake-3.18/Help/prop_tgt/IOS_INSTALL_COMBINED.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/JOB_POOL_COMPILE.rst b/share/cmake-3.18/Help/prop_tgt/JOB_POOL_COMPILE.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/JOB_POOL_COMPILE.rst
rename to share/cmake-3.18/Help/prop_tgt/JOB_POOL_COMPILE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/JOB_POOL_LINK.rst b/share/cmake-3.18/Help/prop_tgt/JOB_POOL_LINK.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/JOB_POOL_LINK.rst
rename to share/cmake-3.18/Help/prop_tgt/JOB_POOL_LINK.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/JOB_POOL_PRECOMPILE_HEADER.rst b/share/cmake-3.18/Help/prop_tgt/JOB_POOL_PRECOMPILE_HEADER.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/JOB_POOL_PRECOMPILE_HEADER.rst
rename to share/cmake-3.18/Help/prop_tgt/JOB_POOL_PRECOMPILE_HEADER.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/LABELS.rst b/share/cmake-3.18/Help/prop_tgt/LABELS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/LABELS.rst
rename to share/cmake-3.18/Help/prop_tgt/LABELS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/LANG_CLANG_TIDY.rst b/share/cmake-3.18/Help/prop_tgt/LANG_CLANG_TIDY.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/LANG_CLANG_TIDY.rst
rename to share/cmake-3.18/Help/prop_tgt/LANG_CLANG_TIDY.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/LANG_COMPILER_LAUNCHER.rst b/share/cmake-3.18/Help/prop_tgt/LANG_COMPILER_LAUNCHER.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/LANG_COMPILER_LAUNCHER.rst
rename to share/cmake-3.18/Help/prop_tgt/LANG_COMPILER_LAUNCHER.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/LANG_CPPCHECK.rst b/share/cmake-3.18/Help/prop_tgt/LANG_CPPCHECK.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/LANG_CPPCHECK.rst
rename to share/cmake-3.18/Help/prop_tgt/LANG_CPPCHECK.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/LANG_CPPLINT.rst b/share/cmake-3.18/Help/prop_tgt/LANG_CPPLINT.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/LANG_CPPLINT.rst
rename to share/cmake-3.18/Help/prop_tgt/LANG_CPPLINT.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/LANG_INCLUDE_WHAT_YOU_USE.rst b/share/cmake-3.18/Help/prop_tgt/LANG_INCLUDE_WHAT_YOU_USE.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/LANG_INCLUDE_WHAT_YOU_USE.rst
rename to share/cmake-3.18/Help/prop_tgt/LANG_INCLUDE_WHAT_YOU_USE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/LANG_VISIBILITY_PRESET.rst b/share/cmake-3.18/Help/prop_tgt/LANG_VISIBILITY_PRESET.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/LANG_VISIBILITY_PRESET.rst
rename to share/cmake-3.18/Help/prop_tgt/LANG_VISIBILITY_PRESET.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/LIBRARY_OUTPUT_DIRECTORY.rst b/share/cmake-3.18/Help/prop_tgt/LIBRARY_OUTPUT_DIRECTORY.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/LIBRARY_OUTPUT_DIRECTORY.rst
rename to share/cmake-3.18/Help/prop_tgt/LIBRARY_OUTPUT_DIRECTORY.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/LIBRARY_OUTPUT_DIRECTORY_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/LIBRARY_OUTPUT_DIRECTORY_CONFIG.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/LIBRARY_OUTPUT_DIRECTORY_CONFIG.rst
rename to share/cmake-3.18/Help/prop_tgt/LIBRARY_OUTPUT_DIRECTORY_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/LIBRARY_OUTPUT_NAME.rst b/share/cmake-3.18/Help/prop_tgt/LIBRARY_OUTPUT_NAME.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/LIBRARY_OUTPUT_NAME.rst
rename to share/cmake-3.18/Help/prop_tgt/LIBRARY_OUTPUT_NAME.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/LIBRARY_OUTPUT_NAME_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/LIBRARY_OUTPUT_NAME_CONFIG.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/LIBRARY_OUTPUT_NAME_CONFIG.rst
rename to share/cmake-3.18/Help/prop_tgt/LIBRARY_OUTPUT_NAME_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/LINKER_LANGUAGE.rst b/share/cmake-3.18/Help/prop_tgt/LINKER_LANGUAGE.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/LINKER_LANGUAGE.rst
rename to share/cmake-3.18/Help/prop_tgt/LINKER_LANGUAGE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/LINK_DEPENDS.rst b/share/cmake-3.18/Help/prop_tgt/LINK_DEPENDS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/LINK_DEPENDS.rst
rename to share/cmake-3.18/Help/prop_tgt/LINK_DEPENDS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/LINK_DEPENDS_NO_SHARED.rst b/share/cmake-3.18/Help/prop_tgt/LINK_DEPENDS_NO_SHARED.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/LINK_DEPENDS_NO_SHARED.rst
rename to share/cmake-3.18/Help/prop_tgt/LINK_DEPENDS_NO_SHARED.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/LINK_DIRECTORIES.rst b/share/cmake-3.18/Help/prop_tgt/LINK_DIRECTORIES.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/LINK_DIRECTORIES.rst
rename to share/cmake-3.18/Help/prop_tgt/LINK_DIRECTORIES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/LINK_FLAGS.rst b/share/cmake-3.18/Help/prop_tgt/LINK_FLAGS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/LINK_FLAGS.rst
rename to share/cmake-3.18/Help/prop_tgt/LINK_FLAGS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/LINK_FLAGS_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/LINK_FLAGS_CONFIG.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/LINK_FLAGS_CONFIG.rst
rename to share/cmake-3.18/Help/prop_tgt/LINK_FLAGS_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/LINK_INTERFACE_LIBRARIES.rst b/share/cmake-3.18/Help/prop_tgt/LINK_INTERFACE_LIBRARIES.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/LINK_INTERFACE_LIBRARIES.rst
rename to share/cmake-3.18/Help/prop_tgt/LINK_INTERFACE_LIBRARIES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/LINK_INTERFACE_LIBRARIES_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/LINK_INTERFACE_LIBRARIES_CONFIG.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/LINK_INTERFACE_LIBRARIES_CONFIG.rst
rename to share/cmake-3.18/Help/prop_tgt/LINK_INTERFACE_LIBRARIES_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/LINK_INTERFACE_MULTIPLICITY.rst b/share/cmake-3.18/Help/prop_tgt/LINK_INTERFACE_MULTIPLICITY.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/LINK_INTERFACE_MULTIPLICITY.rst
rename to share/cmake-3.18/Help/prop_tgt/LINK_INTERFACE_MULTIPLICITY.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/LINK_INTERFACE_MULTIPLICITY_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/LINK_INTERFACE_MULTIPLICITY_CONFIG.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/LINK_INTERFACE_MULTIPLICITY_CONFIG.rst
rename to share/cmake-3.18/Help/prop_tgt/LINK_INTERFACE_MULTIPLICITY_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/LINK_LIBRARIES.rst b/share/cmake-3.18/Help/prop_tgt/LINK_LIBRARIES.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/LINK_LIBRARIES.rst
rename to share/cmake-3.18/Help/prop_tgt/LINK_LIBRARIES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/LINK_LIBRARIES_INDIRECTION.txt b/share/cmake-3.18/Help/prop_tgt/LINK_LIBRARIES_INDIRECTION.txt
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/LINK_LIBRARIES_INDIRECTION.txt
rename to share/cmake-3.18/Help/prop_tgt/LINK_LIBRARIES_INDIRECTION.txt
diff --git a/share/cmake-3.18/Help/prop_tgt/LINK_OPTIONS.rst b/share/cmake-3.18/Help/prop_tgt/LINK_OPTIONS.rst
new file mode 100644
index 0000000..ff3ee87
--- /dev/null
+++ b/share/cmake-3.18/Help/prop_tgt/LINK_OPTIONS.rst
@@ -0,0 +1,28 @@
+LINK_OPTIONS
+------------
+
+List of options to use for the link step of shared library, module
+and executable targets as well as the device link step. Targets that are static
+libraries need to use the :prop_tgt:`STATIC_LIBRARY_OPTIONS` target property.
+
+These options are used for both normal linking and device linking
+(see policy :policy:`CMP0105`). To control link options for normal and device
+link steps, ``$<HOST_LINK>`` and ``$<DEVICE_LINK>``
+:manual:`generator expressions <cmake-generator-expressions(7)>` can be used.
+
+This property holds a :ref:`semicolon-separated list <CMake Language Lists>` of
+options specified so far for its target.  Use the :command:`target_link_options`
+command to append more options.
+
+This property is initialized by the :prop_dir:`LINK_OPTIONS` directory
+property when a target is created, and is used by the generators to set
+the options for the compiler.
+
+Contents of ``LINK_OPTIONS`` may use "generator expressions" with the
+syntax ``$<...>``.  See the :manual:`cmake-generator-expressions(7)` manual
+for available expressions.  See the :manual:`cmake-buildsystem(7)` manual
+for more on defining buildsystem properties.
+
+.. note::
+
+  This property must be used in preference to :prop_tgt:`LINK_FLAGS` property.
diff --git a/share/cmake-3.17/Help/prop_tgt/LINK_SEARCH_END_STATIC.rst b/share/cmake-3.18/Help/prop_tgt/LINK_SEARCH_END_STATIC.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/LINK_SEARCH_END_STATIC.rst
rename to share/cmake-3.18/Help/prop_tgt/LINK_SEARCH_END_STATIC.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/LINK_SEARCH_START_STATIC.rst b/share/cmake-3.18/Help/prop_tgt/LINK_SEARCH_START_STATIC.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/LINK_SEARCH_START_STATIC.rst
rename to share/cmake-3.18/Help/prop_tgt/LINK_SEARCH_START_STATIC.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/LINK_WHAT_YOU_USE.rst b/share/cmake-3.18/Help/prop_tgt/LINK_WHAT_YOU_USE.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/LINK_WHAT_YOU_USE.rst
rename to share/cmake-3.18/Help/prop_tgt/LINK_WHAT_YOU_USE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/LOCATION.rst b/share/cmake-3.18/Help/prop_tgt/LOCATION.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/LOCATION.rst
rename to share/cmake-3.18/Help/prop_tgt/LOCATION.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/LOCATION_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/LOCATION_CONFIG.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/LOCATION_CONFIG.rst
rename to share/cmake-3.18/Help/prop_tgt/LOCATION_CONFIG.rst
diff --git a/share/cmake-3.18/Help/prop_tgt/MACHO_COMPATIBILITY_VERSION.rst b/share/cmake-3.18/Help/prop_tgt/MACHO_COMPATIBILITY_VERSION.rst
new file mode 100644
index 0000000..26d5cc8
--- /dev/null
+++ b/share/cmake-3.18/Help/prop_tgt/MACHO_COMPATIBILITY_VERSION.rst
@@ -0,0 +1,25 @@
+MACHO_COMPATIBILITY_VERSION
+---------------------------
+
+What compatibility version number is this target for Mach-O binaries.
+
+For shared libraries on Mach-O systems (e.g. macOS, iOS)
+the ``MACHO_COMPATIBILITY_VERSION`` property corresponds to the
+*compatibility version* and :prop_tgt:`MACHO_CURRENT_VERSION` corresponds to
+the *current version*.  These are both embedded in the shared library binary
+and can be checked with the ``otool -L <binary>`` command.
+
+It should be noted that the :prop_tgt:`MACHO_CURRENT_VERSION` and
+``MACHO_COMPATIBILITY_VERSION`` properties do not affect the file
+names or version-related symlinks that CMake generates for the library.
+The :prop_tgt:`VERSION` and :prop_tgt:`SOVERSION` target properties still
+control the file and symlink names.  The ``install_name`` is also still
+controlled by :prop_tgt:`SOVERSION`.
+
+When :prop_tgt:`MACHO_CURRENT_VERSION` and ``MACHO_COMPATIBILITY_VERSION``
+are not given, :prop_tgt:`VERSION` and :prop_tgt:`SOVERSION` are used for
+the version details to be embedded in the binaries respectively.
+The :prop_tgt:`MACHO_CURRENT_VERSION` and ``MACHO_COMPATIBILITY_VERSION``
+properties only need to be given if the project needs to decouple the file
+and symlink naming from the version details embedded in the binaries
+(e.g. to match libtool conventions).
diff --git a/share/cmake-3.18/Help/prop_tgt/MACHO_CURRENT_VERSION.rst b/share/cmake-3.18/Help/prop_tgt/MACHO_CURRENT_VERSION.rst
new file mode 100644
index 0000000..9afb356
--- /dev/null
+++ b/share/cmake-3.18/Help/prop_tgt/MACHO_CURRENT_VERSION.rst
@@ -0,0 +1,25 @@
+MACHO_CURRENT_VERSION
+---------------------
+
+What current version number is this target for Mach-O binaries.
+
+For shared libraries on Mach-O systems (e.g. macOS, iOS)
+the :prop_tgt:`MACHO_COMPATIBILITY_VERSION` property corresponds to the
+*compatibility version* and ``MACHO_CURRENT_VERSION`` corresponds to the
+*current version*.  These are both embedded in the shared library binary
+and can be checked with the ``otool -L <binary>`` command.
+
+It should be noted that the ``MACHO_CURRENT_VERSION`` and
+:prop_tgt:`MACHO_COMPATIBILITY_VERSION` properties do not affect the file
+names or version-related symlinks that CMake generates for the library.
+The :prop_tgt:`VERSION` and :prop_tgt:`SOVERSION` target properties still
+control the file and symlink names.  The ``install_name`` is also still
+controlled by :prop_tgt:`SOVERSION`.
+
+When ``MACHO_CURRENT_VERSION`` and :prop_tgt:`MACHO_COMPATIBILITY_VERSION`
+are not given, :prop_tgt:`VERSION` and :prop_tgt:`SOVERSION` are used for
+the version details to be embedded in the binaries respectively.
+The ``MACHO_CURRENT_VERSION`` and :prop_tgt:`MACHO_COMPATIBILITY_VERSION`
+properties only need to be given if the project needs to decouple the file
+and symlink naming from the version details embedded in the binaries
+(e.g. to match libtool conventions).
diff --git a/share/cmake-3.17/Help/prop_tgt/MACOSX_BUNDLE.rst b/share/cmake-3.18/Help/prop_tgt/MACOSX_BUNDLE.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/MACOSX_BUNDLE.rst
rename to share/cmake-3.18/Help/prop_tgt/MACOSX_BUNDLE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/MACOSX_BUNDLE_INFO_PLIST.rst b/share/cmake-3.18/Help/prop_tgt/MACOSX_BUNDLE_INFO_PLIST.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/MACOSX_BUNDLE_INFO_PLIST.rst
rename to share/cmake-3.18/Help/prop_tgt/MACOSX_BUNDLE_INFO_PLIST.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/MACOSX_FRAMEWORK_INFO_PLIST.rst b/share/cmake-3.18/Help/prop_tgt/MACOSX_FRAMEWORK_INFO_PLIST.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/MACOSX_FRAMEWORK_INFO_PLIST.rst
rename to share/cmake-3.18/Help/prop_tgt/MACOSX_FRAMEWORK_INFO_PLIST.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/MACOSX_RPATH.rst b/share/cmake-3.18/Help/prop_tgt/MACOSX_RPATH.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/MACOSX_RPATH.rst
rename to share/cmake-3.18/Help/prop_tgt/MACOSX_RPATH.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/MANUALLY_ADDED_DEPENDENCIES.rst b/share/cmake-3.18/Help/prop_tgt/MANUALLY_ADDED_DEPENDENCIES.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/MANUALLY_ADDED_DEPENDENCIES.rst
rename to share/cmake-3.18/Help/prop_tgt/MANUALLY_ADDED_DEPENDENCIES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/MAP_IMPORTED_CONFIG_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/MAP_IMPORTED_CONFIG_CONFIG.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/MAP_IMPORTED_CONFIG_CONFIG.rst
rename to share/cmake-3.18/Help/prop_tgt/MAP_IMPORTED_CONFIG_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/MSVC_RUNTIME_LIBRARY-VALUES.txt b/share/cmake-3.18/Help/prop_tgt/MSVC_RUNTIME_LIBRARY-VALUES.txt
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/MSVC_RUNTIME_LIBRARY-VALUES.txt
rename to share/cmake-3.18/Help/prop_tgt/MSVC_RUNTIME_LIBRARY-VALUES.txt
diff --git a/share/cmake-3.17/Help/prop_tgt/MSVC_RUNTIME_LIBRARY.rst b/share/cmake-3.18/Help/prop_tgt/MSVC_RUNTIME_LIBRARY.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/MSVC_RUNTIME_LIBRARY.rst
rename to share/cmake-3.18/Help/prop_tgt/MSVC_RUNTIME_LIBRARY.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/NAME.rst b/share/cmake-3.18/Help/prop_tgt/NAME.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/NAME.rst
rename to share/cmake-3.18/Help/prop_tgt/NAME.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/NO_SONAME.rst b/share/cmake-3.18/Help/prop_tgt/NO_SONAME.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/NO_SONAME.rst
rename to share/cmake-3.18/Help/prop_tgt/NO_SONAME.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/NO_SYSTEM_FROM_IMPORTED.rst b/share/cmake-3.18/Help/prop_tgt/NO_SYSTEM_FROM_IMPORTED.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/NO_SYSTEM_FROM_IMPORTED.rst
rename to share/cmake-3.18/Help/prop_tgt/NO_SYSTEM_FROM_IMPORTED.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/OBJCXX_EXTENSIONS.rst b/share/cmake-3.18/Help/prop_tgt/OBJCXX_EXTENSIONS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/OBJCXX_EXTENSIONS.rst
rename to share/cmake-3.18/Help/prop_tgt/OBJCXX_EXTENSIONS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/OBJCXX_STANDARD.rst b/share/cmake-3.18/Help/prop_tgt/OBJCXX_STANDARD.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/OBJCXX_STANDARD.rst
rename to share/cmake-3.18/Help/prop_tgt/OBJCXX_STANDARD.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/OBJCXX_STANDARD_REQUIRED.rst b/share/cmake-3.18/Help/prop_tgt/OBJCXX_STANDARD_REQUIRED.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/OBJCXX_STANDARD_REQUIRED.rst
rename to share/cmake-3.18/Help/prop_tgt/OBJCXX_STANDARD_REQUIRED.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/OBJC_EXTENSIONS.rst b/share/cmake-3.18/Help/prop_tgt/OBJC_EXTENSIONS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/OBJC_EXTENSIONS.rst
rename to share/cmake-3.18/Help/prop_tgt/OBJC_EXTENSIONS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/OBJC_STANDARD.rst b/share/cmake-3.18/Help/prop_tgt/OBJC_STANDARD.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/OBJC_STANDARD.rst
rename to share/cmake-3.18/Help/prop_tgt/OBJC_STANDARD.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/OBJC_STANDARD_REQUIRED.rst b/share/cmake-3.18/Help/prop_tgt/OBJC_STANDARD_REQUIRED.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/OBJC_STANDARD_REQUIRED.rst
rename to share/cmake-3.18/Help/prop_tgt/OBJC_STANDARD_REQUIRED.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/OSX_ARCHITECTURES.rst b/share/cmake-3.18/Help/prop_tgt/OSX_ARCHITECTURES.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/OSX_ARCHITECTURES.rst
rename to share/cmake-3.18/Help/prop_tgt/OSX_ARCHITECTURES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/OSX_ARCHITECTURES_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/OSX_ARCHITECTURES_CONFIG.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/OSX_ARCHITECTURES_CONFIG.rst
rename to share/cmake-3.18/Help/prop_tgt/OSX_ARCHITECTURES_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/OUTPUT_NAME.rst b/share/cmake-3.18/Help/prop_tgt/OUTPUT_NAME.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/OUTPUT_NAME.rst
rename to share/cmake-3.18/Help/prop_tgt/OUTPUT_NAME.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/OUTPUT_NAME_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/OUTPUT_NAME_CONFIG.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/OUTPUT_NAME_CONFIG.rst
rename to share/cmake-3.18/Help/prop_tgt/OUTPUT_NAME_CONFIG.rst
diff --git a/share/cmake-3.18/Help/prop_tgt/PCH_WARN_INVALID.rst b/share/cmake-3.18/Help/prop_tgt/PCH_WARN_INVALID.rst
new file mode 100644
index 0000000..96e1abd
--- /dev/null
+++ b/share/cmake-3.18/Help/prop_tgt/PCH_WARN_INVALID.rst
@@ -0,0 +1,10 @@
+PCH_WARN_INVALID
+----------------
+
+When this property is set to true, the precompile header compiler options
+will contain a compiler flag which should warn about invalid precompiled
+headers e.g. ``-Winvalid-pch`` for GNU compiler.
+
+This property is initialized by the value of the
+:variable:`CMAKE_PCH_WARN_INVALID` variable if it is set when a target is
+created.  If that variable is not set, the property defaults to ``ON``.
diff --git a/share/cmake-3.17/Help/prop_tgt/PDB_NAME.rst b/share/cmake-3.18/Help/prop_tgt/PDB_NAME.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/PDB_NAME.rst
rename to share/cmake-3.18/Help/prop_tgt/PDB_NAME.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/PDB_NAME_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/PDB_NAME_CONFIG.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/PDB_NAME_CONFIG.rst
rename to share/cmake-3.18/Help/prop_tgt/PDB_NAME_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/PDB_NOTE.txt b/share/cmake-3.18/Help/prop_tgt/PDB_NOTE.txt
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/PDB_NOTE.txt
rename to share/cmake-3.18/Help/prop_tgt/PDB_NOTE.txt
diff --git a/share/cmake-3.17/Help/prop_tgt/PDB_OUTPUT_DIRECTORY.rst b/share/cmake-3.18/Help/prop_tgt/PDB_OUTPUT_DIRECTORY.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/PDB_OUTPUT_DIRECTORY.rst
rename to share/cmake-3.18/Help/prop_tgt/PDB_OUTPUT_DIRECTORY.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/PDB_OUTPUT_DIRECTORY_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/PDB_OUTPUT_DIRECTORY_CONFIG.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/PDB_OUTPUT_DIRECTORY_CONFIG.rst
rename to share/cmake-3.18/Help/prop_tgt/PDB_OUTPUT_DIRECTORY_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/POSITION_INDEPENDENT_CODE.rst b/share/cmake-3.18/Help/prop_tgt/POSITION_INDEPENDENT_CODE.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/POSITION_INDEPENDENT_CODE.rst
rename to share/cmake-3.18/Help/prop_tgt/POSITION_INDEPENDENT_CODE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/POST_INSTALL_SCRIPT.rst b/share/cmake-3.18/Help/prop_tgt/POST_INSTALL_SCRIPT.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/POST_INSTALL_SCRIPT.rst
rename to share/cmake-3.18/Help/prop_tgt/POST_INSTALL_SCRIPT.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/PRECOMPILE_HEADERS.rst b/share/cmake-3.18/Help/prop_tgt/PRECOMPILE_HEADERS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/PRECOMPILE_HEADERS.rst
rename to share/cmake-3.18/Help/prop_tgt/PRECOMPILE_HEADERS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/PRECOMPILE_HEADERS_REUSE_FROM.rst b/share/cmake-3.18/Help/prop_tgt/PRECOMPILE_HEADERS_REUSE_FROM.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/PRECOMPILE_HEADERS_REUSE_FROM.rst
rename to share/cmake-3.18/Help/prop_tgt/PRECOMPILE_HEADERS_REUSE_FROM.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/PREFIX.rst b/share/cmake-3.18/Help/prop_tgt/PREFIX.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/PREFIX.rst
rename to share/cmake-3.18/Help/prop_tgt/PREFIX.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/PRE_INSTALL_SCRIPT.rst b/share/cmake-3.18/Help/prop_tgt/PRE_INSTALL_SCRIPT.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/PRE_INSTALL_SCRIPT.rst
rename to share/cmake-3.18/Help/prop_tgt/PRE_INSTALL_SCRIPT.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/PRIVATE_HEADER.rst b/share/cmake-3.18/Help/prop_tgt/PRIVATE_HEADER.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/PRIVATE_HEADER.rst
rename to share/cmake-3.18/Help/prop_tgt/PRIVATE_HEADER.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/PROJECT_LABEL.rst b/share/cmake-3.18/Help/prop_tgt/PROJECT_LABEL.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/PROJECT_LABEL.rst
rename to share/cmake-3.18/Help/prop_tgt/PROJECT_LABEL.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/PUBLIC_HEADER.rst b/share/cmake-3.18/Help/prop_tgt/PUBLIC_HEADER.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/PUBLIC_HEADER.rst
rename to share/cmake-3.18/Help/prop_tgt/PUBLIC_HEADER.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/RESOURCE.rst b/share/cmake-3.18/Help/prop_tgt/RESOURCE.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/RESOURCE.rst
rename to share/cmake-3.18/Help/prop_tgt/RESOURCE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/RULE_LAUNCH_COMPILE.rst b/share/cmake-3.18/Help/prop_tgt/RULE_LAUNCH_COMPILE.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/RULE_LAUNCH_COMPILE.rst
rename to share/cmake-3.18/Help/prop_tgt/RULE_LAUNCH_COMPILE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/RULE_LAUNCH_CUSTOM.rst b/share/cmake-3.18/Help/prop_tgt/RULE_LAUNCH_CUSTOM.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/RULE_LAUNCH_CUSTOM.rst
rename to share/cmake-3.18/Help/prop_tgt/RULE_LAUNCH_CUSTOM.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/RULE_LAUNCH_LINK.rst b/share/cmake-3.18/Help/prop_tgt/RULE_LAUNCH_LINK.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/RULE_LAUNCH_LINK.rst
rename to share/cmake-3.18/Help/prop_tgt/RULE_LAUNCH_LINK.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/RUNTIME_OUTPUT_DIRECTORY.rst b/share/cmake-3.18/Help/prop_tgt/RUNTIME_OUTPUT_DIRECTORY.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/RUNTIME_OUTPUT_DIRECTORY.rst
rename to share/cmake-3.18/Help/prop_tgt/RUNTIME_OUTPUT_DIRECTORY.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/RUNTIME_OUTPUT_DIRECTORY_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/RUNTIME_OUTPUT_DIRECTORY_CONFIG.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/RUNTIME_OUTPUT_DIRECTORY_CONFIG.rst
rename to share/cmake-3.18/Help/prop_tgt/RUNTIME_OUTPUT_DIRECTORY_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/RUNTIME_OUTPUT_NAME.rst b/share/cmake-3.18/Help/prop_tgt/RUNTIME_OUTPUT_NAME.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/RUNTIME_OUTPUT_NAME.rst
rename to share/cmake-3.18/Help/prop_tgt/RUNTIME_OUTPUT_NAME.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/RUNTIME_OUTPUT_NAME_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/RUNTIME_OUTPUT_NAME_CONFIG.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/RUNTIME_OUTPUT_NAME_CONFIG.rst
rename to share/cmake-3.18/Help/prop_tgt/RUNTIME_OUTPUT_NAME_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/SKIP_BUILD_RPATH.rst b/share/cmake-3.18/Help/prop_tgt/SKIP_BUILD_RPATH.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/SKIP_BUILD_RPATH.rst
rename to share/cmake-3.18/Help/prop_tgt/SKIP_BUILD_RPATH.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/SOURCES.rst b/share/cmake-3.18/Help/prop_tgt/SOURCES.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/SOURCES.rst
rename to share/cmake-3.18/Help/prop_tgt/SOURCES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/SOURCE_DIR.rst b/share/cmake-3.18/Help/prop_tgt/SOURCE_DIR.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/SOURCE_DIR.rst
rename to share/cmake-3.18/Help/prop_tgt/SOURCE_DIR.rst
diff --git a/share/cmake-3.18/Help/prop_tgt/SOVERSION.rst b/share/cmake-3.18/Help/prop_tgt/SOVERSION.rst
new file mode 100644
index 0000000..b377f22
--- /dev/null
+++ b/share/cmake-3.18/Help/prop_tgt/SOVERSION.rst
@@ -0,0 +1,37 @@
+SOVERSION
+---------
+
+What version number is this target.
+
+For shared libraries :prop_tgt:`VERSION` and ``SOVERSION`` can be used to
+specify the build version and API version respectively.  When building or
+installing appropriate symlinks are created if the platform supports
+symlinks and the linker supports so-names.  If only one of both is
+specified the missing is assumed to have the same version number.
+``SOVERSION`` is ignored if :prop_tgt:`NO_SONAME` property is set.
+
+Windows Versions
+^^^^^^^^^^^^^^^^
+
+For shared libraries and executables on Windows the :prop_tgt:`VERSION`
+attribute is parsed to extract a ``<major>.<minor>`` version number.
+These numbers are used as the image version of the binary.
+
+Mach-O Versions
+^^^^^^^^^^^^^^^
+
+For shared libraries and executables on Mach-O systems (e.g. macOS, iOS),
+the ``SOVERSION`` property corresponds to the *compatibility version* and
+:prop_tgt:`VERSION` corresponds to the *current version* (unless Mach-O
+specific overrides are provided, as discussed below).
+See the :prop_tgt:`FRAMEWORK` target property for an example.
+
+For shared libraries, the :prop_tgt:`MACHO_COMPATIBILITY_VERSION` and
+:prop_tgt:`MACHO_CURRENT_VERSION` properties can be used to
+override the *compatibility version* and *current version* respectively.
+Note that ``SOVERSION`` will still be used to form the ``install_name``
+and both ``SOVERSION`` and :prop_tgt:`VERSION` may also affect the file
+and symlink names.
+
+Versions of Mach-O binaries may be checked with the ``otool -L <binary>``
+command.
diff --git a/share/cmake-3.17/Help/prop_tgt/STATIC_LIBRARY_FLAGS.rst b/share/cmake-3.18/Help/prop_tgt/STATIC_LIBRARY_FLAGS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/STATIC_LIBRARY_FLAGS.rst
rename to share/cmake-3.18/Help/prop_tgt/STATIC_LIBRARY_FLAGS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/STATIC_LIBRARY_FLAGS_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/STATIC_LIBRARY_FLAGS_CONFIG.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/STATIC_LIBRARY_FLAGS_CONFIG.rst
rename to share/cmake-3.18/Help/prop_tgt/STATIC_LIBRARY_FLAGS_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/STATIC_LIBRARY_OPTIONS.rst b/share/cmake-3.18/Help/prop_tgt/STATIC_LIBRARY_OPTIONS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/STATIC_LIBRARY_OPTIONS.rst
rename to share/cmake-3.18/Help/prop_tgt/STATIC_LIBRARY_OPTIONS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/SUFFIX.rst b/share/cmake-3.18/Help/prop_tgt/SUFFIX.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/SUFFIX.rst
rename to share/cmake-3.18/Help/prop_tgt/SUFFIX.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/Swift_DEPENDENCIES_FILE.rst b/share/cmake-3.18/Help/prop_tgt/Swift_DEPENDENCIES_FILE.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/Swift_DEPENDENCIES_FILE.rst
rename to share/cmake-3.18/Help/prop_tgt/Swift_DEPENDENCIES_FILE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/Swift_LANGUAGE_VERSION.rst b/share/cmake-3.18/Help/prop_tgt/Swift_LANGUAGE_VERSION.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/Swift_LANGUAGE_VERSION.rst
rename to share/cmake-3.18/Help/prop_tgt/Swift_LANGUAGE_VERSION.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/Swift_MODULE_DIRECTORY.rst b/share/cmake-3.18/Help/prop_tgt/Swift_MODULE_DIRECTORY.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/Swift_MODULE_DIRECTORY.rst
rename to share/cmake-3.18/Help/prop_tgt/Swift_MODULE_DIRECTORY.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/Swift_MODULE_NAME.rst b/share/cmake-3.18/Help/prop_tgt/Swift_MODULE_NAME.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/Swift_MODULE_NAME.rst
rename to share/cmake-3.18/Help/prop_tgt/Swift_MODULE_NAME.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/TYPE.rst b/share/cmake-3.18/Help/prop_tgt/TYPE.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/TYPE.rst
rename to share/cmake-3.18/Help/prop_tgt/TYPE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/UNITY_BUILD.rst b/share/cmake-3.18/Help/prop_tgt/UNITY_BUILD.rst
similarity index 75%
rename from share/cmake-3.17/Help/prop_tgt/UNITY_BUILD.rst
rename to share/cmake-3.18/Help/prop_tgt/UNITY_BUILD.rst
index 479802e..e140952 100644
--- a/share/cmake-3.17/Help/prop_tgt/UNITY_BUILD.rst
+++ b/share/cmake-3.18/Help/prop_tgt/UNITY_BUILD.rst
@@ -5,8 +5,28 @@
 into batches for faster compilation.  This is done by creating a (set of)
 unity sources which ``#include`` the original sources, then compiling these
 unity sources instead of the originals.  This is known as a *Unity* or *Jumbo*
-build.  The :prop_tgt:`UNITY_BUILD_BATCH_SIZE` property controls the upper
-limit on how many sources can be combined per unity source file.
+build.
+
+CMake provides different algorithms for selecting which sources are grouped
+together into a *bucket*. Algorithm selection is decided by the
+:prop_tgt:`UNITY_BUILD_MODE` target property, which has the following acceptable
+values:
+
+* ``BATCH``
+  When in this mode CMake determines which files are grouped together.
+  The :prop_tgt:`UNITY_BUILD_BATCH_SIZE` property controls the upper limit on
+  how many sources can be combined per unity source file.
+
+* ``GROUP``
+  When in this mode each target explicitly specifies how to group
+  source files. Each source file that has the same
+  :prop_sf:`UNITY_GROUP` value will be grouped together. Any sources
+  that don't have this property will be compiled individually. The
+  :prop_tgt:`UNITY_BUILD_BATCH_SIZE` property is ignored when using
+  this mode.
+
+If no explicit :prop_tgt:`UNITY_BUILD_MODE` has been specified, CMake will
+default to ``BATCH``.
 
 Unity builds are not currently supported for all languages.  CMake version
 |release| supports combining ``C`` and ``CXX`` source files.  For targets that
diff --git a/share/cmake-3.17/Help/prop_tgt/UNITY_BUILD_BATCH_SIZE.rst b/share/cmake-3.18/Help/prop_tgt/UNITY_BUILD_BATCH_SIZE.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/UNITY_BUILD_BATCH_SIZE.rst
rename to share/cmake-3.18/Help/prop_tgt/UNITY_BUILD_BATCH_SIZE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/UNITY_BUILD_CODE_AFTER_INCLUDE.rst b/share/cmake-3.18/Help/prop_tgt/UNITY_BUILD_CODE_AFTER_INCLUDE.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/UNITY_BUILD_CODE_AFTER_INCLUDE.rst
rename to share/cmake-3.18/Help/prop_tgt/UNITY_BUILD_CODE_AFTER_INCLUDE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/UNITY_BUILD_CODE_BEFORE_INCLUDE.rst b/share/cmake-3.18/Help/prop_tgt/UNITY_BUILD_CODE_BEFORE_INCLUDE.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/UNITY_BUILD_CODE_BEFORE_INCLUDE.rst
rename to share/cmake-3.18/Help/prop_tgt/UNITY_BUILD_CODE_BEFORE_INCLUDE.rst
diff --git a/share/cmake-3.18/Help/prop_tgt/UNITY_BUILD_MODE.rst b/share/cmake-3.18/Help/prop_tgt/UNITY_BUILD_MODE.rst
new file mode 100644
index 0000000..1ebab23
--- /dev/null
+++ b/share/cmake-3.18/Help/prop_tgt/UNITY_BUILD_MODE.rst
@@ -0,0 +1,58 @@
+UNITY_BUILD_MODE
+----------------
+
+CMake provides different algorithms for selecting which sources are grouped
+together into a *bucket*. Selection is decided by this property,
+which has the following acceptable values:
+
+``BATCH``
+  When in this mode CMake determines which files are grouped together.
+  The :prop_tgt:`UNITY_BUILD_BATCH_SIZE` property controls the upper limit on
+  how many sources can be combined per unity source file.
+
+  Example usage:
+
+  .. code-block:: cmake
+
+    add_library(example_library
+                source1.cxx
+                source2.cxx
+                source3.cxx
+                source4.cxx)
+
+    set_target_properties(example_library PROPERTIES
+                          UNITY_BUILD_MODE BATCH
+                          UNITY_BUILD_BATCH_SIZE 2
+                          )
+
+``GROUP``
+  When in this mode each target explicitly specifies how to group
+  source files. Each source file that has the same
+  :prop_sf:`UNITY_GROUP` value will be grouped together. Any sources
+  that don't have this property will be compiled individually. The
+  :prop_tgt:`UNITY_BUILD_BATCH_SIZE` property is ignored when using
+  this mode.
+
+  Example usage:
+
+  .. code-block:: cmake
+
+    add_library(example_library
+                source1.cxx
+                source2.cxx
+                source3.cxx
+                source4.cxx)
+
+    set_target_properties(example_library PROPERTIES
+                          UNITY_BUILD_MODE GROUP
+                          )
+
+    set_source_files_properties(source1.cxx source2.cxx source3.cxx
+                                PROPERTIES UNITY_GROUP "bucket1"
+                                )
+    set_source_files_properties(source4.cxx
+                                PROPERTIES UNITY_GROUP "bucket2"
+                                )
+
+If no explicit :prop_tgt:`UNITY_BUILD_MODE` has been specified, CMake will
+default to ``BATCH``.
diff --git a/share/cmake-3.18/Help/prop_tgt/VERSION.rst b/share/cmake-3.18/Help/prop_tgt/VERSION.rst
new file mode 100644
index 0000000..95db483
--- /dev/null
+++ b/share/cmake-3.18/Help/prop_tgt/VERSION.rst
@@ -0,0 +1,39 @@
+VERSION
+-------
+
+What version number is this target.
+
+For shared libraries ``VERSION`` and :prop_tgt:`SOVERSION` can be used
+to specify the build version and API version respectively.  When building or
+installing appropriate symlinks are created if the platform supports
+symlinks and the linker supports so-names.  If only one of both is
+specified the missing is assumed to have the same version number.  For
+executables ``VERSION`` can be used to specify the build version.  When
+building or installing appropriate symlinks are created if the
+platform supports symlinks.
+
+Windows Versions
+^^^^^^^^^^^^^^^^
+
+For shared libraries and executables on Windows the ``VERSION``
+attribute is parsed to extract a ``<major>.<minor>`` version number.
+These numbers are used as the image version of the binary.
+
+Mach-O Versions
+^^^^^^^^^^^^^^^
+
+For shared libraries and executables on Mach-O systems (e.g. macOS, iOS),
+the :prop_tgt:`SOVERSION` property corresponds to the *compatibility version*
+and ``VERSION`` corresponds to the *current version* (unless Mach-O specific
+overrides are provided, as discussed below).
+See the :prop_tgt:`FRAMEWORK` target property for an example.
+
+For shared libraries, the :prop_tgt:`MACHO_COMPATIBILITY_VERSION` and
+:prop_tgt:`MACHO_CURRENT_VERSION` properties can be used to
+override the *compatibility version* and *current version* respectively.
+Note that :prop_tgt:`SOVERSION` will still be used to form the
+``install_name`` and both :prop_tgt:`SOVERSION` and ``VERSION`` may also
+affect the file and symlink names.
+
+Versions of Mach-O binaries may be checked with the ``otool -L <binary>``
+command.
diff --git a/share/cmake-3.17/Help/prop_tgt/VISIBILITY_INLINES_HIDDEN.rst b/share/cmake-3.18/Help/prop_tgt/VISIBILITY_INLINES_HIDDEN.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/VISIBILITY_INLINES_HIDDEN.rst
rename to share/cmake-3.18/Help/prop_tgt/VISIBILITY_INLINES_HIDDEN.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_CONFIGURATION_TYPE.rst b/share/cmake-3.18/Help/prop_tgt/VS_CONFIGURATION_TYPE.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/VS_CONFIGURATION_TYPE.rst
rename to share/cmake-3.18/Help/prop_tgt/VS_CONFIGURATION_TYPE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_DEBUGGER_COMMAND.rst b/share/cmake-3.18/Help/prop_tgt/VS_DEBUGGER_COMMAND.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/VS_DEBUGGER_COMMAND.rst
rename to share/cmake-3.18/Help/prop_tgt/VS_DEBUGGER_COMMAND.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_DEBUGGER_COMMAND_ARGUMENTS.rst b/share/cmake-3.18/Help/prop_tgt/VS_DEBUGGER_COMMAND_ARGUMENTS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/VS_DEBUGGER_COMMAND_ARGUMENTS.rst
rename to share/cmake-3.18/Help/prop_tgt/VS_DEBUGGER_COMMAND_ARGUMENTS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_DEBUGGER_ENVIRONMENT.rst b/share/cmake-3.18/Help/prop_tgt/VS_DEBUGGER_ENVIRONMENT.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/VS_DEBUGGER_ENVIRONMENT.rst
rename to share/cmake-3.18/Help/prop_tgt/VS_DEBUGGER_ENVIRONMENT.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_DEBUGGER_WORKING_DIRECTORY.rst b/share/cmake-3.18/Help/prop_tgt/VS_DEBUGGER_WORKING_DIRECTORY.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/VS_DEBUGGER_WORKING_DIRECTORY.rst
rename to share/cmake-3.18/Help/prop_tgt/VS_DEBUGGER_WORKING_DIRECTORY.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_DESKTOP_EXTENSIONS_VERSION.rst b/share/cmake-3.18/Help/prop_tgt/VS_DESKTOP_EXTENSIONS_VERSION.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/VS_DESKTOP_EXTENSIONS_VERSION.rst
rename to share/cmake-3.18/Help/prop_tgt/VS_DESKTOP_EXTENSIONS_VERSION.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_DOTNET_DOCUMENTATION_FILE.rst b/share/cmake-3.18/Help/prop_tgt/VS_DOTNET_DOCUMENTATION_FILE.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/VS_DOTNET_DOCUMENTATION_FILE.rst
rename to share/cmake-3.18/Help/prop_tgt/VS_DOTNET_DOCUMENTATION_FILE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_DOTNET_REFERENCEPROP_refname_TAG_tagname.rst b/share/cmake-3.18/Help/prop_tgt/VS_DOTNET_REFERENCEPROP_refname_TAG_tagname.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/VS_DOTNET_REFERENCEPROP_refname_TAG_tagname.rst
rename to share/cmake-3.18/Help/prop_tgt/VS_DOTNET_REFERENCEPROP_refname_TAG_tagname.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_DOTNET_REFERENCES.rst b/share/cmake-3.18/Help/prop_tgt/VS_DOTNET_REFERENCES.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/VS_DOTNET_REFERENCES.rst
rename to share/cmake-3.18/Help/prop_tgt/VS_DOTNET_REFERENCES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_DOTNET_REFERENCES_COPY_LOCAL.rst b/share/cmake-3.18/Help/prop_tgt/VS_DOTNET_REFERENCES_COPY_LOCAL.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/VS_DOTNET_REFERENCES_COPY_LOCAL.rst
rename to share/cmake-3.18/Help/prop_tgt/VS_DOTNET_REFERENCES_COPY_LOCAL.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_DOTNET_REFERENCE_refname.rst b/share/cmake-3.18/Help/prop_tgt/VS_DOTNET_REFERENCE_refname.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/VS_DOTNET_REFERENCE_refname.rst
rename to share/cmake-3.18/Help/prop_tgt/VS_DOTNET_REFERENCE_refname.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_DOTNET_TARGET_FRAMEWORK_VERSION.rst b/share/cmake-3.18/Help/prop_tgt/VS_DOTNET_TARGET_FRAMEWORK_VERSION.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/VS_DOTNET_TARGET_FRAMEWORK_VERSION.rst
rename to share/cmake-3.18/Help/prop_tgt/VS_DOTNET_TARGET_FRAMEWORK_VERSION.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_DPI_AWARE.rst b/share/cmake-3.18/Help/prop_tgt/VS_DPI_AWARE.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/VS_DPI_AWARE.rst
rename to share/cmake-3.18/Help/prop_tgt/VS_DPI_AWARE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_GLOBAL_KEYWORD.rst b/share/cmake-3.18/Help/prop_tgt/VS_GLOBAL_KEYWORD.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/VS_GLOBAL_KEYWORD.rst
rename to share/cmake-3.18/Help/prop_tgt/VS_GLOBAL_KEYWORD.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_GLOBAL_PROJECT_TYPES.rst b/share/cmake-3.18/Help/prop_tgt/VS_GLOBAL_PROJECT_TYPES.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/VS_GLOBAL_PROJECT_TYPES.rst
rename to share/cmake-3.18/Help/prop_tgt/VS_GLOBAL_PROJECT_TYPES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_GLOBAL_ROOTNAMESPACE.rst b/share/cmake-3.18/Help/prop_tgt/VS_GLOBAL_ROOTNAMESPACE.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/VS_GLOBAL_ROOTNAMESPACE.rst
rename to share/cmake-3.18/Help/prop_tgt/VS_GLOBAL_ROOTNAMESPACE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_GLOBAL_variable.rst b/share/cmake-3.18/Help/prop_tgt/VS_GLOBAL_variable.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/VS_GLOBAL_variable.rst
rename to share/cmake-3.18/Help/prop_tgt/VS_GLOBAL_variable.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_IOT_EXTENSIONS_VERSION.rst b/share/cmake-3.18/Help/prop_tgt/VS_IOT_EXTENSIONS_VERSION.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/VS_IOT_EXTENSIONS_VERSION.rst
rename to share/cmake-3.18/Help/prop_tgt/VS_IOT_EXTENSIONS_VERSION.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_IOT_STARTUP_TASK.rst b/share/cmake-3.18/Help/prop_tgt/VS_IOT_STARTUP_TASK.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/VS_IOT_STARTUP_TASK.rst
rename to share/cmake-3.18/Help/prop_tgt/VS_IOT_STARTUP_TASK.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_JUST_MY_CODE_DEBUGGING.rst b/share/cmake-3.18/Help/prop_tgt/VS_JUST_MY_CODE_DEBUGGING.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/VS_JUST_MY_CODE_DEBUGGING.rst
rename to share/cmake-3.18/Help/prop_tgt/VS_JUST_MY_CODE_DEBUGGING.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_KEYWORD.rst b/share/cmake-3.18/Help/prop_tgt/VS_KEYWORD.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/VS_KEYWORD.rst
rename to share/cmake-3.18/Help/prop_tgt/VS_KEYWORD.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_MOBILE_EXTENSIONS_VERSION.rst b/share/cmake-3.18/Help/prop_tgt/VS_MOBILE_EXTENSIONS_VERSION.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/VS_MOBILE_EXTENSIONS_VERSION.rst
rename to share/cmake-3.18/Help/prop_tgt/VS_MOBILE_EXTENSIONS_VERSION.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_NO_SOLUTION_DEPLOY.rst b/share/cmake-3.18/Help/prop_tgt/VS_NO_SOLUTION_DEPLOY.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/VS_NO_SOLUTION_DEPLOY.rst
rename to share/cmake-3.18/Help/prop_tgt/VS_NO_SOLUTION_DEPLOY.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_PACKAGE_REFERENCES.rst b/share/cmake-3.18/Help/prop_tgt/VS_PACKAGE_REFERENCES.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/VS_PACKAGE_REFERENCES.rst
rename to share/cmake-3.18/Help/prop_tgt/VS_PACKAGE_REFERENCES.rst
diff --git a/share/cmake-3.18/Help/prop_tgt/VS_PLATFORM_TOOLSET.rst b/share/cmake-3.18/Help/prop_tgt/VS_PLATFORM_TOOLSET.rst
new file mode 100644
index 0000000..f8f2e8e
--- /dev/null
+++ b/share/cmake-3.18/Help/prop_tgt/VS_PLATFORM_TOOLSET.rst
@@ -0,0 +1,10 @@
+VS_PLATFORM_TOOLSET
+-------------------
+
+Overrides the platform toolset used to build a target.
+
+Only supported when the compiler used by the given toolset is the
+same as the compiler used to build the whole source tree.
+
+This is especially useful to create driver projects with the toolsets
+"WindowsUserModeDriver10.0" or "WindowsKernelModeDriver10.0".
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_PROJECT_IMPORT.rst b/share/cmake-3.18/Help/prop_tgt/VS_PROJECT_IMPORT.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/VS_PROJECT_IMPORT.rst
rename to share/cmake-3.18/Help/prop_tgt/VS_PROJECT_IMPORT.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_SCC_AUXPATH.rst b/share/cmake-3.18/Help/prop_tgt/VS_SCC_AUXPATH.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/VS_SCC_AUXPATH.rst
rename to share/cmake-3.18/Help/prop_tgt/VS_SCC_AUXPATH.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_SCC_LOCALPATH.rst b/share/cmake-3.18/Help/prop_tgt/VS_SCC_LOCALPATH.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/VS_SCC_LOCALPATH.rst
rename to share/cmake-3.18/Help/prop_tgt/VS_SCC_LOCALPATH.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_SCC_PROJECTNAME.rst b/share/cmake-3.18/Help/prop_tgt/VS_SCC_PROJECTNAME.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/VS_SCC_PROJECTNAME.rst
rename to share/cmake-3.18/Help/prop_tgt/VS_SCC_PROJECTNAME.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_SCC_PROVIDER.rst b/share/cmake-3.18/Help/prop_tgt/VS_SCC_PROVIDER.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/VS_SCC_PROVIDER.rst
rename to share/cmake-3.18/Help/prop_tgt/VS_SCC_PROVIDER.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_SDK_REFERENCES.rst b/share/cmake-3.18/Help/prop_tgt/VS_SDK_REFERENCES.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/VS_SDK_REFERENCES.rst
rename to share/cmake-3.18/Help/prop_tgt/VS_SDK_REFERENCES.rst
diff --git a/share/cmake-3.18/Help/prop_tgt/VS_SOLUTION_DEPLOY.rst b/share/cmake-3.18/Help/prop_tgt/VS_SOLUTION_DEPLOY.rst
new file mode 100644
index 0000000..eef848f
--- /dev/null
+++ b/share/cmake-3.18/Help/prop_tgt/VS_SOLUTION_DEPLOY.rst
@@ -0,0 +1,27 @@
+VS_SOLUTION_DEPLOY
+------------------
+
+Specify that the target should be marked for deployment when not targeting
+Windows CE, Windows Phone or a Windows Store application.
+
+If the target platform doesn't support deployment, this property won't have
+any effect.
+
+:manual:`Generator expressions <cmake-generator-expressions(7)>` are supported.
+
+Examples
+^^^^^^^^
+
+Always deploy target ``foo``:
+
+.. code-block:: cmake
+
+  add_executable(foo SHARED foo.cpp)
+  set_property(TARGET foo PROPERTY VS_SOLUTION_DEPLOY ON)
+
+Deploy target ``foo`` for all configurations except ``Release``:
+
+.. code-block:: cmake
+
+  add_executable(foo SHARED foo.cpp)
+  set_property(TARGET foo PROPERTY VS_SOLUTION_DEPLOY "$<NOT:$<CONFIG:Release>>")
diff --git a/share/cmake-3.18/Help/prop_tgt/VS_SOURCE_SETTINGS_tool.rst b/share/cmake-3.18/Help/prop_tgt/VS_SOURCE_SETTINGS_tool.rst
new file mode 100644
index 0000000..738a912
--- /dev/null
+++ b/share/cmake-3.18/Help/prop_tgt/VS_SOURCE_SETTINGS_tool.rst
@@ -0,0 +1,19 @@
+VS_SOURCE_SETTINGS_<tool>
+-------------------------
+
+Set any item metadata on all non-built files that use <tool>.
+
+Takes a list of ``Key=Value`` pairs. Tells the Visual Studio generator
+to set ``Key`` to ``Value`` as item metadata on all non-built files
+that use ``<tool>``.
+
+For example:
+
+.. code-block:: cmake
+
+  set_property(TARGET main PROPERTY VS_SOURCE_SETTINGS_FXCompile "Key=Value" "Key2=Value2")
+
+will set ``Key`` to ``Value`` and ``Key2`` to ``Value2`` for all
+non-built files that use ``FXCompile``.
+
+:manual:`Generator expressions <cmake-generator-expressions(7)>` are supported.
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_USER_PROPS.rst b/share/cmake-3.18/Help/prop_tgt/VS_USER_PROPS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/VS_USER_PROPS.rst
rename to share/cmake-3.18/Help/prop_tgt/VS_USER_PROPS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION.rst b/share/cmake-3.18/Help/prop_tgt/VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION.rst
rename to share/cmake-3.18/Help/prop_tgt/VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_WINRT_COMPONENT.rst b/share/cmake-3.18/Help/prop_tgt/VS_WINRT_COMPONENT.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/VS_WINRT_COMPONENT.rst
rename to share/cmake-3.18/Help/prop_tgt/VS_WINRT_COMPONENT.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_WINRT_EXTENSIONS.rst b/share/cmake-3.18/Help/prop_tgt/VS_WINRT_EXTENSIONS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/VS_WINRT_EXTENSIONS.rst
rename to share/cmake-3.18/Help/prop_tgt/VS_WINRT_EXTENSIONS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_WINRT_REFERENCES.rst b/share/cmake-3.18/Help/prop_tgt/VS_WINRT_REFERENCES.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/VS_WINRT_REFERENCES.rst
rename to share/cmake-3.18/Help/prop_tgt/VS_WINRT_REFERENCES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/WIN32_EXECUTABLE.rst b/share/cmake-3.18/Help/prop_tgt/WIN32_EXECUTABLE.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/WIN32_EXECUTABLE.rst
rename to share/cmake-3.18/Help/prop_tgt/WIN32_EXECUTABLE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/WINDOWS_EXPORT_ALL_SYMBOLS.rst b/share/cmake-3.18/Help/prop_tgt/WINDOWS_EXPORT_ALL_SYMBOLS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/WINDOWS_EXPORT_ALL_SYMBOLS.rst
rename to share/cmake-3.18/Help/prop_tgt/WINDOWS_EXPORT_ALL_SYMBOLS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/XCODE_ATTRIBUTE_an-attribute.rst b/share/cmake-3.18/Help/prop_tgt/XCODE_ATTRIBUTE_an-attribute.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/XCODE_ATTRIBUTE_an-attribute.rst
rename to share/cmake-3.18/Help/prop_tgt/XCODE_ATTRIBUTE_an-attribute.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/XCODE_EXPLICIT_FILE_TYPE.rst b/share/cmake-3.18/Help/prop_tgt/XCODE_EXPLICIT_FILE_TYPE.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/XCODE_EXPLICIT_FILE_TYPE.rst
rename to share/cmake-3.18/Help/prop_tgt/XCODE_EXPLICIT_FILE_TYPE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/XCODE_GENERATE_SCHEME.rst b/share/cmake-3.18/Help/prop_tgt/XCODE_GENERATE_SCHEME.rst
similarity index 97%
rename from share/cmake-3.17/Help/prop_tgt/XCODE_GENERATE_SCHEME.rst
rename to share/cmake-3.18/Help/prop_tgt/XCODE_GENERATE_SCHEME.rst
index 0e182cf..c32b4de 100644
--- a/share/cmake-3.17/Help/prop_tgt/XCODE_GENERATE_SCHEME.rst
+++ b/share/cmake-3.18/Help/prop_tgt/XCODE_GENERATE_SCHEME.rst
@@ -38,3 +38,4 @@
 - :prop_tgt:`XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING`
 - :prop_tgt:`XCODE_SCHEME_ENVIRONMENT`
 - :prop_tgt:`XCODE_SCHEME_EXECUTABLE`
+- :prop_tgt:`XCODE_SCHEME_WORKING_DIRECTORY`
diff --git a/share/cmake-3.17/Help/prop_tgt/XCODE_PRODUCT_TYPE.rst b/share/cmake-3.18/Help/prop_tgt/XCODE_PRODUCT_TYPE.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/XCODE_PRODUCT_TYPE.rst
rename to share/cmake-3.18/Help/prop_tgt/XCODE_PRODUCT_TYPE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_ADDRESS_SANITIZER.rst b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_ADDRESS_SANITIZER.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_ADDRESS_SANITIZER.rst
rename to share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_ADDRESS_SANITIZER.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN.rst b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN.rst
rename to share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_ARGUMENTS.rst b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_ARGUMENTS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_ARGUMENTS.rst
rename to share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_ARGUMENTS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_DEBUG_AS_ROOT.rst b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_DEBUG_AS_ROOT.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_DEBUG_AS_ROOT.rst
rename to share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_DEBUG_AS_ROOT.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING.rst b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING.rst
rename to share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER.rst b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER.rst
rename to share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS.rst b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS.rst
rename to share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE.rst b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE.rst
rename to share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_ENVIRONMENT.rst b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_ENVIRONMENT.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_ENVIRONMENT.rst
rename to share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_ENVIRONMENT.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_EXECUTABLE.rst b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_EXECUTABLE.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_EXECUTABLE.rst
rename to share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_EXECUTABLE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_GUARD_MALLOC.rst b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_GUARD_MALLOC.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_GUARD_MALLOC.rst
rename to share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_GUARD_MALLOC.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP.rst b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP.rst
rename to share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_MALLOC_GUARD_EDGES.rst b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_MALLOC_GUARD_EDGES.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_MALLOC_GUARD_EDGES.rst
rename to share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_MALLOC_GUARD_EDGES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_MALLOC_SCRIBBLE.rst b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_MALLOC_SCRIBBLE.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_MALLOC_SCRIBBLE.rst
rename to share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_MALLOC_SCRIBBLE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_MALLOC_STACK.rst b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_MALLOC_STACK.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_MALLOC_STACK.rst
rename to share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_MALLOC_STACK.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_THREAD_SANITIZER.rst b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_THREAD_SANITIZER.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_THREAD_SANITIZER.rst
rename to share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_THREAD_SANITIZER.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_THREAD_SANITIZER_STOP.rst b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_THREAD_SANITIZER_STOP.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_THREAD_SANITIZER_STOP.rst
rename to share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_THREAD_SANITIZER_STOP.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER.rst b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER.rst
rename to share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP.rst b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP.rst
rename to share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_WORKING_DIRECTORY.rst b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_WORKING_DIRECTORY.rst
similarity index 74%
rename from share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_WORKING_DIRECTORY.rst
rename to share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_WORKING_DIRECTORY.rst
index 7ffa74b..f538f1d 100644
--- a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_WORKING_DIRECTORY.rst
+++ b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_WORKING_DIRECTORY.rst
@@ -1,8 +1,8 @@
 XCODE_SCHEME_WORKING_DIRECTORY
 ------------------------------
 
-Specify the ``Working Directory`` a of the `Run` and `Profile`
-action in the generated Xcode scheme. In case the value contains
+Specify the ``Working Directory`` of the *Run* and *Profile*
+actions in the generated Xcode scheme. In case the value contains
 generator expressions those are evaluated.
 
 This property is initialized by the value of the variable
diff --git a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_ZOMBIE_OBJECTS.rst b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_ZOMBIE_OBJECTS.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_ZOMBIE_OBJECTS.rst
rename to share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_ZOMBIE_OBJECTS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/XCTEST.rst b/share/cmake-3.18/Help/prop_tgt/XCTEST.rst
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/XCTEST.rst
rename to share/cmake-3.18/Help/prop_tgt/XCTEST.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/XXX_OUTPUT_DIRECTORY.txt b/share/cmake-3.18/Help/prop_tgt/XXX_OUTPUT_DIRECTORY.txt
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/XXX_OUTPUT_DIRECTORY.txt
rename to share/cmake-3.18/Help/prop_tgt/XXX_OUTPUT_DIRECTORY.txt
diff --git a/share/cmake-3.17/Help/prop_tgt/XXX_OUTPUT_NAME.txt b/share/cmake-3.18/Help/prop_tgt/XXX_OUTPUT_NAME.txt
similarity index 100%
rename from share/cmake-3.17/Help/prop_tgt/XXX_OUTPUT_NAME.txt
rename to share/cmake-3.18/Help/prop_tgt/XXX_OUTPUT_NAME.txt
diff --git a/share/cmake-3.17/Help/release/3.0.rst b/share/cmake-3.18/Help/release/3.0.rst
similarity index 100%
rename from share/cmake-3.17/Help/release/3.0.rst
rename to share/cmake-3.18/Help/release/3.0.rst
diff --git a/share/cmake-3.17/Help/release/3.1.rst b/share/cmake-3.18/Help/release/3.1.rst
similarity index 100%
rename from share/cmake-3.17/Help/release/3.1.rst
rename to share/cmake-3.18/Help/release/3.1.rst
diff --git a/share/cmake-3.17/Help/release/3.10.rst b/share/cmake-3.18/Help/release/3.10.rst
similarity index 99%
rename from share/cmake-3.17/Help/release/3.10.rst
rename to share/cmake-3.18/Help/release/3.10.rst
index 03eda36..117415b 100644
--- a/share/cmake-3.17/Help/release/3.10.rst
+++ b/share/cmake-3.18/Help/release/3.10.rst
@@ -236,7 +236,7 @@
   support for C++11 and a port of libuv.  See `CMake Issue 17137`_.
   Use CMake 3.9 or lower instead for HP-UX support.
 
-.. _`CMake Issue 17137`: https://gitlab.kitware.com/cmake/cmake/issues/17137
+.. _`CMake Issue 17137`: https://gitlab.kitware.com/cmake/cmake/-/issues/17137
 
 Other Changes
 =============
diff --git a/share/cmake-3.17/Help/release/3.11.rst b/share/cmake-3.18/Help/release/3.11.rst
similarity index 100%
rename from share/cmake-3.17/Help/release/3.11.rst
rename to share/cmake-3.18/Help/release/3.11.rst
diff --git a/share/cmake-3.17/Help/release/3.12.rst b/share/cmake-3.18/Help/release/3.12.rst
similarity index 100%
rename from share/cmake-3.17/Help/release/3.12.rst
rename to share/cmake-3.18/Help/release/3.12.rst
diff --git a/share/cmake-3.17/Help/release/3.13.rst b/share/cmake-3.18/Help/release/3.13.rst
similarity index 100%
rename from share/cmake-3.17/Help/release/3.13.rst
rename to share/cmake-3.18/Help/release/3.13.rst
diff --git a/share/cmake-3.17/Help/release/3.14.rst b/share/cmake-3.18/Help/release/3.14.rst
similarity index 100%
rename from share/cmake-3.17/Help/release/3.14.rst
rename to share/cmake-3.18/Help/release/3.14.rst
diff --git a/share/cmake-3.17/Help/release/3.15.rst b/share/cmake-3.18/Help/release/3.15.rst
similarity index 96%
rename from share/cmake-3.17/Help/release/3.15.rst
rename to share/cmake-3.18/Help/release/3.15.rst
index 957e6e9..e68e7d3 100644
--- a/share/cmake-3.17/Help/release/3.15.rst
+++ b/share/cmake-3.18/Help/release/3.15.rst
@@ -332,6 +332,15 @@
 Other Changes
 =============
 
+* If a feature specified by :command:`target_compile_features` is available
+  in the compiler's default standard level, CMake 3.14 and below incorrectly
+  added unnecessary ``-std=`` flags that could lower the standard level.
+  This bug has been fixed in CMake 3.15.  This behavior change may expose
+  bugs in existing projects that were relying on undocumented implementation
+  details.  Specifying compile features only ensures that the compiler runs
+  in a mode that has those features, not that any specific standard level is
+  used or explicit ``-std=`` flag passed.
+
 * CMake learned how to compile C++14 with the IBM AIX XL compiler
   and the SunPro compiler and to compile C++20 with the AppleClang compiler.
 
diff --git a/share/cmake-3.17/Help/release/3.16.rst b/share/cmake-3.18/Help/release/3.16.rst
similarity index 95%
rename from share/cmake-3.17/Help/release/3.16.rst
rename to share/cmake-3.18/Help/release/3.16.rst
index e2d6788..f3fdb08 100644
--- a/share/cmake-3.17/Help/release/3.16.rst
+++ b/share/cmake-3.18/Help/release/3.16.rst
@@ -303,3 +303,16 @@
   Additionally, the modules no longer expose their internal ``_Python*``
   cache entries publicly.  CMake 3.16.0 through 3.16.4 accidentally
   made them visible as advanced cache entries.
+
+3.16.7
+------
+
+* Selection of the Objective C or C++ compiler now considers the
+  :envvar:`CC` or :envvar:`CXX` environment variable if the
+  :envvar:`OBJC` or :envvar:`OBJCXX` environment variable is not set.
+
+* The :module:`FindPkgConfig` module now extracts include directories
+  prefixed with ``-isystem`` into the ``*_INCLUDE_DIRS`` variables and
+  :prop_tgt:`INTERFACE_INCLUDE_DIRECTORIES` target properties.
+  Previously they would be places in ``*_CFLAGS_OTHER`` variables and
+  :prop_tgt:`INTERFACE_COMPILE_OPTIONS` target properties.
diff --git a/share/cmake-3.17/Help/release/3.17.rst b/share/cmake-3.18/Help/release/3.17.rst
similarity index 93%
rename from share/cmake-3.17/Help/release/3.17.rst
rename to share/cmake-3.18/Help/release/3.17.rst
index c2cfdf0..b7c66d8 100644
--- a/share/cmake-3.17/Help/release/3.17.rst
+++ b/share/cmake-3.18/Help/release/3.17.rst
@@ -282,6 +282,8 @@
   option and cannot be fixed without breaking compatibility, and so have
   been superseded.
 
+* The :cpack_gen:`CPack NSIS Generator` now requires NSIS 3.0 or later.
+
 Other Changes
 =============
 
@@ -319,3 +321,28 @@
 
 * The :generator:`Xcode` generator no longer hard-codes ``-Wmost``,
   ``-Wno-four-char-constants``, and ``-Wno-unknown-pragmas`` warning flags.
+
+Updates
+=======
+
+Changes made since CMake 3.17.0 include the following.
+
+3.17.1
+------
+
+* CMake 3.17.0 updated the :cpack_gen:`CPack NSIS Generator` with changes
+  that require NSIS 3.0 or later.  CMake 3.17.1 now enforces the use
+  of a sufficiently new version.
+
+3.17.3
+------
+
+* Selection of the Objective C or C++ compiler now considers the
+  :envvar:`CC` or :envvar:`CXX` environment variable if the
+  :envvar:`OBJC` or :envvar:`OBJCXX` environment variable is not set.
+
+* The :module:`FindPkgConfig` module now extracts include directories
+  prefixed with ``-isystem`` into the ``*_INCLUDE_DIRS`` variables and
+  :prop_tgt:`INTERFACE_INCLUDE_DIRECTORIES` target properties.
+  Previously they would be places in ``*_CFLAGS_OTHER`` variables and
+  :prop_tgt:`INTERFACE_COMPILE_OPTIONS` target properties.
diff --git a/share/cmake-3.18/Help/release/3.18.rst b/share/cmake-3.18/Help/release/3.18.rst
new file mode 100644
index 0000000..ba80d2b
--- /dev/null
+++ b/share/cmake-3.18/Help/release/3.18.rst
@@ -0,0 +1,341 @@
+CMake 3.18 Release Notes
+************************
+
+.. only:: html
+
+  .. contents::
+
+Changes made since CMake 3.17 include the following.
+
+New Features
+============
+
+Languages
+---------
+
+* The ``CUDA`` language can now be compiled using Clang on non-Windows
+  platforms. Separable compilation is not yet supported on any platform.
+
+Command-Line
+------------
+
+* :manual:`cmake(1)` gained support for profiling of CMake scripts through
+  the parameters ``--profiling-output`` and ``--profiling-format``.
+
+* :manual:`cmake(1)` gained a ``cat`` command line
+  option that can be used to concatenate files and print them
+  on standard output.
+
+Commands
+--------
+
+* The :command:`add_library` and :command:`add_executable` commands
+  learned to create :ref:`Alias Targets` referencing non-``GLOBAL``
+  :ref:`Imported Targets`.
+
+* The :command:`cmake_language()` command was added for meta-operations on
+  scripted or built-in commands, starting with a mode to ``CALL`` other
+  commands, and ``EVAL CODE`` to inplace evaluate a CMake script.
+
+* The :command:`execute_process` command gained the ``ECHO_OUTPUT_VARIABLE``
+  and ``ECHO_ERROR_VARIABLE`` options.
+
+* The :command:`export` command now raise an error if used multiple times with
+  same ``FILE`` without ``APPEND``. See policy :policy:`CMP0103`.
+
+* The :command:`file` command gained the ``ARCHIVE_CREATE`` and
+  ``ARCHIVE_EXTRACT`` subcommands to expose the :manual:`cmake(1)` ``-E tar``
+  functionality to CMake scripting code.
+
+* The :command:`file(CONFIGURE)` subcommand was created in order to replicate
+  the :command:`configure_file` functionality without resorting to a
+  pre-existing file on disk as input. The content is instead passed as a
+  string.
+
+* The :command:`file(UPLOAD)` command gained ``TLS_VERIFY`` and ``TLS_CAINFO``
+  options to control server certificate verification.
+
+* The :command:`find_program`, :command:`find_library`, :command:`find_path`
+  and :command:`find_file` commands gained a new ``REQUIRED`` option that will
+  stop processing with an error message if nothing is found.
+
+* The :command:`get_property` command with ``SOURCE`` scope gained the
+  ``DIRECTORY`` and ``TARGET_DIRECTORY`` options to get a property
+  from the provided directory scope.
+
+* The :command:`get_source_file_property` command gained the ``DIRECTORY``
+  and ``TARGET_DIRECTORY`` options to get a property from the
+  provided directory scope.
+
+* The :command:`list` operation ``SORT`` gained the ``NATURAL`` sort
+  option to sort using natural order (see ``strverscmp(3)`` manual).
+
+* The :command:`set_property` command with the ``SOURCE`` scope gained the
+  ``DIRECTORY`` and ``TARGET_DIRECTORY`` options to set properties
+  in the provided directory scopes.
+
+* The :command:`set_source_files_properties` command gained the ``DIRECTORY``
+  and ``TARGET_DIRECTORY`` options to set properties in the provided
+  directory scopes.
+
+* The :command:`string` command learned a new ``HEX`` sub-command, which
+  converts strings into their hexadecimal representation.
+
+Variables
+---------
+
+* A :variable:`CMAKE_CUDA_ARCHITECTURES` variable was added to specify
+  CUDA output architectures.  Users are encouraged to use this instead of
+  specifying options manually, as this approach is compiler-agnostic.
+  The variable is initialized automatically when
+  :variable:`CMAKE_CUDA_COMPILER_ID <CMAKE_<LANG>_COMPILER_ID>` is ``NVIDIA``.
+  The variable is used to initialize the new :prop_tgt:`CUDA_ARCHITECTURES`
+  target property.  See policy :policy:`CMP0104`.
+
+* The :variable:`CMAKE_PCH_WARN_INVALID` variable was added to initialize the
+  :prop_tgt:`PCH_WARN_INVALID` target property to allow the removal of the
+  precompiled header invalid warning.
+
+Properties
+----------
+
+* The :prop_tgt:`CUDA_ARCHITECTURES` target property was added to specify
+  CUDA output architectures. Users are encouraged to use this instead of
+  specifying options manually, as this approach is compiler-agnostic.
+  The property is initialized by the new :variable:`CMAKE_CUDA_ARCHITECTURES`
+  variable.  See policy :policy:`CMP0104`.
+
+* The :prop_tgt:`Fortran_PREPROCESS` target property and
+  :prop_sf:`Fortran_PREPROCESS` source-file property were added to
+  control preprocessing of Fortran source files.
+
+* The :prop_tgt:`FRAMEWORK_MULTI_CONFIG_POSTFIX_<CONFIG>` target property
+  and associated :variable:`CMAKE_FRAMEWORK_MULTI_CONFIG_POSTFIX_<CONFIG>`
+  variable were created to allow adding a postfix to the name of a
+  framework file name when using a multi-config generator.
+
+* The :prop_sf:`OBJECT_OUTPUTS` source file property now supports
+  :manual:`generator expressions <cmake-generator-expressions(7)>`.
+
+* The :prop_tgt:`PCH_WARN_INVALID` target property was added to allow the
+  removal of the precompiled header invalid warning.
+
+* The :prop_tgt:`UNITY_BUILD_MODE` target property was added to tell
+  generators which algorithm to use for grouping included source
+  files.
+
+* The :prop_tgt:`VS_SOURCE_SETTINGS_<tool>` target property was added
+  to tell :ref:`Visual Studio Generators` for VS 2010 and above to add
+  metadata to non-built source files using ``<tool>``.
+
+* The :prop_sf:`VS_SETTINGS` source file property was added to tell
+  :ref:`Visual Studio Generators` for VS 2010 and above to add
+  metadata to a non-built source file.
+
+* The :prop_tgt:`VS_PLATFORM_TOOLSET` target property was added to tell
+  :ref:`Visual Studio Generators` for VS 2010 and above to override
+  the platform toolset.
+
+* The :prop_tgt:`VS_SOLUTION_DEPLOY` target property was added to tell
+  :ref:`Visual Studio Generators` for VS 2010 and above to mark a
+  target for deployment even when not building for Windows Phone/Store/CE.
+
+Modules
+-------
+
+* The :module:`CheckLinkerFlag` module has been added to provide a
+  facility to check validity of link flags.
+
+* The :module:`ExternalProject` module :command:`ExternalProject_Add` command
+  gained a new ``GIT_REMOTE_UPDATE_STRATEGY`` keyword.  This can be used to
+  specify how failed rebase operations during a git update should be handled.
+  The ``CMAKE_EP_GIT_REMOTE_UPDATE_STRATEGY`` variable was also added as a
+  global default and is honored by both the :module:`ExternalProject` and
+  :module:`FetchContent` modules.
+
+* The :module:`FetchContent` module :command:`FetchContent_Declare` command
+  now supports a ``SOURCE_SUBDIR`` option.  It can be used to direct
+  :command:`FetchContent_MakeAvailable` to look in a different location
+  for the ``CMakeLists.txt`` file.
+
+* The :module:`FindBLAS` module now provides an imported target.
+
+* The :module:`FindCUDAToolkit` module:
+
+  * gained the variable
+    ``CUDAToolkit_LIBRARY_ROOT``, which is the directory containing the
+    ``nvvm`` directory and ``version.txt``.
+
+  * uses toolkit and library root found during ``CUDA`` compiler detection.
+
+* The :module:`FindLAPACK` module now provides an imported target.
+
+* The :module:`FindPython3`, :module:`FindPython2` and :module:`FindPython`
+  modules:
+
+  * gained the possibility to create per-artifact cache variables for
+    interactive editing in :manual:`cmake-gui(1)` and :manual:`ccmake(1)`.
+
+  * gained sub-components ``Development.Module`` and
+    ``Development.Embed`` under the ``Development`` component.
+
+  * gained the capability to specify which Python implementations to find,
+    including ``IronPython`` and ``PyPy``.
+
+* The :module:`FindRuby` module input and output variables were all renamed
+  from ``RUBY_`` to ``Ruby_`` for consistency with other find modules.
+  Input variables of the old case will be honored if provided, and output
+  variables of the old case are always provided.
+
+* The :module:`FindSWIG` module now accepts target languages as  ``COMPONENTS``
+  and ``OPTIONAL_COMPONENTS`` arguments to ``find_package``.
+
+* The :module:`GoogleTest` module :command:`gtest_discover_tests` command:
+
+  * gained a new ``DISCOVERY_MODE`` option to control when the test
+    discovery step is run.  It offers a new ``PRE_TEST`` setting to
+    run the discovery at test time instead of build time.  A new
+    ``CMAKE_GTEST_DISCOVER_TESTS_DISCOVERY_MODE`` variable can be used
+    to change the default globally.
+
+  * gained a new optional parameter ``XML_OUTPUT_DIR``. When set the
+    JUnit XML test results are stored in that directory.
+
+* The :module:`FindLibXslt` module now provides imported targets.
+
+* The :module:`UseSWIG` module now supports Fortran as a target language if
+  the ``SWIG_EXECUTABLE`` is SWIG-Fortran_.
+
+.. _`SWIG-Fortran`: https://github.com/swig-fortran/swig
+
+Generator Expressions
+---------------------
+
+* The ``$<DEVICE_LINK:...>`` and ``$<HOST_LINK:...>``
+  :manual:`generator expressions <cmake-generator-expressions(7)>` were added
+  to manage device and host link steps.
+
+* The ``$<LINK_LANGUAGE:...>`` and ``$<LINK_LANG_AND_ID:...>``
+  :manual:`generator expressions <cmake-generator-expressions(7)>` were added.
+
+CTest
+-----
+
+* :manual:`ctest(1)` gained a new :variable:`CTEST_RESOURCE_SPEC_FILE`
+  variable, which can be used to specify a
+  :ref:`resource specification file <ctest-resource-specification-file>`.
+
+* :manual:`ctest(1)` gained a ``--stop-on-failure`` option,
+  which can be used to stop running the tests once one has failed.
+
+* The :command:`ctest_test` command gained a ``STOP_ON_FAILURE`` option
+  which can be used to stop running the tests once one has failed.
+
+* The :module:`CTestCoverageCollectGCOV` module
+  :command:`ctest_coverage_collect_gcov` command gained a
+  ``TARBALL_COMPRESSION`` option to control compression of the
+  tarball of collected results.
+
+CPack
+-----
+
+* The :cpack_gen:`CPack Archive Generator`'s ``TXZ`` format learned the
+  :variable:`CPACK_ARCHIVE_THREADS` variable to enable parallel compression.
+  Requires support in the ``liblzma`` used by CMake.
+
+* The :cpack_gen:`CPack NSIS Generator` gained a new variable
+  :variable:`CPACK_NSIS_MANIFEST_DPI_AWARE` to declare that the
+  installer is DPI-aware.
+
+* The :cpack_gen:`CPack RPM Generator` gained
+  :variable:`CPACK_RPM_PRE_TRANS_SCRIPT_FILE` and
+  :variable:`CPACK_RPM_POST_TRANS_SCRIPT_FILE`
+  variables to specify pre- and post-transaction scripts.
+
+Other
+-----
+
+* :manual:`cmake-gui(1)` now populates its generator selection
+  widget default value from the :envvar:`CMAKE_GENERATOR` environment
+  variable.  Additionally, environment variables
+  :envvar:`CMAKE_GENERATOR_PLATFORM` and :envvar:`CMAKE_GENERATOR_TOOLSET`
+  are used to populate their respective widget defaults.
+
+* :manual:`ccmake(1)` learned to read a :envvar:`CCMAKE_COLORS`
+  environment variable to customize colors.
+
+Deprecated and Removed Features
+===============================
+
+* The :module:`Documentation` module has been deprecated via
+  :policy:`CMP0106`. This module was essentially VTK code that CMake should
+  not be shipping anymore.
+
+* An explicit deprecation diagnostic was added for policy ``CMP0070``
+  and policy ``CMP0071`` (``CMP0069`` and below were already deprecated).
+  The :manual:`cmake-policies(7)` manual explains that the OLD behaviors
+  of all policies are deprecated and that projects should port to the
+  NEW behaviors.
+
+Other Changes
+=============
+
+* On Windows, the :generator:`Ninja` and :generator:`Ninja Multi-Config`
+  generators, when a compiler is not explicitly specified, now select
+  the first compiler (of any name) found in directories listed by the
+  ``PATH`` environment variable.
+
+* The :prop_tgt:`LINK_OPTIONS` and :prop_tgt:`INTERFACE_LINK_OPTIONS` target
+  properties are now used for the device link step.
+  See policy :policy:`CMP0105`.
+
+* Creation of an ``ALIAS`` target overwriting an existing target now raises an
+  error. See policy :policy:`CMP0107`.
+
+* Linking a target to itself through an alias now raises an error.
+  See policy :policy:`CMP0108`.
+
+* The :module:`FindPackageHandleStandardArgs` module option ``REQUIRED_VARS``
+  is now optional if ``HANDLE_COMPONENTS`` is specified.
+
+* The :command:`source_group` command now also recognizes forward slashes
+  as subgroup delimiters, not just backslashes.
+
+* :manual:`ctest(1)` now logs environment variables that it sets for each test,
+  either due to the :prop_test:`ENVIRONMENT` property or the
+  :ref:`resource allocation <ctest-resource-allocation>` feature, and submits
+  this log to CDash. It does not log environment variables that were set
+  outside of CTest.
+
+* When building CMake itself from source and not using a system-provided
+  libcurl, HTTP/2 support is now enabled for commands supporting
+  network communication via ``http(s)``, such as :command:`file(DOWNLOAD)`,
+  :command:`file(UPLOAD)`, and :command:`ctest_submit`.
+  The precompiled binaries provided on ``cmake.org`` now support HTTP/2.
+
+* The :manual:`cmake-file-api(7)` "codemodel" version 2 ``version`` field has
+  been updated to 2.1.
+
+* The :manual:`cmake-file-api(7)` "codemodel" version 2 "target" object gained
+  a new ``precompileHeaders`` field in the ``compileGroups`` objects.
+
+Updates
+=======
+
+Changes made since CMake 3.18.0 include the following.
+
+3.18.1
+------
+
+* The :generator:`Xcode` generator, when :variable:`CMAKE_OSX_ARCHITECTURES`
+  is not defined, now selects ``$(NATIVE_ARCH_ACTUAL)`` as the default
+  architecture (the Xcode ``ARCHS`` setting).  This is needed for Xcode 12
+  to select the host's architecture, which older versions of Xcode did
+  by default.
+
+* In CMake 3.18.0 the :command:`add_test` command learned to support
+  special characters in test names.  This was accidentally left out of
+  its release notes.  Unfortunately the fix breaks existing projects
+  that were using manual quoting or escaping to work around the prior
+  limitation.  This fix has been reverted in 3.18.1, but may be
+  re-introduced in future versions of CMake with a policy for compatibility.
diff --git a/share/cmake-3.17/Help/release/3.2.rst b/share/cmake-3.18/Help/release/3.2.rst
similarity index 100%
rename from share/cmake-3.17/Help/release/3.2.rst
rename to share/cmake-3.18/Help/release/3.2.rst
diff --git a/share/cmake-3.17/Help/release/3.3.rst b/share/cmake-3.18/Help/release/3.3.rst
similarity index 100%
rename from share/cmake-3.17/Help/release/3.3.rst
rename to share/cmake-3.18/Help/release/3.3.rst
diff --git a/share/cmake-3.17/Help/release/3.4.rst b/share/cmake-3.18/Help/release/3.4.rst
similarity index 100%
rename from share/cmake-3.17/Help/release/3.4.rst
rename to share/cmake-3.18/Help/release/3.4.rst
diff --git a/share/cmake-3.17/Help/release/3.5.rst b/share/cmake-3.18/Help/release/3.5.rst
similarity index 100%
rename from share/cmake-3.17/Help/release/3.5.rst
rename to share/cmake-3.18/Help/release/3.5.rst
diff --git a/share/cmake-3.17/Help/release/3.6.rst b/share/cmake-3.18/Help/release/3.6.rst
similarity index 100%
rename from share/cmake-3.17/Help/release/3.6.rst
rename to share/cmake-3.18/Help/release/3.6.rst
diff --git a/share/cmake-3.17/Help/release/3.7.rst b/share/cmake-3.18/Help/release/3.7.rst
similarity index 100%
rename from share/cmake-3.17/Help/release/3.7.rst
rename to share/cmake-3.18/Help/release/3.7.rst
diff --git a/share/cmake-3.17/Help/release/3.8.rst b/share/cmake-3.18/Help/release/3.8.rst
similarity index 100%
rename from share/cmake-3.17/Help/release/3.8.rst
rename to share/cmake-3.18/Help/release/3.8.rst
diff --git a/share/cmake-3.17/Help/release/3.9.rst b/share/cmake-3.18/Help/release/3.9.rst
similarity index 100%
rename from share/cmake-3.17/Help/release/3.9.rst
rename to share/cmake-3.18/Help/release/3.9.rst
diff --git a/share/cmake-3.17/Help/release/dev.txt b/share/cmake-3.18/Help/release/dev.txt
similarity index 100%
rename from share/cmake-3.17/Help/release/dev.txt
rename to share/cmake-3.18/Help/release/dev.txt
diff --git a/share/cmake-3.17/Help/release/index.rst b/share/cmake-3.18/Help/release/index.rst
similarity index 96%
rename from share/cmake-3.17/Help/release/index.rst
rename to share/cmake-3.18/Help/release/index.rst
index 5d1f8a2..4578b3a 100644
--- a/share/cmake-3.17/Help/release/index.rst
+++ b/share/cmake-3.18/Help/release/index.rst
@@ -13,6 +13,7 @@
 .. toctree::
    :maxdepth: 1
 
+   3.18 <3.18>
    3.17 <3.17>
    3.16 <3.16>
    3.15 <3.15>
diff --git a/share/cmake-3.17/Help/variable/ANDROID.rst b/share/cmake-3.18/Help/variable/ANDROID.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/ANDROID.rst
rename to share/cmake-3.18/Help/variable/ANDROID.rst
diff --git a/share/cmake-3.17/Help/variable/APPLE.rst b/share/cmake-3.18/Help/variable/APPLE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/APPLE.rst
rename to share/cmake-3.18/Help/variable/APPLE.rst
diff --git a/share/cmake-3.17/Help/variable/BORLAND.rst b/share/cmake-3.18/Help/variable/BORLAND.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/BORLAND.rst
rename to share/cmake-3.18/Help/variable/BORLAND.rst
diff --git a/share/cmake-3.17/Help/variable/BUILD_SHARED_LIBS.rst b/share/cmake-3.18/Help/variable/BUILD_SHARED_LIBS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/BUILD_SHARED_LIBS.rst
rename to share/cmake-3.18/Help/variable/BUILD_SHARED_LIBS.rst
diff --git a/share/cmake-3.17/Help/variable/CACHE.rst b/share/cmake-3.18/Help/variable/CACHE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CACHE.rst
rename to share/cmake-3.18/Help/variable/CACHE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ABSOLUTE_DESTINATION_FILES.rst b/share/cmake-3.18/Help/variable/CMAKE_ABSOLUTE_DESTINATION_FILES.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_ABSOLUTE_DESTINATION_FILES.rst
rename to share/cmake-3.18/Help/variable/CMAKE_ABSOLUTE_DESTINATION_FILES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_AIX_EXPORT_ALL_SYMBOLS.rst b/share/cmake-3.18/Help/variable/CMAKE_AIX_EXPORT_ALL_SYMBOLS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_AIX_EXPORT_ALL_SYMBOLS.rst
rename to share/cmake-3.18/Help/variable/CMAKE_AIX_EXPORT_ALL_SYMBOLS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_ANT_ADDITIONAL_OPTIONS.rst b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_ANT_ADDITIONAL_OPTIONS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_ANDROID_ANT_ADDITIONAL_OPTIONS.rst
rename to share/cmake-3.18/Help/variable/CMAKE_ANDROID_ANT_ADDITIONAL_OPTIONS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_API.rst b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_API.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_ANDROID_API.rst
rename to share/cmake-3.18/Help/variable/CMAKE_ANDROID_API.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_API_MIN.rst b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_API_MIN.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_ANDROID_API_MIN.rst
rename to share/cmake-3.18/Help/variable/CMAKE_ANDROID_API_MIN.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_ARCH.rst b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_ARCH.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_ANDROID_ARCH.rst
rename to share/cmake-3.18/Help/variable/CMAKE_ANDROID_ARCH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_ARCH_ABI.rst b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_ARCH_ABI.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_ANDROID_ARCH_ABI.rst
rename to share/cmake-3.18/Help/variable/CMAKE_ANDROID_ARCH_ABI.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_ARM_MODE.rst b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_ARM_MODE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_ANDROID_ARM_MODE.rst
rename to share/cmake-3.18/Help/variable/CMAKE_ANDROID_ARM_MODE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_ARM_NEON.rst b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_ARM_NEON.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_ANDROID_ARM_NEON.rst
rename to share/cmake-3.18/Help/variable/CMAKE_ANDROID_ARM_NEON.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_ASSETS_DIRECTORIES.rst b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_ASSETS_DIRECTORIES.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_ANDROID_ASSETS_DIRECTORIES.rst
rename to share/cmake-3.18/Help/variable/CMAKE_ANDROID_ASSETS_DIRECTORIES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_GUI.rst b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_GUI.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_ANDROID_GUI.rst
rename to share/cmake-3.18/Help/variable/CMAKE_ANDROID_GUI.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_JAR_DEPENDENCIES.rst b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_JAR_DEPENDENCIES.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_ANDROID_JAR_DEPENDENCIES.rst
rename to share/cmake-3.18/Help/variable/CMAKE_ANDROID_JAR_DEPENDENCIES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_JAR_DIRECTORIES.rst b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_JAR_DIRECTORIES.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_ANDROID_JAR_DIRECTORIES.rst
rename to share/cmake-3.18/Help/variable/CMAKE_ANDROID_JAR_DIRECTORIES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_JAVA_SOURCE_DIR.rst b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_JAVA_SOURCE_DIR.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_ANDROID_JAVA_SOURCE_DIR.rst
rename to share/cmake-3.18/Help/variable/CMAKE_ANDROID_JAVA_SOURCE_DIR.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_NATIVE_LIB_DEPENDENCIES.rst b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_NATIVE_LIB_DEPENDENCIES.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_ANDROID_NATIVE_LIB_DEPENDENCIES.rst
rename to share/cmake-3.18/Help/variable/CMAKE_ANDROID_NATIVE_LIB_DEPENDENCIES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_NATIVE_LIB_DIRECTORIES.rst b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_NATIVE_LIB_DIRECTORIES.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_ANDROID_NATIVE_LIB_DIRECTORIES.rst
rename to share/cmake-3.18/Help/variable/CMAKE_ANDROID_NATIVE_LIB_DIRECTORIES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_NDK.rst b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_NDK.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_ANDROID_NDK.rst
rename to share/cmake-3.18/Help/variable/CMAKE_ANDROID_NDK.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_NDK_DEPRECATED_HEADERS.rst b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_NDK_DEPRECATED_HEADERS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_ANDROID_NDK_DEPRECATED_HEADERS.rst
rename to share/cmake-3.18/Help/variable/CMAKE_ANDROID_NDK_DEPRECATED_HEADERS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG.rst b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG.rst
rename to share/cmake-3.18/Help/variable/CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION.rst b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION.rst
rename to share/cmake-3.18/Help/variable/CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_PROCESS_MAX.rst b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_PROCESS_MAX.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_ANDROID_PROCESS_MAX.rst
rename to share/cmake-3.18/Help/variable/CMAKE_ANDROID_PROCESS_MAX.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_PROGUARD.rst b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_PROGUARD.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_ANDROID_PROGUARD.rst
rename to share/cmake-3.18/Help/variable/CMAKE_ANDROID_PROGUARD.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_PROGUARD_CONFIG_PATH.rst b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_PROGUARD_CONFIG_PATH.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_ANDROID_PROGUARD_CONFIG_PATH.rst
rename to share/cmake-3.18/Help/variable/CMAKE_ANDROID_PROGUARD_CONFIG_PATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_SECURE_PROPS_PATH.rst b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_SECURE_PROPS_PATH.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_ANDROID_SECURE_PROPS_PATH.rst
rename to share/cmake-3.18/Help/variable/CMAKE_ANDROID_SECURE_PROPS_PATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_SKIP_ANT_STEP.rst b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_SKIP_ANT_STEP.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_ANDROID_SKIP_ANT_STEP.rst
rename to share/cmake-3.18/Help/variable/CMAKE_ANDROID_SKIP_ANT_STEP.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_STANDALONE_TOOLCHAIN.rst b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_STANDALONE_TOOLCHAIN.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_ANDROID_STANDALONE_TOOLCHAIN.rst
rename to share/cmake-3.18/Help/variable/CMAKE_ANDROID_STANDALONE_TOOLCHAIN.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_STL_TYPE.rst b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_STL_TYPE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_ANDROID_STL_TYPE.rst
rename to share/cmake-3.18/Help/variable/CMAKE_ANDROID_STL_TYPE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_APPBUNDLE_PATH.rst b/share/cmake-3.18/Help/variable/CMAKE_APPBUNDLE_PATH.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_APPBUNDLE_PATH.rst
rename to share/cmake-3.18/Help/variable/CMAKE_APPBUNDLE_PATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_AR.rst b/share/cmake-3.18/Help/variable/CMAKE_AR.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_AR.rst
rename to share/cmake-3.18/Help/variable/CMAKE_AR.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ARCHIVE_OUTPUT_DIRECTORY.rst b/share/cmake-3.18/Help/variable/CMAKE_ARCHIVE_OUTPUT_DIRECTORY.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_ARCHIVE_OUTPUT_DIRECTORY.rst
rename to share/cmake-3.18/Help/variable/CMAKE_ARCHIVE_OUTPUT_DIRECTORY.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ARCHIVE_OUTPUT_DIRECTORY_CONFIG.rst b/share/cmake-3.18/Help/variable/CMAKE_ARCHIVE_OUTPUT_DIRECTORY_CONFIG.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_ARCHIVE_OUTPUT_DIRECTORY_CONFIG.rst
rename to share/cmake-3.18/Help/variable/CMAKE_ARCHIVE_OUTPUT_DIRECTORY_CONFIG.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ARGC.rst b/share/cmake-3.18/Help/variable/CMAKE_ARGC.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_ARGC.rst
rename to share/cmake-3.18/Help/variable/CMAKE_ARGC.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ARGV0.rst b/share/cmake-3.18/Help/variable/CMAKE_ARGV0.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_ARGV0.rst
rename to share/cmake-3.18/Help/variable/CMAKE_ARGV0.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_AUTOGEN_ORIGIN_DEPENDS.rst b/share/cmake-3.18/Help/variable/CMAKE_AUTOGEN_ORIGIN_DEPENDS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_AUTOGEN_ORIGIN_DEPENDS.rst
rename to share/cmake-3.18/Help/variable/CMAKE_AUTOGEN_ORIGIN_DEPENDS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_AUTOGEN_PARALLEL.rst b/share/cmake-3.18/Help/variable/CMAKE_AUTOGEN_PARALLEL.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_AUTOGEN_PARALLEL.rst
rename to share/cmake-3.18/Help/variable/CMAKE_AUTOGEN_PARALLEL.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_AUTOGEN_VERBOSE.rst b/share/cmake-3.18/Help/variable/CMAKE_AUTOGEN_VERBOSE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_AUTOGEN_VERBOSE.rst
rename to share/cmake-3.18/Help/variable/CMAKE_AUTOGEN_VERBOSE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_AUTOMOC.rst b/share/cmake-3.18/Help/variable/CMAKE_AUTOMOC.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_AUTOMOC.rst
rename to share/cmake-3.18/Help/variable/CMAKE_AUTOMOC.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_AUTOMOC_COMPILER_PREDEFINES.rst b/share/cmake-3.18/Help/variable/CMAKE_AUTOMOC_COMPILER_PREDEFINES.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_AUTOMOC_COMPILER_PREDEFINES.rst
rename to share/cmake-3.18/Help/variable/CMAKE_AUTOMOC_COMPILER_PREDEFINES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_AUTOMOC_DEPEND_FILTERS.rst b/share/cmake-3.18/Help/variable/CMAKE_AUTOMOC_DEPEND_FILTERS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_AUTOMOC_DEPEND_FILTERS.rst
rename to share/cmake-3.18/Help/variable/CMAKE_AUTOMOC_DEPEND_FILTERS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_AUTOMOC_MACRO_NAMES.rst b/share/cmake-3.18/Help/variable/CMAKE_AUTOMOC_MACRO_NAMES.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_AUTOMOC_MACRO_NAMES.rst
rename to share/cmake-3.18/Help/variable/CMAKE_AUTOMOC_MACRO_NAMES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_AUTOMOC_MOC_OPTIONS.rst b/share/cmake-3.18/Help/variable/CMAKE_AUTOMOC_MOC_OPTIONS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_AUTOMOC_MOC_OPTIONS.rst
rename to share/cmake-3.18/Help/variable/CMAKE_AUTOMOC_MOC_OPTIONS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_AUTOMOC_PATH_PREFIX.rst b/share/cmake-3.18/Help/variable/CMAKE_AUTOMOC_PATH_PREFIX.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_AUTOMOC_PATH_PREFIX.rst
rename to share/cmake-3.18/Help/variable/CMAKE_AUTOMOC_PATH_PREFIX.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_AUTOMOC_RELAXED_MODE.rst b/share/cmake-3.18/Help/variable/CMAKE_AUTOMOC_RELAXED_MODE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_AUTOMOC_RELAXED_MODE.rst
rename to share/cmake-3.18/Help/variable/CMAKE_AUTOMOC_RELAXED_MODE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_AUTORCC.rst b/share/cmake-3.18/Help/variable/CMAKE_AUTORCC.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_AUTORCC.rst
rename to share/cmake-3.18/Help/variable/CMAKE_AUTORCC.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_AUTORCC_OPTIONS.rst b/share/cmake-3.18/Help/variable/CMAKE_AUTORCC_OPTIONS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_AUTORCC_OPTIONS.rst
rename to share/cmake-3.18/Help/variable/CMAKE_AUTORCC_OPTIONS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_AUTOUIC.rst b/share/cmake-3.18/Help/variable/CMAKE_AUTOUIC.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_AUTOUIC.rst
rename to share/cmake-3.18/Help/variable/CMAKE_AUTOUIC.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_AUTOUIC_OPTIONS.rst b/share/cmake-3.18/Help/variable/CMAKE_AUTOUIC_OPTIONS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_AUTOUIC_OPTIONS.rst
rename to share/cmake-3.18/Help/variable/CMAKE_AUTOUIC_OPTIONS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_AUTOUIC_SEARCH_PATHS.rst b/share/cmake-3.18/Help/variable/CMAKE_AUTOUIC_SEARCH_PATHS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_AUTOUIC_SEARCH_PATHS.rst
rename to share/cmake-3.18/Help/variable/CMAKE_AUTOUIC_SEARCH_PATHS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_BACKWARDS_COMPATIBILITY.rst b/share/cmake-3.18/Help/variable/CMAKE_BACKWARDS_COMPATIBILITY.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_BACKWARDS_COMPATIBILITY.rst
rename to share/cmake-3.18/Help/variable/CMAKE_BACKWARDS_COMPATIBILITY.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_BINARY_DIR.rst b/share/cmake-3.18/Help/variable/CMAKE_BINARY_DIR.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_BINARY_DIR.rst
rename to share/cmake-3.18/Help/variable/CMAKE_BINARY_DIR.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_BUILD_RPATH.rst b/share/cmake-3.18/Help/variable/CMAKE_BUILD_RPATH.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_BUILD_RPATH.rst
rename to share/cmake-3.18/Help/variable/CMAKE_BUILD_RPATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_BUILD_RPATH_USE_ORIGIN.rst b/share/cmake-3.18/Help/variable/CMAKE_BUILD_RPATH_USE_ORIGIN.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_BUILD_RPATH_USE_ORIGIN.rst
rename to share/cmake-3.18/Help/variable/CMAKE_BUILD_RPATH_USE_ORIGIN.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_BUILD_TOOL.rst b/share/cmake-3.18/Help/variable/CMAKE_BUILD_TOOL.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_BUILD_TOOL.rst
rename to share/cmake-3.18/Help/variable/CMAKE_BUILD_TOOL.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_BUILD_TYPE.rst b/share/cmake-3.18/Help/variable/CMAKE_BUILD_TYPE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_BUILD_TYPE.rst
rename to share/cmake-3.18/Help/variable/CMAKE_BUILD_TYPE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_BUILD_WITH_INSTALL_NAME_DIR.rst b/share/cmake-3.18/Help/variable/CMAKE_BUILD_WITH_INSTALL_NAME_DIR.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_BUILD_WITH_INSTALL_NAME_DIR.rst
rename to share/cmake-3.18/Help/variable/CMAKE_BUILD_WITH_INSTALL_NAME_DIR.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_BUILD_WITH_INSTALL_RPATH.rst b/share/cmake-3.18/Help/variable/CMAKE_BUILD_WITH_INSTALL_RPATH.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_BUILD_WITH_INSTALL_RPATH.rst
rename to share/cmake-3.18/Help/variable/CMAKE_BUILD_WITH_INSTALL_RPATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CACHEFILE_DIR.rst b/share/cmake-3.18/Help/variable/CMAKE_CACHEFILE_DIR.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_CACHEFILE_DIR.rst
rename to share/cmake-3.18/Help/variable/CMAKE_CACHEFILE_DIR.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CACHE_MAJOR_VERSION.rst b/share/cmake-3.18/Help/variable/CMAKE_CACHE_MAJOR_VERSION.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_CACHE_MAJOR_VERSION.rst
rename to share/cmake-3.18/Help/variable/CMAKE_CACHE_MAJOR_VERSION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CACHE_MINOR_VERSION.rst b/share/cmake-3.18/Help/variable/CMAKE_CACHE_MINOR_VERSION.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_CACHE_MINOR_VERSION.rst
rename to share/cmake-3.18/Help/variable/CMAKE_CACHE_MINOR_VERSION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CACHE_PATCH_VERSION.rst b/share/cmake-3.18/Help/variable/CMAKE_CACHE_PATCH_VERSION.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_CACHE_PATCH_VERSION.rst
rename to share/cmake-3.18/Help/variable/CMAKE_CACHE_PATCH_VERSION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CFG_INTDIR.rst b/share/cmake-3.18/Help/variable/CMAKE_CFG_INTDIR.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_CFG_INTDIR.rst
rename to share/cmake-3.18/Help/variable/CMAKE_CFG_INTDIR.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CL_64.rst b/share/cmake-3.18/Help/variable/CMAKE_CL_64.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_CL_64.rst
rename to share/cmake-3.18/Help/variable/CMAKE_CL_64.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CODEBLOCKS_COMPILER_ID.rst b/share/cmake-3.18/Help/variable/CMAKE_CODEBLOCKS_COMPILER_ID.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_CODEBLOCKS_COMPILER_ID.rst
rename to share/cmake-3.18/Help/variable/CMAKE_CODEBLOCKS_COMPILER_ID.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CODEBLOCKS_EXCLUDE_EXTERNAL_FILES.rst b/share/cmake-3.18/Help/variable/CMAKE_CODEBLOCKS_EXCLUDE_EXTERNAL_FILES.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_CODEBLOCKS_EXCLUDE_EXTERNAL_FILES.rst
rename to share/cmake-3.18/Help/variable/CMAKE_CODEBLOCKS_EXCLUDE_EXTERNAL_FILES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CODELITE_USE_TARGETS.rst b/share/cmake-3.18/Help/variable/CMAKE_CODELITE_USE_TARGETS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_CODELITE_USE_TARGETS.rst
rename to share/cmake-3.18/Help/variable/CMAKE_CODELITE_USE_TARGETS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_COLOR_MAKEFILE.rst b/share/cmake-3.18/Help/variable/CMAKE_COLOR_MAKEFILE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_COLOR_MAKEFILE.rst
rename to share/cmake-3.18/Help/variable/CMAKE_COLOR_MAKEFILE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_COMMAND.rst b/share/cmake-3.18/Help/variable/CMAKE_COMMAND.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_COMMAND.rst
rename to share/cmake-3.18/Help/variable/CMAKE_COMMAND.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_COMPILER_2005.rst b/share/cmake-3.18/Help/variable/CMAKE_COMPILER_2005.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_COMPILER_2005.rst
rename to share/cmake-3.18/Help/variable/CMAKE_COMPILER_2005.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_COMPILER_IS_GNUCC.rst b/share/cmake-3.18/Help/variable/CMAKE_COMPILER_IS_GNUCC.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_COMPILER_IS_GNUCC.rst
rename to share/cmake-3.18/Help/variable/CMAKE_COMPILER_IS_GNUCC.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_COMPILER_IS_GNUCXX.rst b/share/cmake-3.18/Help/variable/CMAKE_COMPILER_IS_GNUCXX.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_COMPILER_IS_GNUCXX.rst
rename to share/cmake-3.18/Help/variable/CMAKE_COMPILER_IS_GNUCXX.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_COMPILER_IS_GNUG77.rst b/share/cmake-3.18/Help/variable/CMAKE_COMPILER_IS_GNUG77.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_COMPILER_IS_GNUG77.rst
rename to share/cmake-3.18/Help/variable/CMAKE_COMPILER_IS_GNUG77.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY.rst b/share/cmake-3.18/Help/variable/CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY.rst
rename to share/cmake-3.18/Help/variable/CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY_CONFIG.rst b/share/cmake-3.18/Help/variable/CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY_CONFIG.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY_CONFIG.rst
rename to share/cmake-3.18/Help/variable/CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY_CONFIG.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CONFIGURATION_TYPES.rst b/share/cmake-3.18/Help/variable/CMAKE_CONFIGURATION_TYPES.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_CONFIGURATION_TYPES.rst
rename to share/cmake-3.18/Help/variable/CMAKE_CONFIGURATION_TYPES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CONFIG_POSTFIX.rst b/share/cmake-3.18/Help/variable/CMAKE_CONFIG_POSTFIX.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_CONFIG_POSTFIX.rst
rename to share/cmake-3.18/Help/variable/CMAKE_CONFIG_POSTFIX.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CPACK_COMMAND.rst b/share/cmake-3.18/Help/variable/CMAKE_CPACK_COMMAND.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_CPACK_COMMAND.rst
rename to share/cmake-3.18/Help/variable/CMAKE_CPACK_COMMAND.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CROSSCOMPILING.rst b/share/cmake-3.18/Help/variable/CMAKE_CROSSCOMPILING.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_CROSSCOMPILING.rst
rename to share/cmake-3.18/Help/variable/CMAKE_CROSSCOMPILING.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CROSSCOMPILING_EMULATOR.rst b/share/cmake-3.18/Help/variable/CMAKE_CROSSCOMPILING_EMULATOR.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_CROSSCOMPILING_EMULATOR.rst
rename to share/cmake-3.18/Help/variable/CMAKE_CROSSCOMPILING_EMULATOR.rst
diff --git a/share/cmake-3.18/Help/variable/CMAKE_CROSS_CONFIGS.rst b/share/cmake-3.18/Help/variable/CMAKE_CROSS_CONFIGS.rst
new file mode 100644
index 0000000..94157f3
--- /dev/null
+++ b/share/cmake-3.18/Help/variable/CMAKE_CROSS_CONFIGS.rst
@@ -0,0 +1,15 @@
+CMAKE_CROSS_CONFIGS
+-------------------
+
+Specifies a :ref:`semicolon-separated list <CMake Language Lists>` of
+configurations available from all ``build-<Config>.ninja`` files in the
+:generator:`Ninja Multi-Config` generator.  This variable activates
+cross-config mode. Targets from each config specified in this variable can be
+built from any ``build-<Config>.ninja`` file. Custom commands will use the
+configuration native to ``build-<Config>.ninja``. If it is set to ``all``, all
+configurations from :variable:`CMAKE_CONFIGURATION_TYPES` are cross-configs. If
+it is not specified, or empty, each ``build-<Config>.ninja`` file will only
+contain build rules for its own configuration.
+
+The value of this variable must be a subset of
+:variable:`CMAKE_CONFIGURATION_TYPES`.
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CTEST_ARGUMENTS.rst b/share/cmake-3.18/Help/variable/CMAKE_CTEST_ARGUMENTS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_CTEST_ARGUMENTS.rst
rename to share/cmake-3.18/Help/variable/CMAKE_CTEST_ARGUMENTS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CTEST_COMMAND.rst b/share/cmake-3.18/Help/variable/CMAKE_CTEST_COMMAND.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_CTEST_COMMAND.rst
rename to share/cmake-3.18/Help/variable/CMAKE_CTEST_COMMAND.rst
diff --git a/share/cmake-3.18/Help/variable/CMAKE_CUDA_ARCHITECTURES.rst b/share/cmake-3.18/Help/variable/CMAKE_CUDA_ARCHITECTURES.rst
new file mode 100644
index 0000000..149bffa
--- /dev/null
+++ b/share/cmake-3.18/Help/variable/CMAKE_CUDA_ARCHITECTURES.rst
@@ -0,0 +1,17 @@
+CMAKE_CUDA_ARCHITECTURES
+------------------------
+
+Default value for :prop_tgt:`CUDA_ARCHITECTURES` property of targets.
+
+This is initialized as follows depending on :variable:`CMAKE_CUDA_COMPILER_ID <CMAKE_<LANG>_COMPILER_ID>`:
+
+- For ``Clang``: the oldest architecture that works.
+
+- For ``NVIDIA``: the default architecture chosen by the compiler.
+  See policy :policy:`CMP0104`.
+
+Users are encouraged to override this, as the default varies across compilers
+and compiler versions.
+
+This variable is used to initialize the :prop_tgt:`CUDA_ARCHITECTURES` property
+on all targets. See the target property for additional information.
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CUDA_COMPILE_FEATURES.rst b/share/cmake-3.18/Help/variable/CMAKE_CUDA_COMPILE_FEATURES.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_CUDA_COMPILE_FEATURES.rst
rename to share/cmake-3.18/Help/variable/CMAKE_CUDA_COMPILE_FEATURES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CUDA_EXTENSIONS.rst b/share/cmake-3.18/Help/variable/CMAKE_CUDA_EXTENSIONS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_CUDA_EXTENSIONS.rst
rename to share/cmake-3.18/Help/variable/CMAKE_CUDA_EXTENSIONS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CUDA_HOST_COMPILER.rst b/share/cmake-3.18/Help/variable/CMAKE_CUDA_HOST_COMPILER.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_CUDA_HOST_COMPILER.rst
rename to share/cmake-3.18/Help/variable/CMAKE_CUDA_HOST_COMPILER.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CUDA_RESOLVE_DEVICE_SYMBOLS.rst b/share/cmake-3.18/Help/variable/CMAKE_CUDA_RESOLVE_DEVICE_SYMBOLS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_CUDA_RESOLVE_DEVICE_SYMBOLS.rst
rename to share/cmake-3.18/Help/variable/CMAKE_CUDA_RESOLVE_DEVICE_SYMBOLS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CUDA_RUNTIME_LIBRARY.rst b/share/cmake-3.18/Help/variable/CMAKE_CUDA_RUNTIME_LIBRARY.rst
similarity index 82%
rename from share/cmake-3.17/Help/variable/CMAKE_CUDA_RUNTIME_LIBRARY.rst
rename to share/cmake-3.18/Help/variable/CMAKE_CUDA_RUNTIME_LIBRARY.rst
index ea1c1b8..e3205d3 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_CUDA_RUNTIME_LIBRARY.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_CUDA_RUNTIME_LIBRARY.rst
@@ -1,7 +1,7 @@
 CMAKE_CUDA_RUNTIME_LIBRARY
 --------------------------
 
-Select the CUDA runtime library for use by compilers targeting the MSVC ABI.
+Select the CUDA runtime library for use when compiling and linking CUDA.
 This variable is used to initialize the :prop_tgt:`CUDA_RUNTIME_LIBRARY`
 property on all targets as they are created.
 
@@ -14,7 +14,8 @@
 
 If this variable is not set then the :prop_tgt:`CUDA_RUNTIME_LIBRARY` target
 property will not be set automatically.  If that property is not set then
-CMake uses the default value ``Static`` to select the CUDA runtime library.
+CMake uses an appropriate default value based on the compiler to select the
+CUDA runtime library.
 
 .. note::
 
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CUDA_SEPARABLE_COMPILATION.rst b/share/cmake-3.18/Help/variable/CMAKE_CUDA_SEPARABLE_COMPILATION.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_CUDA_SEPARABLE_COMPILATION.rst
rename to share/cmake-3.18/Help/variable/CMAKE_CUDA_SEPARABLE_COMPILATION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CUDA_STANDARD.rst b/share/cmake-3.18/Help/variable/CMAKE_CUDA_STANDARD.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_CUDA_STANDARD.rst
rename to share/cmake-3.18/Help/variable/CMAKE_CUDA_STANDARD.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CUDA_STANDARD_REQUIRED.rst b/share/cmake-3.18/Help/variable/CMAKE_CUDA_STANDARD_REQUIRED.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_CUDA_STANDARD_REQUIRED.rst
rename to share/cmake-3.18/Help/variable/CMAKE_CUDA_STANDARD_REQUIRED.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES.rst b/share/cmake-3.18/Help/variable/CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES.rst
rename to share/cmake-3.18/Help/variable/CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CURRENT_BINARY_DIR.rst b/share/cmake-3.18/Help/variable/CMAKE_CURRENT_BINARY_DIR.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_CURRENT_BINARY_DIR.rst
rename to share/cmake-3.18/Help/variable/CMAKE_CURRENT_BINARY_DIR.rst
diff --git a/share/cmake-3.18/Help/variable/CMAKE_CURRENT_FUNCTION.rst b/share/cmake-3.18/Help/variable/CMAKE_CURRENT_FUNCTION.rst
new file mode 100644
index 0000000..fb7f610
--- /dev/null
+++ b/share/cmake-3.18/Help/variable/CMAKE_CURRENT_FUNCTION.rst
@@ -0,0 +1,10 @@
+CMAKE_CURRENT_FUNCTION
+----------------------
+
+When executing code inside a :command:`function`, this variable
+contains the name of the current function.  It can be useful for
+diagnostic or debug messages.
+
+See also :variable:`CMAKE_CURRENT_FUNCTION_LIST_DIR`,
+:variable:`CMAKE_CURRENT_FUNCTION_LIST_FILE` and
+:variable:`CMAKE_CURRENT_FUNCTION_LIST_LINE`.
diff --git a/share/cmake-3.18/Help/variable/CMAKE_CURRENT_FUNCTION_LIST_DIR.rst b/share/cmake-3.18/Help/variable/CMAKE_CURRENT_FUNCTION_LIST_DIR.rst
new file mode 100644
index 0000000..44ae1e5
--- /dev/null
+++ b/share/cmake-3.18/Help/variable/CMAKE_CURRENT_FUNCTION_LIST_DIR.rst
@@ -0,0 +1,41 @@
+CMAKE_CURRENT_FUNCTION_LIST_DIR
+-------------------------------
+
+When executing code inside a :command:`function`, this variable
+contains the full directory of the listfile that defined the current function.
+
+It is quite common practice in CMake for modules to use some additional files,
+such as templates to be copied in after substituting CMake variables.
+In such cases, a function needs to know where to locate those files in a way
+that doesn't depend on where the function is called.  Without
+``CMAKE_CURRENT_FUNCTION_LIST_DIR``, the code to do that would typically use
+the following pattern:
+
+.. code-block:: cmake
+
+  set(_THIS_MODULE_BASE_DIR "${CMAKE_CURRENT_LIST_DIR}")
+
+  function(foo)
+    configure_file(
+      "${_THIS_MODULE_BASE_DIR}/some.template.in"
+      some.output
+    )
+  endfunction()
+
+Using ``CMAKE_CURRENT_FUNCTION_LIST_DIR`` inside the function instead
+eliminates the need for the extra variable which would otherwise be visible
+outside the function's scope.
+The above example can be written in the more concise and more robust form:
+
+.. code-block:: cmake
+
+  function(foo)
+    configure_file(
+      "${CMAKE_CURRENT_FUNCTION_LIST_DIR}/some.template.in"
+      some.output
+    )
+  endfunction()
+
+See also :variable:`CMAKE_CURRENT_FUNCTION`,
+:variable:`CMAKE_CURRENT_FUNCTION_LIST_FILE` and
+:variable:`CMAKE_CURRENT_FUNCTION_LIST_LINE`.
diff --git a/share/cmake-3.18/Help/variable/CMAKE_CURRENT_FUNCTION_LIST_FILE.rst b/share/cmake-3.18/Help/variable/CMAKE_CURRENT_FUNCTION_LIST_FILE.rst
new file mode 100644
index 0000000..c737af9
--- /dev/null
+++ b/share/cmake-3.18/Help/variable/CMAKE_CURRENT_FUNCTION_LIST_FILE.rst
@@ -0,0 +1,9 @@
+CMAKE_CURRENT_FUNCTION_LIST_FILE
+--------------------------------
+
+When executing code inside a :command:`function`, this variable
+contains the full path to the listfile that defined the current function.
+
+See also :variable:`CMAKE_CURRENT_FUNCTION`,
+:variable:`CMAKE_CURRENT_FUNCTION_LIST_DIR` and
+:variable:`CMAKE_CURRENT_FUNCTION_LIST_LINE`.
diff --git a/share/cmake-3.18/Help/variable/CMAKE_CURRENT_FUNCTION_LIST_LINE.rst b/share/cmake-3.18/Help/variable/CMAKE_CURRENT_FUNCTION_LIST_LINE.rst
new file mode 100644
index 0000000..ad6282e
--- /dev/null
+++ b/share/cmake-3.18/Help/variable/CMAKE_CURRENT_FUNCTION_LIST_LINE.rst
@@ -0,0 +1,10 @@
+CMAKE_CURRENT_FUNCTION_LIST_LINE
+--------------------------------
+
+When executing code inside a :command:`function`, this variable
+contains the line number in the listfile where the current function
+was defined.
+
+See also :variable:`CMAKE_CURRENT_FUNCTION`,
+:variable:`CMAKE_CURRENT_FUNCTION_LIST_DIR` and
+:variable:`CMAKE_CURRENT_FUNCTION_LIST_FILE`.
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CURRENT_LIST_DIR.rst b/share/cmake-3.18/Help/variable/CMAKE_CURRENT_LIST_DIR.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_CURRENT_LIST_DIR.rst
rename to share/cmake-3.18/Help/variable/CMAKE_CURRENT_LIST_DIR.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CURRENT_LIST_FILE.rst b/share/cmake-3.18/Help/variable/CMAKE_CURRENT_LIST_FILE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_CURRENT_LIST_FILE.rst
rename to share/cmake-3.18/Help/variable/CMAKE_CURRENT_LIST_FILE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CURRENT_LIST_LINE.rst b/share/cmake-3.18/Help/variable/CMAKE_CURRENT_LIST_LINE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_CURRENT_LIST_LINE.rst
rename to share/cmake-3.18/Help/variable/CMAKE_CURRENT_LIST_LINE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CURRENT_SOURCE_DIR.rst b/share/cmake-3.18/Help/variable/CMAKE_CURRENT_SOURCE_DIR.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_CURRENT_SOURCE_DIR.rst
rename to share/cmake-3.18/Help/variable/CMAKE_CURRENT_SOURCE_DIR.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CXX_COMPILE_FEATURES.rst b/share/cmake-3.18/Help/variable/CMAKE_CXX_COMPILE_FEATURES.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_CXX_COMPILE_FEATURES.rst
rename to share/cmake-3.18/Help/variable/CMAKE_CXX_COMPILE_FEATURES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CXX_EXTENSIONS.rst b/share/cmake-3.18/Help/variable/CMAKE_CXX_EXTENSIONS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_CXX_EXTENSIONS.rst
rename to share/cmake-3.18/Help/variable/CMAKE_CXX_EXTENSIONS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CXX_STANDARD.rst b/share/cmake-3.18/Help/variable/CMAKE_CXX_STANDARD.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_CXX_STANDARD.rst
rename to share/cmake-3.18/Help/variable/CMAKE_CXX_STANDARD.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CXX_STANDARD_REQUIRED.rst b/share/cmake-3.18/Help/variable/CMAKE_CXX_STANDARD_REQUIRED.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_CXX_STANDARD_REQUIRED.rst
rename to share/cmake-3.18/Help/variable/CMAKE_CXX_STANDARD_REQUIRED.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_C_COMPILE_FEATURES.rst b/share/cmake-3.18/Help/variable/CMAKE_C_COMPILE_FEATURES.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_C_COMPILE_FEATURES.rst
rename to share/cmake-3.18/Help/variable/CMAKE_C_COMPILE_FEATURES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_C_EXTENSIONS.rst b/share/cmake-3.18/Help/variable/CMAKE_C_EXTENSIONS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_C_EXTENSIONS.rst
rename to share/cmake-3.18/Help/variable/CMAKE_C_EXTENSIONS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_C_STANDARD.rst b/share/cmake-3.18/Help/variable/CMAKE_C_STANDARD.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_C_STANDARD.rst
rename to share/cmake-3.18/Help/variable/CMAKE_C_STANDARD.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_C_STANDARD_REQUIRED.rst b/share/cmake-3.18/Help/variable/CMAKE_C_STANDARD_REQUIRED.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_C_STANDARD_REQUIRED.rst
rename to share/cmake-3.18/Help/variable/CMAKE_C_STANDARD_REQUIRED.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_DEBUG_POSTFIX.rst b/share/cmake-3.18/Help/variable/CMAKE_DEBUG_POSTFIX.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_DEBUG_POSTFIX.rst
rename to share/cmake-3.18/Help/variable/CMAKE_DEBUG_POSTFIX.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_DEBUG_TARGET_PROPERTIES.rst b/share/cmake-3.18/Help/variable/CMAKE_DEBUG_TARGET_PROPERTIES.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_DEBUG_TARGET_PROPERTIES.rst
rename to share/cmake-3.18/Help/variable/CMAKE_DEBUG_TARGET_PROPERTIES.rst
diff --git a/share/cmake-3.18/Help/variable/CMAKE_DEFAULT_BUILD_TYPE.rst b/share/cmake-3.18/Help/variable/CMAKE_DEFAULT_BUILD_TYPE.rst
new file mode 100644
index 0000000..aa4f82d
--- /dev/null
+++ b/share/cmake-3.18/Help/variable/CMAKE_DEFAULT_BUILD_TYPE.rst
@@ -0,0 +1,12 @@
+CMAKE_DEFAULT_BUILD_TYPE
+------------------------
+
+Specifies the configuration to use by default in a ``build.ninja`` file in the
+:generator:`Ninja Multi-Config` generator. If this variable is specified,
+``build.ninja`` uses build rules from ``build-<Config>.ninja`` by default. All
+custom commands are executed with this configuration. If the variable is not
+specified, the first item from :variable:`CMAKE_CONFIGURATION_TYPES` is used
+instead.
+
+The value of this variable must be one of the items from
+:variable:`CMAKE_CONFIGURATION_TYPES`.
diff --git a/share/cmake-3.18/Help/variable/CMAKE_DEFAULT_CONFIGS.rst b/share/cmake-3.18/Help/variable/CMAKE_DEFAULT_CONFIGS.rst
new file mode 100644
index 0000000..84c642a
--- /dev/null
+++ b/share/cmake-3.18/Help/variable/CMAKE_DEFAULT_CONFIGS.rst
@@ -0,0 +1,19 @@
+CMAKE_DEFAULT_CONFIGS
+---------------------
+
+Specifies a :ref:`semicolon-separated list <CMake Language Lists>` of configurations
+to build for a target in ``build.ninja`` if no ``:<Config>`` suffix is specified in
+the :generator:`Ninja Multi-Config` generator. If it is set to ``all``, all
+configurations from :variable:`CMAKE_CROSS_CONFIGS` are used. If it is not
+specified, it defaults to :variable:`CMAKE_DEFAULT_BUILD_TYPE`.
+
+For example, if you set :variable:`CMAKE_DEFAULT_BUILD_TYPE` to ``Release``,
+but set :variable:`CMAKE_DEFAULT_CONFIGS` to ``Debug`` or ``all``, all
+``<target>`` aliases in ``build.ninja`` will resolve to ``<target>:Debug`` or
+``<target>:all``, but custom commands will still use the ``Release``
+configuration.
+
+The value of this variable must be a subset of :variable:`CMAKE_CROSS_CONFIGS`
+or be the same as :variable:`CMAKE_DEFAULT_BUILD_TYPE`. It must not be
+specified if :variable:`CMAKE_DEFAULT_BUILD_TYPE` or
+:variable:`CMAKE_CROSS_CONFIGS` is not used.
diff --git a/share/cmake-3.17/Help/variable/CMAKE_DEPENDS_IN_PROJECT_ONLY.rst b/share/cmake-3.18/Help/variable/CMAKE_DEPENDS_IN_PROJECT_ONLY.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_DEPENDS_IN_PROJECT_ONLY.rst
rename to share/cmake-3.18/Help/variable/CMAKE_DEPENDS_IN_PROJECT_ONLY.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_DIRECTORY_LABELS.rst b/share/cmake-3.18/Help/variable/CMAKE_DIRECTORY_LABELS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_DIRECTORY_LABELS.rst
rename to share/cmake-3.18/Help/variable/CMAKE_DIRECTORY_LABELS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_DISABLE_FIND_PACKAGE_PackageName.rst b/share/cmake-3.18/Help/variable/CMAKE_DISABLE_FIND_PACKAGE_PackageName.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_DISABLE_FIND_PACKAGE_PackageName.rst
rename to share/cmake-3.18/Help/variable/CMAKE_DISABLE_FIND_PACKAGE_PackageName.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_DISABLE_PRECOMPILE_HEADERS.rst b/share/cmake-3.18/Help/variable/CMAKE_DISABLE_PRECOMPILE_HEADERS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_DISABLE_PRECOMPILE_HEADERS.rst
rename to share/cmake-3.18/Help/variable/CMAKE_DISABLE_PRECOMPILE_HEADERS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_DL_LIBS.rst b/share/cmake-3.18/Help/variable/CMAKE_DL_LIBS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_DL_LIBS.rst
rename to share/cmake-3.18/Help/variable/CMAKE_DL_LIBS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_DOTNET_TARGET_FRAMEWORK.rst b/share/cmake-3.18/Help/variable/CMAKE_DOTNET_TARGET_FRAMEWORK.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_DOTNET_TARGET_FRAMEWORK.rst
rename to share/cmake-3.18/Help/variable/CMAKE_DOTNET_TARGET_FRAMEWORK.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_DOTNET_TARGET_FRAMEWORK_VERSION.rst b/share/cmake-3.18/Help/variable/CMAKE_DOTNET_TARGET_FRAMEWORK_VERSION.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_DOTNET_TARGET_FRAMEWORK_VERSION.rst
rename to share/cmake-3.18/Help/variable/CMAKE_DOTNET_TARGET_FRAMEWORK_VERSION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ECLIPSE_GENERATE_LINKED_RESOURCES.rst b/share/cmake-3.18/Help/variable/CMAKE_ECLIPSE_GENERATE_LINKED_RESOURCES.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_ECLIPSE_GENERATE_LINKED_RESOURCES.rst
rename to share/cmake-3.18/Help/variable/CMAKE_ECLIPSE_GENERATE_LINKED_RESOURCES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT.rst b/share/cmake-3.18/Help/variable/CMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT.rst
rename to share/cmake-3.18/Help/variable/CMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ECLIPSE_MAKE_ARGUMENTS.rst b/share/cmake-3.18/Help/variable/CMAKE_ECLIPSE_MAKE_ARGUMENTS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_ECLIPSE_MAKE_ARGUMENTS.rst
rename to share/cmake-3.18/Help/variable/CMAKE_ECLIPSE_MAKE_ARGUMENTS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ECLIPSE_RESOURCE_ENCODING.rst b/share/cmake-3.18/Help/variable/CMAKE_ECLIPSE_RESOURCE_ENCODING.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_ECLIPSE_RESOURCE_ENCODING.rst
rename to share/cmake-3.18/Help/variable/CMAKE_ECLIPSE_RESOURCE_ENCODING.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ECLIPSE_VERSION.rst b/share/cmake-3.18/Help/variable/CMAKE_ECLIPSE_VERSION.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_ECLIPSE_VERSION.rst
rename to share/cmake-3.18/Help/variable/CMAKE_ECLIPSE_VERSION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_EDIT_COMMAND.rst b/share/cmake-3.18/Help/variable/CMAKE_EDIT_COMMAND.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_EDIT_COMMAND.rst
rename to share/cmake-3.18/Help/variable/CMAKE_EDIT_COMMAND.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ENABLE_EXPORTS.rst b/share/cmake-3.18/Help/variable/CMAKE_ENABLE_EXPORTS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_ENABLE_EXPORTS.rst
rename to share/cmake-3.18/Help/variable/CMAKE_ENABLE_EXPORTS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ERROR_DEPRECATED.rst b/share/cmake-3.18/Help/variable/CMAKE_ERROR_DEPRECATED.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_ERROR_DEPRECATED.rst
rename to share/cmake-3.18/Help/variable/CMAKE_ERROR_DEPRECATED.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION.rst b/share/cmake-3.18/Help/variable/CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION.rst
rename to share/cmake-3.18/Help/variable/CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_EXECUTABLE_SUFFIX.rst b/share/cmake-3.18/Help/variable/CMAKE_EXECUTABLE_SUFFIX.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_EXECUTABLE_SUFFIX.rst
rename to share/cmake-3.18/Help/variable/CMAKE_EXECUTABLE_SUFFIX.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_EXECUTE_PROCESS_COMMAND_ECHO.rst b/share/cmake-3.18/Help/variable/CMAKE_EXECUTE_PROCESS_COMMAND_ECHO.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_EXECUTE_PROCESS_COMMAND_ECHO.rst
rename to share/cmake-3.18/Help/variable/CMAKE_EXECUTE_PROCESS_COMMAND_ECHO.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_EXE_LINKER_FLAGS.rst b/share/cmake-3.18/Help/variable/CMAKE_EXE_LINKER_FLAGS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_EXE_LINKER_FLAGS.rst
rename to share/cmake-3.18/Help/variable/CMAKE_EXE_LINKER_FLAGS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_EXE_LINKER_FLAGS_CONFIG.rst b/share/cmake-3.18/Help/variable/CMAKE_EXE_LINKER_FLAGS_CONFIG.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_EXE_LINKER_FLAGS_CONFIG.rst
rename to share/cmake-3.18/Help/variable/CMAKE_EXE_LINKER_FLAGS_CONFIG.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_EXE_LINKER_FLAGS_CONFIG_INIT.rst b/share/cmake-3.18/Help/variable/CMAKE_EXE_LINKER_FLAGS_CONFIG_INIT.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_EXE_LINKER_FLAGS_CONFIG_INIT.rst
rename to share/cmake-3.18/Help/variable/CMAKE_EXE_LINKER_FLAGS_CONFIG_INIT.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_EXE_LINKER_FLAGS_INIT.rst b/share/cmake-3.18/Help/variable/CMAKE_EXE_LINKER_FLAGS_INIT.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_EXE_LINKER_FLAGS_INIT.rst
rename to share/cmake-3.18/Help/variable/CMAKE_EXE_LINKER_FLAGS_INIT.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_EXPORT_COMPILE_COMMANDS.rst b/share/cmake-3.18/Help/variable/CMAKE_EXPORT_COMPILE_COMMANDS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_EXPORT_COMPILE_COMMANDS.rst
rename to share/cmake-3.18/Help/variable/CMAKE_EXPORT_COMPILE_COMMANDS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_EXPORT_NO_PACKAGE_REGISTRY.rst b/share/cmake-3.18/Help/variable/CMAKE_EXPORT_NO_PACKAGE_REGISTRY.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_EXPORT_NO_PACKAGE_REGISTRY.rst
rename to share/cmake-3.18/Help/variable/CMAKE_EXPORT_NO_PACKAGE_REGISTRY.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_EXPORT_PACKAGE_REGISTRY.rst b/share/cmake-3.18/Help/variable/CMAKE_EXPORT_PACKAGE_REGISTRY.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_EXPORT_PACKAGE_REGISTRY.rst
rename to share/cmake-3.18/Help/variable/CMAKE_EXPORT_PACKAGE_REGISTRY.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_EXTRA_GENERATOR.rst b/share/cmake-3.18/Help/variable/CMAKE_EXTRA_GENERATOR.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_EXTRA_GENERATOR.rst
rename to share/cmake-3.18/Help/variable/CMAKE_EXTRA_GENERATOR.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES.rst b/share/cmake-3.18/Help/variable/CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES.rst
rename to share/cmake-3.18/Help/variable/CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FIND_APPBUNDLE.rst b/share/cmake-3.18/Help/variable/CMAKE_FIND_APPBUNDLE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_FIND_APPBUNDLE.rst
rename to share/cmake-3.18/Help/variable/CMAKE_FIND_APPBUNDLE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FIND_DEBUG_MODE.rst b/share/cmake-3.18/Help/variable/CMAKE_FIND_DEBUG_MODE.rst
similarity index 99%
rename from share/cmake-3.17/Help/variable/CMAKE_FIND_DEBUG_MODE.rst
rename to share/cmake-3.18/Help/variable/CMAKE_FIND_DEBUG_MODE.rst
index 33ffdd6..f5fd8ce 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_FIND_DEBUG_MODE.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_FIND_DEBUG_MODE.rst
@@ -3,6 +3,7 @@
 
 Print extra find call information for the following commands to standard
 error:
+
 * :command:`find_program`
 * :command:`find_library`
 * :command:`find_file`
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FIND_FRAMEWORK.rst b/share/cmake-3.18/Help/variable/CMAKE_FIND_FRAMEWORK.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_FIND_FRAMEWORK.rst
rename to share/cmake-3.18/Help/variable/CMAKE_FIND_FRAMEWORK.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX.rst b/share/cmake-3.18/Help/variable/CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX.rst
rename to share/cmake-3.18/Help/variable/CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FIND_LIBRARY_PREFIXES.rst b/share/cmake-3.18/Help/variable/CMAKE_FIND_LIBRARY_PREFIXES.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_FIND_LIBRARY_PREFIXES.rst
rename to share/cmake-3.18/Help/variable/CMAKE_FIND_LIBRARY_PREFIXES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FIND_LIBRARY_SUFFIXES.rst b/share/cmake-3.18/Help/variable/CMAKE_FIND_LIBRARY_SUFFIXES.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_FIND_LIBRARY_SUFFIXES.rst
rename to share/cmake-3.18/Help/variable/CMAKE_FIND_LIBRARY_SUFFIXES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FIND_NO_INSTALL_PREFIX.rst b/share/cmake-3.18/Help/variable/CMAKE_FIND_NO_INSTALL_PREFIX.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_FIND_NO_INSTALL_PREFIX.rst
rename to share/cmake-3.18/Help/variable/CMAKE_FIND_NO_INSTALL_PREFIX.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_NAME.rst b/share/cmake-3.18/Help/variable/CMAKE_FIND_PACKAGE_NAME.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_NAME.rst
rename to share/cmake-3.18/Help/variable/CMAKE_FIND_PACKAGE_NAME.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY.rst b/share/cmake-3.18/Help/variable/CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY.rst
rename to share/cmake-3.18/Help/variable/CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY.rst b/share/cmake-3.18/Help/variable/CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY.rst
rename to share/cmake-3.18/Help/variable/CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_PREFER_CONFIG.rst b/share/cmake-3.18/Help/variable/CMAKE_FIND_PACKAGE_PREFER_CONFIG.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_PREFER_CONFIG.rst
rename to share/cmake-3.18/Help/variable/CMAKE_FIND_PACKAGE_PREFER_CONFIG.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_RESOLVE_SYMLINKS.rst b/share/cmake-3.18/Help/variable/CMAKE_FIND_PACKAGE_RESOLVE_SYMLINKS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_RESOLVE_SYMLINKS.rst
rename to share/cmake-3.18/Help/variable/CMAKE_FIND_PACKAGE_RESOLVE_SYMLINKS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_SORT_DIRECTION.rst b/share/cmake-3.18/Help/variable/CMAKE_FIND_PACKAGE_SORT_DIRECTION.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_SORT_DIRECTION.rst
rename to share/cmake-3.18/Help/variable/CMAKE_FIND_PACKAGE_SORT_DIRECTION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_SORT_ORDER.rst b/share/cmake-3.18/Help/variable/CMAKE_FIND_PACKAGE_SORT_ORDER.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_SORT_ORDER.rst
rename to share/cmake-3.18/Help/variable/CMAKE_FIND_PACKAGE_SORT_ORDER.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_WARN_NO_MODULE.rst b/share/cmake-3.18/Help/variable/CMAKE_FIND_PACKAGE_WARN_NO_MODULE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_WARN_NO_MODULE.rst
rename to share/cmake-3.18/Help/variable/CMAKE_FIND_PACKAGE_WARN_NO_MODULE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FIND_ROOT_PATH.rst b/share/cmake-3.18/Help/variable/CMAKE_FIND_ROOT_PATH.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_FIND_ROOT_PATH.rst
rename to share/cmake-3.18/Help/variable/CMAKE_FIND_ROOT_PATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_INCLUDE.rst b/share/cmake-3.18/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_INCLUDE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_INCLUDE.rst
rename to share/cmake-3.18/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_INCLUDE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_LIBRARY.rst b/share/cmake-3.18/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_LIBRARY.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_LIBRARY.rst
rename to share/cmake-3.18/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_LIBRARY.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_PACKAGE.rst b/share/cmake-3.18/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_PACKAGE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_PACKAGE.rst
rename to share/cmake-3.18/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_PACKAGE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_PROGRAM.rst b/share/cmake-3.18/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_PROGRAM.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_PROGRAM.rst
rename to share/cmake-3.18/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_PROGRAM.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_XXX.txt b/share/cmake-3.18/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_XXX.txt
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_XXX.txt
rename to share/cmake-3.18/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_XXX.txt
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH.rst b/share/cmake-3.18/Help/variable/CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH.rst
rename to share/cmake-3.18/Help/variable/CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FIND_USE_CMAKE_PATH.rst b/share/cmake-3.18/Help/variable/CMAKE_FIND_USE_CMAKE_PATH.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_FIND_USE_CMAKE_PATH.rst
rename to share/cmake-3.18/Help/variable/CMAKE_FIND_USE_CMAKE_PATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FIND_USE_CMAKE_SYSTEM_PATH.rst b/share/cmake-3.18/Help/variable/CMAKE_FIND_USE_CMAKE_SYSTEM_PATH.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_FIND_USE_CMAKE_SYSTEM_PATH.rst
rename to share/cmake-3.18/Help/variable/CMAKE_FIND_USE_CMAKE_SYSTEM_PATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FIND_USE_PACKAGE_REGISTRY.rst b/share/cmake-3.18/Help/variable/CMAKE_FIND_USE_PACKAGE_REGISTRY.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_FIND_USE_PACKAGE_REGISTRY.rst
rename to share/cmake-3.18/Help/variable/CMAKE_FIND_USE_PACKAGE_REGISTRY.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FIND_USE_PACKAGE_ROOT_PATH.rst b/share/cmake-3.18/Help/variable/CMAKE_FIND_USE_PACKAGE_ROOT_PATH.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_FIND_USE_PACKAGE_ROOT_PATH.rst
rename to share/cmake-3.18/Help/variable/CMAKE_FIND_USE_PACKAGE_ROOT_PATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH.rst b/share/cmake-3.18/Help/variable/CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH.rst
rename to share/cmake-3.18/Help/variable/CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY.rst b/share/cmake-3.18/Help/variable/CMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY.rst
rename to share/cmake-3.18/Help/variable/CMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FOLDER.rst b/share/cmake-3.18/Help/variable/CMAKE_FOLDER.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_FOLDER.rst
rename to share/cmake-3.18/Help/variable/CMAKE_FOLDER.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FRAMEWORK.rst b/share/cmake-3.18/Help/variable/CMAKE_FRAMEWORK.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_FRAMEWORK.rst
rename to share/cmake-3.18/Help/variable/CMAKE_FRAMEWORK.rst
diff --git a/share/cmake-3.18/Help/variable/CMAKE_FRAMEWORK_MULTI_CONFIG_POSTFIX_CONFIG.rst b/share/cmake-3.18/Help/variable/CMAKE_FRAMEWORK_MULTI_CONFIG_POSTFIX_CONFIG.rst
new file mode 100644
index 0000000..5c7cd23
--- /dev/null
+++ b/share/cmake-3.18/Help/variable/CMAKE_FRAMEWORK_MULTI_CONFIG_POSTFIX_CONFIG.rst
@@ -0,0 +1,8 @@
+CMAKE_FRAMEWORK_MULTI_CONFIG_POSTFIX_<CONFIG>
+---------------------------------------------
+
+Default framework filename postfix under configuration ``<CONFIG>`` when
+using a multi-config generator.
+
+When a framework target is created its :prop_tgt:`FRAMEWORK_MULTI_CONFIG_POSTFIX_<CONFIG>`
+target property is initialized with the value of this variable if it is set.
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FRAMEWORK_PATH.rst b/share/cmake-3.18/Help/variable/CMAKE_FRAMEWORK_PATH.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_FRAMEWORK_PATH.rst
rename to share/cmake-3.18/Help/variable/CMAKE_FRAMEWORK_PATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_Fortran_FORMAT.rst b/share/cmake-3.18/Help/variable/CMAKE_Fortran_FORMAT.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_Fortran_FORMAT.rst
rename to share/cmake-3.18/Help/variable/CMAKE_Fortran_FORMAT.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_Fortran_MODDIR_DEFAULT.rst b/share/cmake-3.18/Help/variable/CMAKE_Fortran_MODDIR_DEFAULT.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_Fortran_MODDIR_DEFAULT.rst
rename to share/cmake-3.18/Help/variable/CMAKE_Fortran_MODDIR_DEFAULT.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_Fortran_MODDIR_FLAG.rst b/share/cmake-3.18/Help/variable/CMAKE_Fortran_MODDIR_FLAG.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_Fortran_MODDIR_FLAG.rst
rename to share/cmake-3.18/Help/variable/CMAKE_Fortran_MODDIR_FLAG.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_Fortran_MODOUT_FLAG.rst b/share/cmake-3.18/Help/variable/CMAKE_Fortran_MODOUT_FLAG.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_Fortran_MODOUT_FLAG.rst
rename to share/cmake-3.18/Help/variable/CMAKE_Fortran_MODOUT_FLAG.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_Fortran_MODULE_DIRECTORY.rst b/share/cmake-3.18/Help/variable/CMAKE_Fortran_MODULE_DIRECTORY.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_Fortran_MODULE_DIRECTORY.rst
rename to share/cmake-3.18/Help/variable/CMAKE_Fortran_MODULE_DIRECTORY.rst
diff --git a/share/cmake-3.18/Help/variable/CMAKE_Fortran_PREPROCESS.rst b/share/cmake-3.18/Help/variable/CMAKE_Fortran_PREPROCESS.rst
new file mode 100644
index 0000000..74b2d8b
--- /dev/null
+++ b/share/cmake-3.18/Help/variable/CMAKE_Fortran_PREPROCESS.rst
@@ -0,0 +1,8 @@
+CMAKE_Fortran_PREPROCESS
+------------------------
+
+Default value for :prop_tgt:`Fortran_PREPROCESS` of targets.
+
+This variable is used to initialize the :prop_tgt:`Fortran_PREPROCESS`
+property on all the targets.  See that target property for additional
+information.
diff --git a/share/cmake-3.17/Help/variable/CMAKE_GENERATOR.rst b/share/cmake-3.18/Help/variable/CMAKE_GENERATOR.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_GENERATOR.rst
rename to share/cmake-3.18/Help/variable/CMAKE_GENERATOR.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_GENERATOR_INSTANCE.rst b/share/cmake-3.18/Help/variable/CMAKE_GENERATOR_INSTANCE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_GENERATOR_INSTANCE.rst
rename to share/cmake-3.18/Help/variable/CMAKE_GENERATOR_INSTANCE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_GENERATOR_PLATFORM.rst b/share/cmake-3.18/Help/variable/CMAKE_GENERATOR_PLATFORM.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_GENERATOR_PLATFORM.rst
rename to share/cmake-3.18/Help/variable/CMAKE_GENERATOR_PLATFORM.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_GENERATOR_TOOLSET.rst b/share/cmake-3.18/Help/variable/CMAKE_GENERATOR_TOOLSET.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_GENERATOR_TOOLSET.rst
rename to share/cmake-3.18/Help/variable/CMAKE_GENERATOR_TOOLSET.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_GHS_NO_SOURCE_GROUP_FILE.rst b/share/cmake-3.18/Help/variable/CMAKE_GHS_NO_SOURCE_GROUP_FILE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_GHS_NO_SOURCE_GROUP_FILE.rst
rename to share/cmake-3.18/Help/variable/CMAKE_GHS_NO_SOURCE_GROUP_FILE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_GLOBAL_AUTOGEN_TARGET.rst b/share/cmake-3.18/Help/variable/CMAKE_GLOBAL_AUTOGEN_TARGET.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_GLOBAL_AUTOGEN_TARGET.rst
rename to share/cmake-3.18/Help/variable/CMAKE_GLOBAL_AUTOGEN_TARGET.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_GLOBAL_AUTOGEN_TARGET_NAME.rst b/share/cmake-3.18/Help/variable/CMAKE_GLOBAL_AUTOGEN_TARGET_NAME.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_GLOBAL_AUTOGEN_TARGET_NAME.rst
rename to share/cmake-3.18/Help/variable/CMAKE_GLOBAL_AUTOGEN_TARGET_NAME.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_GLOBAL_AUTORCC_TARGET.rst b/share/cmake-3.18/Help/variable/CMAKE_GLOBAL_AUTORCC_TARGET.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_GLOBAL_AUTORCC_TARGET.rst
rename to share/cmake-3.18/Help/variable/CMAKE_GLOBAL_AUTORCC_TARGET.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_GLOBAL_AUTORCC_TARGET_NAME.rst b/share/cmake-3.18/Help/variable/CMAKE_GLOBAL_AUTORCC_TARGET_NAME.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_GLOBAL_AUTORCC_TARGET_NAME.rst
rename to share/cmake-3.18/Help/variable/CMAKE_GLOBAL_AUTORCC_TARGET_NAME.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_GNUtoMS.rst b/share/cmake-3.18/Help/variable/CMAKE_GNUtoMS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_GNUtoMS.rst
rename to share/cmake-3.18/Help/variable/CMAKE_GNUtoMS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_HOME_DIRECTORY.rst b/share/cmake-3.18/Help/variable/CMAKE_HOME_DIRECTORY.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_HOME_DIRECTORY.rst
rename to share/cmake-3.18/Help/variable/CMAKE_HOME_DIRECTORY.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_HOST_APPLE.rst b/share/cmake-3.18/Help/variable/CMAKE_HOST_APPLE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_HOST_APPLE.rst
rename to share/cmake-3.18/Help/variable/CMAKE_HOST_APPLE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_HOST_SOLARIS.rst b/share/cmake-3.18/Help/variable/CMAKE_HOST_SOLARIS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_HOST_SOLARIS.rst
rename to share/cmake-3.18/Help/variable/CMAKE_HOST_SOLARIS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_HOST_SYSTEM.rst b/share/cmake-3.18/Help/variable/CMAKE_HOST_SYSTEM.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_HOST_SYSTEM.rst
rename to share/cmake-3.18/Help/variable/CMAKE_HOST_SYSTEM.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_HOST_SYSTEM_NAME.rst b/share/cmake-3.18/Help/variable/CMAKE_HOST_SYSTEM_NAME.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_HOST_SYSTEM_NAME.rst
rename to share/cmake-3.18/Help/variable/CMAKE_HOST_SYSTEM_NAME.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_HOST_SYSTEM_PROCESSOR.rst b/share/cmake-3.18/Help/variable/CMAKE_HOST_SYSTEM_PROCESSOR.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_HOST_SYSTEM_PROCESSOR.rst
rename to share/cmake-3.18/Help/variable/CMAKE_HOST_SYSTEM_PROCESSOR.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_HOST_SYSTEM_VERSION.rst b/share/cmake-3.18/Help/variable/CMAKE_HOST_SYSTEM_VERSION.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_HOST_SYSTEM_VERSION.rst
rename to share/cmake-3.18/Help/variable/CMAKE_HOST_SYSTEM_VERSION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_HOST_UNIX.rst b/share/cmake-3.18/Help/variable/CMAKE_HOST_UNIX.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_HOST_UNIX.rst
rename to share/cmake-3.18/Help/variable/CMAKE_HOST_UNIX.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_HOST_WIN32.rst b/share/cmake-3.18/Help/variable/CMAKE_HOST_WIN32.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_HOST_WIN32.rst
rename to share/cmake-3.18/Help/variable/CMAKE_HOST_WIN32.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_IGNORE_PATH.rst b/share/cmake-3.18/Help/variable/CMAKE_IGNORE_PATH.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_IGNORE_PATH.rst
rename to share/cmake-3.18/Help/variable/CMAKE_IGNORE_PATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_IMPORT_LIBRARY_PREFIX.rst b/share/cmake-3.18/Help/variable/CMAKE_IMPORT_LIBRARY_PREFIX.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_IMPORT_LIBRARY_PREFIX.rst
rename to share/cmake-3.18/Help/variable/CMAKE_IMPORT_LIBRARY_PREFIX.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_IMPORT_LIBRARY_SUFFIX.rst b/share/cmake-3.18/Help/variable/CMAKE_IMPORT_LIBRARY_SUFFIX.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_IMPORT_LIBRARY_SUFFIX.rst
rename to share/cmake-3.18/Help/variable/CMAKE_IMPORT_LIBRARY_SUFFIX.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_INCLUDE_CURRENT_DIR.rst b/share/cmake-3.18/Help/variable/CMAKE_INCLUDE_CURRENT_DIR.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_INCLUDE_CURRENT_DIR.rst
rename to share/cmake-3.18/Help/variable/CMAKE_INCLUDE_CURRENT_DIR.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE.rst b/share/cmake-3.18/Help/variable/CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE.rst
rename to share/cmake-3.18/Help/variable/CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_INCLUDE_DIRECTORIES_BEFORE.rst b/share/cmake-3.18/Help/variable/CMAKE_INCLUDE_DIRECTORIES_BEFORE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_INCLUDE_DIRECTORIES_BEFORE.rst
rename to share/cmake-3.18/Help/variable/CMAKE_INCLUDE_DIRECTORIES_BEFORE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE.rst b/share/cmake-3.18/Help/variable/CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE.rst
rename to share/cmake-3.18/Help/variable/CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_INCLUDE_PATH.rst b/share/cmake-3.18/Help/variable/CMAKE_INCLUDE_PATH.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_INCLUDE_PATH.rst
rename to share/cmake-3.18/Help/variable/CMAKE_INCLUDE_PATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_INSTALL_DEFAULT_COMPONENT_NAME.rst b/share/cmake-3.18/Help/variable/CMAKE_INSTALL_DEFAULT_COMPONENT_NAME.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_INSTALL_DEFAULT_COMPONENT_NAME.rst
rename to share/cmake-3.18/Help/variable/CMAKE_INSTALL_DEFAULT_COMPONENT_NAME.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS.rst b/share/cmake-3.18/Help/variable/CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS.rst
rename to share/cmake-3.18/Help/variable/CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_INSTALL_MESSAGE.rst b/share/cmake-3.18/Help/variable/CMAKE_INSTALL_MESSAGE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_INSTALL_MESSAGE.rst
rename to share/cmake-3.18/Help/variable/CMAKE_INSTALL_MESSAGE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_INSTALL_NAME_DIR.rst b/share/cmake-3.18/Help/variable/CMAKE_INSTALL_NAME_DIR.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_INSTALL_NAME_DIR.rst
rename to share/cmake-3.18/Help/variable/CMAKE_INSTALL_NAME_DIR.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_INSTALL_PREFIX.rst b/share/cmake-3.18/Help/variable/CMAKE_INSTALL_PREFIX.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_INSTALL_PREFIX.rst
rename to share/cmake-3.18/Help/variable/CMAKE_INSTALL_PREFIX.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT.rst b/share/cmake-3.18/Help/variable/CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT.rst
rename to share/cmake-3.18/Help/variable/CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_INSTALL_REMOVE_ENVIRONMENT_RPATH.rst b/share/cmake-3.18/Help/variable/CMAKE_INSTALL_REMOVE_ENVIRONMENT_RPATH.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_INSTALL_REMOVE_ENVIRONMENT_RPATH.rst
rename to share/cmake-3.18/Help/variable/CMAKE_INSTALL_REMOVE_ENVIRONMENT_RPATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_INSTALL_RPATH.rst b/share/cmake-3.18/Help/variable/CMAKE_INSTALL_RPATH.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_INSTALL_RPATH.rst
rename to share/cmake-3.18/Help/variable/CMAKE_INSTALL_RPATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_INSTALL_RPATH_USE_LINK_PATH.rst b/share/cmake-3.18/Help/variable/CMAKE_INSTALL_RPATH_USE_LINK_PATH.rst
similarity index 90%
rename from share/cmake-3.17/Help/variable/CMAKE_INSTALL_RPATH_USE_LINK_PATH.rst
rename to share/cmake-3.18/Help/variable/CMAKE_INSTALL_RPATH_USE_LINK_PATH.rst
index a99c108..34524d1 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_INSTALL_RPATH_USE_LINK_PATH.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_INSTALL_RPATH_USE_LINK_PATH.rst
@@ -9,5 +9,5 @@
 contain linked library files.  The directories are appended after the
 value of the :prop_tgt:`INSTALL_RPATH` target property.
 
-This varibale is used to initialize the target property
+This variable is used to initialize the target property
 :prop_tgt:`INSTALL_RPATH_USE_LINK_PATH` for all targets.
diff --git a/share/cmake-3.17/Help/variable/CMAKE_INTERNAL_PLATFORM_ABI.rst b/share/cmake-3.18/Help/variable/CMAKE_INTERNAL_PLATFORM_ABI.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_INTERNAL_PLATFORM_ABI.rst
rename to share/cmake-3.18/Help/variable/CMAKE_INTERNAL_PLATFORM_ABI.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_INTERPROCEDURAL_OPTIMIZATION.rst b/share/cmake-3.18/Help/variable/CMAKE_INTERPROCEDURAL_OPTIMIZATION.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_INTERPROCEDURAL_OPTIMIZATION.rst
rename to share/cmake-3.18/Help/variable/CMAKE_INTERPROCEDURAL_OPTIMIZATION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_INTERPROCEDURAL_OPTIMIZATION_CONFIG.rst b/share/cmake-3.18/Help/variable/CMAKE_INTERPROCEDURAL_OPTIMIZATION_CONFIG.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_INTERPROCEDURAL_OPTIMIZATION_CONFIG.rst
rename to share/cmake-3.18/Help/variable/CMAKE_INTERPROCEDURAL_OPTIMIZATION_CONFIG.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_IOS_INSTALL_COMBINED.rst b/share/cmake-3.18/Help/variable/CMAKE_IOS_INSTALL_COMBINED.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_IOS_INSTALL_COMBINED.rst
rename to share/cmake-3.18/Help/variable/CMAKE_IOS_INSTALL_COMBINED.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_JOB_POOLS.rst b/share/cmake-3.18/Help/variable/CMAKE_JOB_POOLS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_JOB_POOLS.rst
rename to share/cmake-3.18/Help/variable/CMAKE_JOB_POOLS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_JOB_POOL_COMPILE.rst b/share/cmake-3.18/Help/variable/CMAKE_JOB_POOL_COMPILE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_JOB_POOL_COMPILE.rst
rename to share/cmake-3.18/Help/variable/CMAKE_JOB_POOL_COMPILE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_JOB_POOL_LINK.rst b/share/cmake-3.18/Help/variable/CMAKE_JOB_POOL_LINK.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_JOB_POOL_LINK.rst
rename to share/cmake-3.18/Help/variable/CMAKE_JOB_POOL_LINK.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_JOB_POOL_PRECOMPILE_HEADER.rst b/share/cmake-3.18/Help/variable/CMAKE_JOB_POOL_PRECOMPILE_HEADER.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_JOB_POOL_PRECOMPILE_HEADER.rst
rename to share/cmake-3.18/Help/variable/CMAKE_JOB_POOL_PRECOMPILE_HEADER.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_ANDROID_TOOLCHAIN_MACHINE.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_ANDROID_TOOLCHAIN_MACHINE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_ANDROID_TOOLCHAIN_MACHINE.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_ANDROID_TOOLCHAIN_MACHINE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_ANDROID_TOOLCHAIN_PREFIX.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_ANDROID_TOOLCHAIN_PREFIX.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_ANDROID_TOOLCHAIN_PREFIX.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_ANDROID_TOOLCHAIN_PREFIX.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_ANDROID_TOOLCHAIN_SUFFIX.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_ANDROID_TOOLCHAIN_SUFFIX.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_ANDROID_TOOLCHAIN_SUFFIX.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_ANDROID_TOOLCHAIN_SUFFIX.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_ARCHIVE_APPEND.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_ARCHIVE_APPEND.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_ARCHIVE_APPEND.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_ARCHIVE_APPEND.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_ARCHIVE_CREATE.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_ARCHIVE_CREATE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_ARCHIVE_CREATE.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_ARCHIVE_CREATE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_ARCHIVE_FINISH.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_ARCHIVE_FINISH.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_ARCHIVE_FINISH.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_ARCHIVE_FINISH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_CLANG_TIDY.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_CLANG_TIDY.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_CLANG_TIDY.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_CLANG_TIDY.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_ABI.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_ABI.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_ABI.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_ABI.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_AR.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_AR.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_AR.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_AR.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_ARCHITECTURE_ID.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_ARCHITECTURE_ID.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_ARCHITECTURE_ID.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_ARCHITECTURE_ID.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_EXTERNAL_TOOLCHAIN.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_EXTERNAL_TOOLCHAIN.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_EXTERNAL_TOOLCHAIN.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_EXTERNAL_TOOLCHAIN.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_ID.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_ID.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_ID.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_ID.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_LAUNCHER.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_LAUNCHER.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_LAUNCHER.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_LAUNCHER.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_LOADED.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_LOADED.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_LOADED.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_LOADED.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_PREDEFINES_COMMAND.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_PREDEFINES_COMMAND.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_PREDEFINES_COMMAND.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_PREDEFINES_COMMAND.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_RANLIB.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_RANLIB.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_RANLIB.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_RANLIB.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_TARGET.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_TARGET.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_TARGET.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_TARGET.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_VERSION.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_VERSION.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_VERSION.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_VERSION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_VERSION_INTERNAL.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_VERSION_INTERNAL.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_VERSION_INTERNAL.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_VERSION_INTERNAL.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILE_OBJECT.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILE_OBJECT.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILE_OBJECT.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILE_OBJECT.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_CPPCHECK.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_CPPCHECK.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_CPPCHECK.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_CPPCHECK.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_CPPLINT.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_CPPLINT.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_CPPLINT.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_CPPLINT.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_CREATE_SHARED_LIBRARY.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_CREATE_SHARED_LIBRARY.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_CREATE_SHARED_LIBRARY.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_CREATE_SHARED_LIBRARY.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_CREATE_SHARED_MODULE.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_CREATE_SHARED_MODULE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_CREATE_SHARED_MODULE.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_CREATE_SHARED_MODULE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_CREATE_STATIC_LIBRARY.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_CREATE_STATIC_LIBRARY.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_CREATE_STATIC_LIBRARY.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_CREATE_STATIC_LIBRARY.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_CONFIG.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_CONFIG.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_CONFIG.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_CONFIG.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_CONFIG_INIT.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_CONFIG_INIT.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_CONFIG_INIT.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_CONFIG_INIT.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_DEBUG.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_DEBUG.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_DEBUG.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_DEBUG.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_DEBUG_INIT.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_DEBUG_INIT.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_DEBUG_INIT.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_DEBUG_INIT.rst
diff --git a/share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_INIT.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_INIT.rst
new file mode 100644
index 0000000..4a034e8
--- /dev/null
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_INIT.rst
@@ -0,0 +1,15 @@
+CMAKE_<LANG>_FLAGS_INIT
+-----------------------
+
+Value used to initialize the :variable:`CMAKE_<LANG>_FLAGS` cache entry
+the first time a build tree is configured for language ``<LANG>``.
+This variable is meant to be set by a :variable:`toolchain file
+<CMAKE_TOOLCHAIN_FILE>`.  CMake may prepend or append content to
+the value based on the environment and target platform.  For example,
+the contents of a ``xxxFLAGS`` environment variable will be prepended,
+where ``xxx`` will be language-specific but not necessarily the same as
+``<LANG>`` (e.g. :envvar:`CXXFLAGS` for ``CXX``, :envvar:`FFLAGS` for
+``Fortran``, and so on).
+
+See also the configuration-specific
+:variable:`CMAKE_<LANG>_FLAGS_<CONFIG>_INIT` variable.
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_MINSIZEREL.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_MINSIZEREL.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_MINSIZEREL.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_MINSIZEREL.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_MINSIZEREL_INIT.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_MINSIZEREL_INIT.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_MINSIZEREL_INIT.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_MINSIZEREL_INIT.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_RELEASE.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_RELEASE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_RELEASE.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_RELEASE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_RELEASE_INIT.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_RELEASE_INIT.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_RELEASE_INIT.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_RELEASE_INIT.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_RELWITHDEBINFO.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_RELWITHDEBINFO.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_RELWITHDEBINFO.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_RELWITHDEBINFO.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_RELWITHDEBINFO_INIT.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_RELWITHDEBINFO_INIT.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_RELWITHDEBINFO_INIT.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_RELWITHDEBINFO_INIT.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_IGNORE_EXTENSIONS.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_IGNORE_EXTENSIONS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_IGNORE_EXTENSIONS.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_IGNORE_EXTENSIONS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_IMPLICIT_INCLUDE_DIRECTORIES.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_IMPLICIT_INCLUDE_DIRECTORIES.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_IMPLICIT_INCLUDE_DIRECTORIES.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_IMPLICIT_INCLUDE_DIRECTORIES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_IMPLICIT_LINK_DIRECTORIES.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_IMPLICIT_LINK_DIRECTORIES.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_IMPLICIT_LINK_DIRECTORIES.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_IMPLICIT_LINK_DIRECTORIES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_IMPLICIT_LINK_LIBRARIES.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_IMPLICIT_LINK_LIBRARIES.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_IMPLICIT_LINK_LIBRARIES.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_IMPLICIT_LINK_LIBRARIES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_INCLUDE_WHAT_YOU_USE.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_INCLUDE_WHAT_YOU_USE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_INCLUDE_WHAT_YOU_USE.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_INCLUDE_WHAT_YOU_USE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_LIBRARY_ARCHITECTURE.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_LIBRARY_ARCHITECTURE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_LIBRARY_ARCHITECTURE.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_LIBRARY_ARCHITECTURE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_LINKER_PREFERENCE.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_LINKER_PREFERENCE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_LINKER_PREFERENCE.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_LINKER_PREFERENCE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_LINKER_PREFERENCE_PROPAGATES.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_LINKER_PREFERENCE_PROPAGATES.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_LINKER_PREFERENCE_PROPAGATES.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_LINKER_PREFERENCE_PROPAGATES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_LINKER_WRAPPER_FLAG.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_LINKER_WRAPPER_FLAG.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_LINKER_WRAPPER_FLAG.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_LINKER_WRAPPER_FLAG.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_LINKER_WRAPPER_FLAG_SEP.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_LINKER_WRAPPER_FLAG_SEP.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_LINKER_WRAPPER_FLAG_SEP.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_LINKER_WRAPPER_FLAG_SEP.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_LINK_EXECUTABLE.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_LINK_EXECUTABLE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_LINK_EXECUTABLE.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_LINK_EXECUTABLE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_LINK_LIBRARY_FILE_FLAG.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_LINK_LIBRARY_FILE_FLAG.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_LINK_LIBRARY_FILE_FLAG.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_LINK_LIBRARY_FILE_FLAG.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_LINK_LIBRARY_FLAG.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_LINK_LIBRARY_FLAG.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_LINK_LIBRARY_FLAG.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_LINK_LIBRARY_FLAG.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_LINK_LIBRARY_SUFFIX.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_LINK_LIBRARY_SUFFIX.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_LINK_LIBRARY_SUFFIX.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_LINK_LIBRARY_SUFFIX.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_OUTPUT_EXTENSION.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_OUTPUT_EXTENSION.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_OUTPUT_EXTENSION.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_OUTPUT_EXTENSION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_PLATFORM_ID.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_PLATFORM_ID.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_PLATFORM_ID.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_PLATFORM_ID.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_SIMULATE_ID.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_SIMULATE_ID.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_SIMULATE_ID.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_SIMULATE_ID.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_SIMULATE_VERSION.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_SIMULATE_VERSION.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_SIMULATE_VERSION.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_SIMULATE_VERSION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_SIZEOF_DATA_PTR.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_SIZEOF_DATA_PTR.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_SIZEOF_DATA_PTR.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_SIZEOF_DATA_PTR.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_SOURCE_FILE_EXTENSIONS.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_SOURCE_FILE_EXTENSIONS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_SOURCE_FILE_EXTENSIONS.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_SOURCE_FILE_EXTENSIONS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_STANDARD_INCLUDE_DIRECTORIES.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_STANDARD_INCLUDE_DIRECTORIES.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_STANDARD_INCLUDE_DIRECTORIES.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_STANDARD_INCLUDE_DIRECTORIES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_STANDARD_LIBRARIES.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_STANDARD_LIBRARIES.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_STANDARD_LIBRARIES.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_STANDARD_LIBRARIES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_VISIBILITY_PRESET.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_VISIBILITY_PRESET.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LANG_VISIBILITY_PRESET.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LANG_VISIBILITY_PRESET.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LIBRARY_ARCHITECTURE.rst b/share/cmake-3.18/Help/variable/CMAKE_LIBRARY_ARCHITECTURE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LIBRARY_ARCHITECTURE.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LIBRARY_ARCHITECTURE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LIBRARY_ARCHITECTURE_REGEX.rst b/share/cmake-3.18/Help/variable/CMAKE_LIBRARY_ARCHITECTURE_REGEX.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LIBRARY_ARCHITECTURE_REGEX.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LIBRARY_ARCHITECTURE_REGEX.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LIBRARY_OUTPUT_DIRECTORY.rst b/share/cmake-3.18/Help/variable/CMAKE_LIBRARY_OUTPUT_DIRECTORY.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LIBRARY_OUTPUT_DIRECTORY.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LIBRARY_OUTPUT_DIRECTORY.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LIBRARY_OUTPUT_DIRECTORY_CONFIG.rst b/share/cmake-3.18/Help/variable/CMAKE_LIBRARY_OUTPUT_DIRECTORY_CONFIG.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LIBRARY_OUTPUT_DIRECTORY_CONFIG.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LIBRARY_OUTPUT_DIRECTORY_CONFIG.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LIBRARY_PATH.rst b/share/cmake-3.18/Help/variable/CMAKE_LIBRARY_PATH.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LIBRARY_PATH.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LIBRARY_PATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LIBRARY_PATH_FLAG.rst b/share/cmake-3.18/Help/variable/CMAKE_LIBRARY_PATH_FLAG.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LIBRARY_PATH_FLAG.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LIBRARY_PATH_FLAG.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LINK_DEF_FILE_FLAG.rst b/share/cmake-3.18/Help/variable/CMAKE_LINK_DEF_FILE_FLAG.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LINK_DEF_FILE_FLAG.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LINK_DEF_FILE_FLAG.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LINK_DEPENDS_NO_SHARED.rst b/share/cmake-3.18/Help/variable/CMAKE_LINK_DEPENDS_NO_SHARED.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LINK_DEPENDS_NO_SHARED.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LINK_DEPENDS_NO_SHARED.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LINK_DIRECTORIES_BEFORE.rst b/share/cmake-3.18/Help/variable/CMAKE_LINK_DIRECTORIES_BEFORE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LINK_DIRECTORIES_BEFORE.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LINK_DIRECTORIES_BEFORE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LINK_INTERFACE_LIBRARIES.rst b/share/cmake-3.18/Help/variable/CMAKE_LINK_INTERFACE_LIBRARIES.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LINK_INTERFACE_LIBRARIES.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LINK_INTERFACE_LIBRARIES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LINK_LIBRARY_FILE_FLAG.rst b/share/cmake-3.18/Help/variable/CMAKE_LINK_LIBRARY_FILE_FLAG.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LINK_LIBRARY_FILE_FLAG.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LINK_LIBRARY_FILE_FLAG.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LINK_LIBRARY_FLAG.rst b/share/cmake-3.18/Help/variable/CMAKE_LINK_LIBRARY_FLAG.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LINK_LIBRARY_FLAG.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LINK_LIBRARY_FLAG.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LINK_LIBRARY_SUFFIX.rst b/share/cmake-3.18/Help/variable/CMAKE_LINK_LIBRARY_SUFFIX.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LINK_LIBRARY_SUFFIX.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LINK_LIBRARY_SUFFIX.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LINK_SEARCH_END_STATIC.rst b/share/cmake-3.18/Help/variable/CMAKE_LINK_SEARCH_END_STATIC.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LINK_SEARCH_END_STATIC.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LINK_SEARCH_END_STATIC.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LINK_SEARCH_START_STATIC.rst b/share/cmake-3.18/Help/variable/CMAKE_LINK_SEARCH_START_STATIC.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LINK_SEARCH_START_STATIC.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LINK_SEARCH_START_STATIC.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LINK_WHAT_YOU_USE.rst b/share/cmake-3.18/Help/variable/CMAKE_LINK_WHAT_YOU_USE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_LINK_WHAT_YOU_USE.rst
rename to share/cmake-3.18/Help/variable/CMAKE_LINK_WHAT_YOU_USE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_MACOSX_BUNDLE.rst b/share/cmake-3.18/Help/variable/CMAKE_MACOSX_BUNDLE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_MACOSX_BUNDLE.rst
rename to share/cmake-3.18/Help/variable/CMAKE_MACOSX_BUNDLE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_MACOSX_RPATH.rst b/share/cmake-3.18/Help/variable/CMAKE_MACOSX_RPATH.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_MACOSX_RPATH.rst
rename to share/cmake-3.18/Help/variable/CMAKE_MACOSX_RPATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_MAJOR_VERSION.rst b/share/cmake-3.18/Help/variable/CMAKE_MAJOR_VERSION.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_MAJOR_VERSION.rst
rename to share/cmake-3.18/Help/variable/CMAKE_MAJOR_VERSION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_MAKE_PROGRAM.rst b/share/cmake-3.18/Help/variable/CMAKE_MAKE_PROGRAM.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_MAKE_PROGRAM.rst
rename to share/cmake-3.18/Help/variable/CMAKE_MAKE_PROGRAM.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_MAP_IMPORTED_CONFIG_CONFIG.rst b/share/cmake-3.18/Help/variable/CMAKE_MAP_IMPORTED_CONFIG_CONFIG.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_MAP_IMPORTED_CONFIG_CONFIG.rst
rename to share/cmake-3.18/Help/variable/CMAKE_MAP_IMPORTED_CONFIG_CONFIG.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_MATCH_COUNT.rst b/share/cmake-3.18/Help/variable/CMAKE_MATCH_COUNT.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_MATCH_COUNT.rst
rename to share/cmake-3.18/Help/variable/CMAKE_MATCH_COUNT.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_MATCH_n.rst b/share/cmake-3.18/Help/variable/CMAKE_MATCH_n.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_MATCH_n.rst
rename to share/cmake-3.18/Help/variable/CMAKE_MATCH_n.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_MAXIMUM_RECURSION_DEPTH.rst b/share/cmake-3.18/Help/variable/CMAKE_MAXIMUM_RECURSION_DEPTH.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_MAXIMUM_RECURSION_DEPTH.rst
rename to share/cmake-3.18/Help/variable/CMAKE_MAXIMUM_RECURSION_DEPTH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_MESSAGE_CONTEXT.rst b/share/cmake-3.18/Help/variable/CMAKE_MESSAGE_CONTEXT.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_MESSAGE_CONTEXT.rst
rename to share/cmake-3.18/Help/variable/CMAKE_MESSAGE_CONTEXT.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_MESSAGE_CONTEXT_SHOW.rst b/share/cmake-3.18/Help/variable/CMAKE_MESSAGE_CONTEXT_SHOW.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_MESSAGE_CONTEXT_SHOW.rst
rename to share/cmake-3.18/Help/variable/CMAKE_MESSAGE_CONTEXT_SHOW.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_MESSAGE_INDENT.rst b/share/cmake-3.18/Help/variable/CMAKE_MESSAGE_INDENT.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_MESSAGE_INDENT.rst
rename to share/cmake-3.18/Help/variable/CMAKE_MESSAGE_INDENT.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_MESSAGE_LOG_LEVEL.rst b/share/cmake-3.18/Help/variable/CMAKE_MESSAGE_LOG_LEVEL.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_MESSAGE_LOG_LEVEL.rst
rename to share/cmake-3.18/Help/variable/CMAKE_MESSAGE_LOG_LEVEL.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_MFC_FLAG.rst b/share/cmake-3.18/Help/variable/CMAKE_MFC_FLAG.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_MFC_FLAG.rst
rename to share/cmake-3.18/Help/variable/CMAKE_MFC_FLAG.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_MINIMUM_REQUIRED_VERSION.rst b/share/cmake-3.18/Help/variable/CMAKE_MINIMUM_REQUIRED_VERSION.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_MINIMUM_REQUIRED_VERSION.rst
rename to share/cmake-3.18/Help/variable/CMAKE_MINIMUM_REQUIRED_VERSION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_MINOR_VERSION.rst b/share/cmake-3.18/Help/variable/CMAKE_MINOR_VERSION.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_MINOR_VERSION.rst
rename to share/cmake-3.18/Help/variable/CMAKE_MINOR_VERSION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_MODULE_LINKER_FLAGS.rst b/share/cmake-3.18/Help/variable/CMAKE_MODULE_LINKER_FLAGS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_MODULE_LINKER_FLAGS.rst
rename to share/cmake-3.18/Help/variable/CMAKE_MODULE_LINKER_FLAGS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_MODULE_LINKER_FLAGS_CONFIG.rst b/share/cmake-3.18/Help/variable/CMAKE_MODULE_LINKER_FLAGS_CONFIG.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_MODULE_LINKER_FLAGS_CONFIG.rst
rename to share/cmake-3.18/Help/variable/CMAKE_MODULE_LINKER_FLAGS_CONFIG.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_MODULE_LINKER_FLAGS_CONFIG_INIT.rst b/share/cmake-3.18/Help/variable/CMAKE_MODULE_LINKER_FLAGS_CONFIG_INIT.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_MODULE_LINKER_FLAGS_CONFIG_INIT.rst
rename to share/cmake-3.18/Help/variable/CMAKE_MODULE_LINKER_FLAGS_CONFIG_INIT.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_MODULE_LINKER_FLAGS_INIT.rst b/share/cmake-3.18/Help/variable/CMAKE_MODULE_LINKER_FLAGS_INIT.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_MODULE_LINKER_FLAGS_INIT.rst
rename to share/cmake-3.18/Help/variable/CMAKE_MODULE_LINKER_FLAGS_INIT.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_MODULE_PATH.rst b/share/cmake-3.18/Help/variable/CMAKE_MODULE_PATH.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_MODULE_PATH.rst
rename to share/cmake-3.18/Help/variable/CMAKE_MODULE_PATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_MSVCIDE_RUN_PATH.rst b/share/cmake-3.18/Help/variable/CMAKE_MSVCIDE_RUN_PATH.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_MSVCIDE_RUN_PATH.rst
rename to share/cmake-3.18/Help/variable/CMAKE_MSVCIDE_RUN_PATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_MSVC_RUNTIME_LIBRARY.rst b/share/cmake-3.18/Help/variable/CMAKE_MSVC_RUNTIME_LIBRARY.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_MSVC_RUNTIME_LIBRARY.rst
rename to share/cmake-3.18/Help/variable/CMAKE_MSVC_RUNTIME_LIBRARY.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_NETRC.rst b/share/cmake-3.18/Help/variable/CMAKE_NETRC.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_NETRC.rst
rename to share/cmake-3.18/Help/variable/CMAKE_NETRC.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_NETRC_FILE.rst b/share/cmake-3.18/Help/variable/CMAKE_NETRC_FILE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_NETRC_FILE.rst
rename to share/cmake-3.18/Help/variable/CMAKE_NETRC_FILE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_NINJA_OUTPUT_PATH_PREFIX.rst b/share/cmake-3.18/Help/variable/CMAKE_NINJA_OUTPUT_PATH_PREFIX.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_NINJA_OUTPUT_PATH_PREFIX.rst
rename to share/cmake-3.18/Help/variable/CMAKE_NINJA_OUTPUT_PATH_PREFIX.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_NOT_USING_CONFIG_FLAGS.rst b/share/cmake-3.18/Help/variable/CMAKE_NOT_USING_CONFIG_FLAGS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_NOT_USING_CONFIG_FLAGS.rst
rename to share/cmake-3.18/Help/variable/CMAKE_NOT_USING_CONFIG_FLAGS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_NO_BUILTIN_CHRPATH.rst b/share/cmake-3.18/Help/variable/CMAKE_NO_BUILTIN_CHRPATH.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_NO_BUILTIN_CHRPATH.rst
rename to share/cmake-3.18/Help/variable/CMAKE_NO_BUILTIN_CHRPATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_NO_SYSTEM_FROM_IMPORTED.rst b/share/cmake-3.18/Help/variable/CMAKE_NO_SYSTEM_FROM_IMPORTED.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_NO_SYSTEM_FROM_IMPORTED.rst
rename to share/cmake-3.18/Help/variable/CMAKE_NO_SYSTEM_FROM_IMPORTED.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_OBJCXX_EXTENSIONS.rst b/share/cmake-3.18/Help/variable/CMAKE_OBJCXX_EXTENSIONS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_OBJCXX_EXTENSIONS.rst
rename to share/cmake-3.18/Help/variable/CMAKE_OBJCXX_EXTENSIONS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_OBJCXX_STANDARD.rst b/share/cmake-3.18/Help/variable/CMAKE_OBJCXX_STANDARD.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_OBJCXX_STANDARD.rst
rename to share/cmake-3.18/Help/variable/CMAKE_OBJCXX_STANDARD.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_OBJCXX_STANDARD_REQUIRED.rst b/share/cmake-3.18/Help/variable/CMAKE_OBJCXX_STANDARD_REQUIRED.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_OBJCXX_STANDARD_REQUIRED.rst
rename to share/cmake-3.18/Help/variable/CMAKE_OBJCXX_STANDARD_REQUIRED.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_OBJC_EXTENSIONS.rst b/share/cmake-3.18/Help/variable/CMAKE_OBJC_EXTENSIONS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_OBJC_EXTENSIONS.rst
rename to share/cmake-3.18/Help/variable/CMAKE_OBJC_EXTENSIONS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_OBJC_STANDARD.rst b/share/cmake-3.18/Help/variable/CMAKE_OBJC_STANDARD.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_OBJC_STANDARD.rst
rename to share/cmake-3.18/Help/variable/CMAKE_OBJC_STANDARD.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_OBJC_STANDARD_REQUIRED.rst b/share/cmake-3.18/Help/variable/CMAKE_OBJC_STANDARD_REQUIRED.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_OBJC_STANDARD_REQUIRED.rst
rename to share/cmake-3.18/Help/variable/CMAKE_OBJC_STANDARD_REQUIRED.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_OBJECT_PATH_MAX.rst b/share/cmake-3.18/Help/variable/CMAKE_OBJECT_PATH_MAX.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_OBJECT_PATH_MAX.rst
rename to share/cmake-3.18/Help/variable/CMAKE_OBJECT_PATH_MAX.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_OSX_ARCHITECTURES.rst b/share/cmake-3.18/Help/variable/CMAKE_OSX_ARCHITECTURES.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_OSX_ARCHITECTURES.rst
rename to share/cmake-3.18/Help/variable/CMAKE_OSX_ARCHITECTURES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_OSX_DEPLOYMENT_TARGET.rst b/share/cmake-3.18/Help/variable/CMAKE_OSX_DEPLOYMENT_TARGET.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_OSX_DEPLOYMENT_TARGET.rst
rename to share/cmake-3.18/Help/variable/CMAKE_OSX_DEPLOYMENT_TARGET.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_OSX_SYSROOT.rst b/share/cmake-3.18/Help/variable/CMAKE_OSX_SYSROOT.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_OSX_SYSROOT.rst
rename to share/cmake-3.18/Help/variable/CMAKE_OSX_SYSROOT.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_OSX_VARIABLE.txt b/share/cmake-3.18/Help/variable/CMAKE_OSX_VARIABLE.txt
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_OSX_VARIABLE.txt
rename to share/cmake-3.18/Help/variable/CMAKE_OSX_VARIABLE.txt
diff --git a/share/cmake-3.17/Help/variable/CMAKE_PARENT_LIST_FILE.rst b/share/cmake-3.18/Help/variable/CMAKE_PARENT_LIST_FILE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_PARENT_LIST_FILE.rst
rename to share/cmake-3.18/Help/variable/CMAKE_PARENT_LIST_FILE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_PATCH_VERSION.rst b/share/cmake-3.18/Help/variable/CMAKE_PATCH_VERSION.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_PATCH_VERSION.rst
rename to share/cmake-3.18/Help/variable/CMAKE_PATCH_VERSION.rst
diff --git a/share/cmake-3.18/Help/variable/CMAKE_PCH_WARN_INVALID.rst b/share/cmake-3.18/Help/variable/CMAKE_PCH_WARN_INVALID.rst
new file mode 100644
index 0000000..e152abd
--- /dev/null
+++ b/share/cmake-3.18/Help/variable/CMAKE_PCH_WARN_INVALID.rst
@@ -0,0 +1,5 @@
+CMAKE_PCH_WARN_INVALID
+----------------------
+
+This variable is used to initialize the :prop_tgt:`PCH_WARN_INVALID`
+property of targets when they are created.
diff --git a/share/cmake-3.17/Help/variable/CMAKE_PDB_OUTPUT_DIRECTORY.rst b/share/cmake-3.18/Help/variable/CMAKE_PDB_OUTPUT_DIRECTORY.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_PDB_OUTPUT_DIRECTORY.rst
rename to share/cmake-3.18/Help/variable/CMAKE_PDB_OUTPUT_DIRECTORY.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_PDB_OUTPUT_DIRECTORY_CONFIG.rst b/share/cmake-3.18/Help/variable/CMAKE_PDB_OUTPUT_DIRECTORY_CONFIG.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_PDB_OUTPUT_DIRECTORY_CONFIG.rst
rename to share/cmake-3.18/Help/variable/CMAKE_PDB_OUTPUT_DIRECTORY_CONFIG.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_POLICY_DEFAULT_CMPNNNN.rst b/share/cmake-3.18/Help/variable/CMAKE_POLICY_DEFAULT_CMPNNNN.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_POLICY_DEFAULT_CMPNNNN.rst
rename to share/cmake-3.18/Help/variable/CMAKE_POLICY_DEFAULT_CMPNNNN.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_POLICY_WARNING_CMPNNNN.rst b/share/cmake-3.18/Help/variable/CMAKE_POLICY_WARNING_CMPNNNN.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_POLICY_WARNING_CMPNNNN.rst
rename to share/cmake-3.18/Help/variable/CMAKE_POLICY_WARNING_CMPNNNN.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_POSITION_INDEPENDENT_CODE.rst b/share/cmake-3.18/Help/variable/CMAKE_POSITION_INDEPENDENT_CODE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_POSITION_INDEPENDENT_CODE.rst
rename to share/cmake-3.18/Help/variable/CMAKE_POSITION_INDEPENDENT_CODE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_PREFIX_PATH.rst b/share/cmake-3.18/Help/variable/CMAKE_PREFIX_PATH.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_PREFIX_PATH.rst
rename to share/cmake-3.18/Help/variable/CMAKE_PREFIX_PATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_PROGRAM_PATH.rst b/share/cmake-3.18/Help/variable/CMAKE_PROGRAM_PATH.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_PROGRAM_PATH.rst
rename to share/cmake-3.18/Help/variable/CMAKE_PROGRAM_PATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_PROJECT_DESCRIPTION.rst b/share/cmake-3.18/Help/variable/CMAKE_PROJECT_DESCRIPTION.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_PROJECT_DESCRIPTION.rst
rename to share/cmake-3.18/Help/variable/CMAKE_PROJECT_DESCRIPTION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_PROJECT_HOMEPAGE_URL.rst b/share/cmake-3.18/Help/variable/CMAKE_PROJECT_HOMEPAGE_URL.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_PROJECT_HOMEPAGE_URL.rst
rename to share/cmake-3.18/Help/variable/CMAKE_PROJECT_HOMEPAGE_URL.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_PROJECT_INCLUDE.rst b/share/cmake-3.18/Help/variable/CMAKE_PROJECT_INCLUDE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_PROJECT_INCLUDE.rst
rename to share/cmake-3.18/Help/variable/CMAKE_PROJECT_INCLUDE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_PROJECT_INCLUDE_BEFORE.rst b/share/cmake-3.18/Help/variable/CMAKE_PROJECT_INCLUDE_BEFORE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_PROJECT_INCLUDE_BEFORE.rst
rename to share/cmake-3.18/Help/variable/CMAKE_PROJECT_INCLUDE_BEFORE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_PROJECT_NAME.rst b/share/cmake-3.18/Help/variable/CMAKE_PROJECT_NAME.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_PROJECT_NAME.rst
rename to share/cmake-3.18/Help/variable/CMAKE_PROJECT_NAME.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_PROJECT_PROJECT-NAME_INCLUDE.rst b/share/cmake-3.18/Help/variable/CMAKE_PROJECT_PROJECT-NAME_INCLUDE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_PROJECT_PROJECT-NAME_INCLUDE.rst
rename to share/cmake-3.18/Help/variable/CMAKE_PROJECT_PROJECT-NAME_INCLUDE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_PROJECT_PROJECT-NAME_INCLUDE_BEFORE.rst b/share/cmake-3.18/Help/variable/CMAKE_PROJECT_PROJECT-NAME_INCLUDE_BEFORE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_PROJECT_PROJECT-NAME_INCLUDE_BEFORE.rst
rename to share/cmake-3.18/Help/variable/CMAKE_PROJECT_PROJECT-NAME_INCLUDE_BEFORE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_PROJECT_VERSION.rst b/share/cmake-3.18/Help/variable/CMAKE_PROJECT_VERSION.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_PROJECT_VERSION.rst
rename to share/cmake-3.18/Help/variable/CMAKE_PROJECT_VERSION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_PROJECT_VERSION_MAJOR.rst b/share/cmake-3.18/Help/variable/CMAKE_PROJECT_VERSION_MAJOR.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_PROJECT_VERSION_MAJOR.rst
rename to share/cmake-3.18/Help/variable/CMAKE_PROJECT_VERSION_MAJOR.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_PROJECT_VERSION_MINOR.rst b/share/cmake-3.18/Help/variable/CMAKE_PROJECT_VERSION_MINOR.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_PROJECT_VERSION_MINOR.rst
rename to share/cmake-3.18/Help/variable/CMAKE_PROJECT_VERSION_MINOR.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_PROJECT_VERSION_PATCH.rst b/share/cmake-3.18/Help/variable/CMAKE_PROJECT_VERSION_PATCH.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_PROJECT_VERSION_PATCH.rst
rename to share/cmake-3.18/Help/variable/CMAKE_PROJECT_VERSION_PATCH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_PROJECT_VERSION_TWEAK.rst b/share/cmake-3.18/Help/variable/CMAKE_PROJECT_VERSION_TWEAK.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_PROJECT_VERSION_TWEAK.rst
rename to share/cmake-3.18/Help/variable/CMAKE_PROJECT_VERSION_TWEAK.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_RANLIB.rst b/share/cmake-3.18/Help/variable/CMAKE_RANLIB.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_RANLIB.rst
rename to share/cmake-3.18/Help/variable/CMAKE_RANLIB.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ROOT.rst b/share/cmake-3.18/Help/variable/CMAKE_ROOT.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_ROOT.rst
rename to share/cmake-3.18/Help/variable/CMAKE_ROOT.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_RULE_MESSAGES.rst b/share/cmake-3.18/Help/variable/CMAKE_RULE_MESSAGES.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_RULE_MESSAGES.rst
rename to share/cmake-3.18/Help/variable/CMAKE_RULE_MESSAGES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_RUNTIME_OUTPUT_DIRECTORY.rst b/share/cmake-3.18/Help/variable/CMAKE_RUNTIME_OUTPUT_DIRECTORY.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_RUNTIME_OUTPUT_DIRECTORY.rst
rename to share/cmake-3.18/Help/variable/CMAKE_RUNTIME_OUTPUT_DIRECTORY.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_RUNTIME_OUTPUT_DIRECTORY_CONFIG.rst b/share/cmake-3.18/Help/variable/CMAKE_RUNTIME_OUTPUT_DIRECTORY_CONFIG.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_RUNTIME_OUTPUT_DIRECTORY_CONFIG.rst
rename to share/cmake-3.18/Help/variable/CMAKE_RUNTIME_OUTPUT_DIRECTORY_CONFIG.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SCRIPT_MODE_FILE.rst b/share/cmake-3.18/Help/variable/CMAKE_SCRIPT_MODE_FILE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_SCRIPT_MODE_FILE.rst
rename to share/cmake-3.18/Help/variable/CMAKE_SCRIPT_MODE_FILE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SHARED_LIBRARY_PREFIX.rst b/share/cmake-3.18/Help/variable/CMAKE_SHARED_LIBRARY_PREFIX.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_SHARED_LIBRARY_PREFIX.rst
rename to share/cmake-3.18/Help/variable/CMAKE_SHARED_LIBRARY_PREFIX.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SHARED_LIBRARY_SUFFIX.rst b/share/cmake-3.18/Help/variable/CMAKE_SHARED_LIBRARY_SUFFIX.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_SHARED_LIBRARY_SUFFIX.rst
rename to share/cmake-3.18/Help/variable/CMAKE_SHARED_LIBRARY_SUFFIX.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SHARED_LINKER_FLAGS.rst b/share/cmake-3.18/Help/variable/CMAKE_SHARED_LINKER_FLAGS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_SHARED_LINKER_FLAGS.rst
rename to share/cmake-3.18/Help/variable/CMAKE_SHARED_LINKER_FLAGS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SHARED_LINKER_FLAGS_CONFIG.rst b/share/cmake-3.18/Help/variable/CMAKE_SHARED_LINKER_FLAGS_CONFIG.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_SHARED_LINKER_FLAGS_CONFIG.rst
rename to share/cmake-3.18/Help/variable/CMAKE_SHARED_LINKER_FLAGS_CONFIG.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SHARED_LINKER_FLAGS_CONFIG_INIT.rst b/share/cmake-3.18/Help/variable/CMAKE_SHARED_LINKER_FLAGS_CONFIG_INIT.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_SHARED_LINKER_FLAGS_CONFIG_INIT.rst
rename to share/cmake-3.18/Help/variable/CMAKE_SHARED_LINKER_FLAGS_CONFIG_INIT.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SHARED_LINKER_FLAGS_INIT.rst b/share/cmake-3.18/Help/variable/CMAKE_SHARED_LINKER_FLAGS_INIT.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_SHARED_LINKER_FLAGS_INIT.rst
rename to share/cmake-3.18/Help/variable/CMAKE_SHARED_LINKER_FLAGS_INIT.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SHARED_MODULE_PREFIX.rst b/share/cmake-3.18/Help/variable/CMAKE_SHARED_MODULE_PREFIX.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_SHARED_MODULE_PREFIX.rst
rename to share/cmake-3.18/Help/variable/CMAKE_SHARED_MODULE_PREFIX.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SHARED_MODULE_SUFFIX.rst b/share/cmake-3.18/Help/variable/CMAKE_SHARED_MODULE_SUFFIX.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_SHARED_MODULE_SUFFIX.rst
rename to share/cmake-3.18/Help/variable/CMAKE_SHARED_MODULE_SUFFIX.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SIZEOF_VOID_P.rst b/share/cmake-3.18/Help/variable/CMAKE_SIZEOF_VOID_P.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_SIZEOF_VOID_P.rst
rename to share/cmake-3.18/Help/variable/CMAKE_SIZEOF_VOID_P.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SKIP_BUILD_RPATH.rst b/share/cmake-3.18/Help/variable/CMAKE_SKIP_BUILD_RPATH.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_SKIP_BUILD_RPATH.rst
rename to share/cmake-3.18/Help/variable/CMAKE_SKIP_BUILD_RPATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SKIP_INSTALL_ALL_DEPENDENCY.rst b/share/cmake-3.18/Help/variable/CMAKE_SKIP_INSTALL_ALL_DEPENDENCY.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_SKIP_INSTALL_ALL_DEPENDENCY.rst
rename to share/cmake-3.18/Help/variable/CMAKE_SKIP_INSTALL_ALL_DEPENDENCY.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SKIP_INSTALL_RPATH.rst b/share/cmake-3.18/Help/variable/CMAKE_SKIP_INSTALL_RPATH.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_SKIP_INSTALL_RPATH.rst
rename to share/cmake-3.18/Help/variable/CMAKE_SKIP_INSTALL_RPATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SKIP_INSTALL_RULES.rst b/share/cmake-3.18/Help/variable/CMAKE_SKIP_INSTALL_RULES.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_SKIP_INSTALL_RULES.rst
rename to share/cmake-3.18/Help/variable/CMAKE_SKIP_INSTALL_RULES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SKIP_RPATH.rst b/share/cmake-3.18/Help/variable/CMAKE_SKIP_RPATH.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_SKIP_RPATH.rst
rename to share/cmake-3.18/Help/variable/CMAKE_SKIP_RPATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SOURCE_DIR.rst b/share/cmake-3.18/Help/variable/CMAKE_SOURCE_DIR.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_SOURCE_DIR.rst
rename to share/cmake-3.18/Help/variable/CMAKE_SOURCE_DIR.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_STAGING_PREFIX.rst b/share/cmake-3.18/Help/variable/CMAKE_STAGING_PREFIX.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_STAGING_PREFIX.rst
rename to share/cmake-3.18/Help/variable/CMAKE_STAGING_PREFIX.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_STATIC_LIBRARY_PREFIX.rst b/share/cmake-3.18/Help/variable/CMAKE_STATIC_LIBRARY_PREFIX.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_STATIC_LIBRARY_PREFIX.rst
rename to share/cmake-3.18/Help/variable/CMAKE_STATIC_LIBRARY_PREFIX.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_STATIC_LIBRARY_SUFFIX.rst b/share/cmake-3.18/Help/variable/CMAKE_STATIC_LIBRARY_SUFFIX.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_STATIC_LIBRARY_SUFFIX.rst
rename to share/cmake-3.18/Help/variable/CMAKE_STATIC_LIBRARY_SUFFIX.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_STATIC_LINKER_FLAGS.rst b/share/cmake-3.18/Help/variable/CMAKE_STATIC_LINKER_FLAGS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_STATIC_LINKER_FLAGS.rst
rename to share/cmake-3.18/Help/variable/CMAKE_STATIC_LINKER_FLAGS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_STATIC_LINKER_FLAGS_CONFIG.rst b/share/cmake-3.18/Help/variable/CMAKE_STATIC_LINKER_FLAGS_CONFIG.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_STATIC_LINKER_FLAGS_CONFIG.rst
rename to share/cmake-3.18/Help/variable/CMAKE_STATIC_LINKER_FLAGS_CONFIG.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_STATIC_LINKER_FLAGS_CONFIG_INIT.rst b/share/cmake-3.18/Help/variable/CMAKE_STATIC_LINKER_FLAGS_CONFIG_INIT.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_STATIC_LINKER_FLAGS_CONFIG_INIT.rst
rename to share/cmake-3.18/Help/variable/CMAKE_STATIC_LINKER_FLAGS_CONFIG_INIT.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_STATIC_LINKER_FLAGS_INIT.rst b/share/cmake-3.18/Help/variable/CMAKE_STATIC_LINKER_FLAGS_INIT.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_STATIC_LINKER_FLAGS_INIT.rst
rename to share/cmake-3.18/Help/variable/CMAKE_STATIC_LINKER_FLAGS_INIT.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SUBLIME_TEXT_2_ENV_SETTINGS.rst b/share/cmake-3.18/Help/variable/CMAKE_SUBLIME_TEXT_2_ENV_SETTINGS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_SUBLIME_TEXT_2_ENV_SETTINGS.rst
rename to share/cmake-3.18/Help/variable/CMAKE_SUBLIME_TEXT_2_ENV_SETTINGS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SUBLIME_TEXT_2_EXCLUDE_BUILD_TREE.rst b/share/cmake-3.18/Help/variable/CMAKE_SUBLIME_TEXT_2_EXCLUDE_BUILD_TREE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_SUBLIME_TEXT_2_EXCLUDE_BUILD_TREE.rst
rename to share/cmake-3.18/Help/variable/CMAKE_SUBLIME_TEXT_2_EXCLUDE_BUILD_TREE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SUPPRESS_REGENERATION.rst b/share/cmake-3.18/Help/variable/CMAKE_SUPPRESS_REGENERATION.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_SUPPRESS_REGENERATION.rst
rename to share/cmake-3.18/Help/variable/CMAKE_SUPPRESS_REGENERATION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SYSROOT.rst b/share/cmake-3.18/Help/variable/CMAKE_SYSROOT.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_SYSROOT.rst
rename to share/cmake-3.18/Help/variable/CMAKE_SYSROOT.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SYSROOT_COMPILE.rst b/share/cmake-3.18/Help/variable/CMAKE_SYSROOT_COMPILE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_SYSROOT_COMPILE.rst
rename to share/cmake-3.18/Help/variable/CMAKE_SYSROOT_COMPILE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SYSROOT_LINK.rst b/share/cmake-3.18/Help/variable/CMAKE_SYSROOT_LINK.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_SYSROOT_LINK.rst
rename to share/cmake-3.18/Help/variable/CMAKE_SYSROOT_LINK.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SYSTEM.rst b/share/cmake-3.18/Help/variable/CMAKE_SYSTEM.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_SYSTEM.rst
rename to share/cmake-3.18/Help/variable/CMAKE_SYSTEM.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SYSTEM_APPBUNDLE_PATH.rst b/share/cmake-3.18/Help/variable/CMAKE_SYSTEM_APPBUNDLE_PATH.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_SYSTEM_APPBUNDLE_PATH.rst
rename to share/cmake-3.18/Help/variable/CMAKE_SYSTEM_APPBUNDLE_PATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SYSTEM_FRAMEWORK_PATH.rst b/share/cmake-3.18/Help/variable/CMAKE_SYSTEM_FRAMEWORK_PATH.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_SYSTEM_FRAMEWORK_PATH.rst
rename to share/cmake-3.18/Help/variable/CMAKE_SYSTEM_FRAMEWORK_PATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SYSTEM_IGNORE_PATH.rst b/share/cmake-3.18/Help/variable/CMAKE_SYSTEM_IGNORE_PATH.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_SYSTEM_IGNORE_PATH.rst
rename to share/cmake-3.18/Help/variable/CMAKE_SYSTEM_IGNORE_PATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SYSTEM_INCLUDE_PATH.rst b/share/cmake-3.18/Help/variable/CMAKE_SYSTEM_INCLUDE_PATH.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_SYSTEM_INCLUDE_PATH.rst
rename to share/cmake-3.18/Help/variable/CMAKE_SYSTEM_INCLUDE_PATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SYSTEM_LIBRARY_PATH.rst b/share/cmake-3.18/Help/variable/CMAKE_SYSTEM_LIBRARY_PATH.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_SYSTEM_LIBRARY_PATH.rst
rename to share/cmake-3.18/Help/variable/CMAKE_SYSTEM_LIBRARY_PATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SYSTEM_NAME.rst b/share/cmake-3.18/Help/variable/CMAKE_SYSTEM_NAME.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_SYSTEM_NAME.rst
rename to share/cmake-3.18/Help/variable/CMAKE_SYSTEM_NAME.rst
diff --git a/share/cmake-3.18/Help/variable/CMAKE_SYSTEM_PREFIX_PATH.rst b/share/cmake-3.18/Help/variable/CMAKE_SYSTEM_PREFIX_PATH.rst
new file mode 100644
index 0000000..81a7a0b
--- /dev/null
+++ b/share/cmake-3.18/Help/variable/CMAKE_SYSTEM_PREFIX_PATH.rst
@@ -0,0 +1,53 @@
+CMAKE_SYSTEM_PREFIX_PATH
+------------------------
+
+:ref:`Semicolon-separated list <CMake Language Lists>` of directories specifying installation
+*prefixes* to be searched by the :command:`find_package`,
+:command:`find_program`, :command:`find_library`, :command:`find_file`, and
+:command:`find_path` commands.  Each command will add appropriate
+subdirectories (like ``bin``, ``lib``, or ``include``) as specified in its own
+documentation.
+
+By default this contains the system directories for the current system, the
+:variable:`CMAKE_INSTALL_PREFIX`, and the :variable:`CMAKE_STAGING_PREFIX`.
+The installation and staging prefixes may be excluded by setting
+the :variable:`CMAKE_FIND_NO_INSTALL_PREFIX` variable.
+
+The system directories that are contained in ``CMAKE_SYSTEM_PREFIX_PATH`` are
+locations that typically include installed software. An example being
+``/usr/local`` for UNIX based platforms. In addition to standard platform
+locations, CMake will also add values to ``CMAKE_SYSTEM_PREFIX_PATH`` based on
+environment variables. The environment variables and search locations that
+CMake uses may evolve over time, as platforms and their conventions also
+evolve. The following provides an indicative list of environment variables
+and locations that CMake searches, but they are subject to change:
+
+
+CrayLinuxEnvironment:
+  * ``ENV{SYSROOT_DIR}/``
+  * ``ENV{SYSROOT_DIR}/usr``
+  * ``ENV{SYSROOT_DIR}/usr/local``
+
+Darwin:
+  * ``ENV{SDKROOT}/usr`` When ``CMAKE_OSX_SYSROOT`` is not explicitly specified.
+
+OpenBSD:
+  * ``ENV{LOCALBASE}``
+
+Unix:
+  * ``ENV{CONDA_PREFIX}`` when using a conda compiler
+
+Windows:
+  * ``ENV{ProgramW6432}``
+  * ``ENV{ProgramFiles}``
+  * ``ENV{ProgramFiles(x86)}``
+  * ``ENV{SystemDrive}/Program Files``
+  * ``ENV{SystemDrive}/Program Files (x86)``
+
+
+``CMAKE_SYSTEM_PREFIX_PATH`` is *not* intended to be modified by the project;
+use :variable:`CMAKE_PREFIX_PATH` for this.
+
+See also :variable:`CMAKE_SYSTEM_INCLUDE_PATH`,
+:variable:`CMAKE_SYSTEM_LIBRARY_PATH`, :variable:`CMAKE_SYSTEM_PROGRAM_PATH`,
+and :variable:`CMAKE_SYSTEM_IGNORE_PATH`.
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SYSTEM_PROCESSOR.rst b/share/cmake-3.18/Help/variable/CMAKE_SYSTEM_PROCESSOR.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_SYSTEM_PROCESSOR.rst
rename to share/cmake-3.18/Help/variable/CMAKE_SYSTEM_PROCESSOR.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SYSTEM_PROGRAM_PATH.rst b/share/cmake-3.18/Help/variable/CMAKE_SYSTEM_PROGRAM_PATH.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_SYSTEM_PROGRAM_PATH.rst
rename to share/cmake-3.18/Help/variable/CMAKE_SYSTEM_PROGRAM_PATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SYSTEM_VERSION.rst b/share/cmake-3.18/Help/variable/CMAKE_SYSTEM_VERSION.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_SYSTEM_VERSION.rst
rename to share/cmake-3.18/Help/variable/CMAKE_SYSTEM_VERSION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_Swift_LANGUAGE_VERSION.rst b/share/cmake-3.18/Help/variable/CMAKE_Swift_LANGUAGE_VERSION.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_Swift_LANGUAGE_VERSION.rst
rename to share/cmake-3.18/Help/variable/CMAKE_Swift_LANGUAGE_VERSION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_Swift_MODULE_DIRECTORY.rst b/share/cmake-3.18/Help/variable/CMAKE_Swift_MODULE_DIRECTORY.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_Swift_MODULE_DIRECTORY.rst
rename to share/cmake-3.18/Help/variable/CMAKE_Swift_MODULE_DIRECTORY.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_Swift_NUM_THREADS.rst b/share/cmake-3.18/Help/variable/CMAKE_Swift_NUM_THREADS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_Swift_NUM_THREADS.rst
rename to share/cmake-3.18/Help/variable/CMAKE_Swift_NUM_THREADS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_TOOLCHAIN_FILE.rst b/share/cmake-3.18/Help/variable/CMAKE_TOOLCHAIN_FILE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_TOOLCHAIN_FILE.rst
rename to share/cmake-3.18/Help/variable/CMAKE_TOOLCHAIN_FILE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_TRY_COMPILE_CONFIGURATION.rst b/share/cmake-3.18/Help/variable/CMAKE_TRY_COMPILE_CONFIGURATION.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_TRY_COMPILE_CONFIGURATION.rst
rename to share/cmake-3.18/Help/variable/CMAKE_TRY_COMPILE_CONFIGURATION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_TRY_COMPILE_PLATFORM_VARIABLES.rst b/share/cmake-3.18/Help/variable/CMAKE_TRY_COMPILE_PLATFORM_VARIABLES.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_TRY_COMPILE_PLATFORM_VARIABLES.rst
rename to share/cmake-3.18/Help/variable/CMAKE_TRY_COMPILE_PLATFORM_VARIABLES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_TRY_COMPILE_TARGET_TYPE.rst b/share/cmake-3.18/Help/variable/CMAKE_TRY_COMPILE_TARGET_TYPE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_TRY_COMPILE_TARGET_TYPE.rst
rename to share/cmake-3.18/Help/variable/CMAKE_TRY_COMPILE_TARGET_TYPE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_TWEAK_VERSION.rst b/share/cmake-3.18/Help/variable/CMAKE_TWEAK_VERSION.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_TWEAK_VERSION.rst
rename to share/cmake-3.18/Help/variable/CMAKE_TWEAK_VERSION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_UNITY_BUILD.rst b/share/cmake-3.18/Help/variable/CMAKE_UNITY_BUILD.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_UNITY_BUILD.rst
rename to share/cmake-3.18/Help/variable/CMAKE_UNITY_BUILD.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_UNITY_BUILD_BATCH_SIZE.rst b/share/cmake-3.18/Help/variable/CMAKE_UNITY_BUILD_BATCH_SIZE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_UNITY_BUILD_BATCH_SIZE.rst
rename to share/cmake-3.18/Help/variable/CMAKE_UNITY_BUILD_BATCH_SIZE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_USER_MAKE_RULES_OVERRIDE.rst b/share/cmake-3.18/Help/variable/CMAKE_USER_MAKE_RULES_OVERRIDE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_USER_MAKE_RULES_OVERRIDE.rst
rename to share/cmake-3.18/Help/variable/CMAKE_USER_MAKE_RULES_OVERRIDE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_USER_MAKE_RULES_OVERRIDE_LANG.rst b/share/cmake-3.18/Help/variable/CMAKE_USER_MAKE_RULES_OVERRIDE_LANG.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_USER_MAKE_RULES_OVERRIDE_LANG.rst
rename to share/cmake-3.18/Help/variable/CMAKE_USER_MAKE_RULES_OVERRIDE_LANG.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_USE_RELATIVE_PATHS.rst b/share/cmake-3.18/Help/variable/CMAKE_USE_RELATIVE_PATHS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_USE_RELATIVE_PATHS.rst
rename to share/cmake-3.18/Help/variable/CMAKE_USE_RELATIVE_PATHS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_VERBOSE_MAKEFILE.rst b/share/cmake-3.18/Help/variable/CMAKE_VERBOSE_MAKEFILE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_VERBOSE_MAKEFILE.rst
rename to share/cmake-3.18/Help/variable/CMAKE_VERBOSE_MAKEFILE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_VERSION.rst b/share/cmake-3.18/Help/variable/CMAKE_VERSION.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_VERSION.rst
rename to share/cmake-3.18/Help/variable/CMAKE_VERSION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_VISIBILITY_INLINES_HIDDEN.rst b/share/cmake-3.18/Help/variable/CMAKE_VISIBILITY_INLINES_HIDDEN.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_VISIBILITY_INLINES_HIDDEN.rst
rename to share/cmake-3.18/Help/variable/CMAKE_VISIBILITY_INLINES_HIDDEN.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_VS_DEVENV_COMMAND.rst b/share/cmake-3.18/Help/variable/CMAKE_VS_DEVENV_COMMAND.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_VS_DEVENV_COMMAND.rst
rename to share/cmake-3.18/Help/variable/CMAKE_VS_DEVENV_COMMAND.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_VS_GLOBALS.rst b/share/cmake-3.18/Help/variable/CMAKE_VS_GLOBALS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_VS_GLOBALS.rst
rename to share/cmake-3.18/Help/variable/CMAKE_VS_GLOBALS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD.rst b/share/cmake-3.18/Help/variable/CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD.rst
rename to share/cmake-3.18/Help/variable/CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_VS_INCLUDE_PACKAGE_TO_DEFAULT_BUILD.rst b/share/cmake-3.18/Help/variable/CMAKE_VS_INCLUDE_PACKAGE_TO_DEFAULT_BUILD.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_VS_INCLUDE_PACKAGE_TO_DEFAULT_BUILD.rst
rename to share/cmake-3.18/Help/variable/CMAKE_VS_INCLUDE_PACKAGE_TO_DEFAULT_BUILD.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_VS_INTEL_Fortran_PROJECT_VERSION.rst b/share/cmake-3.18/Help/variable/CMAKE_VS_INTEL_Fortran_PROJECT_VERSION.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_VS_INTEL_Fortran_PROJECT_VERSION.rst
rename to share/cmake-3.18/Help/variable/CMAKE_VS_INTEL_Fortran_PROJECT_VERSION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_VS_JUST_MY_CODE_DEBUGGING.rst b/share/cmake-3.18/Help/variable/CMAKE_VS_JUST_MY_CODE_DEBUGGING.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_VS_JUST_MY_CODE_DEBUGGING.rst
rename to share/cmake-3.18/Help/variable/CMAKE_VS_JUST_MY_CODE_DEBUGGING.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_VS_MSBUILD_COMMAND.rst b/share/cmake-3.18/Help/variable/CMAKE_VS_MSBUILD_COMMAND.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_VS_MSBUILD_COMMAND.rst
rename to share/cmake-3.18/Help/variable/CMAKE_VS_MSBUILD_COMMAND.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_VS_NsightTegra_VERSION.rst b/share/cmake-3.18/Help/variable/CMAKE_VS_NsightTegra_VERSION.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_VS_NsightTegra_VERSION.rst
rename to share/cmake-3.18/Help/variable/CMAKE_VS_NsightTegra_VERSION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_NAME.rst b/share/cmake-3.18/Help/variable/CMAKE_VS_PLATFORM_NAME.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_NAME.rst
rename to share/cmake-3.18/Help/variable/CMAKE_VS_PLATFORM_NAME.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_NAME_DEFAULT.rst b/share/cmake-3.18/Help/variable/CMAKE_VS_PLATFORM_NAME_DEFAULT.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_NAME_DEFAULT.rst
rename to share/cmake-3.18/Help/variable/CMAKE_VS_PLATFORM_NAME_DEFAULT.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_TOOLSET.rst b/share/cmake-3.18/Help/variable/CMAKE_VS_PLATFORM_TOOLSET.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_TOOLSET.rst
rename to share/cmake-3.18/Help/variable/CMAKE_VS_PLATFORM_TOOLSET.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA.rst b/share/cmake-3.18/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA.rst
rename to share/cmake-3.18/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA_CUSTOM_DIR.rst b/share/cmake-3.18/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA_CUSTOM_DIR.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA_CUSTOM_DIR.rst
rename to share/cmake-3.18/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA_CUSTOM_DIR.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE.rst b/share/cmake-3.18/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE.rst
rename to share/cmake-3.18/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_VERSION.rst b/share/cmake-3.18/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_VERSION.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_VERSION.rst
rename to share/cmake-3.18/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_VERSION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_VS_SDK_EXCLUDE_DIRECTORIES.rst b/share/cmake-3.18/Help/variable/CMAKE_VS_SDK_EXCLUDE_DIRECTORIES.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_VS_SDK_EXCLUDE_DIRECTORIES.rst
rename to share/cmake-3.18/Help/variable/CMAKE_VS_SDK_EXCLUDE_DIRECTORIES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_VS_SDK_EXECUTABLE_DIRECTORIES.rst b/share/cmake-3.18/Help/variable/CMAKE_VS_SDK_EXECUTABLE_DIRECTORIES.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_VS_SDK_EXECUTABLE_DIRECTORIES.rst
rename to share/cmake-3.18/Help/variable/CMAKE_VS_SDK_EXECUTABLE_DIRECTORIES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_VS_SDK_INCLUDE_DIRECTORIES.rst b/share/cmake-3.18/Help/variable/CMAKE_VS_SDK_INCLUDE_DIRECTORIES.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_VS_SDK_INCLUDE_DIRECTORIES.rst
rename to share/cmake-3.18/Help/variable/CMAKE_VS_SDK_INCLUDE_DIRECTORIES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_VS_SDK_LIBRARY_DIRECTORIES.rst b/share/cmake-3.18/Help/variable/CMAKE_VS_SDK_LIBRARY_DIRECTORIES.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_VS_SDK_LIBRARY_DIRECTORIES.rst
rename to share/cmake-3.18/Help/variable/CMAKE_VS_SDK_LIBRARY_DIRECTORIES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_VS_SDK_LIBRARY_WINRT_DIRECTORIES.rst b/share/cmake-3.18/Help/variable/CMAKE_VS_SDK_LIBRARY_WINRT_DIRECTORIES.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_VS_SDK_LIBRARY_WINRT_DIRECTORIES.rst
rename to share/cmake-3.18/Help/variable/CMAKE_VS_SDK_LIBRARY_WINRT_DIRECTORIES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_VS_SDK_REFERENCE_DIRECTORIES.rst b/share/cmake-3.18/Help/variable/CMAKE_VS_SDK_REFERENCE_DIRECTORIES.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_VS_SDK_REFERENCE_DIRECTORIES.rst
rename to share/cmake-3.18/Help/variable/CMAKE_VS_SDK_REFERENCE_DIRECTORIES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_VS_SDK_SOURCE_DIRECTORIES.rst b/share/cmake-3.18/Help/variable/CMAKE_VS_SDK_SOURCE_DIRECTORIES.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_VS_SDK_SOURCE_DIRECTORIES.rst
rename to share/cmake-3.18/Help/variable/CMAKE_VS_SDK_SOURCE_DIRECTORIES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION.rst b/share/cmake-3.18/Help/variable/CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION.rst
rename to share/cmake-3.18/Help/variable/CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_VS_WINRT_BY_DEFAULT.rst b/share/cmake-3.18/Help/variable/CMAKE_VS_WINRT_BY_DEFAULT.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_VS_WINRT_BY_DEFAULT.rst
rename to share/cmake-3.18/Help/variable/CMAKE_VS_WINRT_BY_DEFAULT.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_WARN_DEPRECATED.rst b/share/cmake-3.18/Help/variable/CMAKE_WARN_DEPRECATED.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_WARN_DEPRECATED.rst
rename to share/cmake-3.18/Help/variable/CMAKE_WARN_DEPRECATED.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION.rst b/share/cmake-3.18/Help/variable/CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION.rst
rename to share/cmake-3.18/Help/variable/CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_WIN32_EXECUTABLE.rst b/share/cmake-3.18/Help/variable/CMAKE_WIN32_EXECUTABLE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_WIN32_EXECUTABLE.rst
rename to share/cmake-3.18/Help/variable/CMAKE_WIN32_EXECUTABLE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS.rst b/share/cmake-3.18/Help/variable/CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS.rst
rename to share/cmake-3.18/Help/variable/CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_XCODE_ATTRIBUTE_an-attribute.rst b/share/cmake-3.18/Help/variable/CMAKE_XCODE_ATTRIBUTE_an-attribute.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_XCODE_ATTRIBUTE_an-attribute.rst
rename to share/cmake-3.18/Help/variable/CMAKE_XCODE_ATTRIBUTE_an-attribute.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_XCODE_GENERATE_SCHEME.rst b/share/cmake-3.18/Help/variable/CMAKE_XCODE_GENERATE_SCHEME.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_XCODE_GENERATE_SCHEME.rst
rename to share/cmake-3.18/Help/variable/CMAKE_XCODE_GENERATE_SCHEME.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY.rst b/share/cmake-3.18/Help/variable/CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY.rst
rename to share/cmake-3.18/Help/variable/CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_XCODE_PLATFORM_TOOLSET.rst b/share/cmake-3.18/Help/variable/CMAKE_XCODE_PLATFORM_TOOLSET.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_XCODE_PLATFORM_TOOLSET.rst
rename to share/cmake-3.18/Help/variable/CMAKE_XCODE_PLATFORM_TOOLSET.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER.rst b/share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER.rst
rename to share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN.rst b/share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN.rst
rename to share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING.rst b/share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING.rst
rename to share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER.rst b/share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER.rst
rename to share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS.rst b/share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS.rst
rename to share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE.rst b/share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE.rst
rename to share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_ENVIRONMENT.rst b/share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_ENVIRONMENT.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_ENVIRONMENT.rst
rename to share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_ENVIRONMENT.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_GUARD_MALLOC.rst b/share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_GUARD_MALLOC.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_GUARD_MALLOC.rst
rename to share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_GUARD_MALLOC.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP.rst b/share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP.rst
rename to share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_MALLOC_GUARD_EDGES.rst b/share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_MALLOC_GUARD_EDGES.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_MALLOC_GUARD_EDGES.rst
rename to share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_MALLOC_GUARD_EDGES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_MALLOC_SCRIBBLE.rst b/share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_MALLOC_SCRIBBLE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_MALLOC_SCRIBBLE.rst
rename to share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_MALLOC_SCRIBBLE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_MALLOC_STACK.rst b/share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_MALLOC_STACK.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_MALLOC_STACK.rst
rename to share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_MALLOC_STACK.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_THREAD_SANITIZER.rst b/share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_THREAD_SANITIZER.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_THREAD_SANITIZER.rst
rename to share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_THREAD_SANITIZER.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_THREAD_SANITIZER_STOP.rst b/share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_THREAD_SANITIZER_STOP.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_THREAD_SANITIZER_STOP.rst
rename to share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_THREAD_SANITIZER_STOP.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER.rst b/share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER.rst
rename to share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP.rst b/share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP.rst
rename to share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_WORKING_DIRECTORY.rst b/share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_WORKING_DIRECTORY.rst
similarity index 74%
rename from share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_WORKING_DIRECTORY.rst
rename to share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_WORKING_DIRECTORY.rst
index cc690f7..5bb7907 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_WORKING_DIRECTORY.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_WORKING_DIRECTORY.rst
@@ -1,8 +1,8 @@
 CMAKE_XCODE_SCHEME_WORKING_DIRECTORY
 ------------------------------------
 
-Specify the ``Working Directory`` a of the `Run` and `Profile`
-action in the generated Xcode scheme.
+Specify the ``Working Directory`` of the *Run* and *Profile*
+actions in the generated Xcode scheme.
 
 This variable initializes the
 :prop_tgt:`XCODE_SCHEME_WORKING_DIRECTORY`
diff --git a/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_ZOMBIE_OBJECTS.rst b/share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_ZOMBIE_OBJECTS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_ZOMBIE_OBJECTS.rst
rename to share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_ZOMBIE_OBJECTS.rst
diff --git a/share/cmake-3.17/Help/variable/CPACK_ABSOLUTE_DESTINATION_FILES.rst b/share/cmake-3.18/Help/variable/CPACK_ABSOLUTE_DESTINATION_FILES.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CPACK_ABSOLUTE_DESTINATION_FILES.rst
rename to share/cmake-3.18/Help/variable/CPACK_ABSOLUTE_DESTINATION_FILES.rst
diff --git a/share/cmake-3.17/Help/variable/CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY.rst b/share/cmake-3.18/Help/variable/CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY.rst
rename to share/cmake-3.18/Help/variable/CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY.rst
diff --git a/share/cmake-3.17/Help/variable/CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION.rst b/share/cmake-3.18/Help/variable/CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION.rst
rename to share/cmake-3.18/Help/variable/CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION.rst
diff --git a/share/cmake-3.17/Help/variable/CPACK_INCLUDE_TOPLEVEL_DIRECTORY.rst b/share/cmake-3.18/Help/variable/CPACK_INCLUDE_TOPLEVEL_DIRECTORY.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CPACK_INCLUDE_TOPLEVEL_DIRECTORY.rst
rename to share/cmake-3.18/Help/variable/CPACK_INCLUDE_TOPLEVEL_DIRECTORY.rst
diff --git a/share/cmake-3.17/Help/variable/CPACK_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS.rst b/share/cmake-3.18/Help/variable/CPACK_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CPACK_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS.rst
rename to share/cmake-3.18/Help/variable/CPACK_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS.rst
diff --git a/share/cmake-3.17/Help/variable/CPACK_PACKAGING_INSTALL_PREFIX.rst b/share/cmake-3.18/Help/variable/CPACK_PACKAGING_INSTALL_PREFIX.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CPACK_PACKAGING_INSTALL_PREFIX.rst
rename to share/cmake-3.18/Help/variable/CPACK_PACKAGING_INSTALL_PREFIX.rst
diff --git a/share/cmake-3.17/Help/variable/CPACK_SET_DESTDIR.rst b/share/cmake-3.18/Help/variable/CPACK_SET_DESTDIR.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CPACK_SET_DESTDIR.rst
rename to share/cmake-3.18/Help/variable/CPACK_SET_DESTDIR.rst
diff --git a/share/cmake-3.17/Help/variable/CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION.rst b/share/cmake-3.18/Help/variable/CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION.rst
rename to share/cmake-3.18/Help/variable/CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_BINARY_DIRECTORY.rst b/share/cmake-3.18/Help/variable/CTEST_BINARY_DIRECTORY.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_BINARY_DIRECTORY.rst
rename to share/cmake-3.18/Help/variable/CTEST_BINARY_DIRECTORY.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_BUILD_COMMAND.rst b/share/cmake-3.18/Help/variable/CTEST_BUILD_COMMAND.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_BUILD_COMMAND.rst
rename to share/cmake-3.18/Help/variable/CTEST_BUILD_COMMAND.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_BUILD_NAME.rst b/share/cmake-3.18/Help/variable/CTEST_BUILD_NAME.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_BUILD_NAME.rst
rename to share/cmake-3.18/Help/variable/CTEST_BUILD_NAME.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_BZR_COMMAND.rst b/share/cmake-3.18/Help/variable/CTEST_BZR_COMMAND.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_BZR_COMMAND.rst
rename to share/cmake-3.18/Help/variable/CTEST_BZR_COMMAND.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_BZR_UPDATE_OPTIONS.rst b/share/cmake-3.18/Help/variable/CTEST_BZR_UPDATE_OPTIONS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_BZR_UPDATE_OPTIONS.rst
rename to share/cmake-3.18/Help/variable/CTEST_BZR_UPDATE_OPTIONS.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_CHANGE_ID.rst b/share/cmake-3.18/Help/variable/CTEST_CHANGE_ID.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_CHANGE_ID.rst
rename to share/cmake-3.18/Help/variable/CTEST_CHANGE_ID.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_CHECKOUT_COMMAND.rst b/share/cmake-3.18/Help/variable/CTEST_CHECKOUT_COMMAND.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_CHECKOUT_COMMAND.rst
rename to share/cmake-3.18/Help/variable/CTEST_CHECKOUT_COMMAND.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_CONFIGURATION_TYPE.rst b/share/cmake-3.18/Help/variable/CTEST_CONFIGURATION_TYPE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_CONFIGURATION_TYPE.rst
rename to share/cmake-3.18/Help/variable/CTEST_CONFIGURATION_TYPE.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_CONFIGURE_COMMAND.rst b/share/cmake-3.18/Help/variable/CTEST_CONFIGURE_COMMAND.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_CONFIGURE_COMMAND.rst
rename to share/cmake-3.18/Help/variable/CTEST_CONFIGURE_COMMAND.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_COVERAGE_COMMAND.rst b/share/cmake-3.18/Help/variable/CTEST_COVERAGE_COMMAND.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_COVERAGE_COMMAND.rst
rename to share/cmake-3.18/Help/variable/CTEST_COVERAGE_COMMAND.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_COVERAGE_EXTRA_FLAGS.rst b/share/cmake-3.18/Help/variable/CTEST_COVERAGE_EXTRA_FLAGS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_COVERAGE_EXTRA_FLAGS.rst
rename to share/cmake-3.18/Help/variable/CTEST_COVERAGE_EXTRA_FLAGS.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_CURL_OPTIONS.rst b/share/cmake-3.18/Help/variable/CTEST_CURL_OPTIONS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_CURL_OPTIONS.rst
rename to share/cmake-3.18/Help/variable/CTEST_CURL_OPTIONS.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_CUSTOM_COVERAGE_EXCLUDE.rst b/share/cmake-3.18/Help/variable/CTEST_CUSTOM_COVERAGE_EXCLUDE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_CUSTOM_COVERAGE_EXCLUDE.rst
rename to share/cmake-3.18/Help/variable/CTEST_CUSTOM_COVERAGE_EXCLUDE.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_CUSTOM_ERROR_EXCEPTION.rst b/share/cmake-3.18/Help/variable/CTEST_CUSTOM_ERROR_EXCEPTION.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_CUSTOM_ERROR_EXCEPTION.rst
rename to share/cmake-3.18/Help/variable/CTEST_CUSTOM_ERROR_EXCEPTION.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_CUSTOM_ERROR_MATCH.rst b/share/cmake-3.18/Help/variable/CTEST_CUSTOM_ERROR_MATCH.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_CUSTOM_ERROR_MATCH.rst
rename to share/cmake-3.18/Help/variable/CTEST_CUSTOM_ERROR_MATCH.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_CUSTOM_ERROR_POST_CONTEXT.rst b/share/cmake-3.18/Help/variable/CTEST_CUSTOM_ERROR_POST_CONTEXT.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_CUSTOM_ERROR_POST_CONTEXT.rst
rename to share/cmake-3.18/Help/variable/CTEST_CUSTOM_ERROR_POST_CONTEXT.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_CUSTOM_ERROR_PRE_CONTEXT.rst b/share/cmake-3.18/Help/variable/CTEST_CUSTOM_ERROR_PRE_CONTEXT.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_CUSTOM_ERROR_PRE_CONTEXT.rst
rename to share/cmake-3.18/Help/variable/CTEST_CUSTOM_ERROR_PRE_CONTEXT.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE.rst b/share/cmake-3.18/Help/variable/CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE.rst
rename to share/cmake-3.18/Help/variable/CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_CUSTOM_MAXIMUM_NUMBER_OF_ERRORS.rst b/share/cmake-3.18/Help/variable/CTEST_CUSTOM_MAXIMUM_NUMBER_OF_ERRORS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_CUSTOM_MAXIMUM_NUMBER_OF_ERRORS.rst
rename to share/cmake-3.18/Help/variable/CTEST_CUSTOM_MAXIMUM_NUMBER_OF_ERRORS.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_CUSTOM_MAXIMUM_NUMBER_OF_WARNINGS.rst b/share/cmake-3.18/Help/variable/CTEST_CUSTOM_MAXIMUM_NUMBER_OF_WARNINGS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_CUSTOM_MAXIMUM_NUMBER_OF_WARNINGS.rst
rename to share/cmake-3.18/Help/variable/CTEST_CUSTOM_MAXIMUM_NUMBER_OF_WARNINGS.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE.rst b/share/cmake-3.18/Help/variable/CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE.rst
rename to share/cmake-3.18/Help/variable/CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_CUSTOM_MEMCHECK_IGNORE.rst b/share/cmake-3.18/Help/variable/CTEST_CUSTOM_MEMCHECK_IGNORE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_CUSTOM_MEMCHECK_IGNORE.rst
rename to share/cmake-3.18/Help/variable/CTEST_CUSTOM_MEMCHECK_IGNORE.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_CUSTOM_POST_MEMCHECK.rst b/share/cmake-3.18/Help/variable/CTEST_CUSTOM_POST_MEMCHECK.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_CUSTOM_POST_MEMCHECK.rst
rename to share/cmake-3.18/Help/variable/CTEST_CUSTOM_POST_MEMCHECK.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_CUSTOM_POST_TEST.rst b/share/cmake-3.18/Help/variable/CTEST_CUSTOM_POST_TEST.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_CUSTOM_POST_TEST.rst
rename to share/cmake-3.18/Help/variable/CTEST_CUSTOM_POST_TEST.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_CUSTOM_PRE_MEMCHECK.rst b/share/cmake-3.18/Help/variable/CTEST_CUSTOM_PRE_MEMCHECK.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_CUSTOM_PRE_MEMCHECK.rst
rename to share/cmake-3.18/Help/variable/CTEST_CUSTOM_PRE_MEMCHECK.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_CUSTOM_PRE_TEST.rst b/share/cmake-3.18/Help/variable/CTEST_CUSTOM_PRE_TEST.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_CUSTOM_PRE_TEST.rst
rename to share/cmake-3.18/Help/variable/CTEST_CUSTOM_PRE_TEST.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_CUSTOM_TESTS_IGNORE.rst b/share/cmake-3.18/Help/variable/CTEST_CUSTOM_TESTS_IGNORE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_CUSTOM_TESTS_IGNORE.rst
rename to share/cmake-3.18/Help/variable/CTEST_CUSTOM_TESTS_IGNORE.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_CUSTOM_WARNING_EXCEPTION.rst b/share/cmake-3.18/Help/variable/CTEST_CUSTOM_WARNING_EXCEPTION.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_CUSTOM_WARNING_EXCEPTION.rst
rename to share/cmake-3.18/Help/variable/CTEST_CUSTOM_WARNING_EXCEPTION.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_CUSTOM_WARNING_MATCH.rst b/share/cmake-3.18/Help/variable/CTEST_CUSTOM_WARNING_MATCH.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_CUSTOM_WARNING_MATCH.rst
rename to share/cmake-3.18/Help/variable/CTEST_CUSTOM_WARNING_MATCH.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_CUSTOM_XXX.txt b/share/cmake-3.18/Help/variable/CTEST_CUSTOM_XXX.txt
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_CUSTOM_XXX.txt
rename to share/cmake-3.18/Help/variable/CTEST_CUSTOM_XXX.txt
diff --git a/share/cmake-3.17/Help/variable/CTEST_CVS_CHECKOUT.rst b/share/cmake-3.18/Help/variable/CTEST_CVS_CHECKOUT.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_CVS_CHECKOUT.rst
rename to share/cmake-3.18/Help/variable/CTEST_CVS_CHECKOUT.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_CVS_COMMAND.rst b/share/cmake-3.18/Help/variable/CTEST_CVS_COMMAND.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_CVS_COMMAND.rst
rename to share/cmake-3.18/Help/variable/CTEST_CVS_COMMAND.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_CVS_UPDATE_OPTIONS.rst b/share/cmake-3.18/Help/variable/CTEST_CVS_UPDATE_OPTIONS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_CVS_UPDATE_OPTIONS.rst
rename to share/cmake-3.18/Help/variable/CTEST_CVS_UPDATE_OPTIONS.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_DROP_LOCATION.rst b/share/cmake-3.18/Help/variable/CTEST_DROP_LOCATION.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_DROP_LOCATION.rst
rename to share/cmake-3.18/Help/variable/CTEST_DROP_LOCATION.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_DROP_METHOD.rst b/share/cmake-3.18/Help/variable/CTEST_DROP_METHOD.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_DROP_METHOD.rst
rename to share/cmake-3.18/Help/variable/CTEST_DROP_METHOD.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_DROP_SITE.rst b/share/cmake-3.18/Help/variable/CTEST_DROP_SITE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_DROP_SITE.rst
rename to share/cmake-3.18/Help/variable/CTEST_DROP_SITE.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_DROP_SITE_CDASH.rst b/share/cmake-3.18/Help/variable/CTEST_DROP_SITE_CDASH.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_DROP_SITE_CDASH.rst
rename to share/cmake-3.18/Help/variable/CTEST_DROP_SITE_CDASH.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_DROP_SITE_PASSWORD.rst b/share/cmake-3.18/Help/variable/CTEST_DROP_SITE_PASSWORD.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_DROP_SITE_PASSWORD.rst
rename to share/cmake-3.18/Help/variable/CTEST_DROP_SITE_PASSWORD.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_DROP_SITE_USER.rst b/share/cmake-3.18/Help/variable/CTEST_DROP_SITE_USER.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_DROP_SITE_USER.rst
rename to share/cmake-3.18/Help/variable/CTEST_DROP_SITE_USER.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_EXTRA_COVERAGE_GLOB.rst b/share/cmake-3.18/Help/variable/CTEST_EXTRA_COVERAGE_GLOB.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_EXTRA_COVERAGE_GLOB.rst
rename to share/cmake-3.18/Help/variable/CTEST_EXTRA_COVERAGE_GLOB.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_GIT_COMMAND.rst b/share/cmake-3.18/Help/variable/CTEST_GIT_COMMAND.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_GIT_COMMAND.rst
rename to share/cmake-3.18/Help/variable/CTEST_GIT_COMMAND.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_GIT_INIT_SUBMODULES.rst b/share/cmake-3.18/Help/variable/CTEST_GIT_INIT_SUBMODULES.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_GIT_INIT_SUBMODULES.rst
rename to share/cmake-3.18/Help/variable/CTEST_GIT_INIT_SUBMODULES.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_GIT_UPDATE_CUSTOM.rst b/share/cmake-3.18/Help/variable/CTEST_GIT_UPDATE_CUSTOM.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_GIT_UPDATE_CUSTOM.rst
rename to share/cmake-3.18/Help/variable/CTEST_GIT_UPDATE_CUSTOM.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_GIT_UPDATE_OPTIONS.rst b/share/cmake-3.18/Help/variable/CTEST_GIT_UPDATE_OPTIONS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_GIT_UPDATE_OPTIONS.rst
rename to share/cmake-3.18/Help/variable/CTEST_GIT_UPDATE_OPTIONS.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_HG_COMMAND.rst b/share/cmake-3.18/Help/variable/CTEST_HG_COMMAND.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_HG_COMMAND.rst
rename to share/cmake-3.18/Help/variable/CTEST_HG_COMMAND.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_HG_UPDATE_OPTIONS.rst b/share/cmake-3.18/Help/variable/CTEST_HG_UPDATE_OPTIONS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_HG_UPDATE_OPTIONS.rst
rename to share/cmake-3.18/Help/variable/CTEST_HG_UPDATE_OPTIONS.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_LABELS_FOR_SUBPROJECTS.rst b/share/cmake-3.18/Help/variable/CTEST_LABELS_FOR_SUBPROJECTS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_LABELS_FOR_SUBPROJECTS.rst
rename to share/cmake-3.18/Help/variable/CTEST_LABELS_FOR_SUBPROJECTS.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_MEMORYCHECK_COMMAND.rst b/share/cmake-3.18/Help/variable/CTEST_MEMORYCHECK_COMMAND.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_MEMORYCHECK_COMMAND.rst
rename to share/cmake-3.18/Help/variable/CTEST_MEMORYCHECK_COMMAND.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_MEMORYCHECK_COMMAND_OPTIONS.rst b/share/cmake-3.18/Help/variable/CTEST_MEMORYCHECK_COMMAND_OPTIONS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_MEMORYCHECK_COMMAND_OPTIONS.rst
rename to share/cmake-3.18/Help/variable/CTEST_MEMORYCHECK_COMMAND_OPTIONS.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_MEMORYCHECK_SANITIZER_OPTIONS.rst b/share/cmake-3.18/Help/variable/CTEST_MEMORYCHECK_SANITIZER_OPTIONS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_MEMORYCHECK_SANITIZER_OPTIONS.rst
rename to share/cmake-3.18/Help/variable/CTEST_MEMORYCHECK_SANITIZER_OPTIONS.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_MEMORYCHECK_SUPPRESSIONS_FILE.rst b/share/cmake-3.18/Help/variable/CTEST_MEMORYCHECK_SUPPRESSIONS_FILE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_MEMORYCHECK_SUPPRESSIONS_FILE.rst
rename to share/cmake-3.18/Help/variable/CTEST_MEMORYCHECK_SUPPRESSIONS_FILE.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_MEMORYCHECK_TYPE.rst b/share/cmake-3.18/Help/variable/CTEST_MEMORYCHECK_TYPE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_MEMORYCHECK_TYPE.rst
rename to share/cmake-3.18/Help/variable/CTEST_MEMORYCHECK_TYPE.rst
diff --git a/share/cmake-3.18/Help/variable/CTEST_NIGHTLY_START_TIME.rst b/share/cmake-3.18/Help/variable/CTEST_NIGHTLY_START_TIME.rst
new file mode 100644
index 0000000..90841f9
--- /dev/null
+++ b/share/cmake-3.18/Help/variable/CTEST_NIGHTLY_START_TIME.rst
@@ -0,0 +1,9 @@
+CTEST_NIGHTLY_START_TIME
+------------------------
+
+Specify the CTest ``NightlyStartTime`` setting in a :manual:`ctest(1)`
+dashboard client script.
+
+Note that this variable must always be set for a nightly build in a
+dashboard script. It is needed so that nightly builds can be properly grouped
+together in CDash.
diff --git a/share/cmake-3.17/Help/variable/CTEST_P4_CLIENT.rst b/share/cmake-3.18/Help/variable/CTEST_P4_CLIENT.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_P4_CLIENT.rst
rename to share/cmake-3.18/Help/variable/CTEST_P4_CLIENT.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_P4_COMMAND.rst b/share/cmake-3.18/Help/variable/CTEST_P4_COMMAND.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_P4_COMMAND.rst
rename to share/cmake-3.18/Help/variable/CTEST_P4_COMMAND.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_P4_OPTIONS.rst b/share/cmake-3.18/Help/variable/CTEST_P4_OPTIONS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_P4_OPTIONS.rst
rename to share/cmake-3.18/Help/variable/CTEST_P4_OPTIONS.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_P4_UPDATE_OPTIONS.rst b/share/cmake-3.18/Help/variable/CTEST_P4_UPDATE_OPTIONS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_P4_UPDATE_OPTIONS.rst
rename to share/cmake-3.18/Help/variable/CTEST_P4_UPDATE_OPTIONS.rst
diff --git a/share/cmake-3.18/Help/variable/CTEST_RESOURCE_SPEC_FILE.rst b/share/cmake-3.18/Help/variable/CTEST_RESOURCE_SPEC_FILE.rst
new file mode 100644
index 0000000..a6fdbc9
--- /dev/null
+++ b/share/cmake-3.18/Help/variable/CTEST_RESOURCE_SPEC_FILE.rst
@@ -0,0 +1,10 @@
+CTEST_RESOURCE_SPEC_FILE
+------------------------
+
+Specify the CTest ``ResourceSpecFile`` setting in a :manual:`ctest(1)`
+dashboard client script.
+
+This can also be used to specify the resource spec file from a CMake build. If
+no ``RESOURCE_SPEC_FILE`` is passed to :command:`ctest_test`, and
+``CTEST_RESOURCE_SPEC_FILE`` is not specified in the dashboard script, the
+value of this variable from the build is used.
diff --git a/share/cmake-3.17/Help/variable/CTEST_RUN_CURRENT_SCRIPT.rst b/share/cmake-3.18/Help/variable/CTEST_RUN_CURRENT_SCRIPT.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_RUN_CURRENT_SCRIPT.rst
rename to share/cmake-3.18/Help/variable/CTEST_RUN_CURRENT_SCRIPT.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_SCP_COMMAND.rst b/share/cmake-3.18/Help/variable/CTEST_SCP_COMMAND.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_SCP_COMMAND.rst
rename to share/cmake-3.18/Help/variable/CTEST_SCP_COMMAND.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_SITE.rst b/share/cmake-3.18/Help/variable/CTEST_SITE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_SITE.rst
rename to share/cmake-3.18/Help/variable/CTEST_SITE.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_SOURCE_DIRECTORY.rst b/share/cmake-3.18/Help/variable/CTEST_SOURCE_DIRECTORY.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_SOURCE_DIRECTORY.rst
rename to share/cmake-3.18/Help/variable/CTEST_SOURCE_DIRECTORY.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_SUBMIT_URL.rst b/share/cmake-3.18/Help/variable/CTEST_SUBMIT_URL.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_SUBMIT_URL.rst
rename to share/cmake-3.18/Help/variable/CTEST_SUBMIT_URL.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_SVN_COMMAND.rst b/share/cmake-3.18/Help/variable/CTEST_SVN_COMMAND.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_SVN_COMMAND.rst
rename to share/cmake-3.18/Help/variable/CTEST_SVN_COMMAND.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_SVN_OPTIONS.rst b/share/cmake-3.18/Help/variable/CTEST_SVN_OPTIONS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_SVN_OPTIONS.rst
rename to share/cmake-3.18/Help/variable/CTEST_SVN_OPTIONS.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_SVN_UPDATE_OPTIONS.rst b/share/cmake-3.18/Help/variable/CTEST_SVN_UPDATE_OPTIONS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_SVN_UPDATE_OPTIONS.rst
rename to share/cmake-3.18/Help/variable/CTEST_SVN_UPDATE_OPTIONS.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_TEST_LOAD.rst b/share/cmake-3.18/Help/variable/CTEST_TEST_LOAD.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_TEST_LOAD.rst
rename to share/cmake-3.18/Help/variable/CTEST_TEST_LOAD.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_TEST_TIMEOUT.rst b/share/cmake-3.18/Help/variable/CTEST_TEST_TIMEOUT.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_TEST_TIMEOUT.rst
rename to share/cmake-3.18/Help/variable/CTEST_TEST_TIMEOUT.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_TRIGGER_SITE.rst b/share/cmake-3.18/Help/variable/CTEST_TRIGGER_SITE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_TRIGGER_SITE.rst
rename to share/cmake-3.18/Help/variable/CTEST_TRIGGER_SITE.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_UPDATE_COMMAND.rst b/share/cmake-3.18/Help/variable/CTEST_UPDATE_COMMAND.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_UPDATE_COMMAND.rst
rename to share/cmake-3.18/Help/variable/CTEST_UPDATE_COMMAND.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_UPDATE_OPTIONS.rst b/share/cmake-3.18/Help/variable/CTEST_UPDATE_OPTIONS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_UPDATE_OPTIONS.rst
rename to share/cmake-3.18/Help/variable/CTEST_UPDATE_OPTIONS.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_UPDATE_VERSION_ONLY.rst b/share/cmake-3.18/Help/variable/CTEST_UPDATE_VERSION_ONLY.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_UPDATE_VERSION_ONLY.rst
rename to share/cmake-3.18/Help/variable/CTEST_UPDATE_VERSION_ONLY.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_UPDATE_VERSION_OVERRIDE.rst b/share/cmake-3.18/Help/variable/CTEST_UPDATE_VERSION_OVERRIDE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_UPDATE_VERSION_OVERRIDE.rst
rename to share/cmake-3.18/Help/variable/CTEST_UPDATE_VERSION_OVERRIDE.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_USE_LAUNCHERS.rst b/share/cmake-3.18/Help/variable/CTEST_USE_LAUNCHERS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CTEST_USE_LAUNCHERS.rst
rename to share/cmake-3.18/Help/variable/CTEST_USE_LAUNCHERS.rst
diff --git a/share/cmake-3.17/Help/variable/CYGWIN.rst b/share/cmake-3.18/Help/variable/CYGWIN.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/CYGWIN.rst
rename to share/cmake-3.18/Help/variable/CYGWIN.rst
diff --git a/share/cmake-3.17/Help/variable/ENV.rst b/share/cmake-3.18/Help/variable/ENV.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/ENV.rst
rename to share/cmake-3.18/Help/variable/ENV.rst
diff --git a/share/cmake-3.17/Help/variable/EXECUTABLE_OUTPUT_PATH.rst b/share/cmake-3.18/Help/variable/EXECUTABLE_OUTPUT_PATH.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/EXECUTABLE_OUTPUT_PATH.rst
rename to share/cmake-3.18/Help/variable/EXECUTABLE_OUTPUT_PATH.rst
diff --git a/share/cmake-3.17/Help/variable/GHS-MULTI.rst b/share/cmake-3.18/Help/variable/GHS-MULTI.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/GHS-MULTI.rst
rename to share/cmake-3.18/Help/variable/GHS-MULTI.rst
diff --git a/share/cmake-3.17/Help/variable/IOS.rst b/share/cmake-3.18/Help/variable/IOS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/IOS.rst
rename to share/cmake-3.18/Help/variable/IOS.rst
diff --git a/share/cmake-3.17/Help/variable/LIBRARY_OUTPUT_PATH.rst b/share/cmake-3.18/Help/variable/LIBRARY_OUTPUT_PATH.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/LIBRARY_OUTPUT_PATH.rst
rename to share/cmake-3.18/Help/variable/LIBRARY_OUTPUT_PATH.rst
diff --git a/share/cmake-3.17/Help/variable/MINGW.rst b/share/cmake-3.18/Help/variable/MINGW.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/MINGW.rst
rename to share/cmake-3.18/Help/variable/MINGW.rst
diff --git a/share/cmake-3.17/Help/variable/MSVC.rst b/share/cmake-3.18/Help/variable/MSVC.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/MSVC.rst
rename to share/cmake-3.18/Help/variable/MSVC.rst
diff --git a/share/cmake-3.17/Help/variable/MSVC10.rst b/share/cmake-3.18/Help/variable/MSVC10.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/MSVC10.rst
rename to share/cmake-3.18/Help/variable/MSVC10.rst
diff --git a/share/cmake-3.17/Help/variable/MSVC11.rst b/share/cmake-3.18/Help/variable/MSVC11.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/MSVC11.rst
rename to share/cmake-3.18/Help/variable/MSVC11.rst
diff --git a/share/cmake-3.17/Help/variable/MSVC12.rst b/share/cmake-3.18/Help/variable/MSVC12.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/MSVC12.rst
rename to share/cmake-3.18/Help/variable/MSVC12.rst
diff --git a/share/cmake-3.17/Help/variable/MSVC14.rst b/share/cmake-3.18/Help/variable/MSVC14.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/MSVC14.rst
rename to share/cmake-3.18/Help/variable/MSVC14.rst
diff --git a/share/cmake-3.17/Help/variable/MSVC60.rst b/share/cmake-3.18/Help/variable/MSVC60.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/MSVC60.rst
rename to share/cmake-3.18/Help/variable/MSVC60.rst
diff --git a/share/cmake-3.17/Help/variable/MSVC70.rst b/share/cmake-3.18/Help/variable/MSVC70.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/MSVC70.rst
rename to share/cmake-3.18/Help/variable/MSVC70.rst
diff --git a/share/cmake-3.17/Help/variable/MSVC71.rst b/share/cmake-3.18/Help/variable/MSVC71.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/MSVC71.rst
rename to share/cmake-3.18/Help/variable/MSVC71.rst
diff --git a/share/cmake-3.17/Help/variable/MSVC80.rst b/share/cmake-3.18/Help/variable/MSVC80.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/MSVC80.rst
rename to share/cmake-3.18/Help/variable/MSVC80.rst
diff --git a/share/cmake-3.17/Help/variable/MSVC90.rst b/share/cmake-3.18/Help/variable/MSVC90.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/MSVC90.rst
rename to share/cmake-3.18/Help/variable/MSVC90.rst
diff --git a/share/cmake-3.17/Help/variable/MSVC_IDE.rst b/share/cmake-3.18/Help/variable/MSVC_IDE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/MSVC_IDE.rst
rename to share/cmake-3.18/Help/variable/MSVC_IDE.rst
diff --git a/share/cmake-3.17/Help/variable/MSVC_TOOLSET_VERSION.rst b/share/cmake-3.18/Help/variable/MSVC_TOOLSET_VERSION.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/MSVC_TOOLSET_VERSION.rst
rename to share/cmake-3.18/Help/variable/MSVC_TOOLSET_VERSION.rst
diff --git a/share/cmake-3.17/Help/variable/MSVC_VERSION.rst b/share/cmake-3.18/Help/variable/MSVC_VERSION.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/MSVC_VERSION.rst
rename to share/cmake-3.18/Help/variable/MSVC_VERSION.rst
diff --git a/share/cmake-3.17/Help/variable/MSYS.rst b/share/cmake-3.18/Help/variable/MSYS.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/MSYS.rst
rename to share/cmake-3.18/Help/variable/MSYS.rst
diff --git a/share/cmake-3.17/Help/variable/PROJECT-NAME_BINARY_DIR.rst b/share/cmake-3.18/Help/variable/PROJECT-NAME_BINARY_DIR.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/PROJECT-NAME_BINARY_DIR.rst
rename to share/cmake-3.18/Help/variable/PROJECT-NAME_BINARY_DIR.rst
diff --git a/share/cmake-3.17/Help/variable/PROJECT-NAME_DESCRIPTION.rst b/share/cmake-3.18/Help/variable/PROJECT-NAME_DESCRIPTION.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/PROJECT-NAME_DESCRIPTION.rst
rename to share/cmake-3.18/Help/variable/PROJECT-NAME_DESCRIPTION.rst
diff --git a/share/cmake-3.17/Help/variable/PROJECT-NAME_HOMEPAGE_URL.rst b/share/cmake-3.18/Help/variable/PROJECT-NAME_HOMEPAGE_URL.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/PROJECT-NAME_HOMEPAGE_URL.rst
rename to share/cmake-3.18/Help/variable/PROJECT-NAME_HOMEPAGE_URL.rst
diff --git a/share/cmake-3.17/Help/variable/PROJECT-NAME_SOURCE_DIR.rst b/share/cmake-3.18/Help/variable/PROJECT-NAME_SOURCE_DIR.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/PROJECT-NAME_SOURCE_DIR.rst
rename to share/cmake-3.18/Help/variable/PROJECT-NAME_SOURCE_DIR.rst
diff --git a/share/cmake-3.17/Help/variable/PROJECT-NAME_VERSION.rst b/share/cmake-3.18/Help/variable/PROJECT-NAME_VERSION.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/PROJECT-NAME_VERSION.rst
rename to share/cmake-3.18/Help/variable/PROJECT-NAME_VERSION.rst
diff --git a/share/cmake-3.17/Help/variable/PROJECT-NAME_VERSION_MAJOR.rst b/share/cmake-3.18/Help/variable/PROJECT-NAME_VERSION_MAJOR.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/PROJECT-NAME_VERSION_MAJOR.rst
rename to share/cmake-3.18/Help/variable/PROJECT-NAME_VERSION_MAJOR.rst
diff --git a/share/cmake-3.17/Help/variable/PROJECT-NAME_VERSION_MINOR.rst b/share/cmake-3.18/Help/variable/PROJECT-NAME_VERSION_MINOR.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/PROJECT-NAME_VERSION_MINOR.rst
rename to share/cmake-3.18/Help/variable/PROJECT-NAME_VERSION_MINOR.rst
diff --git a/share/cmake-3.17/Help/variable/PROJECT-NAME_VERSION_PATCH.rst b/share/cmake-3.18/Help/variable/PROJECT-NAME_VERSION_PATCH.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/PROJECT-NAME_VERSION_PATCH.rst
rename to share/cmake-3.18/Help/variable/PROJECT-NAME_VERSION_PATCH.rst
diff --git a/share/cmake-3.17/Help/variable/PROJECT-NAME_VERSION_TWEAK.rst b/share/cmake-3.18/Help/variable/PROJECT-NAME_VERSION_TWEAK.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/PROJECT-NAME_VERSION_TWEAK.rst
rename to share/cmake-3.18/Help/variable/PROJECT-NAME_VERSION_TWEAK.rst
diff --git a/share/cmake-3.17/Help/variable/PROJECT_BINARY_DIR.rst b/share/cmake-3.18/Help/variable/PROJECT_BINARY_DIR.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/PROJECT_BINARY_DIR.rst
rename to share/cmake-3.18/Help/variable/PROJECT_BINARY_DIR.rst
diff --git a/share/cmake-3.17/Help/variable/PROJECT_DESCRIPTION.rst b/share/cmake-3.18/Help/variable/PROJECT_DESCRIPTION.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/PROJECT_DESCRIPTION.rst
rename to share/cmake-3.18/Help/variable/PROJECT_DESCRIPTION.rst
diff --git a/share/cmake-3.17/Help/variable/PROJECT_HOMEPAGE_URL.rst b/share/cmake-3.18/Help/variable/PROJECT_HOMEPAGE_URL.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/PROJECT_HOMEPAGE_URL.rst
rename to share/cmake-3.18/Help/variable/PROJECT_HOMEPAGE_URL.rst
diff --git a/share/cmake-3.17/Help/variable/PROJECT_NAME.rst b/share/cmake-3.18/Help/variable/PROJECT_NAME.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/PROJECT_NAME.rst
rename to share/cmake-3.18/Help/variable/PROJECT_NAME.rst
diff --git a/share/cmake-3.18/Help/variable/PROJECT_SOURCE_DIR.rst b/share/cmake-3.18/Help/variable/PROJECT_SOURCE_DIR.rst
new file mode 100644
index 0000000..b4601c2
--- /dev/null
+++ b/share/cmake-3.18/Help/variable/PROJECT_SOURCE_DIR.rst
@@ -0,0 +1,8 @@
+PROJECT_SOURCE_DIR
+------------------
+
+This is the source directory of the last call to the
+:command:`project` command made in the current directory scope or one
+of its parents. Note, it is not affected by calls to
+:command:`project` made within a child directory scope (i.e. from
+within a call to :command:`add_subdirectory` from the current scope).
diff --git a/share/cmake-3.17/Help/variable/PROJECT_VERSION.rst b/share/cmake-3.18/Help/variable/PROJECT_VERSION.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/PROJECT_VERSION.rst
rename to share/cmake-3.18/Help/variable/PROJECT_VERSION.rst
diff --git a/share/cmake-3.17/Help/variable/PROJECT_VERSION_MAJOR.rst b/share/cmake-3.18/Help/variable/PROJECT_VERSION_MAJOR.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/PROJECT_VERSION_MAJOR.rst
rename to share/cmake-3.18/Help/variable/PROJECT_VERSION_MAJOR.rst
diff --git a/share/cmake-3.17/Help/variable/PROJECT_VERSION_MINOR.rst b/share/cmake-3.18/Help/variable/PROJECT_VERSION_MINOR.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/PROJECT_VERSION_MINOR.rst
rename to share/cmake-3.18/Help/variable/PROJECT_VERSION_MINOR.rst
diff --git a/share/cmake-3.17/Help/variable/PROJECT_VERSION_PATCH.rst b/share/cmake-3.18/Help/variable/PROJECT_VERSION_PATCH.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/PROJECT_VERSION_PATCH.rst
rename to share/cmake-3.18/Help/variable/PROJECT_VERSION_PATCH.rst
diff --git a/share/cmake-3.17/Help/variable/PROJECT_VERSION_TWEAK.rst b/share/cmake-3.18/Help/variable/PROJECT_VERSION_TWEAK.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/PROJECT_VERSION_TWEAK.rst
rename to share/cmake-3.18/Help/variable/PROJECT_VERSION_TWEAK.rst
diff --git a/share/cmake-3.17/Help/variable/PackageName_ROOT.rst b/share/cmake-3.18/Help/variable/PackageName_ROOT.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/PackageName_ROOT.rst
rename to share/cmake-3.18/Help/variable/PackageName_ROOT.rst
diff --git a/share/cmake-3.17/Help/variable/UNIX.rst b/share/cmake-3.18/Help/variable/UNIX.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/UNIX.rst
rename to share/cmake-3.18/Help/variable/UNIX.rst
diff --git a/share/cmake-3.17/Help/variable/WIN32.rst b/share/cmake-3.18/Help/variable/WIN32.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/WIN32.rst
rename to share/cmake-3.18/Help/variable/WIN32.rst
diff --git a/share/cmake-3.17/Help/variable/WINCE.rst b/share/cmake-3.18/Help/variable/WINCE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/WINCE.rst
rename to share/cmake-3.18/Help/variable/WINCE.rst
diff --git a/share/cmake-3.17/Help/variable/WINDOWS_PHONE.rst b/share/cmake-3.18/Help/variable/WINDOWS_PHONE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/WINDOWS_PHONE.rst
rename to share/cmake-3.18/Help/variable/WINDOWS_PHONE.rst
diff --git a/share/cmake-3.17/Help/variable/WINDOWS_STORE.rst b/share/cmake-3.18/Help/variable/WINDOWS_STORE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/WINDOWS_STORE.rst
rename to share/cmake-3.18/Help/variable/WINDOWS_STORE.rst
diff --git a/share/cmake-3.17/Help/variable/XCODE.rst b/share/cmake-3.18/Help/variable/XCODE.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/XCODE.rst
rename to share/cmake-3.18/Help/variable/XCODE.rst
diff --git a/share/cmake-3.17/Help/variable/XCODE_VERSION.rst b/share/cmake-3.18/Help/variable/XCODE_VERSION.rst
similarity index 100%
rename from share/cmake-3.17/Help/variable/XCODE_VERSION.rst
rename to share/cmake-3.18/Help/variable/XCODE_VERSION.rst
diff --git a/share/cmake-3.17/Modules/AddFileDependencies.cmake b/share/cmake-3.18/Modules/AddFileDependencies.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/AddFileDependencies.cmake
rename to share/cmake-3.18/Modules/AddFileDependencies.cmake
diff --git a/share/cmake-3.17/Modules/AndroidTestUtilities.cmake b/share/cmake-3.18/Modules/AndroidTestUtilities.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/AndroidTestUtilities.cmake
rename to share/cmake-3.18/Modules/AndroidTestUtilities.cmake
diff --git a/share/cmake-3.17/Modules/AndroidTestUtilities/PushToAndroidDevice.cmake b/share/cmake-3.18/Modules/AndroidTestUtilities/PushToAndroidDevice.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/AndroidTestUtilities/PushToAndroidDevice.cmake
rename to share/cmake-3.18/Modules/AndroidTestUtilities/PushToAndroidDevice.cmake
diff --git a/share/cmake-3.17/Modules/BasicConfigVersion-AnyNewerVersion.cmake.in b/share/cmake-3.18/Modules/BasicConfigVersion-AnyNewerVersion.cmake.in
similarity index 100%
rename from share/cmake-3.17/Modules/BasicConfigVersion-AnyNewerVersion.cmake.in
rename to share/cmake-3.18/Modules/BasicConfigVersion-AnyNewerVersion.cmake.in
diff --git a/share/cmake-3.17/Modules/BasicConfigVersion-ExactVersion.cmake.in b/share/cmake-3.18/Modules/BasicConfigVersion-ExactVersion.cmake.in
similarity index 100%
rename from share/cmake-3.17/Modules/BasicConfigVersion-ExactVersion.cmake.in
rename to share/cmake-3.18/Modules/BasicConfigVersion-ExactVersion.cmake.in
diff --git a/share/cmake-3.17/Modules/BasicConfigVersion-SameMajorVersion.cmake.in b/share/cmake-3.18/Modules/BasicConfigVersion-SameMajorVersion.cmake.in
similarity index 100%
rename from share/cmake-3.17/Modules/BasicConfigVersion-SameMajorVersion.cmake.in
rename to share/cmake-3.18/Modules/BasicConfigVersion-SameMajorVersion.cmake.in
diff --git a/share/cmake-3.17/Modules/BasicConfigVersion-SameMinorVersion.cmake.in b/share/cmake-3.18/Modules/BasicConfigVersion-SameMinorVersion.cmake.in
similarity index 100%
rename from share/cmake-3.17/Modules/BasicConfigVersion-SameMinorVersion.cmake.in
rename to share/cmake-3.18/Modules/BasicConfigVersion-SameMinorVersion.cmake.in
diff --git a/share/cmake-3.17/Modules/BundleUtilities.cmake b/share/cmake-3.18/Modules/BundleUtilities.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/BundleUtilities.cmake
rename to share/cmake-3.18/Modules/BundleUtilities.cmake
diff --git a/share/cmake-3.17/Modules/CMake.cmake b/share/cmake-3.18/Modules/CMake.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMake.cmake
rename to share/cmake-3.18/Modules/CMake.cmake
diff --git a/share/cmake-3.17/Modules/CMakeASM-ATTInformation.cmake b/share/cmake-3.18/Modules/CMakeASM-ATTInformation.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeASM-ATTInformation.cmake
rename to share/cmake-3.18/Modules/CMakeASM-ATTInformation.cmake
diff --git a/share/cmake-3.17/Modules/CMakeASMCompiler.cmake.in b/share/cmake-3.18/Modules/CMakeASMCompiler.cmake.in
similarity index 91%
rename from share/cmake-3.17/Modules/CMakeASMCompiler.cmake.in
rename to share/cmake-3.18/Modules/CMakeASMCompiler.cmake.in
index b8e09fe..3953b30 100644
--- a/share/cmake-3.17/Modules/CMakeASMCompiler.cmake.in
+++ b/share/cmake-3.18/Modules/CMakeASMCompiler.cmake.in
@@ -10,7 +10,9 @@
 set(CMAKE_ASM@ASM_DIALECT@_COMPILER_ID "@_CMAKE_ASM_COMPILER_ID@")
 set(CMAKE_ASM@ASM_DIALECT@_COMPILER_VERSION "@_CMAKE_ASM_COMPILER_VERSION@")
 set(CMAKE_ASM@ASM_DIALECT@_COMPILER_ENV_VAR "@_CMAKE_ASM_COMPILER_ENV_VAR@")
+@_SET_CMAKE_ASM_COMPILER_ID_VENDOR_MATCH@
 @_SET_CMAKE_ASM_COMPILER_ARCHITECTURE_ID@
+@_SET_CMAKE_ASM_COMPILER_SYSROOT@
 
 set(CMAKE_ASM@ASM_DIALECT@_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC)
 set(CMAKE_ASM@ASM_DIALECT@_LINKER_PREFERENCE 0)
diff --git a/share/cmake-3.17/Modules/CMakeASMInformation.cmake b/share/cmake-3.18/Modules/CMakeASMInformation.cmake
similarity index 97%
rename from share/cmake-3.17/Modules/CMakeASMInformation.cmake
rename to share/cmake-3.18/Modules/CMakeASMInformation.cmake
index 6b73730..03195cc 100644
--- a/share/cmake-3.17/Modules/CMakeASMInformation.cmake
+++ b/share/cmake-3.18/Modules/CMakeASMInformation.cmake
@@ -76,12 +76,12 @@
 if(NOT CMAKE_ASM${ASM_DIALECT}_CREATE_STATIC_LIBRARY)
   set(CMAKE_ASM${ASM_DIALECT}_CREATE_STATIC_LIBRARY
       "<CMAKE_AR> cr <TARGET> <LINK_FLAGS> <OBJECTS> "
-      "<CMAKE_RANLIB> <TARGET> ")
+      "<CMAKE_RANLIB> <TARGET>")
 endif()
 
 if(NOT CMAKE_ASM${ASM_DIALECT}_LINK_EXECUTABLE)
   set(CMAKE_ASM${ASM_DIALECT}_LINK_EXECUTABLE
-    "<CMAKE_ASM${ASM_DIALECT}_COMPILER> <FLAGS> <CMAKE_ASM${ASM_DIALECT}_LINK_FLAGS> <LINK_FLAGS> <OBJECTS>  -o <TARGET> <LINK_LIBRARIES>")
+    "<CMAKE_ASM${ASM_DIALECT}_COMPILER> <FLAGS> <CMAKE_ASM${ASM_DIALECT}_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
 endif()
 
 if(NOT CMAKE_EXECUTABLE_RUNTIME_ASM${ASM_DIALECT}_FLAG)
diff --git a/share/cmake-3.17/Modules/CMakeASM_MASMInformation.cmake b/share/cmake-3.18/Modules/CMakeASM_MASMInformation.cmake
similarity index 91%
rename from share/cmake-3.17/Modules/CMakeASM_MASMInformation.cmake
rename to share/cmake-3.18/Modules/CMakeASM_MASMInformation.cmake
index 9f7e934..6d1e174 100644
--- a/share/cmake-3.17/Modules/CMakeASM_MASMInformation.cmake
+++ b/share/cmake-3.18/Modules/CMakeASM_MASMInformation.cmake
@@ -8,7 +8,7 @@
 
 set(CMAKE_ASM${ASM_DIALECT}_SOURCE_FILE_EXTENSIONS asm)
 
-set(CMAKE_ASM${ASM_DIALECT}_COMPILE_OBJECT "<CMAKE_ASM${ASM_DIALECT}_COMPILER> <DEFINES> <INCLUDES> <FLAGS> /c  /Fo <OBJECT> <SOURCE>")
+set(CMAKE_ASM${ASM_DIALECT}_COMPILE_OBJECT "<CMAKE_ASM${ASM_DIALECT}_COMPILER> <DEFINES> <INCLUDES> <FLAGS> /c /Fo <OBJECT> <SOURCE>")
 
 # The ASM_MASM compiler id for this compiler is "MSVC", so fill out the runtime library table.
 set(CMAKE_ASM${ASM_DIALECT}_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreaded         "")
diff --git a/share/cmake-3.17/Modules/CMakeASM_NASMInformation.cmake b/share/cmake-3.18/Modules/CMakeASM_NASMInformation.cmake
similarity index 61%
rename from share/cmake-3.17/Modules/CMakeASM_NASMInformation.cmake
rename to share/cmake-3.18/Modules/CMakeASM_NASMInformation.cmake
index cb793e7..97cb488 100644
--- a/share/cmake-3.17/Modules/CMakeASM_NASMInformation.cmake
+++ b/share/cmake-3.18/Modules/CMakeASM_NASMInformation.cmake
@@ -8,19 +8,25 @@
 
 if(NOT CMAKE_ASM_NASM_OBJECT_FORMAT)
   if(WIN32)
-    if(CMAKE_C_SIZEOF_DATA_PTR EQUAL 8)
+    if(DEFINED CMAKE_C_SIZEOF_DATA_PTR AND CMAKE_C_SIZEOF_DATA_PTR EQUAL 8)
+      set(CMAKE_ASM_NASM_OBJECT_FORMAT win64)
+    elseif(DEFINED CMAKE_CXX_SIZEOF_DATA_PTR AND CMAKE_CXX_SIZEOF_DATA_PTR EQUAL 8)
       set(CMAKE_ASM_NASM_OBJECT_FORMAT win64)
     else()
       set(CMAKE_ASM_NASM_OBJECT_FORMAT win32)
     endif()
   elseif(APPLE)
-    if(CMAKE_C_SIZEOF_DATA_PTR EQUAL 8)
+    if(DEFINED CMAKE_C_SIZEOF_DATA_PTR AND CMAKE_C_SIZEOF_DATA_PTR EQUAL 8)
+      set(CMAKE_ASM_NASM_OBJECT_FORMAT macho64)
+    elseif(DEFINED CMAKE_CXX_SIZEOF_DATA_PTR AND CMAKE_CXX_SIZEOF_DATA_PTR EQUAL 8)
       set(CMAKE_ASM_NASM_OBJECT_FORMAT macho64)
     else()
       set(CMAKE_ASM_NASM_OBJECT_FORMAT macho)
     endif()
   else()
-    if(CMAKE_C_SIZEOF_DATA_PTR EQUAL 8)
+    if(DEFINED CMAKE_C_SIZEOF_DATA_PTR AND CMAKE_C_SIZEOF_DATA_PTR EQUAL 8)
+      set(CMAKE_ASM_NASM_OBJECT_FORMAT elf64)
+    elseif(DEFINED CMAKE_CXX_SIZEOF_DATA_PTR AND CMAKE_CXX_SIZEOF_DATA_PTR EQUAL 8)
       set(CMAKE_ASM_NASM_OBJECT_FORMAT elf64)
     else()
       set(CMAKE_ASM_NASM_OBJECT_FORMAT elf)
diff --git a/share/cmake-3.17/Modules/CMakeAddFortranSubdirectory.cmake b/share/cmake-3.18/Modules/CMakeAddFortranSubdirectory.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeAddFortranSubdirectory.cmake
rename to share/cmake-3.18/Modules/CMakeAddFortranSubdirectory.cmake
diff --git a/share/cmake-3.17/Modules/CMakeAddFortranSubdirectory/build_mingw.cmake.in b/share/cmake-3.18/Modules/CMakeAddFortranSubdirectory/build_mingw.cmake.in
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeAddFortranSubdirectory/build_mingw.cmake.in
rename to share/cmake-3.18/Modules/CMakeAddFortranSubdirectory/build_mingw.cmake.in
diff --git a/share/cmake-3.17/Modules/CMakeAddFortranSubdirectory/config_mingw.cmake.in b/share/cmake-3.18/Modules/CMakeAddFortranSubdirectory/config_mingw.cmake.in
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeAddFortranSubdirectory/config_mingw.cmake.in
rename to share/cmake-3.18/Modules/CMakeAddFortranSubdirectory/config_mingw.cmake.in
diff --git a/share/cmake-3.17/Modules/CMakeAddNewLanguage.txt b/share/cmake-3.18/Modules/CMakeAddNewLanguage.txt
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeAddNewLanguage.txt
rename to share/cmake-3.18/Modules/CMakeAddNewLanguage.txt
diff --git a/share/cmake-3.17/Modules/CMakeBackwardCompatibilityC.cmake b/share/cmake-3.18/Modules/CMakeBackwardCompatibilityC.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeBackwardCompatibilityC.cmake
rename to share/cmake-3.18/Modules/CMakeBackwardCompatibilityC.cmake
diff --git a/share/cmake-3.17/Modules/CMakeBackwardCompatibilityCXX.cmake b/share/cmake-3.18/Modules/CMakeBackwardCompatibilityCXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeBackwardCompatibilityCXX.cmake
rename to share/cmake-3.18/Modules/CMakeBackwardCompatibilityCXX.cmake
diff --git a/share/cmake-3.17/Modules/CMakeBorlandFindMake.cmake b/share/cmake-3.18/Modules/CMakeBorlandFindMake.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeBorlandFindMake.cmake
rename to share/cmake-3.18/Modules/CMakeBorlandFindMake.cmake
diff --git a/share/cmake-3.17/Modules/CMakeBuildSettings.cmake.in b/share/cmake-3.18/Modules/CMakeBuildSettings.cmake.in
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeBuildSettings.cmake.in
rename to share/cmake-3.18/Modules/CMakeBuildSettings.cmake.in
diff --git a/share/cmake-3.17/Modules/CMakeCCompiler.cmake.in b/share/cmake-3.18/Modules/CMakeCCompiler.cmake.in
similarity index 98%
rename from share/cmake-3.17/Modules/CMakeCCompiler.cmake.in
rename to share/cmake-3.18/Modules/CMakeCCompiler.cmake.in
index 9b8d423..eea3f5d 100644
--- a/share/cmake-3.17/Modules/CMakeCCompiler.cmake.in
+++ b/share/cmake-3.18/Modules/CMakeCCompiler.cmake.in
@@ -15,6 +15,7 @@
 set(CMAKE_C_COMPILER_FRONTEND_VARIANT "@CMAKE_C_COMPILER_FRONTEND_VARIANT@")
 set(CMAKE_C_SIMULATE_VERSION "@CMAKE_C_SIMULATE_VERSION@")
 @_SET_CMAKE_C_COMPILER_ARCHITECTURE_ID@
+@_SET_CMAKE_C_COMPILER_SYSROOT@
 @SET_MSVC_C_ARCHITECTURE_ID@
 @SET_CMAKE_XCODE_ARCHS@
 set(CMAKE_AR "@CMAKE_AR@")
diff --git a/share/cmake-3.17/Modules/CMakeCCompilerABI.c b/share/cmake-3.18/Modules/CMakeCCompilerABI.c
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeCCompilerABI.c
rename to share/cmake-3.18/Modules/CMakeCCompilerABI.c
diff --git a/share/cmake-3.17/Modules/CMakeCCompilerId.c.in b/share/cmake-3.18/Modules/CMakeCCompilerId.c.in
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeCCompilerId.c.in
rename to share/cmake-3.18/Modules/CMakeCCompilerId.c.in
diff --git a/share/cmake-3.17/Modules/CMakeCInformation.cmake b/share/cmake-3.18/Modules/CMakeCInformation.cmake
similarity index 97%
rename from share/cmake-3.17/Modules/CMakeCInformation.cmake
rename to share/cmake-3.18/Modules/CMakeCInformation.cmake
index 1e08bb7..f6d620f 100644
--- a/share/cmake-3.17/Modules/CMakeCInformation.cmake
+++ b/share/cmake-3.18/Modules/CMakeCInformation.cmake
@@ -161,7 +161,7 @@
   set(CMAKE_C_ARCHIVE_CREATE "<CMAKE_AR> qc <TARGET> <LINK_FLAGS> <OBJECTS>")
 endif()
 if(NOT DEFINED CMAKE_C_ARCHIVE_APPEND)
-  set(CMAKE_C_ARCHIVE_APPEND "<CMAKE_AR> q  <TARGET> <LINK_FLAGS> <OBJECTS>")
+  set(CMAKE_C_ARCHIVE_APPEND "<CMAKE_AR> q <TARGET> <LINK_FLAGS> <OBJECTS>")
 endif()
 if(NOT DEFINED CMAKE_C_ARCHIVE_FINISH)
   set(CMAKE_C_ARCHIVE_FINISH "<CMAKE_RANLIB> <TARGET>")
@@ -170,12 +170,12 @@
 # compile a C file into an object file
 if(NOT CMAKE_C_COMPILE_OBJECT)
   set(CMAKE_C_COMPILE_OBJECT
-    "<CMAKE_C_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT>   -c <SOURCE>")
+    "<CMAKE_C_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT> -c <SOURCE>")
 endif()
 
 if(NOT CMAKE_C_LINK_EXECUTABLE)
   set(CMAKE_C_LINK_EXECUTABLE
-    "<CMAKE_C_COMPILER> <FLAGS> <CMAKE_C_LINK_FLAGS> <LINK_FLAGS> <OBJECTS>  -o <TARGET> <LINK_LIBRARIES>")
+    "<CMAKE_C_COMPILER> <FLAGS> <CMAKE_C_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
 endif()
 
 if(NOT CMAKE_EXECUTABLE_RUNTIME_C_FLAG)
diff --git a/share/cmake-3.17/Modules/CMakeCSharpCompiler.cmake.in b/share/cmake-3.18/Modules/CMakeCSharpCompiler.cmake.in
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeCSharpCompiler.cmake.in
rename to share/cmake-3.18/Modules/CMakeCSharpCompiler.cmake.in
diff --git a/share/cmake-3.17/Modules/CMakeCSharpCompilerId.cs.in b/share/cmake-3.18/Modules/CMakeCSharpCompilerId.cs.in
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeCSharpCompilerId.cs.in
rename to share/cmake-3.18/Modules/CMakeCSharpCompilerId.cs.in
diff --git a/share/cmake-3.17/Modules/CMakeCSharpInformation.cmake b/share/cmake-3.18/Modules/CMakeCSharpInformation.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeCSharpInformation.cmake
rename to share/cmake-3.18/Modules/CMakeCSharpInformation.cmake
diff --git a/share/cmake-3.17/Modules/CMakeCUDACompiler.cmake.in b/share/cmake-3.18/Modules/CMakeCUDACompiler.cmake.in
similarity index 91%
rename from share/cmake-3.17/Modules/CMakeCUDACompiler.cmake.in
rename to share/cmake-3.18/Modules/CMakeCUDACompiler.cmake.in
index 4a615a3..704ad09 100644
--- a/share/cmake-3.17/Modules/CMakeCUDACompiler.cmake.in
+++ b/share/cmake-3.18/Modules/CMakeCUDACompiler.cmake.in
@@ -16,6 +16,7 @@
 set(CMAKE_CUDA_COMPILER_FRONTEND_VARIANT "@CMAKE_CUDA_COMPILER_FRONTEND_VARIANT@")
 set(CMAKE_CUDA_SIMULATE_VERSION "@CMAKE_CUDA_SIMULATE_VERSION@")
 @SET_MSVC_CUDA_ARCHITECTURE_ID@
+@_SET_CMAKE_CUDA_COMPILER_SYSROOT@
 
 set(CMAKE_CUDA_COMPILER_ENV_VAR "CUDACXX")
 set(CMAKE_CUDA_HOST_COMPILER_ENV_VAR "CUDAHOSTCXX")
@@ -42,6 +43,9 @@
   set(CMAKE_LIBRARY_ARCHITECTURE "@CMAKE_CUDA_LIBRARY_ARCHITECTURE@")
 endif()
 
+set(CMAKE_CUDA_COMPILER_TOOLKIT_ROOT "@CMAKE_CUDA_COMPILER_TOOLKIT_ROOT@")
+set(CMAKE_CUDA_COMPILER_LIBRARY_ROOT "@CMAKE_CUDA_COMPILER_LIBRARY_ROOT@")
+
 set(CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES "@CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES@")
 
 set(CMAKE_CUDA_HOST_IMPLICIT_LINK_LIBRARIES "@CMAKE_CUDA_HOST_IMPLICIT_LINK_LIBRARIES@")
@@ -53,5 +57,8 @@
 set(CMAKE_CUDA_IMPLICIT_LINK_DIRECTORIES "@CMAKE_CUDA_IMPLICIT_LINK_DIRECTORIES@")
 set(CMAKE_CUDA_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "@CMAKE_CUDA_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES@")
 
+@_SET_CMAKE_CUDA_RUNTIME_LIBRARY_DEFAULT@
+
 set(CMAKE_LINKER "@CMAKE_LINKER@")
+set(CMAKE_AR "@CMAKE_AR@")
 set(CMAKE_MT "@CMAKE_MT@")
diff --git a/share/cmake-3.17/Modules/CMakeCUDACompilerABI.cu b/share/cmake-3.18/Modules/CMakeCUDACompilerABI.cu
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeCUDACompilerABI.cu
rename to share/cmake-3.18/Modules/CMakeCUDACompilerABI.cu
diff --git a/share/cmake-3.17/Modules/CMakeCUDACompilerId.cu.in b/share/cmake-3.18/Modules/CMakeCUDACompilerId.cu.in
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeCUDACompilerId.cu.in
rename to share/cmake-3.18/Modules/CMakeCUDACompilerId.cu.in
diff --git a/share/cmake-3.17/Modules/CMakeCUDAInformation.cmake b/share/cmake-3.18/Modules/CMakeCUDAInformation.cmake
similarity index 88%
rename from share/cmake-3.17/Modules/CMakeCUDAInformation.cmake
rename to share/cmake-3.18/Modules/CMakeCUDAInformation.cmake
index 974f5fa..f9f7574 100644
--- a/share/cmake-3.17/Modules/CMakeCUDAInformation.cmake
+++ b/share/cmake-3.18/Modules/CMakeCUDAInformation.cmake
@@ -8,6 +8,19 @@
 endif()
 set(CMAKE_INCLUDE_FLAG_CUDA "-I")
 
+# Set implicit links early so compiler-specific modules can use them.
+set(__IMPLICT_LINKS )
+foreach(dir ${CMAKE_CUDA_HOST_IMPLICIT_LINK_DIRECTORIES})
+  string(APPEND __IMPLICT_LINKS " -L\"${dir}\"")
+endforeach()
+foreach(lib ${CMAKE_CUDA_HOST_IMPLICIT_LINK_LIBRARIES})
+  if(${lib} MATCHES "/")
+    string(APPEND __IMPLICT_LINKS " \"${lib}\"")
+  else()
+    string(APPEND __IMPLICT_LINKS " -l${lib}")
+  endif()
+endforeach()
+
 # Load compiler-specific information.
 if(CMAKE_CUDA_COMPILER_ID)
   include(Compiler/${CMAKE_CUDA_COMPILER_ID}-CUDA OPTIONAL)
@@ -97,22 +110,10 @@
 # CMAKE_CUDA_COMPILE_SEPARABLE_COMPILATION
 # CMAKE_CUDA_LINK_EXECUTABLE
 
-if(CMAKE_CUDA_HOST_COMPILER)
+if(CMAKE_CUDA_HOST_COMPILER AND CMAKE_CUDA_COMPILER_ID STREQUAL "NVIDIA")
   string(APPEND _CMAKE_CUDA_EXTRA_FLAGS " -ccbin=<CMAKE_CUDA_HOST_COMPILER>")
 endif()
 
-set(__IMPLICT_LINKS )
-foreach(dir ${CMAKE_CUDA_HOST_IMPLICIT_LINK_DIRECTORIES})
-  string(APPEND __IMPLICT_LINKS " -L\"${dir}\"")
-endforeach()
-foreach(lib ${CMAKE_CUDA_HOST_IMPLICIT_LINK_LIBRARIES})
-  if(${lib} MATCHES "/")
-    string(APPEND __IMPLICT_LINKS " \"${lib}\"")
-  else()
-    string(APPEND __IMPLICT_LINKS " -l${lib}")
-  endif()
-endforeach()
-
 # create a shared library
 if(NOT CMAKE_CUDA_CREATE_SHARED_LIBRARY)
   set(CMAKE_CUDA_CREATE_SHARED_LIBRARY
@@ -129,7 +130,7 @@
   set(CMAKE_CUDA_ARCHIVE_CREATE "<CMAKE_AR> qc <TARGET> <LINK_FLAGS> <OBJECTS>")
 endif()
 if(NOT DEFINED CMAKE_CUDA_ARCHIVE_APPEND)
-  set(CMAKE_CUDA_ARCHIVE_APPEND "<CMAKE_AR> q  <TARGET> <LINK_FLAGS> <OBJECTS>")
+  set(CMAKE_CUDA_ARCHIVE_APPEND "<CMAKE_AR> q <TARGET> <LINK_FLAGS> <OBJECTS>")
 endif()
 if(NOT DEFINED CMAKE_CUDA_ARCHIVE_FINISH)
   set(CMAKE_CUDA_ARCHIVE_FINISH "<CMAKE_RANLIB> <TARGET>")
@@ -138,24 +139,24 @@
 #Specify how to compile when ptx has been requested
 if(NOT CMAKE_CUDA_COMPILE_PTX_COMPILATION)
   set(CMAKE_CUDA_COMPILE_PTX_COMPILATION
-    "<CMAKE_CUDA_COMPILER> ${_CMAKE_CUDA_EXTRA_FLAGS} <DEFINES> <INCLUDES> <FLAGS> -x cu -ptx <SOURCE> -o <OBJECT>")
+    "<CMAKE_CUDA_COMPILER> ${_CMAKE_CUDA_EXTRA_FLAGS} <DEFINES> <INCLUDES> <FLAGS> ${_CMAKE_COMPILE_AS_CUDA_FLAG} ${_CMAKE_CUDA_PTX_FLAG} <SOURCE> -o <OBJECT>")
 endif()
 
 #Specify how to compile when separable compilation has been requested
 if(NOT CMAKE_CUDA_COMPILE_SEPARABLE_COMPILATION)
   set(CMAKE_CUDA_COMPILE_SEPARABLE_COMPILATION
-    "<CMAKE_CUDA_COMPILER> ${_CMAKE_CUDA_EXTRA_FLAGS} <DEFINES> <INCLUDES> <FLAGS> -x cu -dc <SOURCE> -o <OBJECT>")
+    "<CMAKE_CUDA_COMPILER> ${_CMAKE_CUDA_EXTRA_FLAGS} <DEFINES> <INCLUDES> <FLAGS> ${_CMAKE_COMPILE_AS_CUDA_FLAG} -dc <SOURCE> -o <OBJECT>")
 endif()
 
 #Specify how to compile when whole compilation has been requested
 if(NOT CMAKE_CUDA_COMPILE_WHOLE_COMPILATION)
   set(CMAKE_CUDA_COMPILE_WHOLE_COMPILATION
-    "<CMAKE_CUDA_COMPILER> ${_CMAKE_CUDA_EXTRA_FLAGS} <DEFINES> <INCLUDES> <FLAGS> -x cu -c <SOURCE> -o <OBJECT>")
+    "<CMAKE_CUDA_COMPILER> ${_CMAKE_CUDA_EXTRA_FLAGS} <DEFINES> <INCLUDES> <FLAGS> ${_CMAKE_COMPILE_AS_CUDA_FLAG} -c <SOURCE> -o <OBJECT>")
 endif()
 
-if(CMAKE_GENERATOR STREQUAL "Ninja" AND NOT CMAKE_DEPFILE_FLAGS_CUDA )
+if(CMAKE_GENERATOR STREQUAL "Ninja" AND NOT CMAKE_DEPFILE_FLAGS_CUDA)
   set(CMAKE_CUDA_COMPILE_DEPENDENCY_DETECTION
-    "<CMAKE_CUDA_COMPILER> ${_CMAKE_CUDA_EXTRA_FLAGS} <DEFINES> <INCLUDES> <FLAGS> -x cu -M <SOURCE> -MT <OBJECT> -o $DEP_FILE")
+    "<CMAKE_CUDA_COMPILER> ${_CMAKE_CUDA_EXTRA_FLAGS} <DEFINES> <INCLUDES> <FLAGS> ${_CMAKE_COMPILE_AS_CUDA_FLAG} -M <SOURCE> -MT <OBJECT> -o $DEP_FILE")
   #The Ninja generator uses the make file dependency files to determine what
   #files need to be recompiled. Unfortunately, nvcc < 10.2 doesn't support building
   #a source file and generating the dependencies of said file in a single
@@ -192,14 +193,13 @@
 #These are used when linking relocatable (dc) cuda code
 if(NOT CMAKE_CUDA_DEVICE_LINK_LIBRARY)
   set(CMAKE_CUDA_DEVICE_LINK_LIBRARY
-    "<CMAKE_CUDA_COMPILER> ${_CMAKE_CUDA_EXTRA_FLAGS} <LANGUAGE_COMPILE_FLAGS> ${CMAKE_CUDA_COMPILE_OPTIONS_PIC} ${_CMAKE_CUDA_EXTRA_DEVICE_LINK_FLAGS} -shared -dlink <OBJECTS> -o <TARGET> <LINK_LIBRARIES>${__IMPLICT_DLINK_FLAGS}")
+    "<CMAKE_CUDA_COMPILER> ${_CMAKE_CUDA_EXTRA_FLAGS} <LANGUAGE_COMPILE_FLAGS> <LINK_FLAGS> ${CMAKE_CUDA_COMPILE_OPTIONS_PIC} ${_CMAKE_CUDA_EXTRA_DEVICE_LINK_FLAGS} -shared -dlink <OBJECTS> -o <TARGET> <LINK_LIBRARIES>${__IMPLICT_DLINK_FLAGS}")
 endif()
 if(NOT CMAKE_CUDA_DEVICE_LINK_EXECUTABLE)
   set(CMAKE_CUDA_DEVICE_LINK_EXECUTABLE
-    "<CMAKE_CUDA_COMPILER> ${_CMAKE_CUDA_EXTRA_FLAGS} <FLAGS> ${CMAKE_CUDA_COMPILE_OPTIONS_PIC} ${_CMAKE_CUDA_EXTRA_DEVICE_LINK_FLAGS} -shared -dlink <OBJECTS> -o <TARGET> <LINK_LIBRARIES>${__IMPLICT_DLINK_FLAGS}")
+    "<CMAKE_CUDA_COMPILER> ${_CMAKE_CUDA_EXTRA_FLAGS} <LANGUAGE_COMPILE_FLAGS> <LINK_FLAGS> ${CMAKE_CUDA_COMPILE_OPTIONS_PIC} ${_CMAKE_CUDA_EXTRA_DEVICE_LINK_FLAGS} -shared -dlink <OBJECTS> -o <TARGET> <LINK_LIBRARIES>${__IMPLICT_DLINK_FLAGS}")
 endif()
 
-unset(_CMAKE_CUDA_EXTRA_DEVICE_LINK_FLAGS)
 unset(__IMPLICT_DLINK_FLAGS)
 
 set(CMAKE_CUDA_INFORMATION_LOADED 1)
diff --git a/share/cmake-3.17/Modules/CMakeCXXCompiler.cmake.in b/share/cmake-3.18/Modules/CMakeCXXCompiler.cmake.in
similarity index 98%
rename from share/cmake-3.17/Modules/CMakeCXXCompiler.cmake.in
rename to share/cmake-3.18/Modules/CMakeCXXCompiler.cmake.in
index efb8abf..09bdc23 100644
--- a/share/cmake-3.17/Modules/CMakeCXXCompiler.cmake.in
+++ b/share/cmake-3.18/Modules/CMakeCXXCompiler.cmake.in
@@ -17,6 +17,7 @@
 set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "@CMAKE_CXX_COMPILER_FRONTEND_VARIANT@")
 set(CMAKE_CXX_SIMULATE_VERSION "@CMAKE_CXX_SIMULATE_VERSION@")
 @_SET_CMAKE_CXX_COMPILER_ARCHITECTURE_ID@
+@_SET_CMAKE_CXX_COMPILER_SYSROOT@
 @SET_MSVC_CXX_ARCHITECTURE_ID@
 @SET_CMAKE_XCODE_ARCHS@
 set(CMAKE_AR "@CMAKE_AR@")
diff --git a/share/cmake-3.17/Modules/CMakeCXXCompilerABI.cpp b/share/cmake-3.18/Modules/CMakeCXXCompilerABI.cpp
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeCXXCompilerABI.cpp
rename to share/cmake-3.18/Modules/CMakeCXXCompilerABI.cpp
diff --git a/share/cmake-3.17/Modules/CMakeCXXCompilerId.cpp.in b/share/cmake-3.18/Modules/CMakeCXXCompilerId.cpp.in
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeCXXCompilerId.cpp.in
rename to share/cmake-3.18/Modules/CMakeCXXCompilerId.cpp.in
diff --git a/share/cmake-3.17/Modules/CMakeCXXInformation.cmake b/share/cmake-3.18/Modules/CMakeCXXInformation.cmake
similarity index 96%
rename from share/cmake-3.17/Modules/CMakeCXXInformation.cmake
rename to share/cmake-3.18/Modules/CMakeCXXInformation.cmake
index da7440a..dbb4366 100644
--- a/share/cmake-3.17/Modules/CMakeCXXInformation.cmake
+++ b/share/cmake-3.18/Modules/CMakeCXXInformation.cmake
@@ -258,7 +258,7 @@
   set(CMAKE_CXX_ARCHIVE_CREATE "<CMAKE_AR> qc <TARGET> <LINK_FLAGS> <OBJECTS>")
 endif()
 if(NOT DEFINED CMAKE_CXX_ARCHIVE_APPEND)
-  set(CMAKE_CXX_ARCHIVE_APPEND "<CMAKE_AR> q  <TARGET> <LINK_FLAGS> <OBJECTS>")
+  set(CMAKE_CXX_ARCHIVE_APPEND "<CMAKE_AR> q <TARGET> <LINK_FLAGS> <OBJECTS>")
 endif()
 if(NOT DEFINED CMAKE_CXX_ARCHIVE_FINISH)
   set(CMAKE_CXX_ARCHIVE_FINISH "<CMAKE_RANLIB> <TARGET>")
@@ -267,12 +267,12 @@
 # compile a C++ file into an object file
 if(NOT CMAKE_CXX_COMPILE_OBJECT)
   set(CMAKE_CXX_COMPILE_OBJECT
-    "<CMAKE_CXX_COMPILER>  <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT> -c <SOURCE>")
+    "<CMAKE_CXX_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT> -c <SOURCE>")
 endif()
 
 if(NOT CMAKE_CXX_LINK_EXECUTABLE)
   set(CMAKE_CXX_LINK_EXECUTABLE
-    "<CMAKE_CXX_COMPILER>  <FLAGS> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS>  -o <TARGET> <LINK_LIBRARIES>")
+    "<CMAKE_CXX_COMPILER> <FLAGS> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
 endif()
 
 mark_as_advanced(
diff --git a/share/cmake-3.17/Modules/CMakeCheckCompilerFlagCommonPatterns.cmake b/share/cmake-3.18/Modules/CMakeCheckCompilerFlagCommonPatterns.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeCheckCompilerFlagCommonPatterns.cmake
rename to share/cmake-3.18/Modules/CMakeCheckCompilerFlagCommonPatterns.cmake
diff --git a/share/cmake-3.17/Modules/CMakeCommonLanguageInclude.cmake b/share/cmake-3.18/Modules/CMakeCommonLanguageInclude.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeCommonLanguageInclude.cmake
rename to share/cmake-3.18/Modules/CMakeCommonLanguageInclude.cmake
diff --git a/share/cmake-3.17/Modules/CMakeCompilerABI.h b/share/cmake-3.18/Modules/CMakeCompilerABI.h
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeCompilerABI.h
rename to share/cmake-3.18/Modules/CMakeCompilerABI.h
diff --git a/share/cmake-3.17/Modules/CMakeCompilerIdDetection.cmake b/share/cmake-3.18/Modules/CMakeCompilerIdDetection.cmake
similarity index 97%
rename from share/cmake-3.17/Modules/CMakeCompilerIdDetection.cmake
rename to share/cmake-3.18/Modules/CMakeCompilerIdDetection.cmake
index bb573b7..acd15df 100644
--- a/share/cmake-3.17/Modules/CMakeCompilerIdDetection.cmake
+++ b/share/cmake-3.18/Modules/CMakeCompilerIdDetection.cmake
@@ -89,9 +89,8 @@
       )
     endif()
 
-    #Currently the only CUDA compilers are NVIDIA
     if(lang STREQUAL CUDA)
-      set(ordered_compilers NVIDIA)
+      set(ordered_compilers NVIDIA Clang)
     endif()
 
     if(CID_ID_DEFINE)
diff --git a/share/cmake-3.17/Modules/CMakeConfigurableFile.in b/share/cmake-3.18/Modules/CMakeConfigurableFile.in
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeConfigurableFile.in
rename to share/cmake-3.18/Modules/CMakeConfigurableFile.in
diff --git a/share/cmake-3.17/Modules/CMakeDependentOption.cmake b/share/cmake-3.18/Modules/CMakeDependentOption.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeDependentOption.cmake
rename to share/cmake-3.18/Modules/CMakeDependentOption.cmake
diff --git a/share/cmake-3.17/Modules/CMakeDetermineASM-ATTCompiler.cmake b/share/cmake-3.18/Modules/CMakeDetermineASM-ATTCompiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeDetermineASM-ATTCompiler.cmake
rename to share/cmake-3.18/Modules/CMakeDetermineASM-ATTCompiler.cmake
diff --git a/share/cmake-3.17/Modules/CMakeDetermineASMCompiler.cmake b/share/cmake-3.18/Modules/CMakeDetermineASMCompiler.cmake
similarity index 93%
rename from share/cmake-3.17/Modules/CMakeDetermineASMCompiler.cmake
rename to share/cmake-3.18/Modules/CMakeDetermineASMCompiler.cmake
index e47f3a4..bc8b86b 100644
--- a/share/cmake-3.17/Modules/CMakeDetermineASMCompiler.cmake
+++ b/share/cmake-3.18/Modules/CMakeDetermineASMCompiler.cmake
@@ -134,6 +134,9 @@
       list(GET _all_compileid_matches "-1" CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID)
     endif()
   endif()
+
+  _cmake_find_compiler_sysroot(ASM${ASM_DIALECT})
+
   unset(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_OUTPUT)
   unset(_all_compileid_matches)
   unset(_compileid)
@@ -211,6 +214,21 @@
   set(_CMAKE_ASM_${_var} "${CMAKE_ASM${ASM_DIALECT}_${_var}}")
 endforeach()
 
+if(CMAKE_ASM${ASM_DIALECT}_COMPILER_SYSROOT)
+  string(CONCAT _SET_CMAKE_ASM_COMPILER_SYSROOT
+    "set(CMAKE_ASM${ASM_DIALECT}_COMPILER_SYSROOT \"${CMAKE_ASM${ASM_DIALECT}_COMPILER_SYSROOT}\")\n"
+    "set(CMAKE_COMPILER_SYSROOT \"${CMAKE_ASM${ASM_DIALECT}_COMPILER_SYSROOT}\")")
+else()
+  set(_SET_CMAKE_ASM_COMPILER_SYSROOT "")
+endif()
+
+if(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_MATCH)
+  set(_SET_CMAKE_ASM_COMPILER_ID_VENDOR_MATCH
+    "set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_MATCH [==[${CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_MATCH}]==])")
+else()
+  set(_SET_CMAKE_ASM_COMPILER_ID_VENDOR_MATCH "")
+endif()
+
 if(CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID)
   set(_SET_CMAKE_ASM_COMPILER_ARCHITECTURE_ID
     "set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID ${CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID})")
diff --git a/share/cmake-3.17/Modules/CMakeDetermineASM_MASMCompiler.cmake b/share/cmake-3.18/Modules/CMakeDetermineASM_MASMCompiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeDetermineASM_MASMCompiler.cmake
rename to share/cmake-3.18/Modules/CMakeDetermineASM_MASMCompiler.cmake
diff --git a/share/cmake-3.17/Modules/CMakeDetermineASM_NASMCompiler.cmake b/share/cmake-3.18/Modules/CMakeDetermineASM_NASMCompiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeDetermineASM_NASMCompiler.cmake
rename to share/cmake-3.18/Modules/CMakeDetermineASM_NASMCompiler.cmake
diff --git a/share/cmake-3.17/Modules/CMakeDetermineCCompiler.cmake b/share/cmake-3.18/Modules/CMakeDetermineCCompiler.cmake
similarity index 94%
rename from share/cmake-3.17/Modules/CMakeDetermineCCompiler.cmake
rename to share/cmake-3.18/Modules/CMakeDetermineCCompiler.cmake
index 037c33b..86683d1 100644
--- a/share/cmake-3.17/Modules/CMakeDetermineCCompiler.cmake
+++ b/share/cmake-3.18/Modules/CMakeDetermineCCompiler.cmake
@@ -99,7 +99,7 @@
     CMAKE_C_COMPILER_ID_PLATFORM_CONTENT)
 
   # The IAR compiler produces weird output.
-  # See https://gitlab.kitware.com/cmake/cmake/issues/10176#note_153591
+  # See https://gitlab.kitware.com/cmake/cmake/-/issues/10176#note_153591
   list(APPEND CMAKE_C_COMPILER_ID_VENDORS IAR)
   set(CMAKE_C_COMPILER_ID_VENDOR_FLAGS_IAR )
   set(CMAKE_C_COMPILER_ID_VENDOR_REGEX_IAR "IAR .+ Compiler")
@@ -115,6 +115,8 @@
   include(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerId.cmake)
   CMAKE_DETERMINE_COMPILER_ID(C CFLAGS CMakeCCompilerId.c)
 
+  _cmake_find_compiler_sysroot(C)
+
   # Set old compiler and platform id variables.
   if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
     set(CMAKE_COMPILER_IS_GNUCC 1)
@@ -153,7 +155,7 @@
 # NAME_WE cannot be used since then this test will fail for names like
 # "arm-unknown-nto-qnx6.3.0-gcc.exe", where BASENAME would be
 # "arm-unknown-nto-qnx6" instead of the correct "arm-unknown-nto-qnx6.3.0-"
-if (CMAKE_CROSSCOMPILING  AND NOT _CMAKE_TOOLCHAIN_PREFIX)
+if (NOT _CMAKE_TOOLCHAIN_PREFIX)
 
   if(CMAKE_C_COMPILER_ID MATCHES "GNU|Clang|QCC")
     get_filename_component(COMPILER_BASENAME "${CMAKE_C_COMPILER}" NAME)
@@ -191,6 +193,14 @@
 include(Compiler/${CMAKE_C_COMPILER_ID}-FindBinUtils OPTIONAL)
 unset(_CMAKE_PROCESSING_LANGUAGE)
 
+if(CMAKE_C_COMPILER_SYSROOT)
+  string(CONCAT _SET_CMAKE_C_COMPILER_SYSROOT
+    "set(CMAKE_C_COMPILER_SYSROOT \"${CMAKE_C_COMPILER_SYSROOT}\")\n"
+    "set(CMAKE_COMPILER_SYSROOT \"${CMAKE_C_COMPILER_SYSROOT}\")")
+else()
+  set(_SET_CMAKE_C_COMPILER_SYSROOT "")
+endif()
+
 if(CMAKE_C_COMPILER_ARCHITECTURE_ID)
   set(_SET_CMAKE_C_COMPILER_ARCHITECTURE_ID
     "set(CMAKE_C_COMPILER_ARCHITECTURE_ID ${CMAKE_C_COMPILER_ARCHITECTURE_ID})")
diff --git a/share/cmake-3.17/Modules/CMakeDetermineCSharpCompiler.cmake b/share/cmake-3.18/Modules/CMakeDetermineCSharpCompiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeDetermineCSharpCompiler.cmake
rename to share/cmake-3.18/Modules/CMakeDetermineCSharpCompiler.cmake
diff --git a/share/cmake-3.18/Modules/CMakeDetermineCUDACompiler.cmake b/share/cmake-3.18/Modules/CMakeDetermineCUDACompiler.cmake
new file mode 100644
index 0000000..fa497cd
--- /dev/null
+++ b/share/cmake-3.18/Modules/CMakeDetermineCUDACompiler.cmake
@@ -0,0 +1,575 @@
+# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+include(${CMAKE_ROOT}/Modules/CMakeDetermineCompiler.cmake)
+include(${CMAKE_ROOT}/Modules/CMakeParseImplicitLinkInfo.cmake)
+
+if( NOT ( ("${CMAKE_GENERATOR}" MATCHES "Make") OR
+          ("${CMAKE_GENERATOR}" MATCHES "Ninja") OR
+          ("${CMAKE_GENERATOR}" MATCHES "Visual Studio (1|[9][0-9])") ) )
+  message(FATAL_ERROR "CUDA language not currently supported by \"${CMAKE_GENERATOR}\" generator")
+endif()
+
+if(${CMAKE_GENERATOR} MATCHES "Visual Studio")
+else()
+  if(NOT CMAKE_CUDA_COMPILER)
+    set(CMAKE_CUDA_COMPILER_INIT NOTFOUND)
+
+      # prefer the environment variable CUDACXX
+      if(NOT $ENV{CUDACXX} STREQUAL "")
+        get_filename_component(CMAKE_CUDA_COMPILER_INIT $ENV{CUDACXX} PROGRAM PROGRAM_ARGS CMAKE_CUDA_FLAGS_ENV_INIT)
+        if(CMAKE_CUDA_FLAGS_ENV_INIT)
+          set(CMAKE_CUDA_COMPILER_ARG1 "${CMAKE_CUDA_FLAGS_ENV_INIT}" CACHE STRING "First argument to CXX compiler")
+        endif()
+        if(NOT EXISTS ${CMAKE_CUDA_COMPILER_INIT})
+          message(FATAL_ERROR "Could not find compiler set in environment variable CUDACXX:\n$ENV{CUDACXX}.\n${CMAKE_CUDA_COMPILER_INIT}")
+        endif()
+      endif()
+
+    # finally list compilers to try
+    if(NOT CMAKE_CUDA_COMPILER_INIT)
+      set(CMAKE_CUDA_COMPILER_LIST nvcc)
+    endif()
+
+    _cmake_find_compiler(CUDA)
+  else()
+    _cmake_find_compiler_path(CUDA)
+  endif()
+
+  mark_as_advanced(CMAKE_CUDA_COMPILER)
+endif()
+
+#Allow the user to specify a host compiler
+if(NOT $ENV{CUDAHOSTCXX} STREQUAL "")
+  get_filename_component(CMAKE_CUDA_HOST_COMPILER $ENV{CUDAHOSTCXX} PROGRAM)
+  if(NOT EXISTS ${CMAKE_CUDA_HOST_COMPILER})
+    message(FATAL_ERROR "Could not find compiler set in environment variable CUDAHOSTCXX:\n$ENV{CUDAHOSTCXX}.\n${CMAKE_CUDA_HOST_COMPILER}")
+  endif()
+endif()
+
+# Build a small source file to identify the compiler.
+if(NOT CMAKE_CUDA_COMPILER_ID_RUN)
+  set(CMAKE_CUDA_COMPILER_ID_RUN 1)
+
+  include(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerId.cmake)
+
+  if(${CMAKE_GENERATOR} MATCHES "Visual Studio")
+    # We will not know CMAKE_CUDA_COMPILER until the main compiler id step
+    # below extracts it, but we do know that the compiler id will be NVIDIA.
+    set(CMAKE_CUDA_COMPILER_ID "NVIDIA")
+  else()
+    # We determine the vendor to help with find the toolkit and use the right flags for detection right away.
+    # The main compiler identification is still needed below to extract other information.
+    list(APPEND CMAKE_CUDA_COMPILER_ID_VENDORS NVIDIA Clang)
+    set(CMAKE_CUDA_COMPILER_ID_VENDOR_REGEX_NVIDIA "nvcc: NVIDIA \\(R\\) Cuda compiler driver")
+    set(CMAKE_CUDA_COMPILER_ID_VENDOR_REGEX_Clang "(clang version)")
+    CMAKE_DETERMINE_COMPILER_ID_VENDOR(CUDA "--version")
+
+    # Find the CUDA toolkit. We store the CMAKE_CUDA_COMPILER_TOOLKIT_ROOT and CMAKE_CUDA_COMPILER_LIBRARY_ROOT
+    # in CMakeCUDACompiler.cmake, so FindCUDAToolkit can avoid searching on future runs and the toolkit stays the same.
+    # This is very similar to FindCUDAToolkit, but somewhat simplified since we can issue fatal errors
+    # if we fail to find things we need and we don't need to account for searching the libraries.
+
+    # For NVCC we can easily deduce the SDK binary directory from the compiler path.
+    if(CMAKE_CUDA_COMPILER_ID STREQUAL "NVIDIA")
+      set(_CUDA_NVCC_EXECUTABLE "${CMAKE_CUDA_COMPILER}")
+    else()
+      # Search using CUDAToolkit_ROOT and then CUDA_PATH for equivalence with FindCUDAToolkit.
+      # In FindCUDAToolkit CUDAToolkit_ROOT is searched automatically due to being in a find_package().
+      # First we search candidate non-default paths to give them priority.
+      find_program(_CUDA_NVCC_EXECUTABLE
+        NAMES nvcc nvcc.exe
+        PATHS ${CUDAToolkit_ROOT}
+        ENV CUDAToolkit_ROOT
+        ENV CUDA_PATH
+        PATH_SUFFIXES bin
+        NO_DEFAULT_PATH
+      )
+
+      # If we didn't find NVCC, then try the default paths.
+      find_program(_CUDA_NVCC_EXECUTABLE
+        NAMES nvcc nvcc.exe
+        PATH_SUFFIXES bin
+      )
+
+      # If the user specified CUDAToolkit_ROOT but nvcc could not be found, this is an error.
+      if(NOT _CUDA_NVCC_EXECUTABLE AND (DEFINED CUDAToolkit_ROOT OR DEFINED ENV{CUDAToolkit_ROOT}))
+        set(fail_base "Could not find nvcc executable in path specified by")
+
+        if(DEFINED CUDAToolkit_ROOT)
+          message(FATAL_ERROR "${fail_base} CUDAToolkit_ROOT=${CUDAToolkit_ROOT}")
+        elseif(DEFINED ENV{CUDAToolkit_ROOT})
+          message(FATAL_ERROR "${fail_base} environment variable CUDAToolkit_ROOT=$ENV{CUDAToolkit_ROOT}")
+        endif()
+      endif()
+
+      # CUDAToolkit_ROOT cmake/env variable not specified, try platform defaults.
+      #
+      # - Linux: /usr/local/cuda-X.Y
+      # - macOS: /Developer/NVIDIA/CUDA-X.Y
+      # - Windows: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\vX.Y
+      #
+      # We will also search the default symlink location /usr/local/cuda first since
+      # if CUDAToolkit_ROOT is not specified, it is assumed that the symlinked
+      # directory is the desired location.
+      if(NOT _CUDA_NVCC_EXECUTABLE)
+        if(UNIX)
+          if(NOT APPLE)
+            set(platform_base "/usr/local/cuda-")
+          else()
+            set(platform_base "/Developer/NVIDIA/CUDA-")
+          endif()
+        else()
+          set(platform_base "C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v")
+        endif()
+
+        # Build out a descending list of possible cuda installations, e.g.
+        file(GLOB possible_paths "${platform_base}*")
+        # Iterate the glob results and create a descending list.
+        set(versions)
+        foreach(p ${possible_paths})
+          # Extract version number from end of string
+          string(REGEX MATCH "[0-9][0-9]?\\.[0-9]$" p_version ${p})
+          if(IS_DIRECTORY ${p} AND p_version)
+            list(APPEND versions ${p_version})
+          endif()
+        endforeach()
+
+        # Sort numerically in descending order, so we try the newest versions first.
+        list(SORT versions COMPARE NATURAL ORDER DESCENDING)
+
+        # With a descending list of versions, populate possible paths to search.
+        set(search_paths)
+        foreach(v ${versions})
+          list(APPEND search_paths "${platform_base}${v}")
+        endforeach()
+
+        # Force the global default /usr/local/cuda to the front on Unix.
+        if(UNIX)
+          list(INSERT search_paths 0 "/usr/local/cuda")
+        endif()
+
+        # Now search for nvcc again using the platform default search paths.
+        find_program(_CUDA_NVCC_EXECUTABLE
+          NAMES nvcc nvcc.exe
+          PATHS ${search_paths}
+          PATH_SUFFIXES bin
+        )
+
+        # We are done with these variables now, cleanup.
+        unset(platform_base)
+        unset(possible_paths)
+        unset(versions)
+        unset(search_paths)
+
+        if(NOT _CUDA_NVCC_EXECUTABLE)
+          message(FATAL_ERROR "Could not find nvcc, please set CUDAToolkit_ROOT.")
+        endif()
+      endif()
+    endif()
+
+    get_filename_component(CMAKE_CUDA_COMPILER_TOOLKIT_ROOT "${_CUDA_NVCC_EXECUTABLE}" DIRECTORY)
+    get_filename_component(CMAKE_CUDA_COMPILER_TOOLKIT_ROOT "${CMAKE_CUDA_COMPILER_TOOLKIT_ROOT}" DIRECTORY)
+
+    # CMAKE_CUDA_COMPILER_LIBRARY_ROOT contains the device library and version file.
+    # In a non-scattered installation this is equivalent to CMAKE_CUDA_COMPILER_TOOLKIT_ROOT.
+    # We first check for a non-scattered installation to prefer it over a scattered installation.
+    if(EXISTS "${CMAKE_CUDA_COMPILER_TOOLKIT_ROOT}/version.txt")
+      set(CMAKE_CUDA_COMPILER_LIBRARY_ROOT "${CMAKE_CUDA_COMPILER_TOOLKIT_ROOT}")
+    elseif(CMAKE_SYSROOT_LINK AND EXISTS "${CMAKE_SYSROOT_LINK}/usr/lib/cuda/version.txt")
+      set(CMAKE_CUDA_COMPILER_LIBRARY_ROOT "${CMAKE_SYSROOT_LINK}/usr/lib/cuda")
+    elseif(EXISTS "${CMAKE_SYSROOT}/usr/lib/cuda/version.txt")
+      set(CMAKE_CUDA_COMPILER_LIBRARY_ROOT "${CMAKE_SYSROOT}/usr/lib/cuda")
+    endif()
+  endif()
+
+  set(CMAKE_CUDA_COMPILER_ID_FLAGS_ALWAYS "-v")
+
+  if(CMAKE_CUDA_COMPILER_ID STREQUAL "NVIDIA")
+    set(nvcc_test_flags "--keep --keep-dir tmp")
+    if(CMAKE_CUDA_HOST_COMPILER)
+      string(APPEND nvcc_test_flags " -ccbin=\"${CMAKE_CUDA_HOST_COMPILER}\"")
+    endif()
+  elseif(CMAKE_CUDA_COMPILER_ID STREQUAL "Clang")
+    if(WIN32)
+      message(FATAL_ERROR "Clang with CUDA is not yet supported on Windows. See CMake issue #20776.")
+    endif()
+
+    set(clang_test_flags "--cuda-path=\"${CMAKE_CUDA_COMPILER_LIBRARY_ROOT}\"")
+    if(CMAKE_CROSSCOMPILING)
+      # Need to pass the host target and include directories if we're crosscompiling.
+      string(APPEND clang_test_flags " --sysroot=\"${CMAKE_SYSROOT}\" --target=${CMAKE_CUDA_COMPILER_TARGET}")
+    endif()
+  endif()
+
+  # First try with the user-specified architectures.
+  if(CMAKE_CUDA_ARCHITECTURES)
+    set(clang_archs "${clang_test_flags}")
+    set(nvcc_archs "${nvcc_test_flags}")
+
+    foreach(arch ${CMAKE_CUDA_ARCHITECTURES})
+      # Strip specifiers as PTX vs binary doesn't matter.
+      string(REGEX MATCH "[0-9]+" arch_name "${arch}")
+      string(APPEND clang_archs " --cuda-gpu-arch=sm_${arch_name}")
+      string(APPEND nvcc_archs " -gencode=arch=compute_${arch_name},code=sm_${arch_name}")
+      list(APPEND tested_architectures "${arch_name}")
+    endforeach()
+
+    list(APPEND CMAKE_CUDA_COMPILER_ID_TEST_FLAGS_FIRST "${clang_archs}")
+    list(APPEND CMAKE_CUDA_COMPILER_ID_TEST_FLAGS_FIRST "${nvcc_archs}")
+  endif()
+
+  # Fallback default NVCC flags.
+  list(APPEND CMAKE_CUDA_COMPILER_ID_TEST_FLAGS_FIRST ${nvcc_test_flags})
+
+  # Clang doesn't automatically select an architecture supported by the SDK.
+  # Try in reverse order of deprecation with the most recent at front (i.e. the most likely to work for new setups).
+  foreach(arch "20" "30" "52")
+    list(APPEND CMAKE_CUDA_COMPILER_ID_TEST_FLAGS_FIRST "${clang_test_flags} --cuda-gpu-arch=sm_${arch}")
+  endforeach()
+
+  # Finally also try the default.
+  list(APPEND CMAKE_CUDA_COMPILER_ID_TEST_FLAGS_FIRST "${clang_test_flags}")
+
+  # We perform compiler identification for a second time to extract implicit linking info and host compiler for NVCC.
+  # We also use it to verify that CMAKE_CUDA_ARCHITECTURES and additionaly on Clang that CUDA toolkit path works.
+  # The latter could be done during compiler testing in the future to avoid doing this for Clang.
+  # We need to unset the compiler ID otherwise CMAKE_DETERMINE_COMPILER_ID() doesn't work.
+  set(CMAKE_CUDA_COMPILER_ID)
+  set(CMAKE_CUDA_PLATFORM_ID)
+  file(READ ${CMAKE_ROOT}/Modules/CMakePlatformId.h.in
+    CMAKE_CUDA_COMPILER_ID_PLATFORM_CONTENT)
+
+  CMAKE_DETERMINE_COMPILER_ID(CUDA CUDAFLAGS CMakeCUDACompilerId.cu)
+
+  if(${CMAKE_GENERATOR} MATCHES "Visual Studio")
+    # Now that we have the path to nvcc, we can compute the toolkit root.
+    get_filename_component(CMAKE_CUDA_COMPILER_TOOLKIT_ROOT "${CMAKE_CUDA_COMPILER}" DIRECTORY)
+    get_filename_component(CMAKE_CUDA_COMPILER_TOOLKIT_ROOT "${CMAKE_CUDA_COMPILER_TOOLKIT_ROOT}" DIRECTORY)
+    set(CMAKE_CUDA_COMPILER_LIBRARY_ROOT "${CMAKE_CUDA_COMPILER_TOOLKIT_ROOT}")
+  endif()
+
+  _cmake_find_compiler_sysroot(CUDA)
+endif()
+
+set(_CMAKE_PROCESSING_LANGUAGE "CUDA")
+include(CMakeFindBinUtils)
+include(Compiler/${CMAKE_CUDA_COMPILER_ID}-FindBinUtils OPTIONAL)
+unset(_CMAKE_PROCESSING_LANGUAGE)
+
+if(MSVC_CUDA_ARCHITECTURE_ID)
+  set(SET_MSVC_CUDA_ARCHITECTURE_ID
+    "set(MSVC_CUDA_ARCHITECTURE_ID ${MSVC_CUDA_ARCHITECTURE_ID})")
+endif()
+
+if(${CMAKE_GENERATOR} MATCHES "Visual Studio")
+  set(CMAKE_CUDA_HOST_LINK_LAUNCHER "${CMAKE_LINKER}")
+  set(CMAKE_CUDA_HOST_IMPLICIT_LINK_LIBRARIES "")
+  set(CMAKE_CUDA_HOST_IMPLICIT_LINK_DIRECTORIES "")
+  set(CMAKE_CUDA_HOST_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
+
+  # We do not currently detect CMAKE_CUDA_HOST_IMPLICIT_LINK_LIBRARIES but we
+  # do need to detect CMAKE_CUDA_RUNTIME_LIBRARY_DEFAULT from the compiler by
+  # looking at which cudart library exists in the implicit link libraries passed
+  # to the host linker.
+  if(CMAKE_CUDA_COMPILER_PRODUCED_OUTPUT MATCHES "link\\.exe [^\n]*cudart_static\\.lib")
+    set(CMAKE_CUDA_RUNTIME_LIBRARY_DEFAULT "STATIC")
+  elseif(CMAKE_CUDA_COMPILER_PRODUCED_OUTPUT MATCHES "link\\.exe [^\n]*cudart\\.lib")
+    set(CMAKE_CUDA_RUNTIME_LIBRARY_DEFAULT "SHARED")
+  else()
+    set(CMAKE_CUDA_RUNTIME_LIBRARY_DEFAULT "NONE")
+  endif()
+  set(_SET_CMAKE_CUDA_RUNTIME_LIBRARY_DEFAULT
+    "set(CMAKE_CUDA_RUNTIME_LIBRARY_DEFAULT \"${CMAKE_CUDA_RUNTIME_LIBRARY_DEFAULT}\")")
+elseif(CMAKE_CUDA_COMPILER_ID STREQUAL "Clang")
+  if(NOT CMAKE_CUDA_ARCHITECTURES)
+    # Find the architecture that we successfully compiled using and set it as the default.
+    string(REGEX MATCH "-target-cpu sm_([0-9]+)" dont_care "${CMAKE_CUDA_COMPILER_PRODUCED_OUTPUT}")
+    set(detected_architecture "${CMAKE_MATCH_1}")
+  else()
+    string(REGEX MATCHALL "-target-cpu sm_([0-9]+)" target_cpus "${CMAKE_CUDA_COMPILER_PRODUCED_OUTPUT}")
+
+    foreach(cpu ${target_cpus})
+      string(REGEX MATCH "-target-cpu sm_([0-9]+)" dont_care "${cpu}")
+      list(APPEND architectures "${CMAKE_MATCH_1}")
+    endforeach()
+  endif()
+
+  # Find target directory. Account for crosscompiling.
+  if(CMAKE_CROSSCOMPILING)
+    if(CMAKE_SYSTEM_PROCESSOR STREQUAL "armv7-a")
+      # Support for NVPACK
+      set(_CUDA_TARGET_NAME "armv7-linux-androideabi")
+    elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm")
+      set(_CUDA_TARGET_NAME "armv7-linux-gnueabihf")
+    elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64")
+      if(ANDROID_ARCH_NAME STREQUAL "arm64")
+        set(_CUDA_TARGET_NAME "aarch64-linux-androideabi")
+      else()
+        set(_CUDA_TARGET_NAME "aarch64-linux")
+      endif()
+    elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
+      set(_CUDA_TARGET_NAME "x86_64-linux")
+    endif()
+
+    if(EXISTS "${CMAKE_CUDA_COMPILER_TOOLKIT_ROOT}/targets/${_CUDA_TARGET_NAME}")
+      set(_CUDA_TARGET_DIR "${CMAKE_CUDA_COMPILER_TOOLKIT_ROOT}/targets/${_CUDA_TARGET_NAME}")
+    endif()
+  else()
+    set(_CUDA_TARGET_DIR "${CMAKE_CUDA_COMPILER_TOOLKIT_ROOT}")
+  endif()
+
+  # We can't use find_library() yet at this point, so try a few guesses.
+  if(EXISTS "${_CUDA_TARGET_DIR}/lib64")
+    set(_CUDA_LIBRARY_DIR "${_CUDA_TARGET_DIR}/lib64")
+  elseif(EXISTS "${_CUDA_TARGET_DIR}/lib/x64")
+    set(_CUDA_LIBRARY_DIR "${_CUDA_TARGET_DIR}/lib/x64")
+  elseif(EXISTS "${_CUDA_TARGET_DIR}/lib")
+    set(_CUDA_LIBRARY_DIR "${_CUDA_TARGET_DIR}/lib")
+  else()
+    message(FATAL_ERROR "Unable to find _CUDA_LIBRARY_DIR based on _CUDA_TARGET_DIR=${_CUDA_TARGET_DIR}")
+  endif()
+
+  # _CUDA_TARGET_DIR always points to the directory containing the include directory.
+  # On a scattered installation /usr, on a non-scattered something like /usr/local/cuda or /usr/local/cuda-10.2/targets/aarch64-linux.
+  if(EXISTS "${_CUDA_TARGET_DIR}/include/cuda_runtime.h")
+    set(_CUDA_INCLUDE_DIR "${_CUDA_TARGET_DIR}/include")
+  else()
+    message(FATAL_ERROR "Unable to find cuda_runtime.h in \"${_CUDA_TARGET_DIR}/include\" for _CUDA_INCLUDE_DIR.")
+  endif()
+
+  # Clang does not add any CUDA SDK libraries or directories when invoking the host linker.
+  # Add the CUDA toolkit library directory ourselves so that linking works.
+  # The CUDA runtime libraries are handled elsewhere by CMAKE_CUDA_RUNTIME_LIBRARY.
+  set(CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES "${_CUDA_INCLUDE_DIR}")
+  set(CMAKE_CUDA_HOST_IMPLICIT_LINK_DIRECTORIES "${_CUDA_LIBRARY_DIR}")
+  set(CMAKE_CUDA_HOST_IMPLICIT_LINK_LIBRARIES "")
+  set(CMAKE_CUDA_HOST_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
+elseif(CMAKE_CUDA_COMPILER_ID STREQUAL "NVIDIA")
+  set(_nvcc_log "")
+  string(REPLACE "\r" "" _nvcc_output_orig "${CMAKE_CUDA_COMPILER_PRODUCED_OUTPUT}")
+  if(_nvcc_output_orig MATCHES "#\\\$ +PATH= *([^\n]*)\n")
+    set(_nvcc_path "${CMAKE_MATCH_1}")
+    string(APPEND _nvcc_log "  found 'PATH=' string: [${_nvcc_path}]\n")
+    string(REPLACE ":" ";" _nvcc_path "${_nvcc_path}")
+  else()
+    set(_nvcc_path "")
+    string(REPLACE "\n" "\n    " _nvcc_output_log "\n${_nvcc_output_orig}")
+    string(APPEND _nvcc_log "  no 'PATH=' string found in nvcc output:${_nvcc_output_log}\n")
+  endif()
+  if(_nvcc_output_orig MATCHES "#\\\$ +LIBRARIES= *([^\n]*)\n")
+    set(_nvcc_libraries "${CMAKE_MATCH_1}")
+    string(APPEND _nvcc_log "  found 'LIBRARIES=' string: [${_nvcc_libraries}]\n")
+  else()
+    set(_nvcc_libraries "")
+    string(REPLACE "\n" "\n    " _nvcc_output_log "\n${_nvcc_output_orig}")
+    string(APPEND _nvcc_log "  no 'LIBRARIES=' string found in nvcc output:${_nvcc_output_log}\n")
+  endif()
+
+  set(_nvcc_link_line "")
+  if(_nvcc_libraries)
+    # Remove variable assignments.
+    string(REGEX REPLACE "#\\\$ *[^= ]+=[^\n]*\n" "" _nvcc_output "${_nvcc_output_orig}")
+    # Encode [] characters that break list expansion.
+    string(REPLACE "[" "{==={" _nvcc_output "${_nvcc_output}")
+    string(REPLACE "]" "}===}" _nvcc_output "${_nvcc_output}")
+    # Split lines.
+    string(REGEX REPLACE "\n+(#\\\$ )?" ";" _nvcc_output "${_nvcc_output}")
+    foreach(line IN LISTS _nvcc_output)
+      set(_nvcc_output_line "${line}")
+      string(REPLACE "{==={" "[" _nvcc_output_line "${_nvcc_output_line}")
+      string(REPLACE "}===}" "]" _nvcc_output_line "${_nvcc_output_line}")
+      string(APPEND _nvcc_log "  considering line: [${_nvcc_output_line}]\n")
+      if("${_nvcc_output_line}" MATCHES "^ *nvlink")
+        string(APPEND _nvcc_log "    ignoring nvlink line\n")
+      elseif(_nvcc_libraries)
+        if("${_nvcc_output_line}" MATCHES "(@\"?tmp/a\\.exe\\.res\"?)")
+          set(_nvcc_link_res_arg "${CMAKE_MATCH_1}")
+          set(_nvcc_link_res "${CMAKE_PLATFORM_INFO_DIR}/CompilerIdCUDA/tmp/a.exe.res")
+          if(EXISTS "${_nvcc_link_res}")
+            file(READ "${_nvcc_link_res}" _nvcc_link_res_content)
+            string(REPLACE "${_nvcc_link_res_arg}" "${_nvcc_link_res_content}" _nvcc_output_line "${_nvcc_output_line}")
+          endif()
+        endif()
+        string(FIND "${_nvcc_output_line}" "${_nvcc_libraries}" _nvcc_libraries_pos)
+        if(NOT _nvcc_libraries_pos EQUAL -1)
+          set(_nvcc_link_line "${_nvcc_output_line}")
+          string(APPEND _nvcc_log "    extracted link line: [${_nvcc_link_line}]\n")
+        endif()
+      endif()
+    endforeach()
+  endif()
+
+  if(_nvcc_link_line)
+    if("x${CMAKE_CUDA_SIMULATE_ID}" STREQUAL "xMSVC")
+      set(CMAKE_CUDA_HOST_LINK_LAUNCHER "${CMAKE_LINKER}")
+    else()
+      #extract the compiler that is being used for linking
+      separate_arguments(_nvcc_link_line_args UNIX_COMMAND "${_nvcc_link_line}")
+      list(GET _nvcc_link_line_args 0 _nvcc_host_link_launcher)
+      if(IS_ABSOLUTE "${_nvcc_host_link_launcher}")
+        string(APPEND _nvcc_log "  extracted link launcher absolute path: [${_nvcc_host_link_launcher}]\n")
+        set(CMAKE_CUDA_HOST_LINK_LAUNCHER "${_nvcc_host_link_launcher}")
+      else()
+        string(APPEND _nvcc_log "  extracted link launcher name: [${_nvcc_host_link_launcher}]\n")
+        find_program(_nvcc_find_host_link_launcher
+          NAMES ${_nvcc_host_link_launcher}
+          PATHS ${_nvcc_path} NO_DEFAULT_PATH)
+        find_program(_nvcc_find_host_link_launcher
+          NAMES ${_nvcc_host_link_launcher})
+        if(_nvcc_find_host_link_launcher)
+          string(APPEND _nvcc_log "  found link launcher absolute path: [${_nvcc_find_host_link_launcher}]\n")
+          set(CMAKE_CUDA_HOST_LINK_LAUNCHER "${_nvcc_find_host_link_launcher}")
+        else()
+          string(APPEND _nvcc_log "  could not find link launcher absolute path\n")
+          set(CMAKE_CUDA_HOST_LINK_LAUNCHER "${_nvcc_host_link_launcher}")
+        endif()
+        unset(_nvcc_find_host_link_launcher CACHE)
+      endif()
+    endif()
+
+    #prefix the line with cuda-fake-ld so that implicit link info believes it is
+    #a link line
+    set(_nvcc_link_line "cuda-fake-ld ${_nvcc_link_line}")
+    CMAKE_PARSE_IMPLICIT_LINK_INFO("${_nvcc_link_line}"
+                                   CMAKE_CUDA_HOST_IMPLICIT_LINK_LIBRARIES
+                                   CMAKE_CUDA_HOST_IMPLICIT_LINK_DIRECTORIES
+                                   CMAKE_CUDA_HOST_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES
+                                   log
+                                   "${CMAKE_CUDA_IMPLICIT_OBJECT_REGEX}")
+
+    # Detect CMAKE_CUDA_RUNTIME_LIBRARY_DEFAULT from the compiler by looking at which
+    # cudart library exists in the implicit link libraries passed to the host linker.
+    # This is required when a project sets the cuda runtime library as part of the
+    # initial flags.
+    if(";${CMAKE_CUDA_HOST_IMPLICIT_LINK_LIBRARIES};" MATCHES [[;cudart_static(\.lib)?;]])
+      set(CMAKE_CUDA_RUNTIME_LIBRARY_DEFAULT "STATIC")
+    elseif(";${CMAKE_CUDA_HOST_IMPLICIT_LINK_LIBRARIES};" MATCHES [[;cudart(\.lib)?;]])
+      set(CMAKE_CUDA_RUNTIME_LIBRARY_DEFAULT "SHARED")
+    else()
+      set(CMAKE_CUDA_RUNTIME_LIBRARY_DEFAULT "NONE")
+    endif()
+    set(_SET_CMAKE_CUDA_RUNTIME_LIBRARY_DEFAULT
+      "set(CMAKE_CUDA_RUNTIME_LIBRARY_DEFAULT \"${CMAKE_CUDA_RUNTIME_LIBRARY_DEFAULT}\")")
+
+    file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+      "Parsed CUDA nvcc implicit link information from above output:\n${_nvcc_log}\n${log}\n\n")
+  else()
+    file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+      "Failed to parse CUDA nvcc implicit link information:\n${_nvcc_log}\n\n")
+    message(FATAL_ERROR "Failed to extract nvcc implicit link line.")
+  endif()
+endif()
+
+# CMAKE_CUDA_HOST_IMPLICIT_LINK_LIBRARIES is detected above as the list of
+# libraries that the CUDA compiler implicitly passes to the host linker.
+# CMake invokes the host linker directly and so needs to pass these libraries.
+# We filter out those that should not be passed unconditionally both here
+# and from CMAKE_CUDA_IMPLICIT_LINK_LIBRARIES in CMakeTestCUDACompiler.
+set(CMAKE_CUDA_IMPLICIT_LINK_LIBRARIES_EXCLUDE
+  # The CUDA runtime libraries are controlled by CMAKE_CUDA_RUNTIME_LIBRARY.
+  cudart        cudart.lib
+  cudart_static cudart_static.lib
+  cudadevrt     cudadevrt.lib
+
+  # Dependencies of the CUDA static runtime library on Linux hosts.
+  rt
+  pthread
+  dl
+  )
+list(REMOVE_ITEM CMAKE_CUDA_HOST_IMPLICIT_LINK_LIBRARIES ${CMAKE_CUDA_IMPLICIT_LINK_LIBRARIES_EXCLUDE})
+
+if(CMAKE_CUDA_COMPILER_SYSROOT)
+  string(CONCAT _SET_CMAKE_CUDA_COMPILER_SYSROOT
+    "set(CMAKE_CUDA_COMPILER_SYSROOT \"${CMAKE_CUDA_COMPILER_SYSROOT}\")\n"
+    "set(CMAKE_COMPILER_SYSROOT \"${CMAKE_CUDA_COMPILER_SYSROOT}\")")
+else()
+  set(_SET_CMAKE_CUDA_COMPILER_SYSROOT "")
+endif()
+
+# Determine CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES
+if(CMAKE_CUDA_COMPILER_ID STREQUAL "NVIDIA")
+  set(CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES)
+  string(REPLACE "\r" "" _nvcc_output_orig "${CMAKE_CUDA_COMPILER_PRODUCED_OUTPUT}")
+  if(_nvcc_output_orig MATCHES "#\\\$ +INCLUDES= *([^\n]*)\n")
+    set(_nvcc_includes "${CMAKE_MATCH_1}")
+    string(APPEND _nvcc_log "  found 'INCLUDES=' string: [${_nvcc_includes}]\n")
+  else()
+    set(_nvcc_includes "")
+    string(REPLACE "\n" "\n    " _nvcc_output_log "\n${_nvcc_output_orig}")
+    string(APPEND _nvcc_log "  no 'INCLUDES=' string found in nvcc output:${_nvcc_output_log}\n")
+  endif()
+  if(_nvcc_includes)
+    # across all operating system each include directory is prefixed with -I
+    separate_arguments(_nvcc_output NATIVE_COMMAND "${_nvcc_includes}")
+    foreach(line IN LISTS _nvcc_output)
+      string(REGEX REPLACE "^-I" "" line "${line}")
+      get_filename_component(line "${line}" ABSOLUTE)
+      list(APPEND CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES "${line}")
+    endforeach()
+
+    file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+      "Parsed CUDA nvcc include information from above output:\n${_nvcc_log}\n${log}\n\n")
+  else()
+    file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+      "Failed to detect CUDA nvcc include information:\n${_nvcc_log}\n\n")
+  endif()
+
+  # Parse default CUDA architecture.
+  cmake_policy(GET CMP0104 _CUDA_CMP0104)
+  if(NOT CMAKE_CUDA_ARCHITECTURES AND _CUDA_CMP0104 STREQUAL "NEW")
+    string(REGEX MATCH "arch[ =]compute_([0-9]+)" dont_care "${CMAKE_CUDA_COMPILER_PRODUCED_OUTPUT}")
+    set(detected_architecture "${CMAKE_MATCH_1}")
+  elseif(CMAKE_CUDA_ARCHITECTURES)
+    string(REGEX MATCHALL "-arch compute_([0-9]+)" target_cpus "${CMAKE_CUDA_COMPILER_PRODUCED_OUTPUT}")
+
+    foreach(cpu ${target_cpus})
+      string(REGEX MATCH "-arch compute_([0-9]+)" dont_care "${cpu}")
+      list(APPEND architectures "${CMAKE_MATCH_1}")
+    endforeach()
+  endif()
+endif()
+
+# If the user didn't set the architectures, then set them to a default.
+# If the user did, then make sure those architectures worked.
+if(DEFINED detected_architecture AND "${CMAKE_CUDA_ARCHITECTURES}" STREQUAL "")
+  set(CMAKE_CUDA_ARCHITECTURES "${detected_architecture}" CACHE STRING "CUDA architectures")
+
+  if(NOT CMAKE_CUDA_ARCHITECTURES)
+    message(FATAL_ERROR "Failed to find a working CUDA architecture.")
+  endif()
+elseif(architectures)
+  # Sort since order mustn't matter.
+  list(SORT architectures)
+  list(SORT tested_architectures)
+
+  # We don't distinguish real/virtual architectures during testing.
+  # For "70-real;70-virtual" we detect "70" as working and tested_architectures is "70;70".
+  # Thus we need to remove duplicates before checking if they're equal.
+  list(REMOVE_DUPLICATES tested_architectures)
+
+  if(NOT "${architectures}" STREQUAL "${tested_architectures}")
+    message(FATAL_ERROR
+      "The CMAKE_CUDA_ARCHITECTURES:\n"
+      "  ${CMAKE_CUDA_ARCHITECTURES}\n"
+      "do not all work with this compiler.  Try:\n"
+      "  ${architectures}\n"
+      "instead.")
+  endif()
+endif()
+
+# configure all variables set in this file
+configure_file(${CMAKE_ROOT}/Modules/CMakeCUDACompiler.cmake.in
+  ${CMAKE_PLATFORM_INFO_DIR}/CMakeCUDACompiler.cmake
+  @ONLY
+)
+
+# Don't leak variables unnecessarily to user code.
+unset(_CUDA_INCLUDE_DIR CACHE)
+unset(_CUDA_NVCC_EXECUTABLE CACHE)
+unset(_CUDA_LIBRARY_DIR)
+unset(_CUDA_TARGET_DIR)
+unset(_CUDA_TARGET_NAME)
+
+set(CMAKE_CUDA_COMPILER_ENV_VAR "CUDACXX")
+set(CMAKE_CUDA_HOST_COMPILER_ENV_VAR "CUDAHOSTCXX")
diff --git a/share/cmake-3.17/Modules/CMakeDetermineCXXCompiler.cmake b/share/cmake-3.18/Modules/CMakeDetermineCXXCompiler.cmake
similarity index 94%
rename from share/cmake-3.17/Modules/CMakeDetermineCXXCompiler.cmake
rename to share/cmake-3.18/Modules/CMakeDetermineCXXCompiler.cmake
index 7274eec..662b831 100644
--- a/share/cmake-3.17/Modules/CMakeDetermineCXXCompiler.cmake
+++ b/share/cmake-3.18/Modules/CMakeDetermineCXXCompiler.cmake
@@ -94,7 +94,7 @@
     CMAKE_CXX_COMPILER_ID_PLATFORM_CONTENT)
 
   # The IAR compiler produces weird output.
-  # See https://gitlab.kitware.com/cmake/cmake/issues/10176#note_153591
+  # See https://gitlab.kitware.com/cmake/cmake/-/issues/10176#note_153591
   list(APPEND CMAKE_CXX_COMPILER_ID_VENDORS IAR)
   set(CMAKE_CXX_COMPILER_ID_VENDOR_FLAGS_IAR )
   set(CMAKE_CXX_COMPILER_ID_VENDOR_REGEX_IAR "IAR .+ Compiler")
@@ -110,6 +110,8 @@
   include(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerId.cmake)
   CMAKE_DETERMINE_COMPILER_ID(CXX CXXFLAGS CMakeCXXCompilerId.cpp)
 
+  _cmake_find_compiler_sysroot(CXX)
+
   # Set old compiler and platform id variables.
   if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
     set(CMAKE_COMPILER_IS_GNUCXX 1)
@@ -150,7 +152,7 @@
 # "arm-unknown-nto-qnx6" instead of the correct "arm-unknown-nto-qnx6.3.0-"
 
 
-if (CMAKE_CROSSCOMPILING  AND NOT  _CMAKE_TOOLCHAIN_PREFIX)
+if (NOT _CMAKE_TOOLCHAIN_PREFIX)
 
   if("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU|Clang|QCC")
     get_filename_component(COMPILER_BASENAME "${CMAKE_CXX_COMPILER}" NAME)
@@ -189,6 +191,14 @@
 include(Compiler/${CMAKE_CXX_COMPILER_ID}-FindBinUtils OPTIONAL)
 unset(_CMAKE_PROCESSING_LANGUAGE)
 
+if(CMAKE_CXX_COMPILER_SYSROOT)
+  string(CONCAT _SET_CMAKE_CXX_COMPILER_SYSROOT
+    "set(CMAKE_CXX_COMPILER_SYSROOT \"${CMAKE_CXX_COMPILER_SYSROOT}\")\n"
+    "set(CMAKE_COMPILER_SYSROOT \"${CMAKE_CXX_COMPILER_SYSROOT}\")")
+else()
+  set(_SET_CMAKE_CXX_COMPILER_SYSROOT "")
+endif()
+
 if(CMAKE_CXX_COMPILER_ARCHITECTURE_ID)
   set(_SET_CMAKE_CXX_COMPILER_ARCHITECTURE_ID
     "set(CMAKE_CXX_COMPILER_ARCHITECTURE_ID ${CMAKE_CXX_COMPILER_ARCHITECTURE_ID})")
diff --git a/share/cmake-3.17/Modules/CMakeDetermineCompileFeatures.cmake b/share/cmake-3.18/Modules/CMakeDetermineCompileFeatures.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeDetermineCompileFeatures.cmake
rename to share/cmake-3.18/Modules/CMakeDetermineCompileFeatures.cmake
diff --git a/share/cmake-3.17/Modules/CMakeDetermineCompiler.cmake b/share/cmake-3.18/Modules/CMakeDetermineCompiler.cmake
similarity index 79%
rename from share/cmake-3.17/Modules/CMakeDetermineCompiler.cmake
rename to share/cmake-3.18/Modules/CMakeDetermineCompiler.cmake
index c37adae..cb1ab1d 100644
--- a/share/cmake-3.17/Modules/CMakeDetermineCompiler.cmake
+++ b/share/cmake-3.18/Modules/CMakeDetermineCompiler.cmake
@@ -53,6 +53,20 @@
       NO_DEFAULT_PATH
       DOC "${lang} compiler")
   endif()
+  if(CMAKE_HOST_WIN32 AND CMAKE_GENERATOR MATCHES "Ninja")
+    # On Windows command-line builds, the Makefile generators each imply
+    # a preferred compiler tool.  The Ninja generator does not imply a
+    # compiler tool, so use the compiler that occurs first in PATH.
+    find_program(CMAKE_${lang}_COMPILER
+      NAMES ${CMAKE_${lang}_COMPILER_LIST}
+      NAMES_PER_DIR
+      DOC "${lang} compiler"
+      NO_PACKAGE_ROOT_PATH
+      NO_CMAKE_PATH
+      NO_CMAKE_ENVIRONMENT_PATH
+      NO_CMAKE_SYSTEM_PATH
+      )
+  endif()
   find_program(CMAKE_${lang}_COMPILER NAMES ${CMAKE_${lang}_COMPILER_LIST} DOC "${lang} compiler")
   if(CMAKE_${lang}_COMPILER_INIT AND NOT CMAKE_${lang}_COMPILER)
     set_property(CACHE CMAKE_${lang}_COMPILER PROPERTY VALUE "${CMAKE_${lang}_COMPILER_INIT}")
@@ -118,3 +132,21 @@
     endif()
   endif()
 endmacro()
+
+function(_cmake_find_compiler_sysroot lang)
+  if(CMAKE_${lang}_COMPILER_ID STREQUAL "GNU")
+    execute_process(COMMAND "${CMAKE_${lang}_COMPILER}" -print-sysroot
+      OUTPUT_STRIP_TRAILING_WHITESPACE
+      OUTPUT_VARIABLE _cmake_sysroot_run_out
+      ERROR_VARIABLE _cmake_sysroot_run_err)
+
+    if(_cmake_sysroot_run_out AND NOT _cmake_sysroot_run_err
+        AND NOT _cmake_sysroot_run_out STREQUAL "/"
+        AND IS_DIRECTORY "${_cmake_sysroot_run_out}/usr")
+      file(TO_CMAKE_PATH "${_cmake_sysroot_run_out}/usr" _cmake_sysroot_run_out_usr)
+      set(CMAKE_${lang}_COMPILER_SYSROOT "${_cmake_sysroot_run_out_usr}" PARENT_SCOPE)
+    else()
+      set(CMAKE_${lang}_COMPILER_SYSROOT "" PARENT_SCOPE)
+    endif()
+  endif()
+endfunction()
diff --git a/share/cmake-3.17/Modules/CMakeDetermineCompilerABI.cmake b/share/cmake-3.18/Modules/CMakeDetermineCompilerABI.cmake
similarity index 98%
rename from share/cmake-3.17/Modules/CMakeDetermineCompilerABI.cmake
rename to share/cmake-3.18/Modules/CMakeDetermineCompilerABI.cmake
index e1b3c52..50d5cd1 100644
--- a/share/cmake-3.17/Modules/CMakeDetermineCompilerABI.cmake
+++ b/share/cmake-3.18/Modules/CMakeDetermineCompilerABI.cmake
@@ -65,10 +65,13 @@
     # Move result from cache to normal variable.
     set(CMAKE_${lang}_ABI_COMPILED ${CMAKE_${lang}_ABI_COMPILED})
     unset(CMAKE_${lang}_ABI_COMPILED CACHE)
+    if(CMAKE_${lang}_ABI_COMPILED AND _copy_error)
+      set(CMAKE_${lang}_ABI_COMPILED 0)
+    endif()
     set(CMAKE_${lang}_ABI_COMPILED ${CMAKE_${lang}_ABI_COMPILED} PARENT_SCOPE)
 
     # Load the resulting information strings.
-    if(CMAKE_${lang}_ABI_COMPILED AND NOT _copy_error)
+    if(CMAKE_${lang}_ABI_COMPILED)
       message(CHECK_PASS "done")
       file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
         "Detecting ${lang} compiler ABI info compiled with the following output:\n${OUTPUT}\n\n")
diff --git a/share/cmake-3.17/Modules/CMakeDetermineCompilerId.cmake b/share/cmake-3.18/Modules/CMakeDetermineCompilerId.cmake
similarity index 96%
rename from share/cmake-3.17/Modules/CMakeDetermineCompilerId.cmake
rename to share/cmake-3.18/Modules/CMakeDetermineCompilerId.cmake
index d125791..44332a6 100644
--- a/share/cmake-3.17/Modules/CMakeDetermineCompilerId.cmake
+++ b/share/cmake-3.18/Modules/CMakeDetermineCompilerId.cmake
@@ -128,7 +128,7 @@
     set(CMAKE_EXECUTABLE_FORMAT "Unknown" CACHE INTERNAL "Executable file format")
   endif()
 
-  if(CMAKE_GENERATOR STREQUAL "Ninja" AND MSVC_${lang}_ARCHITECTURE_ID)
+  if(CMAKE_GENERATOR MATCHES "^Ninja" AND MSVC_${lang}_ARCHITECTURE_ID)
     foreach(userflags "${CMAKE_${lang}_COMPILER_ID_FLAGS_LIST}" "")
       CMAKE_DETERMINE_MSVC_SHOWINCLUDES_PREFIX(${lang} "${userflags}")
     endforeach()
@@ -246,8 +246,10 @@
     set(id_platform ${CMAKE_VS_PLATFORM_NAME})
     set(id_lang "${lang}")
     set(id_PostBuildEvent_Command "")
-    if(CMAKE_VS_PLATFORM_TOOLSET MATCHES "^([Ll][Ll][Vv][Mm](_v[0-9]+(_xp)?)?|[Cc][Ll][Aa][Nn][Gg][Cc][Ll])$")
+    if(CMAKE_VS_PLATFORM_TOOLSET MATCHES "^[Ll][Ll][Vv][Mm](_v[0-9]+(_xp)?)?$")
       set(id_cl_var "ClangClExecutable")
+    elseif(CMAKE_VS_PLATFORM_TOOLSET MATCHES "^[Cc][Ll][Aa][Nn][Gg][Cc][Ll]$")
+      set(id_cl "$(CLToolExe)")
     elseif(CMAKE_VS_PLATFORM_TOOLSET MATCHES "v[0-9]+_clang_.*")
       set(id_cl clang.exe)
     else()
@@ -379,7 +381,11 @@
       if(CMAKE_VS_PLATFORM_NAME STREQUAL x64)
         set(id_ItemDefinitionGroup_entry "<CudaCompile><TargetMachinePlatform>64</TargetMachinePlatform><AdditionalOptions>%(AdditionalOptions)-v</AdditionalOptions></CudaCompile>")
       endif()
-      set(id_Link_AdditionalDependencies "<AdditionalDependencies>cudart.lib</AdditionalDependencies>")
+      if(CMAKE_CUDA_FLAGS MATCHES "(^| )-cudart +shared( |$)")
+        set(id_Link_AdditionalDependencies "<AdditionalDependencies>cudart.lib</AdditionalDependencies>")
+      else()
+        set(id_Link_AdditionalDependencies "<AdditionalDependencies>cudart_static.lib</AdditionalDependencies>")
+      endif()
     endif()
     configure_file(${CMAKE_ROOT}/Modules/CompilerId/VS-${v}.${ext}.in
       ${id_dir}/CompilerId${lang}.${ext} @ONLY)
@@ -463,6 +469,12 @@
         set(id_clang_cxx_library "CLANG_CXX_LIBRARY = \"${CMAKE_MATCH_3}\";")
       endif()
     endif()
+    if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_OSX_SYSROOT MATCHES "^$|[Mm][Aa][Cc][Oo][Ss]")
+      # When targeting macOS, use only the host architecture.
+      set(id_archs [[ARCHS = "$(NATIVE_ARCH_ACTUAL)";]])
+    else()
+      set(id_archs "")
+    endif()
     configure_file(${CMAKE_ROOT}/Modules/CompilerId/Xcode-3.pbxproj.in
       ${id_dir}/CompilerId${lang}.xcodeproj/project.pbxproj @ONLY)
     unset(_ENV_MACOSX_DEPLOYMENT_TARGET)
@@ -868,6 +880,14 @@
     file(MAKE_DIRECTORY ${CMAKE_${lang}_COMPILER_ID_DIR})
   endif()
 
+  # Save the current LC_ALL, LC_MESSAGES, and LANG environment variables
+  # and set them to "C" so we get the expected output to match.
+  set(_orig_lc_all      $ENV{LC_ALL})
+  set(_orig_lc_messages $ENV{LC_MESSAGES})
+  set(_orig_lang        $ENV{LANG})
+  set(ENV{LC_ALL}      C)
+  set(ENV{LC_MESSAGES} C)
+  set(ENV{LANG}        C)
 
   foreach(vendor ${CMAKE_${lang}_COMPILER_ID_VENDORS})
     set(flags ${CMAKE_${lang}_COMPILER_ID_VENDOR_FLAGS_${vendor}})
@@ -889,6 +909,7 @@
         "matched \"${regex}\":\n${output}")
       set(CMAKE_${lang}_COMPILER_ID "${vendor}" PARENT_SCOPE)
       set(CMAKE_${lang}_COMPILER_ID_OUTPUT "${output}" PARENT_SCOPE)
+      set(CMAKE_${lang}_COMPILER_ID_VENDOR_MATCH "${CMAKE_MATCH_1}" PARENT_SCOPE)
       break()
     else()
       if("${result}" MATCHES  "timeout")
@@ -902,6 +923,11 @@
        endif()
     endif()
   endforeach()
+
+  # Restore original LC_ALL, LC_MESSAGES, and LANG
+  set(ENV{LC_ALL}      ${_orig_lc_all})
+  set(ENV{LC_MESSAGES} ${_orig_lc_messages})
+  set(ENV{LANG}        ${_orig_lang})
 endfunction()
 
 function(CMAKE_DETERMINE_MSVC_SHOWINCLUDES_PREFIX lang userflags)
diff --git a/share/cmake-3.17/Modules/CMakeDetermineFortranCompiler.cmake b/share/cmake-3.18/Modules/CMakeDetermineFortranCompiler.cmake
similarity index 96%
rename from share/cmake-3.17/Modules/CMakeDetermineFortranCompiler.cmake
rename to share/cmake-3.18/Modules/CMakeDetermineFortranCompiler.cmake
index e850541..5f5a70a 100644
--- a/share/cmake-3.17/Modules/CMakeDetermineFortranCompiler.cmake
+++ b/share/cmake-3.18/Modules/CMakeDetermineFortranCompiler.cmake
@@ -186,6 +186,8 @@
   include(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerId.cmake)
   CMAKE_DETERMINE_COMPILER_ID(Fortran FFLAGS CMakeFortranCompilerId.F)
 
+  _cmake_find_compiler_sysroot(Fortran)
+
   # Fall back to old is-GNU test.
   if(NOT CMAKE_Fortran_COMPILER_ID)
     execute_process(COMMAND ${CMAKE_Fortran_COMPILER} ${CMAKE_Fortran_COMPILER_ID_FLAGS_LIST} -E "${CMAKE_ROOT}/Modules/CMakeTestGNU.c"
@@ -249,7 +251,7 @@
 # NAME_WE cannot be used since then this test will fail for names like
 # "arm-unknown-nto-qnx6.3.0-gcc.exe", where BASENAME would be
 # "arm-unknown-nto-qnx6" instead of the correct "arm-unknown-nto-qnx6.3.0-"
-if (CMAKE_CROSSCOMPILING  AND NOT _CMAKE_TOOLCHAIN_PREFIX)
+if (NOT _CMAKE_TOOLCHAIN_PREFIX)
 
   if(CMAKE_Fortran_COMPILER_ID MATCHES "GNU")
     get_filename_component(COMPILER_BASENAME "${CMAKE_Fortran_COMPILER}" NAME)
@@ -276,6 +278,14 @@
     "set(CMAKE_Fortran_XL_CPP \"${CMAKE_Fortran_XL_CPP}\")")
 endif()
 
+if(CMAKE_Fortran_COMPILER_SYSROOT)
+  string(CONCAT _SET_CMAKE_Fortran_COMPILER_SYSROOT
+    "set(CMAKE_Fortran_COMPILER_SYSROOT \"${CMAKE_Fortran_COMPILER_SYSROOT}\")\n"
+    "set(CMAKE_COMPILER_SYSROOT \"${CMAKE_Fortran_COMPILER_SYSROOT}\")")
+else()
+  set(_SET_CMAKE_Fortran_COMPILER_SYSROOT "")
+endif()
+
 if(CMAKE_Fortran_COMPILER_ARCHITECTURE_ID)
   set(_SET_CMAKE_Fortran_COMPILER_ARCHITECTURE_ID
     "set(CMAKE_Fortran_COMPILER_ARCHITECTURE_ID ${CMAKE_Fortran_COMPILER_ARCHITECTURE_ID})")
diff --git a/share/cmake-3.17/Modules/CMakeDetermineJavaCompiler.cmake b/share/cmake-3.18/Modules/CMakeDetermineJavaCompiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeDetermineJavaCompiler.cmake
rename to share/cmake-3.18/Modules/CMakeDetermineJavaCompiler.cmake
diff --git a/share/cmake-3.17/Modules/CMakeDetermineOBJCCompiler.cmake b/share/cmake-3.18/Modules/CMakeDetermineOBJCCompiler.cmake
similarity index 91%
rename from share/cmake-3.17/Modules/CMakeDetermineOBJCCompiler.cmake
rename to share/cmake-3.18/Modules/CMakeDetermineOBJCCompiler.cmake
index ad13eab..11b47fd 100644
--- a/share/cmake-3.17/Modules/CMakeDetermineOBJCCompiler.cmake
+++ b/share/cmake-3.18/Modules/CMakeDetermineOBJCCompiler.cmake
@@ -34,16 +34,19 @@
   if(NOT CMAKE_OBJC_COMPILER)
     set(CMAKE_OBJC_COMPILER_INIT NOTFOUND)
 
-    # prefer the environment variable OBJC
-    if($ENV{OBJC} MATCHES ".+")
-      get_filename_component(CMAKE_OBJC_COMPILER_INIT $ENV{OBJC} PROGRAM PROGRAM_ARGS CMAKE_OBJC_FLAGS_ENV_INIT)
-      if(CMAKE_OBJC_FLAGS_ENV_INIT)
-        set(CMAKE_OBJC_COMPILER_ARG1 "${CMAKE_OBJC_FLAGS_ENV_INIT}" CACHE STRING "First argument to Objective-C compiler")
+    # prefer the environment variable OBJC or CC
+    foreach(var OBJC CC)
+      if($ENV{${var}} MATCHES ".+")
+        get_filename_component(CMAKE_OBJC_COMPILER_INIT $ENV{${var}} PROGRAM PROGRAM_ARGS CMAKE_OBJC_FLAGS_ENV_INIT)
+        if(CMAKE_OBJC_FLAGS_ENV_INIT)
+          set(CMAKE_OBJC_COMPILER_ARG1 "${CMAKE_OBJC_FLAGS_ENV_INIT}" CACHE STRING "First argument to Objective-C compiler")
+        endif()
+        if(NOT EXISTS ${CMAKE_OBJC_COMPILER_INIT})
+          message(FATAL_ERROR "Could not find compiler set in environment variable ${var}:\n  $ENV{${var}}")
+        endif()
+        break()
       endif()
-      if(NOT EXISTS ${CMAKE_OBJC_COMPILER_INIT})
-        message(FATAL_ERROR "Could not find compiler set in environment variable OBJC:\n$ENV{OBJC}.")
-      endif()
-    endif()
+    endforeach()
 
     # next try prefer the compiler specified by the generator
     if(CMAKE_GENERATOR_OBJC)
diff --git a/share/cmake-3.17/Modules/CMakeDetermineOBJCXXCompiler.cmake b/share/cmake-3.18/Modules/CMakeDetermineOBJCXXCompiler.cmake
similarity index 91%
rename from share/cmake-3.17/Modules/CMakeDetermineOBJCXXCompiler.cmake
rename to share/cmake-3.18/Modules/CMakeDetermineOBJCXXCompiler.cmake
index 60fcbb3..99ad6c3 100644
--- a/share/cmake-3.17/Modules/CMakeDetermineOBJCXXCompiler.cmake
+++ b/share/cmake-3.18/Modules/CMakeDetermineOBJCXXCompiler.cmake
@@ -36,16 +36,19 @@
   if(NOT CMAKE_OBJCXX_COMPILER)
     set(CMAKE_OBJCXX_COMPILER_INIT NOTFOUND)
 
-    # prefer the environment variable OBJCXX
-    if($ENV{OBJCXX} MATCHES ".+")
-      get_filename_component(CMAKE_OBJCXX_COMPILER_INIT $ENV{OBJCXX} PROGRAM PROGRAM_ARGS CMAKE_OBJCXX_FLAGS_ENV_INIT)
-      if(CMAKE_OBJCXX_FLAGS_ENV_INIT)
-        set(CMAKE_OBJCXX_COMPILER_ARG1 "${CMAKE_OBJCXX_FLAGS_ENV_INIT}" CACHE STRING "First argument to Objective-C++ compiler")
+    # prefer the environment variable OBJCXX or CXX
+    foreach(var OBJCXX CXX)
+      if($ENV{${var}} MATCHES ".+")
+        get_filename_component(CMAKE_OBJCXX_COMPILER_INIT $ENV{${var}} PROGRAM PROGRAM_ARGS CMAKE_OBJCXX_FLAGS_ENV_INIT)
+        if(CMAKE_OBJCXX_FLAGS_ENV_INIT)
+          set(CMAKE_OBJCXX_COMPILER_ARG1 "${CMAKE_OBJCXX_FLAGS_ENV_INIT}" CACHE STRING "First argument to Objective-C++ compiler")
+        endif()
+        if(NOT EXISTS ${CMAKE_OBJCXX_COMPILER_INIT})
+          message(FATAL_ERROR "Could not find compiler set in environment variable ${var}:\n  $ENV{${var}}")
+        endif()
+        break()
       endif()
-      if(NOT EXISTS ${CMAKE_OBJCXX_COMPILER_INIT})
-        message(FATAL_ERROR "Could not find compiler set in environment variable OBJCXX:\n$ENV{OBJCXX}.\n${CMAKE_OBJCXX_COMPILER_INIT}")
-      endif()
-    endif()
+    endforeach()
 
     # next prefer the generator specified compiler
     if(CMAKE_GENERATOR_OBJCXX)
@@ -145,7 +148,7 @@
 # "arm-unknown-nto-qnx6" instead of the correct "arm-unknown-nto-qnx6.3.0-"
 
 
-if (CMAKE_CROSSCOMPILING  AND NOT  _CMAKE_TOOLCHAIN_PREFIX)
+if (NOT _CMAKE_TOOLCHAIN_PREFIX)
 
   if("${CMAKE_OBJCXX_COMPILER_ID}" MATCHES "GNU|Clang|QCC")
     get_filename_component(COMPILER_BASENAME "${CMAKE_OBJCXX_COMPILER}" NAME)
diff --git a/share/cmake-3.17/Modules/CMakeDetermineRCCompiler.cmake b/share/cmake-3.18/Modules/CMakeDetermineRCCompiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeDetermineRCCompiler.cmake
rename to share/cmake-3.18/Modules/CMakeDetermineRCCompiler.cmake
diff --git a/share/cmake-3.17/Modules/CMakeDetermineSwiftCompiler.cmake b/share/cmake-3.18/Modules/CMakeDetermineSwiftCompiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeDetermineSwiftCompiler.cmake
rename to share/cmake-3.18/Modules/CMakeDetermineSwiftCompiler.cmake
diff --git a/share/cmake-3.17/Modules/CMakeDetermineSystem.cmake b/share/cmake-3.18/Modules/CMakeDetermineSystem.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeDetermineSystem.cmake
rename to share/cmake-3.18/Modules/CMakeDetermineSystem.cmake
diff --git a/share/cmake-3.17/Modules/CMakeDetermineVSServicePack.cmake b/share/cmake-3.18/Modules/CMakeDetermineVSServicePack.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeDetermineVSServicePack.cmake
rename to share/cmake-3.18/Modules/CMakeDetermineVSServicePack.cmake
diff --git a/share/cmake-3.17/Modules/CMakeExpandImportedTargets.cmake b/share/cmake-3.18/Modules/CMakeExpandImportedTargets.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeExpandImportedTargets.cmake
rename to share/cmake-3.18/Modules/CMakeExpandImportedTargets.cmake
diff --git a/share/cmake-3.17/Modules/CMakeExportBuildSettings.cmake b/share/cmake-3.18/Modules/CMakeExportBuildSettings.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeExportBuildSettings.cmake
rename to share/cmake-3.18/Modules/CMakeExportBuildSettings.cmake
diff --git a/share/cmake-3.17/Modules/CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake b/share/cmake-3.18/Modules/CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake
rename to share/cmake-3.18/Modules/CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake
diff --git a/share/cmake-3.17/Modules/CMakeFindBinUtils.cmake b/share/cmake-3.18/Modules/CMakeFindBinUtils.cmake
similarity index 98%
rename from share/cmake-3.17/Modules/CMakeFindBinUtils.cmake
rename to share/cmake-3.18/Modules/CMakeFindBinUtils.cmake
index c23e447..de9ef9a 100644
--- a/share/cmake-3.17/Modules/CMakeFindBinUtils.cmake
+++ b/share/cmake-3.18/Modules/CMakeFindBinUtils.cmake
@@ -75,6 +75,7 @@
   endif()
 
   find_program(CMAKE_LINKER NAMES ${_CMAKE_ADDITIONAL_LINKER_NAMES} link HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
+  find_program(CMAKE_AR     NAMES lib  HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
   find_program(CMAKE_MT     NAMES mt   HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
 
   list(APPEND _CMAKE_TOOL_VARS LINKER MT)
diff --git a/share/cmake-3.17/Modules/CMakeFindCodeBlocks.cmake b/share/cmake-3.18/Modules/CMakeFindCodeBlocks.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeFindCodeBlocks.cmake
rename to share/cmake-3.18/Modules/CMakeFindCodeBlocks.cmake
diff --git a/share/cmake-3.17/Modules/CMakeFindDependencyMacro.cmake b/share/cmake-3.18/Modules/CMakeFindDependencyMacro.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeFindDependencyMacro.cmake
rename to share/cmake-3.18/Modules/CMakeFindDependencyMacro.cmake
diff --git a/share/cmake-3.17/Modules/CMakeFindEclipseCDT4.cmake b/share/cmake-3.18/Modules/CMakeFindEclipseCDT4.cmake
similarity index 99%
rename from share/cmake-3.17/Modules/CMakeFindEclipseCDT4.cmake
rename to share/cmake-3.18/Modules/CMakeFindEclipseCDT4.cmake
index 199005d..e563a12 100644
--- a/share/cmake-3.17/Modules/CMakeFindEclipseCDT4.cmake
+++ b/share/cmake-3.18/Modules/CMakeFindEclipseCDT4.cmake
@@ -25,7 +25,7 @@
 
   if(NOT DEFINED CMAKE_ECLIPSE_VERSION)
     if(CMAKE_ECLIPSE_EXECUTABLE)
-      # use REALPATH to resolve symlinks (https://gitlab.kitware.com/cmake/cmake/issues/13036)
+      # use REALPATH to resolve symlinks (https://gitlab.kitware.com/cmake/cmake/-/issues/13036)
       get_filename_component(_REALPATH_CMAKE_ECLIPSE_EXECUTABLE "${CMAKE_ECLIPSE_EXECUTABLE}" REALPATH)
       get_filename_component(_ECLIPSE_DIR "${_REALPATH_CMAKE_ECLIPSE_EXECUTABLE}" PATH)
       file(GLOB _ECLIPSE_FEATURE_DIR "${_ECLIPSE_DIR}/features/org.eclipse.platform*")
diff --git a/share/cmake-3.18/Modules/CMakeFindFrameworks.cmake b/share/cmake-3.18/Modules/CMakeFindFrameworks.cmake
new file mode 100644
index 0000000..8906f48
--- /dev/null
+++ b/share/cmake-3.18/Modules/CMakeFindFrameworks.cmake
@@ -0,0 +1,45 @@
+# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+CMakeFindFrameworks
+-------------------
+
+helper module to find OSX frameworks
+
+This module reads hints about search locations from variables::
+
+  CMAKE_FIND_FRAMEWORK_EXTRA_LOCATIONS - Extra directories
+#]=======================================================================]
+
+if(NOT CMAKE_FIND_FRAMEWORKS_INCLUDED)
+  set(CMAKE_FIND_FRAMEWORKS_INCLUDED 1)
+  macro(CMAKE_FIND_FRAMEWORKS fwk)
+    set(${fwk}_FRAMEWORKS)
+    if(APPLE)
+      file(TO_CMAKE_PATH "$ENV{CMAKE_FRAMEWORK_PATH}" _cmff_CMAKE_FRAMEWORK_PATH)
+      set(_cmff_search_paths
+            ${CMAKE_FRAMEWORK_PATH}
+            ${_cmff_CMAKE_FRAMEWORK_PATH}
+            ~/Library/Frameworks
+            /usr/local/Frameworks
+            /Library/Frameworks
+            /System/Library/Frameworks
+            /Network/Library/Frameworks
+            ${CMAKE_SYSTEM_FRAMEWORK_PATH})
+
+      # For backwards compatibility reasons,
+      # CMAKE_FIND_FRAMEWORK_EXTRA_LOCATIONS includes ${fwk}.framework
+      list(TRANSFORM _cmff_search_paths APPEND /${fwk}.framework)
+      list(APPEND _cmff_search_paths ${CMAKE_FIND_FRAMEWORK_EXTRA_LOCATIONS})
+
+      list(REMOVE_DUPLICATES _cmff_search_paths)
+
+      foreach(dir IN LISTS _cmff_search_paths)
+        if(EXISTS ${dir})
+          set(${fwk}_FRAMEWORKS ${${fwk}_FRAMEWORKS} ${dir})
+        endif()
+      endforeach()
+    endif()
+  endmacro()
+endif()
diff --git a/share/cmake-3.17/Modules/CMakeFindJavaCommon.cmake b/share/cmake-3.18/Modules/CMakeFindJavaCommon.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeFindJavaCommon.cmake
rename to share/cmake-3.18/Modules/CMakeFindJavaCommon.cmake
diff --git a/share/cmake-3.17/Modules/CMakeFindKate.cmake b/share/cmake-3.18/Modules/CMakeFindKate.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeFindKate.cmake
rename to share/cmake-3.18/Modules/CMakeFindKate.cmake
diff --git a/share/cmake-3.17/Modules/CMakeFindPackageMode.cmake b/share/cmake-3.18/Modules/CMakeFindPackageMode.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeFindPackageMode.cmake
rename to share/cmake-3.18/Modules/CMakeFindPackageMode.cmake
diff --git a/share/cmake-3.17/Modules/CMakeFindSublimeText2.cmake b/share/cmake-3.18/Modules/CMakeFindSublimeText2.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeFindSublimeText2.cmake
rename to share/cmake-3.18/Modules/CMakeFindSublimeText2.cmake
diff --git a/share/cmake-3.17/Modules/CMakeFindWMake.cmake b/share/cmake-3.18/Modules/CMakeFindWMake.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeFindWMake.cmake
rename to share/cmake-3.18/Modules/CMakeFindWMake.cmake
diff --git a/share/cmake-3.17/Modules/CMakeFindXCode.cmake b/share/cmake-3.18/Modules/CMakeFindXCode.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeFindXCode.cmake
rename to share/cmake-3.18/Modules/CMakeFindXCode.cmake
diff --git a/share/cmake-3.17/Modules/CMakeForceCompiler.cmake b/share/cmake-3.18/Modules/CMakeForceCompiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeForceCompiler.cmake
rename to share/cmake-3.18/Modules/CMakeForceCompiler.cmake
diff --git a/share/cmake-3.17/Modules/CMakeFortranCompiler.cmake.in b/share/cmake-3.18/Modules/CMakeFortranCompiler.cmake.in
similarity index 98%
rename from share/cmake-3.17/Modules/CMakeFortranCompiler.cmake.in
rename to share/cmake-3.18/Modules/CMakeFortranCompiler.cmake.in
index 34f44aa..06ee528 100644
--- a/share/cmake-3.17/Modules/CMakeFortranCompiler.cmake.in
+++ b/share/cmake-3.18/Modules/CMakeFortranCompiler.cmake.in
@@ -8,6 +8,7 @@
 set(CMAKE_Fortran_SIMULATE_VERSION "@CMAKE_Fortran_SIMULATE_VERSION@")
 @_SET_CMAKE_Fortran_XL_CPP@
 @_SET_CMAKE_Fortran_COMPILER_ARCHITECTURE_ID@
+@_SET_CMAKE_Fortran_COMPILER_SYSROOT@
 @SET_MSVC_Fortran_ARCHITECTURE_ID@
 set(CMAKE_AR "@CMAKE_AR@")
 set(CMAKE_Fortran_COMPILER_AR "@CMAKE_Fortran_COMPILER_AR@")
diff --git a/share/cmake-3.17/Modules/CMakeFortranCompilerABI.F b/share/cmake-3.18/Modules/CMakeFortranCompilerABI.F
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeFortranCompilerABI.F
rename to share/cmake-3.18/Modules/CMakeFortranCompilerABI.F
diff --git a/share/cmake-3.17/Modules/CMakeFortranCompilerId.F.in b/share/cmake-3.18/Modules/CMakeFortranCompilerId.F.in
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeFortranCompilerId.F.in
rename to share/cmake-3.18/Modules/CMakeFortranCompilerId.F.in
diff --git a/share/cmake-3.17/Modules/CMakeFortranInformation.cmake b/share/cmake-3.18/Modules/CMakeFortranInformation.cmake
similarity index 98%
rename from share/cmake-3.17/Modules/CMakeFortranInformation.cmake
rename to share/cmake-3.18/Modules/CMakeFortranInformation.cmake
index e80716b..9a4ce63 100644
--- a/share/cmake-3.17/Modules/CMakeFortranInformation.cmake
+++ b/share/cmake-3.18/Modules/CMakeFortranInformation.cmake
@@ -193,7 +193,7 @@
   set(CMAKE_Fortran_ARCHIVE_CREATE "<CMAKE_AR> qc <TARGET> <LINK_FLAGS> <OBJECTS>")
 endif()
 if(NOT DEFINED CMAKE_Fortran_ARCHIVE_APPEND)
-  set(CMAKE_Fortran_ARCHIVE_APPEND "<CMAKE_AR> q  <TARGET> <LINK_FLAGS> <OBJECTS>")
+  set(CMAKE_Fortran_ARCHIVE_APPEND "<CMAKE_AR> q <TARGET> <LINK_FLAGS> <OBJECTS>")
 endif()
 if(NOT DEFINED CMAKE_Fortran_ARCHIVE_FINISH)
   set(CMAKE_Fortran_ARCHIVE_FINISH "<CMAKE_RANLIB> <TARGET>")
@@ -209,7 +209,7 @@
 # link a fortran program
 if(NOT CMAKE_Fortran_LINK_EXECUTABLE)
   set(CMAKE_Fortran_LINK_EXECUTABLE
-    "<CMAKE_Fortran_COMPILER> <CMAKE_Fortran_LINK_FLAGS> <LINK_FLAGS> <FLAGS> <OBJECTS>  -o <TARGET> <LINK_LIBRARIES>")
+    "<CMAKE_Fortran_COMPILER> <CMAKE_Fortran_LINK_FLAGS> <LINK_FLAGS> <FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
 endif()
 
 if(CMAKE_Fortran_STANDARD_LIBRARIES_INIT)
diff --git a/share/cmake-3.17/Modules/CMakeGenericSystem.cmake b/share/cmake-3.18/Modules/CMakeGenericSystem.cmake
similarity index 95%
rename from share/cmake-3.17/Modules/CMakeGenericSystem.cmake
rename to share/cmake-3.18/Modules/CMakeGenericSystem.cmake
index f539b46..000fba1 100644
--- a/share/cmake-3.17/Modules/CMakeGenericSystem.cmake
+++ b/share/cmake-3.18/Modules/CMakeGenericSystem.cmake
@@ -50,15 +50,9 @@
   if(DEFINED CMAKE_TARGET_MESSAGES)
     set_property(GLOBAL PROPERTY TARGET_MESSAGES ${CMAKE_TARGET_MESSAGES})
   endif()
-  if(CMAKE_GENERATOR MATCHES "Unix Makefiles")
-    set(CMAKE_EXPORT_COMPILE_COMMANDS "$ENV{CMAKE_EXPORT_COMPILE_COMMANDS}"
-      CACHE BOOL "Enable/Disable output of compile commands during generation."
-      )
-    mark_as_advanced(CMAKE_EXPORT_COMPILE_COMMANDS)
-  endif()
 endif()
 
-if(CMAKE_GENERATOR MATCHES "Ninja")
+if(NOT DEFINED CMAKE_EXPORT_COMPILE_COMMANDS AND CMAKE_GENERATOR MATCHES "Ninja|Unix Makefiles")
   set(CMAKE_EXPORT_COMPILE_COMMANDS "$ENV{CMAKE_EXPORT_COMPILE_COMMANDS}"
     CACHE BOOL "Enable/Disable output of compile commands during generation."
     )
diff --git a/share/cmake-3.17/Modules/CMakeGraphVizOptions.cmake b/share/cmake-3.18/Modules/CMakeGraphVizOptions.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeGraphVizOptions.cmake
rename to share/cmake-3.18/Modules/CMakeGraphVizOptions.cmake
diff --git a/share/cmake-3.17/Modules/CMakeIOSInstallCombined.cmake b/share/cmake-3.18/Modules/CMakeIOSInstallCombined.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeIOSInstallCombined.cmake
rename to share/cmake-3.18/Modules/CMakeIOSInstallCombined.cmake
diff --git a/share/cmake-3.17/Modules/CMakeImportBuildSettings.cmake b/share/cmake-3.18/Modules/CMakeImportBuildSettings.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeImportBuildSettings.cmake
rename to share/cmake-3.18/Modules/CMakeImportBuildSettings.cmake
diff --git a/share/cmake-3.17/Modules/CMakeInitializeConfigs.cmake b/share/cmake-3.18/Modules/CMakeInitializeConfigs.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeInitializeConfigs.cmake
rename to share/cmake-3.18/Modules/CMakeInitializeConfigs.cmake
diff --git a/share/cmake-3.17/Modules/CMakeJOMFindMake.cmake b/share/cmake-3.18/Modules/CMakeJOMFindMake.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeJOMFindMake.cmake
rename to share/cmake-3.18/Modules/CMakeJOMFindMake.cmake
diff --git a/share/cmake-3.17/Modules/CMakeJavaCompiler.cmake.in b/share/cmake-3.18/Modules/CMakeJavaCompiler.cmake.in
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeJavaCompiler.cmake.in
rename to share/cmake-3.18/Modules/CMakeJavaCompiler.cmake.in
diff --git a/share/cmake-3.17/Modules/CMakeJavaInformation.cmake b/share/cmake-3.18/Modules/CMakeJavaInformation.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeJavaInformation.cmake
rename to share/cmake-3.18/Modules/CMakeJavaInformation.cmake
diff --git a/share/cmake-3.17/Modules/CMakeLanguageInformation.cmake b/share/cmake-3.18/Modules/CMakeLanguageInformation.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeLanguageInformation.cmake
rename to share/cmake-3.18/Modules/CMakeLanguageInformation.cmake
diff --git a/share/cmake-3.17/Modules/CMakeMSYSFindMake.cmake b/share/cmake-3.18/Modules/CMakeMSYSFindMake.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeMSYSFindMake.cmake
rename to share/cmake-3.18/Modules/CMakeMSYSFindMake.cmake
diff --git a/share/cmake-3.17/Modules/CMakeMinGWFindMake.cmake b/share/cmake-3.18/Modules/CMakeMinGWFindMake.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeMinGWFindMake.cmake
rename to share/cmake-3.18/Modules/CMakeMinGWFindMake.cmake
diff --git a/share/cmake-3.17/Modules/CMakeNMakeFindMake.cmake b/share/cmake-3.18/Modules/CMakeNMakeFindMake.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeNMakeFindMake.cmake
rename to share/cmake-3.18/Modules/CMakeNMakeFindMake.cmake
diff --git a/share/cmake-3.17/Modules/CMakeNinjaFindMake.cmake b/share/cmake-3.18/Modules/CMakeNinjaFindMake.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeNinjaFindMake.cmake
rename to share/cmake-3.18/Modules/CMakeNinjaFindMake.cmake
diff --git a/share/cmake-3.17/Modules/CMakeOBJCCompiler.cmake.in b/share/cmake-3.18/Modules/CMakeOBJCCompiler.cmake.in
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeOBJCCompiler.cmake.in
rename to share/cmake-3.18/Modules/CMakeOBJCCompiler.cmake.in
diff --git a/share/cmake-3.17/Modules/CMakeOBJCCompilerABI.m b/share/cmake-3.18/Modules/CMakeOBJCCompilerABI.m
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeOBJCCompilerABI.m
rename to share/cmake-3.18/Modules/CMakeOBJCCompilerABI.m
diff --git a/share/cmake-3.17/Modules/CMakeOBJCCompilerId.m.in b/share/cmake-3.18/Modules/CMakeOBJCCompilerId.m.in
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeOBJCCompilerId.m.in
rename to share/cmake-3.18/Modules/CMakeOBJCCompilerId.m.in
diff --git a/share/cmake-3.17/Modules/CMakeOBJCInformation.cmake b/share/cmake-3.18/Modules/CMakeOBJCInformation.cmake
similarity index 97%
rename from share/cmake-3.17/Modules/CMakeOBJCInformation.cmake
rename to share/cmake-3.18/Modules/CMakeOBJCInformation.cmake
index 15a3311..b3da82d 100644
--- a/share/cmake-3.17/Modules/CMakeOBJCInformation.cmake
+++ b/share/cmake-3.18/Modules/CMakeOBJCInformation.cmake
@@ -161,7 +161,7 @@
   set(CMAKE_OBJC_ARCHIVE_CREATE "<CMAKE_AR> qc <TARGET> <LINK_FLAGS> <OBJECTS>")
 endif()
 if(NOT DEFINED CMAKE_OBJC_ARCHIVE_APPEND)
-  set(CMAKE_OBJC_ARCHIVE_APPEND "<CMAKE_AR> q  <TARGET> <LINK_FLAGS> <OBJECTS>")
+  set(CMAKE_OBJC_ARCHIVE_APPEND "<CMAKE_AR> q <TARGET> <LINK_FLAGS> <OBJECTS>")
 endif()
 if(NOT DEFINED CMAKE_OBJC_ARCHIVE_FINISH)
   set(CMAKE_OBJC_ARCHIVE_FINISH "<CMAKE_RANLIB> <TARGET>")
@@ -170,12 +170,12 @@
 # compile an Objective-C file into an object file
 if(NOT CMAKE_OBJC_COMPILE_OBJECT)
   set(CMAKE_OBJC_COMPILE_OBJECT
-    "<CMAKE_OBJC_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -x objective-c -o <OBJECT>   -c <SOURCE>")
+    "<CMAKE_OBJC_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -x objective-c -o <OBJECT> -c <SOURCE>")
 endif()
 
 if(NOT CMAKE_OBJC_LINK_EXECUTABLE)
   set(CMAKE_OBJC_LINK_EXECUTABLE
-    "<CMAKE_OBJC_COMPILER> <FLAGS> <CMAKE_OBJC_LINK_FLAGS> <LINK_FLAGS> <OBJECTS>  -o <TARGET> <LINK_LIBRARIES>")
+    "<CMAKE_OBJC_COMPILER> <FLAGS> <CMAKE_OBJC_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
 endif()
 
 if(NOT CMAKE_EXECUTABLE_RUNTIME_OBJC_FLAG)
diff --git a/share/cmake-3.17/Modules/CMakeOBJCXXCompiler.cmake.in b/share/cmake-3.18/Modules/CMakeOBJCXXCompiler.cmake.in
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeOBJCXXCompiler.cmake.in
rename to share/cmake-3.18/Modules/CMakeOBJCXXCompiler.cmake.in
diff --git a/share/cmake-3.17/Modules/CMakeOBJCXXCompilerABI.mm b/share/cmake-3.18/Modules/CMakeOBJCXXCompilerABI.mm
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeOBJCXXCompilerABI.mm
rename to share/cmake-3.18/Modules/CMakeOBJCXXCompilerABI.mm
diff --git a/share/cmake-3.17/Modules/CMakeOBJCXXCompilerId.mm.in b/share/cmake-3.18/Modules/CMakeOBJCXXCompilerId.mm.in
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeOBJCXXCompilerId.mm.in
rename to share/cmake-3.18/Modules/CMakeOBJCXXCompilerId.mm.in
diff --git a/share/cmake-3.17/Modules/CMakeOBJCXXInformation.cmake b/share/cmake-3.18/Modules/CMakeOBJCXXInformation.cmake
similarity index 96%
rename from share/cmake-3.17/Modules/CMakeOBJCXXInformation.cmake
rename to share/cmake-3.18/Modules/CMakeOBJCXXInformation.cmake
index cb349d7..71beb7f 100644
--- a/share/cmake-3.17/Modules/CMakeOBJCXXInformation.cmake
+++ b/share/cmake-3.18/Modules/CMakeOBJCXXInformation.cmake
@@ -254,7 +254,7 @@
   set(CMAKE_OBJCXX_ARCHIVE_CREATE "<CMAKE_AR> qc <TARGET> <LINK_FLAGS> <OBJECTS>")
 endif()
 if(NOT DEFINED CMAKE_OBJCXX_ARCHIVE_APPEND)
-  set(CMAKE_OBJCXX_ARCHIVE_APPEND "<CMAKE_AR> q  <TARGET> <LINK_FLAGS> <OBJECTS>")
+  set(CMAKE_OBJCXX_ARCHIVE_APPEND "<CMAKE_AR> q <TARGET> <LINK_FLAGS> <OBJECTS>")
 endif()
 if(NOT DEFINED CMAKE_OBJCXX_ARCHIVE_FINISH)
   set(CMAKE_OBJCXX_ARCHIVE_FINISH "<CMAKE_RANLIB> <TARGET>")
@@ -263,12 +263,12 @@
 # compile an Objective-C++ file into an object file
 if(NOT CMAKE_OBJCXX_COMPILE_OBJECT)
   set(CMAKE_OBJCXX_COMPILE_OBJECT
-    "<CMAKE_OBJCXX_COMPILER>  <DEFINES> <INCLUDES> <FLAGS> -x objective-c++ -o <OBJECT> -c <SOURCE>")
+    "<CMAKE_OBJCXX_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -x objective-c++ -o <OBJECT> -c <SOURCE>")
 endif()
 
 if(NOT CMAKE_OBJCXX_LINK_EXECUTABLE)
   set(CMAKE_OBJCXX_LINK_EXECUTABLE
-    "<CMAKE_OBJCXX_COMPILER>  <FLAGS> <CMAKE_OBJCXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS>  -o <TARGET> <LINK_LIBRARIES>")
+    "<CMAKE_OBJCXX_COMPILER> <FLAGS> <CMAKE_OBJCXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
 endif()
 
 mark_as_advanced(
diff --git a/share/cmake-3.17/Modules/CMakePackageConfigHelpers.cmake b/share/cmake-3.18/Modules/CMakePackageConfigHelpers.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakePackageConfigHelpers.cmake
rename to share/cmake-3.18/Modules/CMakePackageConfigHelpers.cmake
diff --git a/share/cmake-3.17/Modules/CMakeParseArguments.cmake b/share/cmake-3.18/Modules/CMakeParseArguments.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeParseArguments.cmake
rename to share/cmake-3.18/Modules/CMakeParseArguments.cmake
diff --git a/share/cmake-3.17/Modules/CMakeParseImplicitIncludeInfo.cmake b/share/cmake-3.18/Modules/CMakeParseImplicitIncludeInfo.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeParseImplicitIncludeInfo.cmake
rename to share/cmake-3.18/Modules/CMakeParseImplicitIncludeInfo.cmake
diff --git a/share/cmake-3.17/Modules/CMakeParseImplicitLinkInfo.cmake b/share/cmake-3.18/Modules/CMakeParseImplicitLinkInfo.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeParseImplicitLinkInfo.cmake
rename to share/cmake-3.18/Modules/CMakeParseImplicitLinkInfo.cmake
diff --git a/share/cmake-3.17/Modules/CMakePlatformId.h.in b/share/cmake-3.18/Modules/CMakePlatformId.h.in
similarity index 98%
rename from share/cmake-3.17/Modules/CMakePlatformId.h.in
rename to share/cmake-3.18/Modules/CMakePlatformId.h.in
index 64a00b3..40668a3 100644
--- a/share/cmake-3.17/Modules/CMakePlatformId.h.in
+++ b/share/cmake-3.18/Modules/CMakePlatformId.h.in
@@ -87,6 +87,9 @@
 # elif defined(__WINDOWS__)
 #  define PLATFORM_ID "Windows3x"
 
+# elif defined(__VXWORKS__)
+#  define PLATFORM_ID "VxWorks"
+
 # else /* unknown platform */
 #  define PLATFORM_ID
 # endif
diff --git a/share/cmake-3.17/Modules/CMakePrintHelpers.cmake b/share/cmake-3.18/Modules/CMakePrintHelpers.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakePrintHelpers.cmake
rename to share/cmake-3.18/Modules/CMakePrintHelpers.cmake
diff --git a/share/cmake-3.17/Modules/CMakePrintSystemInformation.cmake b/share/cmake-3.18/Modules/CMakePrintSystemInformation.cmake
similarity index 97%
rename from share/cmake-3.17/Modules/CMakePrintSystemInformation.cmake
rename to share/cmake-3.18/Modules/CMakePrintSystemInformation.cmake
index 8d5cf5c..d44e933 100644
--- a/share/cmake-3.17/Modules/CMakePrintSystemInformation.cmake
+++ b/share/cmake-3.18/Modules/CMakePrintSystemInformation.cmake
@@ -11,7 +11,7 @@
 project to see various internal CMake variables.
 #]=======================================================================]
 
-message("CMAKE_SYSTEM is ${CMAKE_SYSTEM} ${CMAKE_SYSTEM_NAME} ${CMAKE_SYSTEM_VERSION}")
+message("CMAKE_SYSTEM is ${CMAKE_SYSTEM} ${CMAKE_SYSTEM_NAME} ${CMAKE_SYSTEM_VERSION} ${CMAKE_SYSTEM_PROCESSOR}")
 message("CMAKE_SYSTEM file is ${CMAKE_SYSTEM_INFO_FILE}")
 message("CMAKE_C_COMPILER is ${CMAKE_C_COMPILER}")
 message("CMAKE_CXX_COMPILER is ${CMAKE_CXX_COMPILER}")
diff --git a/share/cmake-3.17/Modules/CMakePushCheckState.cmake b/share/cmake-3.18/Modules/CMakePushCheckState.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakePushCheckState.cmake
rename to share/cmake-3.18/Modules/CMakePushCheckState.cmake
diff --git a/share/cmake-3.17/Modules/CMakeRCCompiler.cmake.in b/share/cmake-3.18/Modules/CMakeRCCompiler.cmake.in
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeRCCompiler.cmake.in
rename to share/cmake-3.18/Modules/CMakeRCCompiler.cmake.in
diff --git a/share/cmake-3.17/Modules/CMakeRCInformation.cmake b/share/cmake-3.18/Modules/CMakeRCInformation.cmake
similarity index 98%
rename from share/cmake-3.17/Modules/CMakeRCInformation.cmake
rename to share/cmake-3.18/Modules/CMakeRCInformation.cmake
index 7c3a5ab..b634796 100644
--- a/share/cmake-3.17/Modules/CMakeRCInformation.cmake
+++ b/share/cmake-3.18/Modules/CMakeRCInformation.cmake
@@ -39,7 +39,7 @@
 
 # now define the following rule variables
 # CMAKE_RC_COMPILE_OBJECT
-set(CMAKE_INCLUDE_FLAG_RC "-I")
+set(CMAKE_INCLUDE_FLAG_RC "-I ")
 # compile a Resource file into an object file
 if(NOT CMAKE_RC_COMPILE_OBJECT)
   set(CMAKE_RC_COMPILE_OBJECT
diff --git a/share/cmake-3.17/Modules/CMakeSwiftCompiler.cmake.in b/share/cmake-3.18/Modules/CMakeSwiftCompiler.cmake.in
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeSwiftCompiler.cmake.in
rename to share/cmake-3.18/Modules/CMakeSwiftCompiler.cmake.in
diff --git a/share/cmake-3.17/Modules/CMakeSwiftInformation.cmake b/share/cmake-3.18/Modules/CMakeSwiftInformation.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeSwiftInformation.cmake
rename to share/cmake-3.18/Modules/CMakeSwiftInformation.cmake
diff --git a/share/cmake-3.17/Modules/CMakeSystem.cmake.in b/share/cmake-3.18/Modules/CMakeSystem.cmake.in
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeSystem.cmake.in
rename to share/cmake-3.18/Modules/CMakeSystem.cmake.in
diff --git a/share/cmake-3.17/Modules/CMakeSystemSpecificInformation.cmake b/share/cmake-3.18/Modules/CMakeSystemSpecificInformation.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeSystemSpecificInformation.cmake
rename to share/cmake-3.18/Modules/CMakeSystemSpecificInformation.cmake
diff --git a/share/cmake-3.17/Modules/CMakeSystemSpecificInitialize.cmake b/share/cmake-3.18/Modules/CMakeSystemSpecificInitialize.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeSystemSpecificInitialize.cmake
rename to share/cmake-3.18/Modules/CMakeSystemSpecificInitialize.cmake
diff --git a/share/cmake-3.17/Modules/CMakeTestASM-ATTCompiler.cmake b/share/cmake-3.18/Modules/CMakeTestASM-ATTCompiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeTestASM-ATTCompiler.cmake
rename to share/cmake-3.18/Modules/CMakeTestASM-ATTCompiler.cmake
diff --git a/share/cmake-3.17/Modules/CMakeTestASMCompiler.cmake b/share/cmake-3.18/Modules/CMakeTestASMCompiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeTestASMCompiler.cmake
rename to share/cmake-3.18/Modules/CMakeTestASMCompiler.cmake
diff --git a/share/cmake-3.17/Modules/CMakeTestASM_MASMCompiler.cmake b/share/cmake-3.18/Modules/CMakeTestASM_MASMCompiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeTestASM_MASMCompiler.cmake
rename to share/cmake-3.18/Modules/CMakeTestASM_MASMCompiler.cmake
diff --git a/share/cmake-3.17/Modules/CMakeTestASM_NASMCompiler.cmake b/share/cmake-3.18/Modules/CMakeTestASM_NASMCompiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeTestASM_NASMCompiler.cmake
rename to share/cmake-3.18/Modules/CMakeTestASM_NASMCompiler.cmake
diff --git a/share/cmake-3.17/Modules/CMakeTestCCompiler.cmake b/share/cmake-3.18/Modules/CMakeTestCCompiler.cmake
similarity index 60%
rename from share/cmake-3.17/Modules/CMakeTestCCompiler.cmake
rename to share/cmake-3.18/Modules/CMakeTestCCompiler.cmake
index eadea89..3734ec4 100644
--- a/share/cmake-3.17/Modules/CMakeTestCCompiler.cmake
+++ b/share/cmake-3.18/Modules/CMakeTestCCompiler.cmake
@@ -21,6 +21,15 @@
 # We now store this in CMakeCCompiler.cmake.
 unset(CMAKE_C_COMPILER_WORKS CACHE)
 
+# Try to identify the ABI and configure it into CMakeCCompiler.cmake
+include(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerABI.cmake)
+CMAKE_DETERMINE_COMPILER_ABI(C ${CMAKE_ROOT}/Modules/CMakeCCompilerABI.c)
+if(CMAKE_C_ABI_COMPILED)
+  # The compiler worked so skip dedicated test below.
+  set(CMAKE_C_COMPILER_WORKS TRUE)
+  message(STATUS "Check for working C compiler: ${CMAKE_C_COMPILER} - skipped")
+endif()
+
 # This file is used by EnableLanguage in cmGlobalGenerator to
 # determine that that selected C compiler can actually compile
 # and link the most basic of programs.   If not, a fatal error
@@ -47,49 +56,41 @@
   # Move result from cache to normal variable.
   set(CMAKE_C_COMPILER_WORKS ${CMAKE_C_COMPILER_WORKS})
   unset(CMAKE_C_COMPILER_WORKS CACHE)
-  set(C_TEST_WAS_RUN 1)
   __TestCompiler_restoreTryCompileTargetType()
+  if(NOT CMAKE_C_COMPILER_WORKS)
+    PrintTestCompilerResult(CHECK_FAIL "broken")
+    file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+      "Determining if the C compiler works failed with "
+      "the following output:\n${__CMAKE_C_COMPILER_OUTPUT}\n\n")
+    string(REPLACE "\n" "\n  " _output "${__CMAKE_C_COMPILER_OUTPUT}")
+    message(FATAL_ERROR "The C compiler\n  \"${CMAKE_C_COMPILER}\"\n"
+      "is not able to compile a simple test program.\nIt fails "
+      "with the following output:\n  ${_output}\n\n"
+      "CMake will not be able to correctly generate this project.")
+  endif()
+  PrintTestCompilerResult(CHECK_PASS "works")
+  file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+    "Determining if the C compiler works passed with "
+    "the following output:\n${__CMAKE_C_COMPILER_OUTPUT}\n\n")
 endif()
 
-if(NOT CMAKE_C_COMPILER_WORKS)
-  PrintTestCompilerResult(CHECK_FAIL "broken")
-  file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
-    "Determining if the C compiler works failed with "
-    "the following output:\n${__CMAKE_C_COMPILER_OUTPUT}\n\n")
-  string(REPLACE "\n" "\n  " _output "${__CMAKE_C_COMPILER_OUTPUT}")
-  message(FATAL_ERROR "The C compiler\n  \"${CMAKE_C_COMPILER}\"\n"
-    "is not able to compile a simple test program.\nIt fails "
-    "with the following output:\n  ${_output}\n\n"
-    "CMake will not be able to correctly generate this project.")
-else()
-  if(C_TEST_WAS_RUN)
-    PrintTestCompilerResult(CHECK_PASS "works")
-    file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
-      "Determining if the C compiler works passed with "
-      "the following output:\n${__CMAKE_C_COMPILER_OUTPUT}\n\n")
-  endif()
+# Try to identify the compiler features
+include(${CMAKE_ROOT}/Modules/CMakeDetermineCompileFeatures.cmake)
+CMAKE_DETERMINE_COMPILE_FEATURES(C)
 
-  # Try to identify the ABI and configure it into CMakeCCompiler.cmake
-  include(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerABI.cmake)
-  CMAKE_DETERMINE_COMPILER_ABI(C ${CMAKE_ROOT}/Modules/CMakeCCompilerABI.c)
-  # Try to identify the compiler features
-  include(${CMAKE_ROOT}/Modules/CMakeDetermineCompileFeatures.cmake)
-  CMAKE_DETERMINE_COMPILE_FEATURES(C)
+# Re-configure to save learned information.
+configure_file(
+  ${CMAKE_ROOT}/Modules/CMakeCCompiler.cmake.in
+  ${CMAKE_PLATFORM_INFO_DIR}/CMakeCCompiler.cmake
+  @ONLY
+  )
+include(${CMAKE_PLATFORM_INFO_DIR}/CMakeCCompiler.cmake)
 
-  # Re-configure to save learned information.
-  configure_file(
-    ${CMAKE_ROOT}/Modules/CMakeCCompiler.cmake.in
-    ${CMAKE_PLATFORM_INFO_DIR}/CMakeCCompiler.cmake
-    @ONLY
-    )
-  include(${CMAKE_PLATFORM_INFO_DIR}/CMakeCCompiler.cmake)
-
-  if(CMAKE_C_SIZEOF_DATA_PTR)
-    foreach(f ${CMAKE_C_ABI_FILES})
-      include(${f})
-    endforeach()
-    unset(CMAKE_C_ABI_FILES)
-  endif()
+if(CMAKE_C_SIZEOF_DATA_PTR)
+  foreach(f ${CMAKE_C_ABI_FILES})
+    include(${f})
+  endforeach()
+  unset(CMAKE_C_ABI_FILES)
 endif()
 
 set(CMAKE_TRY_COMPILE_TARGET_TYPE ${__CMAKE_SAVED_TRY_COMPILE_TARGET_TYPE})
diff --git a/share/cmake-3.17/Modules/CMakeTestCSharpCompiler.cmake b/share/cmake-3.18/Modules/CMakeTestCSharpCompiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeTestCSharpCompiler.cmake
rename to share/cmake-3.18/Modules/CMakeTestCSharpCompiler.cmake
diff --git a/share/cmake-3.18/Modules/CMakeTestCUDACompiler.cmake b/share/cmake-3.18/Modules/CMakeTestCUDACompiler.cmake
new file mode 100644
index 0000000..a18947b
--- /dev/null
+++ b/share/cmake-3.18/Modules/CMakeTestCUDACompiler.cmake
@@ -0,0 +1,98 @@
+# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+if(CMAKE_CUDA_COMPILER_FORCED)
+  # The compiler configuration was forced by the user.
+  # Assume the user has configured all compiler information.
+  set(CMAKE_CUDA_COMPILER_WORKS TRUE)
+  return()
+endif()
+
+include(CMakeTestCompilerCommon)
+
+# Remove any cached result from an older CMake version.
+# We now store this in CMakeCUDACompiler.cmake.
+unset(CMAKE_CUDA_COMPILER_WORKS CACHE)
+
+# Try to identify the ABI and configure it into CMakeCUDACompiler.cmake
+include(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerABI.cmake)
+CMAKE_DETERMINE_COMPILER_ABI(CUDA ${CMAKE_ROOT}/Modules/CMakeCUDACompilerABI.cu)
+if(CMAKE_CUDA_ABI_COMPILED)
+  # The compiler worked so skip dedicated test below.
+  set(CMAKE_CUDA_COMPILER_WORKS TRUE)
+  message(STATUS "Check for working CUDA compiler: ${CMAKE_CUDA_COMPILER} - skipped")
+endif()
+
+# This file is used by EnableLanguage in cmGlobalGenerator to
+# determine that the selected cuda compiler can actually compile
+# and link the most basic of programs.   If not, a fatal error
+# is set and cmake stops processing commands and will not generate
+# any makefiles or projects.
+if(NOT CMAKE_CUDA_COMPILER_WORKS)
+  PrintTestCompilerStatus("CUDA")
+  file(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/main.cu
+    "#ifndef __CUDACC__\n"
+    "# error \"The CMAKE_CUDA_COMPILER is set to an invalid CUDA compiler\"\n"
+    "#endif\n"
+    "int main(){return 0;}\n")
+
+  try_compile(CMAKE_CUDA_COMPILER_WORKS ${CMAKE_BINARY_DIR}
+    ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/main.cu
+    OUTPUT_VARIABLE __CMAKE_CUDA_COMPILER_OUTPUT)
+
+  # Move result from cache to normal variable.
+  set(CMAKE_CUDA_COMPILER_WORKS ${CMAKE_CUDA_COMPILER_WORKS})
+  unset(CMAKE_CUDA_COMPILER_WORKS CACHE)
+  if(NOT CMAKE_CUDA_COMPILER_WORKS)
+    PrintTestCompilerResult(CHECK_FAIL "broken")
+    file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+      "Determining if the CUDA compiler works failed with "
+      "the following output:\n${__CMAKE_CUDA_COMPILER_OUTPUT}\n\n")
+    string(REPLACE "\n" "\n  " _output "${__CMAKE_CUDA_COMPILER_OUTPUT}")
+    message(FATAL_ERROR "The CUDA compiler\n  \"${CMAKE_CUDA_COMPILER}\"\n"
+      "is not able to compile a simple test program.\nIt fails "
+      "with the following output:\n  ${_output}\n\n"
+      "CMake will not be able to correctly generate this project.")
+  endif()
+  PrintTestCompilerResult(CHECK_PASS "works")
+  file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+    "Determining if the CUDA compiler works passed with "
+    "the following output:\n${__CMAKE_CUDA_COMPILER_OUTPUT}\n\n")
+endif()
+
+# Try to identify the compiler features
+include(${CMAKE_ROOT}/Modules/CMakeDetermineCompileFeatures.cmake)
+CMAKE_DETERMINE_COMPILE_FEATURES(CUDA)
+
+if("x${CMAKE_CUDA_SIMULATE_ID}" STREQUAL "xMSVC")
+  set(CMAKE_CUDA_IMPLICIT_LINK_LIBRARIES "${CMAKE_CUDA_HOST_IMPLICIT_LINK_LIBRARIES}")
+  set(CMAKE_CUDA_IMPLICIT_LINK_DIRECTORIES "${CMAKE_CUDA_HOST_IMPLICIT_LINK_DIRECTORIES}")
+endif()
+
+# Filter out implicit link libraries that should not be passed unconditionally.
+# See CMAKE_CUDA_IMPLICIT_LINK_LIBRARIES_EXCLUDE in CMakeDetermineCUDACompiler.
+list(REMOVE_ITEM CMAKE_CUDA_IMPLICIT_LINK_LIBRARIES ${CMAKE_CUDA_IMPLICIT_LINK_LIBRARIES_EXCLUDE})
+
+if(CMAKE_CUDA_COMPILER_ID STREQUAL "NVIDIA")
+  # Remove the CUDA Toolkit include directories from the set of
+  # implicit system include directories.
+  # This resolves the issue that NVCC doesn't specify these
+  # includes as SYSTEM includes when compiling device code, and sometimes
+  # they contain headers that generate warnings, so let users mark them
+  # as SYSTEM explicitly
+  if(CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES)
+    list(REMOVE_ITEM CMAKE_CUDA_IMPLICIT_INCLUDE_DIRECTORIES
+      ${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES}
+      )
+  endif()
+endif()
+
+# Re-configure to save learned information.
+configure_file(
+  ${CMAKE_ROOT}/Modules/CMakeCUDACompiler.cmake.in
+  ${CMAKE_PLATFORM_INFO_DIR}/CMakeCUDACompiler.cmake
+  @ONLY
+  )
+include(${CMAKE_PLATFORM_INFO_DIR}/CMakeCUDACompiler.cmake)
+
+unset(__CMAKE_CUDA_COMPILER_OUTPUT)
diff --git a/share/cmake-3.18/Modules/CMakeTestCXXCompiler.cmake b/share/cmake-3.18/Modules/CMakeTestCXXCompiler.cmake
new file mode 100644
index 0000000..b9cb1dd
--- /dev/null
+++ b/share/cmake-3.18/Modules/CMakeTestCXXCompiler.cmake
@@ -0,0 +1,91 @@
+# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+
+if(CMAKE_CXX_COMPILER_FORCED)
+  # The compiler configuration was forced by the user.
+  # Assume the user has configured all compiler information.
+  set(CMAKE_CXX_COMPILER_WORKS TRUE)
+  return()
+endif()
+
+include(CMakeTestCompilerCommon)
+
+# work around enforced code signing and / or missing exectuable target type
+set(__CMAKE_SAVED_TRY_COMPILE_TARGET_TYPE ${CMAKE_TRY_COMPILE_TARGET_TYPE})
+if(_CMAKE_FEATURE_DETECTION_TARGET_TYPE)
+  set(CMAKE_TRY_COMPILE_TARGET_TYPE ${_CMAKE_FEATURE_DETECTION_TARGET_TYPE})
+endif()
+
+# Remove any cached result from an older CMake version.
+# We now store this in CMakeCXXCompiler.cmake.
+unset(CMAKE_CXX_COMPILER_WORKS CACHE)
+
+# Try to identify the ABI and configure it into CMakeCXXCompiler.cmake
+include(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerABI.cmake)
+CMAKE_DETERMINE_COMPILER_ABI(CXX ${CMAKE_ROOT}/Modules/CMakeCXXCompilerABI.cpp)
+if(CMAKE_CXX_ABI_COMPILED)
+  # The compiler worked so skip dedicated test below.
+  set(CMAKE_CXX_COMPILER_WORKS TRUE)
+  message(STATUS "Check for working CXX compiler: ${CMAKE_CXX_COMPILER} - skipped")
+endif()
+
+# This file is used by EnableLanguage in cmGlobalGenerator to
+# determine that the selected C++ compiler can actually compile
+# and link the most basic of programs.   If not, a fatal error
+# is set and cmake stops processing commands and will not generate
+# any makefiles or projects.
+if(NOT CMAKE_CXX_COMPILER_WORKS)
+  PrintTestCompilerStatus("CXX")
+  __TestCompiler_setTryCompileTargetType()
+  file(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testCXXCompiler.cxx
+    "#ifndef __cplusplus\n"
+    "# error \"The CMAKE_CXX_COMPILER is set to a C compiler\"\n"
+    "#endif\n"
+    "int main(){return 0;}\n")
+  try_compile(CMAKE_CXX_COMPILER_WORKS ${CMAKE_BINARY_DIR}
+    ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testCXXCompiler.cxx
+    OUTPUT_VARIABLE __CMAKE_CXX_COMPILER_OUTPUT)
+  # Move result from cache to normal variable.
+  set(CMAKE_CXX_COMPILER_WORKS ${CMAKE_CXX_COMPILER_WORKS})
+  unset(CMAKE_CXX_COMPILER_WORKS CACHE)
+  __TestCompiler_restoreTryCompileTargetType()
+  if(NOT CMAKE_CXX_COMPILER_WORKS)
+    PrintTestCompilerResult(CHECK_FAIL "broken")
+    file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+      "Determining if the CXX compiler works failed with "
+      "the following output:\n${__CMAKE_CXX_COMPILER_OUTPUT}\n\n")
+    string(REPLACE "\n" "\n  " _output "${__CMAKE_CXX_COMPILER_OUTPUT}")
+    message(FATAL_ERROR "The C++ compiler\n  \"${CMAKE_CXX_COMPILER}\"\n"
+      "is not able to compile a simple test program.\nIt fails "
+      "with the following output:\n  ${_output}\n\n"
+      "CMake will not be able to correctly generate this project.")
+  endif()
+  PrintTestCompilerResult(CHECK_PASS "works")
+  file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+    "Determining if the CXX compiler works passed with "
+    "the following output:\n${__CMAKE_CXX_COMPILER_OUTPUT}\n\n")
+endif()
+
+# Try to identify the compiler features
+include(${CMAKE_ROOT}/Modules/CMakeDetermineCompileFeatures.cmake)
+CMAKE_DETERMINE_COMPILE_FEATURES(CXX)
+
+# Re-configure to save learned information.
+configure_file(
+  ${CMAKE_ROOT}/Modules/CMakeCXXCompiler.cmake.in
+  ${CMAKE_PLATFORM_INFO_DIR}/CMakeCXXCompiler.cmake
+  @ONLY
+  )
+include(${CMAKE_PLATFORM_INFO_DIR}/CMakeCXXCompiler.cmake)
+
+if(CMAKE_CXX_SIZEOF_DATA_PTR)
+  foreach(f ${CMAKE_CXX_ABI_FILES})
+    include(${f})
+  endforeach()
+  unset(CMAKE_CXX_ABI_FILES)
+endif()
+
+set(CMAKE_TRY_COMPILE_TARGET_TYPE ${__CMAKE_SAVED_TRY_COMPILE_TARGET_TYPE})
+unset(__CMAKE_SAVED_TRY_COMPILE_TARGET_TYPE)
+unset(__CMAKE_CXX_COMPILER_OUTPUT)
diff --git a/share/cmake-3.17/Modules/CMakeTestCompilerCommon.cmake b/share/cmake-3.18/Modules/CMakeTestCompilerCommon.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeTestCompilerCommon.cmake
rename to share/cmake-3.18/Modules/CMakeTestCompilerCommon.cmake
diff --git a/share/cmake-3.18/Modules/CMakeTestFortranCompiler.cmake b/share/cmake-3.18/Modules/CMakeTestFortranCompiler.cmake
new file mode 100644
index 0000000..10fb0a7
--- /dev/null
+++ b/share/cmake-3.18/Modules/CMakeTestFortranCompiler.cmake
@@ -0,0 +1,102 @@
+# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+
+if(CMAKE_Fortran_COMPILER_FORCED)
+  # The compiler configuration was forced by the user.
+  # Assume the user has configured all compiler information.
+  set(CMAKE_Fortran_COMPILER_WORKS TRUE)
+  return()
+endif()
+
+include(CMakeTestCompilerCommon)
+
+# Remove any cached result from an older CMake version.
+# We now store this in CMakeFortranCompiler.cmake.
+unset(CMAKE_Fortran_COMPILER_WORKS CACHE)
+
+# Try to identify the ABI and configure it into CMakeFortranCompiler.cmake
+include(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerABI.cmake)
+CMAKE_DETERMINE_COMPILER_ABI(Fortran ${CMAKE_ROOT}/Modules/CMakeFortranCompilerABI.F)
+if(CMAKE_Fortran_ABI_COMPILED)
+  # The compiler worked so skip dedicated test below.
+  set(CMAKE_Fortran_COMPILER_WORKS TRUE)
+  message(STATUS "Check for working Fortran compiler: ${CMAKE_Fortran_COMPILER} - skipped")
+endif()
+
+# This file is used by EnableLanguage in cmGlobalGenerator to
+# determine that the selected Fortran compiler can actually compile
+# and link the most basic of programs.   If not, a fatal error
+# is set and cmake stops processing commands and will not generate
+# any makefiles or projects.
+if(NOT CMAKE_Fortran_COMPILER_WORKS)
+  PrintTestCompilerStatus("Fortran")
+  file(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testFortranCompiler.f "
+        PROGRAM TESTFortran
+        PRINT *, 'Hello'
+        END
+  ")
+  try_compile(CMAKE_Fortran_COMPILER_WORKS ${CMAKE_BINARY_DIR}
+    ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testFortranCompiler.f
+    OUTPUT_VARIABLE OUTPUT)
+  # Move result from cache to normal variable.
+  set(CMAKE_Fortran_COMPILER_WORKS ${CMAKE_Fortran_COMPILER_WORKS})
+  unset(CMAKE_Fortran_COMPILER_WORKS CACHE)
+  if(NOT CMAKE_Fortran_COMPILER_WORKS)
+    PrintTestCompilerResult(CHECK_FAIL "broken")
+    file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+      "Determining if the Fortran compiler works failed with "
+      "the following output:\n${OUTPUT}\n\n")
+    string(REPLACE "\n" "\n  " _output "${OUTPUT}")
+    message(FATAL_ERROR "The Fortran compiler\n  \"${CMAKE_Fortran_COMPILER}\"\n"
+      "is not able to compile a simple test program.\nIt fails "
+      "with the following output:\n  ${_output}\n\n"
+      "CMake will not be able to correctly generate this project.")
+  endif()
+  PrintTestCompilerResult(CHECK_PASS "works")
+  file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+    "Determining if the Fortran compiler works passed with "
+    "the following output:\n${OUTPUT}\n\n")
+endif()
+
+# Test for Fortran 90 support by using an f90-specific construct.
+if(NOT DEFINED CMAKE_Fortran_COMPILER_SUPPORTS_F90)
+  message(CHECK_START "Checking whether ${CMAKE_Fortran_COMPILER} supports Fortran 90")
+  file(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testFortranCompilerF90.f90 "
+    PROGRAM TESTFortran90
+    integer stop ; stop = 1 ; do while ( stop .eq. 0 ) ; end do
+    END PROGRAM TESTFortran90
+")
+  try_compile(CMAKE_Fortran_COMPILER_SUPPORTS_F90 ${CMAKE_BINARY_DIR}
+    ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testFortranCompilerF90.f90
+    OUTPUT_VARIABLE OUTPUT)
+  if(CMAKE_Fortran_COMPILER_SUPPORTS_F90)
+    message(CHECK_PASS "yes")
+    file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+      "Determining if the Fortran compiler supports Fortran 90 passed with "
+      "the following output:\n${OUTPUT}\n\n")
+    set(CMAKE_Fortran_COMPILER_SUPPORTS_F90 1)
+  else()
+    message(CHECK_FAIL "no")
+    file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+      "Determining if the Fortran compiler supports Fortran 90 failed with "
+      "the following output:\n${OUTPUT}\n\n")
+    set(CMAKE_Fortran_COMPILER_SUPPORTS_F90 0)
+  endif()
+  unset(CMAKE_Fortran_COMPILER_SUPPORTS_F90 CACHE)
+endif()
+
+# Re-configure to save learned information.
+configure_file(
+  ${CMAKE_ROOT}/Modules/CMakeFortranCompiler.cmake.in
+  ${CMAKE_PLATFORM_INFO_DIR}/CMakeFortranCompiler.cmake
+  @ONLY
+  )
+include(${CMAKE_PLATFORM_INFO_DIR}/CMakeFortranCompiler.cmake)
+
+if(CMAKE_Fortran_SIZEOF_DATA_PTR)
+  foreach(f ${CMAKE_Fortran_ABI_FILES})
+    include(${f})
+  endforeach()
+  unset(CMAKE_Fortran_ABI_FILES)
+endif()
diff --git a/share/cmake-3.17/Modules/CMakeTestGNU.c b/share/cmake-3.18/Modules/CMakeTestGNU.c
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeTestGNU.c
rename to share/cmake-3.18/Modules/CMakeTestGNU.c
diff --git a/share/cmake-3.17/Modules/CMakeTestJavaCompiler.cmake b/share/cmake-3.18/Modules/CMakeTestJavaCompiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeTestJavaCompiler.cmake
rename to share/cmake-3.18/Modules/CMakeTestJavaCompiler.cmake
diff --git a/share/cmake-3.18/Modules/CMakeTestOBJCCompiler.cmake b/share/cmake-3.18/Modules/CMakeTestOBJCCompiler.cmake
new file mode 100644
index 0000000..0e333c0
--- /dev/null
+++ b/share/cmake-3.18/Modules/CMakeTestOBJCCompiler.cmake
@@ -0,0 +1,95 @@
+# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+
+if(CMAKE_OBJC_COMPILER_FORCED)
+  # The compiler configuration was forced by the user.
+  # Assume the user has configured all compiler information.
+  set(CMAKE_OBJC_COMPILER_WORKS TRUE)
+  return()
+endif()
+
+include(CMakeTestCompilerCommon)
+
+# work around enforced code signing and / or missing exectuable target type
+set(__CMAKE_SAVED_TRY_COMPILE_TARGET_TYPE ${CMAKE_TRY_COMPILE_TARGET_TYPE})
+if(_CMAKE_FEATURE_DETECTION_TARGET_TYPE)
+  set(CMAKE_TRY_COMPILE_TARGET_TYPE ${_CMAKE_FEATURE_DETECTION_TARGET_TYPE})
+endif()
+
+# Remove any cached result from an older CMake version.
+# We now store this in CMakeCCompiler.cmake.
+unset(CMAKE_OBJC_COMPILER_WORKS CACHE)
+
+# Try to identify the ABI and configure it into CMakeOBJCCompiler.cmake
+include(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerABI.cmake)
+CMAKE_DETERMINE_COMPILER_ABI(OBJC ${CMAKE_ROOT}/Modules/CMakeOBJCCompilerABI.m)
+if(CMAKE_OBJC_ABI_COMPILED)
+  # The compiler worked so skip dedicated test below.
+  set(CMAKE_OBJC_COMPILER_WORKS TRUE)
+  message(STATUS "Check for working OBJC compiler: ${CMAKE_OBJC_COMPILER} - skipped")
+endif()
+
+# This file is used by EnableLanguage in cmGlobalGenerator to
+# determine that that selected Objective-C compiler can actually compile
+# and link the most basic of programs.   If not, a fatal error
+# is set and cmake stops processing commands and will not generate
+# any makefiles or projects.
+if(NOT CMAKE_OBJC_COMPILER_WORKS)
+  PrintTestCompilerStatus("OBJC")
+  __TestCompiler_setTryCompileTargetType()
+  file(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testOBJCCompiler.m
+    "#ifdef __cplusplus\n"
+    "# error \"The CMAKE_OBJC_COMPILER is set to a C++ compiler\"\n"
+    "#endif\n"
+    "#ifndef __OBJC__\n"
+    "# error \"The CMAKE_OBJC_COMPILER is not an Objective-C compiler\"\n"
+    "#endif\n"
+    "int main(int argc, char* argv[])\n"
+    "{ (void)argv; return argc-1;}\n")
+  try_compile(CMAKE_OBJC_COMPILER_WORKS ${CMAKE_BINARY_DIR}
+    ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testOBJCCompiler.m
+    OUTPUT_VARIABLE __CMAKE_OBJC_COMPILER_OUTPUT)
+  # Move result from cache to normal variable.
+  set(CMAKE_OBJC_COMPILER_WORKS ${CMAKE_OBJC_COMPILER_WORKS})
+  unset(CMAKE_OBJC_COMPILER_WORKS CACHE)
+  __TestCompiler_restoreTryCompileTargetType()
+  if(NOT CMAKE_OBJC_COMPILER_WORKS)
+    PrintTestCompilerResult(CHECK_FAIL "broken")
+    file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+      "Determining if the Objective-C compiler works failed with "
+      "the following output:\n${__CMAKE_OBJC_COMPILER_OUTPUT}\n\n")
+    string(REPLACE "\n" "\n  " _output "${__CMAKE_OBJC_COMPILER_OUTPUT}")
+    message(FATAL_ERROR "The Objective-C compiler\n  \"${CMAKE_OBJC_COMPILER}\"\n"
+      "is not able to compile a simple test program.\nIt fails "
+      "with the following output:\n  ${_output}\n\n"
+      "CMake will not be able to correctly generate this project.")
+  endif()
+  PrintTestCompilerResult(CHECK_PASS "works")
+  file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+    "Determining if the Objective-C compiler works passed with "
+    "the following output:\n${__CMAKE_OBJC_COMPILER_OUTPUT}\n\n")
+endif()
+
+# Try to identify the compiler features
+include(${CMAKE_ROOT}/Modules/CMakeDetermineCompileFeatures.cmake)
+CMAKE_DETERMINE_COMPILE_FEATURES(OBJC)
+
+# Re-configure to save learned information.
+configure_file(
+  ${CMAKE_ROOT}/Modules/CMakeOBJCCompiler.cmake.in
+  ${CMAKE_PLATFORM_INFO_DIR}/CMakeOBJCCompiler.cmake
+  @ONLY
+  )
+include(${CMAKE_PLATFORM_INFO_DIR}/CMakeOBJCCompiler.cmake)
+
+if(CMAKE_OBJC_SIZEOF_DATA_PTR)
+  foreach(f ${CMAKE_OBJC_ABI_FILES})
+    include(${f})
+  endforeach()
+  unset(CMAKE_OBJC_ABI_FILES)
+endif()
+
+set(CMAKE_TRY_COMPILE_TARGET_TYPE ${__CMAKE_SAVED_TRY_COMPILE_TARGET_TYPE})
+unset(__CMAKE_SAVED_TRY_COMPILE_TARGET_TYPE)
+unset(__CMAKE_OBJC_COMPILER_OUTPUT)
diff --git a/share/cmake-3.18/Modules/CMakeTestOBJCXXCompiler.cmake b/share/cmake-3.18/Modules/CMakeTestOBJCXXCompiler.cmake
new file mode 100644
index 0000000..dc153a7
--- /dev/null
+++ b/share/cmake-3.18/Modules/CMakeTestOBJCXXCompiler.cmake
@@ -0,0 +1,94 @@
+# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+
+if(CMAKE_OBJCXX_COMPILER_FORCED)
+  # The compiler configuration was forced by the user.
+  # Assume the user has configured all compiler information.
+  set(CMAKE_OBJCXX_COMPILER_WORKS TRUE)
+  return()
+endif()
+
+include(CMakeTestCompilerCommon)
+
+# work around enforced code signing and / or missing exectuable target type
+set(__CMAKE_SAVED_TRY_COMPILE_TARGET_TYPE ${CMAKE_TRY_COMPILE_TARGET_TYPE})
+if(_CMAKE_FEATURE_DETECTION_TARGET_TYPE)
+  set(CMAKE_TRY_COMPILE_TARGET_TYPE ${_CMAKE_FEATURE_DETECTION_TARGET_TYPE})
+endif()
+
+# Remove any cached result from an older CMake version.
+# We now store this in CMakeOBJCXXCompiler.cmake.
+unset(CMAKE_OBJCXX_COMPILER_WORKS CACHE)
+
+# Try to identify the ABI and configure it into CMakeOBJCXXCompiler.cmake
+include(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerABI.cmake)
+CMAKE_DETERMINE_COMPILER_ABI(OBJCXX ${CMAKE_ROOT}/Modules/CMakeOBJCXXCompilerABI.mm)
+if(CMAKE_OBJCXX_ABI_COMPILED)
+  # The compiler worked so skip dedicated test below.
+  set(CMAKE_OBJCXX_COMPILER_WORKS TRUE)
+  message(STATUS "Check for working OBJCXX compiler: ${CMAKE_OBJCXX_COMPILER} - skipped")
+endif()
+
+# This file is used by EnableLanguage in cmGlobalGenerator to
+# determine that the selected Objective-C++ compiler can actually compile
+# and link the most basic of programs.   If not, a fatal error
+# is set and cmake stops processing commands and will not generate
+# any makefiles or projects.
+if(NOT CMAKE_OBJCXX_COMPILER_WORKS)
+  PrintTestCompilerStatus("OBJCXX")
+  __TestCompiler_setTryCompileTargetType()
+  file(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testOBJCXXCompiler.mm
+    "#ifndef __cplusplus\n"
+    "# error \"The CMAKE_OBJCXX_COMPILER is set to a C compiler\"\n"
+    "#endif\n"
+    "#ifndef __OBJC__\n"
+    "# error \"The CMAKE_OBJCXX_COMPILER is not an Objective-C++ compiler\"\n"
+    "#endif\n"
+    "int main(){return 0;}\n")
+  try_compile(CMAKE_OBJCXX_COMPILER_WORKS ${CMAKE_BINARY_DIR}
+    ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testOBJCXXCompiler.mm
+    OUTPUT_VARIABLE __CMAKE_OBJCXX_COMPILER_OUTPUT)
+  # Move result from cache to normal variable.
+  set(CMAKE_OBJCXX_COMPILER_WORKS ${CMAKE_OBJCXX_COMPILER_WORKS})
+  unset(CMAKE_OBJCXX_COMPILER_WORKS CACHE)
+  __TestCompiler_restoreTryCompileTargetType()
+  if(NOT CMAKE_OBJCXX_COMPILER_WORKS)
+    PrintTestCompilerResult(CHECK_FAIL "broken")
+    file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+      "Determining if the Objective-C++ compiler works failed with "
+      "the following output:\n${__CMAKE_OBJCXX_COMPILER_OUTPUT}\n\n")
+    string(REPLACE "\n" "\n  " _output "${__CMAKE_OBJCXX_COMPILER_OUTPUT}")
+    message(FATAL_ERROR "The Objective-C++ compiler\n  \"${CMAKE_OBJCXX_COMPILER}\"\n"
+      "is not able to compile a simple test program.\nIt fails "
+      "with the following output:\n  ${_output}\n\n"
+      "CMake will not be able to correctly generate this project.")
+  endif()
+  PrintTestCompilerResult(CHECK_PASS "works")
+  file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+    "Determining if the Objective-C++ compiler works passed with "
+    "the following output:\n${__CMAKE_OBJCXX_COMPILER_OUTPUT}\n\n")
+endif()
+
+# Try to identify the compiler features
+include(${CMAKE_ROOT}/Modules/CMakeDetermineCompileFeatures.cmake)
+CMAKE_DETERMINE_COMPILE_FEATURES(OBJCXX)
+
+# Re-configure to save learned information.
+configure_file(
+  ${CMAKE_ROOT}/Modules/CMakeOBJCXXCompiler.cmake.in
+  ${CMAKE_PLATFORM_INFO_DIR}/CMakeOBJCXXCompiler.cmake
+  @ONLY
+  )
+include(${CMAKE_PLATFORM_INFO_DIR}/CMakeOBJCXXCompiler.cmake)
+
+if(CMAKE_OBJCXX_SIZEOF_DATA_PTR)
+  foreach(f ${CMAKE_OBJCXX_ABI_FILES})
+    include(${f})
+  endforeach()
+  unset(CMAKE_OBJCXX_ABI_FILES)
+endif()
+
+set(CMAKE_TRY_COMPILE_TARGET_TYPE ${__CMAKE_SAVED_TRY_COMPILE_TARGET_TYPE})
+unset(__CMAKE_SAVED_TRY_COMPILE_TARGET_TYPE)
+unset(__CMAKE_OBJCXX_COMPILER_OUTPUT)
diff --git a/share/cmake-3.17/Modules/CMakeTestRCCompiler.cmake b/share/cmake-3.18/Modules/CMakeTestRCCompiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeTestRCCompiler.cmake
rename to share/cmake-3.18/Modules/CMakeTestRCCompiler.cmake
diff --git a/share/cmake-3.17/Modules/CMakeTestSwiftCompiler.cmake b/share/cmake-3.18/Modules/CMakeTestSwiftCompiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeTestSwiftCompiler.cmake
rename to share/cmake-3.18/Modules/CMakeTestSwiftCompiler.cmake
diff --git a/share/cmake-3.17/Modules/CMakeUnixFindMake.cmake b/share/cmake-3.18/Modules/CMakeUnixFindMake.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeUnixFindMake.cmake
rename to share/cmake-3.18/Modules/CMakeUnixFindMake.cmake
diff --git a/share/cmake-3.17/Modules/CMakeVerifyManifest.cmake b/share/cmake-3.18/Modules/CMakeVerifyManifest.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CMakeVerifyManifest.cmake
rename to share/cmake-3.18/Modules/CMakeVerifyManifest.cmake
diff --git a/share/cmake-3.17/Modules/CPack.cmake b/share/cmake-3.18/Modules/CPack.cmake
similarity index 97%
rename from share/cmake-3.17/Modules/CPack.cmake
rename to share/cmake-3.18/Modules/CPack.cmake
index baf7e47..d0cfc2b 100644
--- a/share/cmake-3.17/Modules/CPack.cmake
+++ b/share/cmake-3.18/Modules/CPack.cmake
@@ -5,7 +5,7 @@
 CPack
 -----
 
-Configure the binary and source package installers.
+Configure generators for binary installers and source packages.
 
 Introduction
 ^^^^^^^^^^^^
@@ -19,13 +19,17 @@
 targets, ``package`` and ``package_source``. See the `packaging targets`_
 section below for details.
 
-The generated binary installers contain everything installed via CMake's
-:command:`install` command (and the deprecated commands :command:`install_files`,
-:command:`install_programs`, and :command:`install_targets`).
-For certain kinds of binary installers (including the graphical
-installers on macOS and Windows), CPack generates installers that
-allow users to select individual application components to install.
-See :module:`CPackComponent` module for further details.
+The generated binary installers will contain all files that have been installed
+via CMake's :command:`install` command (and the deprecated commands
+:command:`install_files`, :command:`install_programs`, and
+:command:`install_targets`).  Certain kinds of binary installers can be
+configured such that users can select individual application components to
+install.  See the :module:`CPackComponent` module for further details.
+
+Source packages (configured through ``CPackSourceConfig.cmake`` and generated
+by the :cpack_gen:`CPack Archive Generator`) will contain all source files in
+the project directory except those specified in
+:variable:`CPACK_SOURCE_IGNORE_FILES`.
 
 CPack Generators
 ^^^^^^^^^^^^^^^^
@@ -38,10 +42,6 @@
 :variable:`CPACK_GENERATOR` is a *string naming a single generator*.  If you
 need per-cpack-generator logic to control *other* cpack settings, then you
 need a :variable:`CPACK_PROJECT_CONFIG_FILE`.
-
-The CMake source tree itself contains a :variable:`CPACK_PROJECT_CONFIG_FILE`.
-See the top level file ``CMakeCPackOptions.cmake.in`` for an example.
-
 If set, the :variable:`CPACK_PROJECT_CONFIG_FILE` is included automatically
 on a per-generator basis.  It only need contain overrides.
 
@@ -79,7 +79,7 @@
 
 If CMake is run with the Makefile or Ninja generator, then ``include(CPack)``
 also generates a target ``package_source``. To build a source package,
-instead of ``cpack -G TGZ --config CPackConfig.cmake`` one may call
+instead of ``cpack -G TGZ --config CPackSourceConfig.cmake`` one may call
 ``cmake --build . --target package_source``, ``make package_source``,
 or ``ninja package_source``.
 
diff --git a/share/cmake-3.17/Modules/CPackComponent.cmake b/share/cmake-3.18/Modules/CPackComponent.cmake
similarity index 90%
rename from share/cmake-3.17/Modules/CPackComponent.cmake
rename to share/cmake-3.18/Modules/CPackComponent.cmake
index 211d767..1f8c38c 100644
--- a/share/cmake-3.17/Modules/CPackComponent.cmake
+++ b/share/cmake-3.18/Modules/CPackComponent.cmake
@@ -5,29 +5,34 @@
 CPackComponent
 --------------
 
-Build binary and source package installers
+Configure components for binary installers and source packages.
 
-Variables concerning CPack Components
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+.. only:: html
 
-The CPackComponent module is the module which handles the component
-part of CPack.  See CPack module for general information about CPack.
+  .. contents::
 
-For certain kinds of binary installers (including the graphical
-installers on macOS and Windows), CPack generates installers that
-allow users to select individual application components to install.
-The contents of each of the components are identified by the COMPONENT
-argument of CMake's INSTALL command.  These components can be
+Introduction
+^^^^^^^^^^^^
+
+This module is automatically included by :module:`CPack`.
+
+Certain binary installers (especially the graphical installers) generated
+by CPack allow users to select individual application *components* to install.
+This module allows developers to configure the packaging of such components.
+
+Contents is assigned to components by the ``COMPONENT``
+argument of CMake's :command:`install` command.  Components can be
 annotated with user-friendly names and descriptions, inter-component
 dependencies, etc., and grouped in various ways to customize the
-resulting installer.  See the cpack_add_* commands, described below,
-for more information about component-specific installations.
+resulting installer, using the commands described below.
 
-Component-specific installation allows users to select specific sets
-of components to install during the install process.  Installation
-components are identified by the COMPONENT argument of CMake's INSTALL
-commands, and should be further described by the following CPack
-commands:
+To specify different groupings for different CPack generators use
+a CPACK_PROJECT_CONFIG_FILE.
+
+Variables
+^^^^^^^^^
+
+The following variables influence the component-specific packaging:
 
 .. variable:: CPACK_COMPONENTS_ALL
 
@@ -61,16 +66,14 @@
  Specify how components are grouped for multi-package component-aware CPack
  generators.
 
- Some generators like RPM or ARCHIVE family (TGZ, ZIP, ...) generates
- several packages files when asked for component packaging.  They group
- the component differently depending on the value of this variable:
+ Some generators like RPM or ARCHIVE (TGZ, ZIP, ...) may generate
+ several packages files when there are components, depending
+ on the value of this variable:
 
- * ONE_PER_GROUP (default): creates one package file per component group
- * ALL_COMPONENTS_IN_ONE : creates a single package with all (requested) components
- * IGNORE : creates one package per component, i.e. IGNORE component group
-
- One can specify different grouping for different CPack generator by
- using a CPACK_PROJECT_CONFIG_FILE.
+ * ONE_PER_GROUP (default): create one package per component group
+ * IGNORE : create one package per component (ignore the groups)
+ * ALL_COMPONENTS_IN_ONE : create a single package with all requested
+   components
 
 .. variable:: CPACK_COMPONENT_<compName>_DISPLAY_NAME
 
@@ -100,10 +103,15 @@
 
  True if this component is not selected to be installed by default.
 
+Commands
+^^^^^^^^
+
+Add component
+"""""""""""""
+
 .. command:: cpack_add_component
 
-Describes a CPack installation
-component named by the COMPONENT argument to a CMake INSTALL command.
+Describe an installation component.
 
 ::
 
@@ -118,13 +126,11 @@
                       [ARCHIVE_FILE filename]
                       [PLIST filename])
 
-
-
-The cmake_add_component command describes an installation component,
-which the user can opt to install or remove as part of the graphical
-installation process.  compname is the name of the component, as
-provided to the COMPONENT argument of one or more CMake INSTALL
-commands.
+``compname`` is the name of an installation component, as defined by the
+``COMPONENT`` argument of one or more CMake :command:`install` commands.
+With the ``cpack_add_component`` command one can set a name, a description,
+and other attributes of an installation component.
+One can also assign a component to a component group.
 
 DISPLAY_NAME is the displayed name of the component, used in graphical
 installers to display the component name.  This value can be any
@@ -177,6 +183,9 @@
 PLIST gives a filename that is passed to pkgbuild with the
 ``--component-plist`` argument when using the productbuild generator.
 
+Add component group
+"""""""""""""""""""
+
 .. command:: cpack_add_component_group
 
 Describes a group of related CPack installation components.
@@ -225,6 +234,9 @@
 BOLD_TITLE indicates that the group title should appear in bold, to
 call the user's attention to the group.
 
+Add installation type
+"""""""""""""""""""""
+
 .. command:: cpack_add_install_type
 
 Add a new installation type containing
@@ -249,6 +261,9 @@
 typically show up in a drop-down box within a graphical installer.
 This value can be any string.
 
+Configure downloads
+"""""""""""""""""""
+
 .. command:: cpack_configure_downloads
 
 Configure CPack to download
@@ -281,8 +296,6 @@
 
   http://nsis.sourceforge.net/ZipDLL_plug-in
 
-
-
 On macOS, installers that download components on-the-fly can only
 be built and installed on system using macOS 10.5 or later.
 
diff --git a/share/cmake-3.17/Modules/CPackIFW.cmake b/share/cmake-3.18/Modules/CPackIFW.cmake
similarity index 99%
rename from share/cmake-3.17/Modules/CPackIFW.cmake
rename to share/cmake-3.18/Modules/CPackIFW.cmake
index f58f9ef..80a907f 100644
--- a/share/cmake-3.17/Modules/CPackIFW.cmake
+++ b/share/cmake-3.18/Modules/CPackIFW.cmake
@@ -59,7 +59,7 @@
 
   ``FORCED_INSTALLATION``
     if set, then the component must always be installed.
-    It is a equivalent of the ``REQUARED`` option from the
+    It is a equivalent of the ``REQUIRED`` option from the
     :command:`cpack_add_component` command.
 
   ``REQUIRES_ADMIN_RIGHTS``
@@ -359,6 +359,8 @@
   "QtIFW-")
 
 set(_CPACK_IFW_VERSIONS
+  "3.2"
+  "3.2.0"
   "3.1"
   "3.1.0"
   "3.0"
diff --git a/share/cmake-3.17/Modules/CPackIFWConfigureFile.cmake b/share/cmake-3.18/Modules/CPackIFWConfigureFile.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CPackIFWConfigureFile.cmake
rename to share/cmake-3.18/Modules/CPackIFWConfigureFile.cmake
diff --git a/share/cmake-3.17/Modules/CSharpUtilities.cmake b/share/cmake-3.18/Modules/CSharpUtilities.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CSharpUtilities.cmake
rename to share/cmake-3.18/Modules/CSharpUtilities.cmake
diff --git a/share/cmake-3.17/Modules/CTest.cmake b/share/cmake-3.18/Modules/CTest.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CTest.cmake
rename to share/cmake-3.18/Modules/CTest.cmake
diff --git a/share/cmake-3.17/Modules/CTestCoverageCollectGCOV.cmake b/share/cmake-3.18/Modules/CTestCoverageCollectGCOV.cmake
similarity index 78%
rename from share/cmake-3.17/Modules/CTestCoverageCollectGCOV.cmake
rename to share/cmake-3.18/Modules/CTestCoverageCollectGCOV.cmake
index ff48cc2..b1268be 100644
--- a/share/cmake-3.17/Modules/CTestCoverageCollectGCOV.cmake
+++ b/share/cmake-3.18/Modules/CTestCoverageCollectGCOV.cmake
@@ -37,6 +37,17 @@
     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`` 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
+    evaluates as ``FALSE``. The default value is ``BZIP2``.
+
+    If ``FROM_EXT`` is specified, the resulting file will be compressed based on
+    the file extension of the ``<tarfile>`` (i.e. ``.tar.gz`` will use ``GZIP``
+    compression). File extensions that will produce compressed output include
+    ``.tar.gz``, ``.tgz``, ``.tar.bzip2``, ``.tbz``, ``.tar.xz``, and ``.txz``.
+
   ``SOURCE <source_dir>``
     Specify the top-level source directory for the build.
     Default is the value of :variable:`CTEST_SOURCE_DIRECTORY`.
@@ -68,7 +79,7 @@
 
 function(ctest_coverage_collect_gcov)
   set(options QUIET GLOB DELETE)
-  set(oneValueArgs TARBALL SOURCE BUILD GCOV_COMMAND)
+  set(oneValueArgs TARBALL SOURCE BUILD GCOV_COMMAND TARBALL_COMPRESSION)
   set(multiValueArgs GCOV_OPTIONS)
   cmake_parse_arguments(GCOV  "${options}" "${oneValueArgs}"
     "${multiValueArgs}" "" ${ARGN} )
@@ -91,6 +102,13 @@
   else()
     set(gcov_command "${GCOV_GCOV_COMMAND}")
   endif()
+  if(NOT DEFINED GCOV_TARBALL_COMPRESSION)
+    set(GCOV_TARBALL_COMPRESSION "BZIP2")
+  elseif( GCOV_TARBALL_COMPRESSION AND
+      NOT GCOV_TARBALL_COMPRESSION MATCHES "^(GZIP|BZIP2|XZ|ZSTD|FROM_EXT)$")
+    message(FATAL_ERROR "TARBALL_COMPRESSION must be one of OFF, GZIP, "
+      "BZIP2, XZ, ZSTD, or FROM_EXT for ctest_coverage_collect_gcov")
+  endif()
   # run gcov on each gcda file in the binary tree
   set(gcda_files)
   set(label_files)
@@ -137,11 +155,23 @@
   if(NOT DEFINED GCOV_GCOV_OPTIONS)
     set(GCOV_GCOV_OPTIONS -b -x)
   endif()
+  if (GCOV_QUIET)
+    set(coverage_out_opts
+      OUTPUT_QUIET
+      ERROR_QUIET
+      )
+  else()
+    set(coverage_out_opts
+      OUTPUT_FILE "${coverage_dir}/gcov.log"
+      ERROR_FILE  "${coverage_dir}/gcov.log"
+      )
+  endif()
   execute_process(COMMAND
     ${gcov_command} ${GCOV_GCOV_OPTIONS} ${gcda_files}
-    OUTPUT_VARIABLE out
     RESULT_VARIABLE res
-    WORKING_DIRECTORY ${coverage_dir})
+    WORKING_DIRECTORY ${coverage_dir}
+    ${coverage_out_opts}
+    )
 
   if (GCOV_DELETE)
     file(REMOVE ${gcda_files})
@@ -149,7 +179,7 @@
 
   if(NOT "${res}" EQUAL 0)
     if (NOT GCOV_QUIET)
-      message(STATUS "Error running gcov: ${res} ${out}")
+      message(STATUS "Error running gcov: ${res}, see\n  ${coverage_dir}/gcov.log")
     endif()
   endif()
   # create json file with project information
@@ -258,14 +288,38 @@
 ${uncovered_files_for_tar}
 ")
 
-  if (GCOV_QUIET)
-    set(tar_opts "cfj")
-  else()
-    set(tar_opts "cvfj")
+  # Prepare tar command line arguments
+
+  set(tar_opts "")
+  # Select data compression mode
+  if( GCOV_TARBALL_COMPRESSION STREQUAL "FROM_EXT")
+    if( GCOV_TARBALL MATCHES [[\.(tgz|tar.gz)$]] )
+      string(APPEND tar_opts "z")
+    elseif( GCOV_TARBALL MATCHES [[\.(txz|tar.xz)$]] )
+      string(APPEND tar_opts "J")
+    elseif( GCOV_TARBALL MATCHES [[\.(tbz|tar.bz)$]] )
+      string(APPEND tar_opts "j")
+    endif()
+  elseif(GCOV_TARBALL_COMPRESSION STREQUAL "GZIP")
+    string(APPEND tar_opts "z")
+  elseif(GCOV_TARBALL_COMPRESSION STREQUAL "XZ")
+    string(APPEND tar_opts "J")
+  elseif(GCOV_TARBALL_COMPRESSION STREQUAL "BZIP2")
+    string(APPEND tar_opts "j")
+  elseif(GCOV_TARBALL_COMPRESSION STREQUAL "ZSTD")
+    set(zstd_tar_opt "--zstd")
   endif()
+  # Verbosity options
+  if(NOT GCOV_QUIET AND NOT tar_opts MATCHES v)
+    string(APPEND tar_opts "v")
+  endif()
+  # Prepend option 'c' specifying 'create'
+  string(PREPEND tar_opts "c")
+  # Append option 'f' so that the next argument is the filename
+  string(APPEND tar_opts "f")
 
   execute_process(COMMAND
-    ${CMAKE_COMMAND} -E tar ${tar_opts} ${GCOV_TARBALL}
+    ${CMAKE_COMMAND} -E tar ${tar_opts} ${GCOV_TARBALL} ${zstd_tar_opt}
     "--mtime=1970-01-01 0:0:0 UTC"
     "--format=gnutar"
     --files-from=${coverage_dir}/coverage_file_list.txt
diff --git a/share/cmake-3.17/Modules/CTestScriptMode.cmake b/share/cmake-3.18/Modules/CTestScriptMode.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CTestScriptMode.cmake
rename to share/cmake-3.18/Modules/CTestScriptMode.cmake
diff --git a/share/cmake-3.17/Modules/CTestTargets.cmake b/share/cmake-3.18/Modules/CTestTargets.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CTestTargets.cmake
rename to share/cmake-3.18/Modules/CTestTargets.cmake
diff --git a/share/cmake-3.17/Modules/CTestUseLaunchers.cmake b/share/cmake-3.18/Modules/CTestUseLaunchers.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CTestUseLaunchers.cmake
rename to share/cmake-3.18/Modules/CTestUseLaunchers.cmake
diff --git a/share/cmake-3.17/Modules/CheckCCompilerFlag.cmake b/share/cmake-3.18/Modules/CheckCCompilerFlag.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CheckCCompilerFlag.cmake
rename to share/cmake-3.18/Modules/CheckCCompilerFlag.cmake
diff --git a/share/cmake-3.17/Modules/CheckCSourceCompiles.cmake b/share/cmake-3.18/Modules/CheckCSourceCompiles.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CheckCSourceCompiles.cmake
rename to share/cmake-3.18/Modules/CheckCSourceCompiles.cmake
diff --git a/share/cmake-3.17/Modules/CheckCSourceRuns.cmake b/share/cmake-3.18/Modules/CheckCSourceRuns.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CheckCSourceRuns.cmake
rename to share/cmake-3.18/Modules/CheckCSourceRuns.cmake
diff --git a/share/cmake-3.17/Modules/CheckCXXCompilerFlag.cmake b/share/cmake-3.18/Modules/CheckCXXCompilerFlag.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CheckCXXCompilerFlag.cmake
rename to share/cmake-3.18/Modules/CheckCXXCompilerFlag.cmake
diff --git a/share/cmake-3.17/Modules/CheckCXXSourceCompiles.cmake b/share/cmake-3.18/Modules/CheckCXXSourceCompiles.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CheckCXXSourceCompiles.cmake
rename to share/cmake-3.18/Modules/CheckCXXSourceCompiles.cmake
diff --git a/share/cmake-3.17/Modules/CheckCXXSourceRuns.cmake b/share/cmake-3.18/Modules/CheckCXXSourceRuns.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CheckCXXSourceRuns.cmake
rename to share/cmake-3.18/Modules/CheckCXXSourceRuns.cmake
diff --git a/share/cmake-3.17/Modules/CheckCXXSymbolExists.cmake b/share/cmake-3.18/Modules/CheckCXXSymbolExists.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CheckCXXSymbolExists.cmake
rename to share/cmake-3.18/Modules/CheckCXXSymbolExists.cmake
diff --git a/share/cmake-3.17/Modules/CheckForPthreads.c b/share/cmake-3.18/Modules/CheckForPthreads.c
similarity index 100%
rename from share/cmake-3.17/Modules/CheckForPthreads.c
rename to share/cmake-3.18/Modules/CheckForPthreads.c
diff --git a/share/cmake-3.17/Modules/CheckFortranCompilerFlag.cmake b/share/cmake-3.18/Modules/CheckFortranCompilerFlag.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CheckFortranCompilerFlag.cmake
rename to share/cmake-3.18/Modules/CheckFortranCompilerFlag.cmake
diff --git a/share/cmake-3.17/Modules/CheckFortranFunctionExists.cmake b/share/cmake-3.18/Modules/CheckFortranFunctionExists.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CheckFortranFunctionExists.cmake
rename to share/cmake-3.18/Modules/CheckFortranFunctionExists.cmake
diff --git a/share/cmake-3.17/Modules/CheckFortranSourceCompiles.cmake b/share/cmake-3.18/Modules/CheckFortranSourceCompiles.cmake
similarity index 96%
rename from share/cmake-3.17/Modules/CheckFortranSourceCompiles.cmake
rename to share/cmake-3.18/Modules/CheckFortranSourceCompiles.cmake
index f0fde8d..3354bfb 100644
--- a/share/cmake-3.17/Modules/CheckFortranSourceCompiles.cmake
+++ b/share/cmake-3.18/Modules/CheckFortranSourceCompiles.cmake
@@ -103,8 +103,6 @@
     if(NOT _SRC_EXT)
       set(_SRC_EXT F)
     endif()
-    set(MACRO_CHECK_FUNCTION_DEFINITIONS
-      "-D${VAR} ${CMAKE_REQUIRED_FLAGS}")
     if(CMAKE_REQUIRED_LINK_OPTIONS)
       set(CHECK_Fortran_SOURCE_COMPILES_ADD_LINK_OPTIONS
         LINK_OPTIONS ${CMAKE_REQUIRED_LINK_OPTIONS})
@@ -132,10 +130,10 @@
     try_compile(${VAR}
       ${CMAKE_BINARY_DIR}
       ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.${_SRC_EXT}
-      COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
+      COMPILE_DEFINITIONS -D${VAR} ${CMAKE_REQUIRED_DEFINITIONS}
       ${CHECK_Fortran_SOURCE_COMPILES_ADD_LINK_OPTIONS}
       ${CHECK_Fortran_SOURCE_COMPILES_ADD_LIBRARIES}
-      CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS}
+      CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${CMAKE_REQUIRED_FLAGS}
       "${CHECK_Fortran_SOURCE_COMPILES_ADD_INCLUDES}"
       OUTPUT_VARIABLE OUTPUT)
 
diff --git a/share/cmake-3.17/Modules/CheckFortranSourceRuns.cmake b/share/cmake-3.18/Modules/CheckFortranSourceRuns.cmake
similarity index 96%
rename from share/cmake-3.17/Modules/CheckFortranSourceRuns.cmake
rename to share/cmake-3.18/Modules/CheckFortranSourceRuns.cmake
index a3e5d5d..f858b84 100644
--- a/share/cmake-3.17/Modules/CheckFortranSourceRuns.cmake
+++ b/share/cmake-3.18/Modules/CheckFortranSourceRuns.cmake
@@ -98,8 +98,6 @@
     if(NOT _SRC_EXT)
       set(_SRC_EXT F90)
     endif()
-    set(MACRO_CHECK_FUNCTION_DEFINITIONS
-      "-D${VAR} ${CMAKE_REQUIRED_FLAGS}")
     if(CMAKE_REQUIRED_LINK_OPTIONS)
       set(CHECK_Fortran_SOURCE_COMPILES_ADD_LINK_OPTIONS
         LINK_OPTIONS ${CMAKE_REQUIRED_LINK_OPTIONS})
@@ -127,10 +125,10 @@
     try_run(${VAR}_EXITCODE ${VAR}_COMPILED
       ${CMAKE_BINARY_DIR}
       ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.${_SRC_EXT}
-      COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
+      COMPILE_DEFINITIONS -D${VAR} ${CMAKE_REQUIRED_DEFINITIONS}
       ${CHECK_Fortran_SOURCE_COMPILES_ADD_LINK_OPTIONS}
       ${CHECK_Fortran_SOURCE_COMPILES_ADD_LIBRARIES}
-      CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS}
+      CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${CMAKE_REQUIRED_FLAGS}
       -DCMAKE_SKIP_RPATH:BOOL=${CMAKE_SKIP_RPATH}
       "${CHECK_Fortran_SOURCE_COMPILES_ADD_INCLUDES}"
       COMPILE_OUTPUT_VARIABLE OUTPUT
diff --git a/share/cmake-3.17/Modules/CheckFunctionExists.c b/share/cmake-3.18/Modules/CheckFunctionExists.c
similarity index 100%
rename from share/cmake-3.17/Modules/CheckFunctionExists.c
rename to share/cmake-3.18/Modules/CheckFunctionExists.c
diff --git a/share/cmake-3.17/Modules/CheckFunctionExists.cmake b/share/cmake-3.18/Modules/CheckFunctionExists.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CheckFunctionExists.cmake
rename to share/cmake-3.18/Modules/CheckFunctionExists.cmake
diff --git a/share/cmake-3.17/Modules/CheckIPOSupported.cmake b/share/cmake-3.18/Modules/CheckIPOSupported.cmake
similarity index 97%
rename from share/cmake-3.17/Modules/CheckIPOSupported.cmake
rename to share/cmake-3.18/Modules/CheckIPOSupported.cmake
index 0d6ad20..90a9f61 100644
--- a/share/cmake-3.17/Modules/CheckIPOSupported.cmake
+++ b/share/cmake-3.18/Modules/CheckIPOSupported.cmake
@@ -113,7 +113,7 @@
   endforeach()
 
   try_compile(
-      result
+      _IPO_LANGUAGE_CHECK_RESULT
       "${bindir}"
       "${srcdir}"
       "${TRY_COMPILE_PROJECT_NAME}"
@@ -122,8 +122,10 @@
       "-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON"
       OUTPUT_VARIABLE output
   )
+  set(_IPO_LANGUAGE_CHECK_RESULT "${_IPO_LANGUAGE_CHECK_RESULT}")
+  unset(_IPO_LANGUAGE_CHECK_RESULT CACHE)
 
-  if(NOT result)
+  if(NOT _IPO_LANGUAGE_CHECK_RESULT)
     file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
       "${language} compiler IPO check failed with the following output:\n"
       "${output}\n")
diff --git a/share/cmake-3.17/Modules/CheckIPOSupported/CMakeLists-C.txt.in b/share/cmake-3.18/Modules/CheckIPOSupported/CMakeLists-C.txt.in
similarity index 100%
rename from share/cmake-3.17/Modules/CheckIPOSupported/CMakeLists-C.txt.in
rename to share/cmake-3.18/Modules/CheckIPOSupported/CMakeLists-C.txt.in
diff --git a/share/cmake-3.17/Modules/CheckIPOSupported/CMakeLists-CXX.txt.in b/share/cmake-3.18/Modules/CheckIPOSupported/CMakeLists-CXX.txt.in
similarity index 100%
rename from share/cmake-3.17/Modules/CheckIPOSupported/CMakeLists-CXX.txt.in
rename to share/cmake-3.18/Modules/CheckIPOSupported/CMakeLists-CXX.txt.in
diff --git a/share/cmake-3.17/Modules/CheckIPOSupported/CMakeLists-Fortran.txt.in b/share/cmake-3.18/Modules/CheckIPOSupported/CMakeLists-Fortran.txt.in
similarity index 100%
rename from share/cmake-3.17/Modules/CheckIPOSupported/CMakeLists-Fortran.txt.in
rename to share/cmake-3.18/Modules/CheckIPOSupported/CMakeLists-Fortran.txt.in
diff --git a/share/cmake-3.17/Modules/CheckIPOSupported/foo.c b/share/cmake-3.18/Modules/CheckIPOSupported/foo.c
similarity index 100%
rename from share/cmake-3.17/Modules/CheckIPOSupported/foo.c
rename to share/cmake-3.18/Modules/CheckIPOSupported/foo.c
diff --git a/share/cmake-3.17/Modules/CheckIPOSupported/foo.cpp b/share/cmake-3.18/Modules/CheckIPOSupported/foo.cpp
similarity index 100%
rename from share/cmake-3.17/Modules/CheckIPOSupported/foo.cpp
rename to share/cmake-3.18/Modules/CheckIPOSupported/foo.cpp
diff --git a/share/cmake-3.17/Modules/CheckIPOSupported/foo.f b/share/cmake-3.18/Modules/CheckIPOSupported/foo.f
similarity index 100%
rename from share/cmake-3.17/Modules/CheckIPOSupported/foo.f
rename to share/cmake-3.18/Modules/CheckIPOSupported/foo.f
diff --git a/share/cmake-3.17/Modules/CheckIPOSupported/main.c b/share/cmake-3.18/Modules/CheckIPOSupported/main.c
similarity index 100%
rename from share/cmake-3.17/Modules/CheckIPOSupported/main.c
rename to share/cmake-3.18/Modules/CheckIPOSupported/main.c
diff --git a/share/cmake-3.17/Modules/CheckIPOSupported/main.cpp b/share/cmake-3.18/Modules/CheckIPOSupported/main.cpp
similarity index 100%
rename from share/cmake-3.17/Modules/CheckIPOSupported/main.cpp
rename to share/cmake-3.18/Modules/CheckIPOSupported/main.cpp
diff --git a/share/cmake-3.17/Modules/CheckIPOSupported/main.f b/share/cmake-3.18/Modules/CheckIPOSupported/main.f
similarity index 100%
rename from share/cmake-3.17/Modules/CheckIPOSupported/main.f
rename to share/cmake-3.18/Modules/CheckIPOSupported/main.f
diff --git a/share/cmake-3.17/Modules/CheckIncludeFile.c.in b/share/cmake-3.18/Modules/CheckIncludeFile.c.in
similarity index 100%
rename from share/cmake-3.17/Modules/CheckIncludeFile.c.in
rename to share/cmake-3.18/Modules/CheckIncludeFile.c.in
diff --git a/share/cmake-3.17/Modules/CheckIncludeFile.cmake b/share/cmake-3.18/Modules/CheckIncludeFile.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CheckIncludeFile.cmake
rename to share/cmake-3.18/Modules/CheckIncludeFile.cmake
diff --git a/share/cmake-3.17/Modules/CheckIncludeFile.cxx.in b/share/cmake-3.18/Modules/CheckIncludeFile.cxx.in
similarity index 100%
rename from share/cmake-3.17/Modules/CheckIncludeFile.cxx.in
rename to share/cmake-3.18/Modules/CheckIncludeFile.cxx.in
diff --git a/share/cmake-3.17/Modules/CheckIncludeFileCXX.cmake b/share/cmake-3.18/Modules/CheckIncludeFileCXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CheckIncludeFileCXX.cmake
rename to share/cmake-3.18/Modules/CheckIncludeFileCXX.cmake
diff --git a/share/cmake-3.17/Modules/CheckIncludeFiles.cmake b/share/cmake-3.18/Modules/CheckIncludeFiles.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CheckIncludeFiles.cmake
rename to share/cmake-3.18/Modules/CheckIncludeFiles.cmake
diff --git a/share/cmake-3.17/Modules/CheckLanguage.cmake b/share/cmake-3.18/Modules/CheckLanguage.cmake
similarity index 92%
rename from share/cmake-3.17/Modules/CheckLanguage.cmake
rename to share/cmake-3.18/Modules/CheckLanguage.cmake
index 997cc8d..d67d8d3 100644
--- a/share/cmake-3.17/Modules/CheckLanguage.cmake
+++ b/share/cmake-3.18/Modules/CheckLanguage.cmake
@@ -43,11 +43,11 @@
     file(REMOVE_RECURSE ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/Check${lang})
 
     set(extra_compiler_variables)
-    if(lang STREQUAL CUDA)
+    if(${lang} STREQUAL CUDA)
       set(extra_compiler_variables "set(CMAKE_CUDA_HOST_COMPILER \\\"\${CMAKE_CUDA_HOST_COMPILER}\\\")")
     endif()
 
-    set(content
+    set(_cl_content
       "cmake_minimum_required(VERSION ${CMAKE_VERSION})
 project(Check${lang} ${lang})
 file(WRITE \"\${CMAKE_CURRENT_BINARY_DIR}/result.cmake\"
@@ -57,7 +57,7 @@
     )
 
     file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/Check${lang}/CMakeLists.txt"
-      "${content}")
+      "${_cl_content}")
     if(CMAKE_GENERATOR_INSTANCE)
       set(_D_CMAKE_GENERATOR_INSTANCE "-DCMAKE_GENERATOR_INSTANCE:INTERNAL=${CMAKE_GENERATOR_INSTANCE}")
     else()
@@ -75,22 +75,22 @@
                                  -T "${CMAKE_GENERATOR_TOOLSET}"
                                  ${_D_CMAKE_GENERATOR_INSTANCE}
                                  ${_D_CMAKE_MAKE_PROGRAM}
-      OUTPUT_VARIABLE output
-      ERROR_VARIABLE output
-      RESULT_VARIABLE result
+      OUTPUT_VARIABLE _cl_output
+      ERROR_VARIABLE _cl_output
+      RESULT_VARIABLE _cl_result
       )
     include(${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/Check${lang}/result.cmake OPTIONAL)
-    if(CMAKE_${lang}_COMPILER AND "${result}" STREQUAL "0")
+    if(CMAKE_${lang}_COMPILER AND "${_cl_result}" STREQUAL "0")
       file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
         "${_desc} passed with the following output:\n"
-        "${output}\n")
+        "${_cl_output}\n")
       set(_CHECK_COMPILER_STATUS CHECK_PASS)
     else()
       set(CMAKE_${lang}_COMPILER NOTFOUND)
       set(_CHECK_COMPILER_STATUS CHECK_FAIL)
       file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
         "${_desc} failed with the following output:\n"
-        "${output}\n")
+        "${_cl_output}\n")
     endif()
     message(${_CHECK_COMPILER_STATUS} "${CMAKE_${lang}_COMPILER}")
     set(CMAKE_${lang}_COMPILER "${CMAKE_${lang}_COMPILER}" CACHE FILEPATH "${lang} compiler")
diff --git a/share/cmake-3.17/Modules/CheckLibraryExists.cmake b/share/cmake-3.18/Modules/CheckLibraryExists.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CheckLibraryExists.cmake
rename to share/cmake-3.18/Modules/CheckLibraryExists.cmake
diff --git a/share/cmake-3.17/Modules/CheckLibraryExists.lists.in b/share/cmake-3.18/Modules/CheckLibraryExists.lists.in
similarity index 100%
rename from share/cmake-3.17/Modules/CheckLibraryExists.lists.in
rename to share/cmake-3.18/Modules/CheckLibraryExists.lists.in
diff --git a/share/cmake-3.18/Modules/CheckLinkerFlag.cmake b/share/cmake-3.18/Modules/CheckLinkerFlag.cmake
new file mode 100644
index 0000000..beda5fe
--- /dev/null
+++ b/share/cmake-3.18/Modules/CheckLinkerFlag.cmake
@@ -0,0 +1,81 @@
+# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+CheckLinkerFlag
+---------------
+
+Check whether the compiler supports a given link flag.
+
+.. command:: check_linker_flag
+
+  .. code-block:: cmake
+
+    check_linker_flag(<lang> <flag> <var>)
+
+Check that the link ``<flag>`` is accepted by the ``<lang>`` compiler without
+a diagnostic.  Stores the result in an internal cache entry named ``<var>``.
+
+This command temporarily sets the ``CMAKE_REQUIRED_LINK_OPTIONS`` variable
+and calls the ``check_<lang>_source_compiles`` macro from the
+``Check<lang>SourceCompiles`` module (:module:`CheckCSourceCompiles`,
+:module:`CheckCSourceCompiles`, :module:`CheckCXXSourceCompiles`,
+:module:`CheckOBJCSourceCompiles`, :module:`CheckOBJCXXSourceCompiles` or
+:module:`CheckFortranSourceCompiles`).  See documentation of these
+modules for a listing of variables that can otherwise modify the build.
+
+The underlying implementation rely on :prop_tgt:`LINK_OPTIONS` property to
+check the specified flag. The ``LINKER:`` prefix, as described in
+:command:`target_link_options` command, can be used as well.
+
+A positive result from this check indicates only that the compiler did not
+issue a diagnostic message when given the link flag.  Whether the flag has any
+effect or even a specific one is beyond the scope of this module.
+
+.. note::
+  Since the :command:`try_compile` command forwards flags from variables
+  like :variable:`CMAKE_<LANG>_FLAGS`, unknown flags in such variables may
+  cause a false negative for this check.
+#]=======================================================================]
+
+include_guard(GLOBAL)
+
+include(CMakeCheckCompilerFlagCommonPatterns)
+
+function(CHECK_LINKER_FLAG _lang _flag _var)
+  get_property (_supported_languages GLOBAL PROPERTY ENABLED_LANGUAGES)
+  if (NOT _lang IN_LIST _supported_languages)
+    message (SEND_ERROR "check_linker_flag: ${_lang}: unknown language.")
+    return()
+  endif()
+
+  include (Check${_lang}SourceCompiles)
+
+  set(CMAKE_REQUIRED_LINK_OPTIONS "${_flag}")
+
+  # Normalize locale during test compilation.
+  set(_locale_vars LC_ALL LC_MESSAGES LANG)
+  foreach(v IN LISTS _locale_vars)
+    set(_locale_vars_saved_${v} "$ENV{${v}}")
+    set(ENV{${v}} C)
+  endforeach()
+
+  if (_lang MATCHES "^(C|CXX)$")
+    set (_source "int main() { return 0; }")
+  elseif (_lang STREQUAL "Fortran")
+    set (_source "       program test\n       stop\n       end program")
+  elseif (_lang MATCHES "^(OBJC|OBJCXX)$")
+    set (_source "#ifndef __OBJC__\n#  error \"Not an Objective-C++ compiler\"\n#endif\nint main(void) { return 0; }")
+  else()
+    message (SEND_ERROR "check_linker_flag: ${_lang}: unsupported language.")
+    return()
+  endif()
+  check_compiler_flag_common_patterns(_common_patterns)
+
+  cmake_language (CALL check_${_lang}_source_compiles "${_source}" ${_var} ${_common_patterns})
+
+  foreach(v IN LISTS _locale_vars)
+    set(ENV{${v}} ${_locale_vars_saved_${v}})
+  endforeach()
+  set(${_var} "${${_var}}" PARENT_SCOPE)
+endfunction()
diff --git a/share/cmake-3.17/Modules/CheckOBJCCompilerFlag.cmake b/share/cmake-3.18/Modules/CheckOBJCCompilerFlag.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CheckOBJCCompilerFlag.cmake
rename to share/cmake-3.18/Modules/CheckOBJCCompilerFlag.cmake
diff --git a/share/cmake-3.17/Modules/CheckOBJCSourceCompiles.cmake b/share/cmake-3.18/Modules/CheckOBJCSourceCompiles.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CheckOBJCSourceCompiles.cmake
rename to share/cmake-3.18/Modules/CheckOBJCSourceCompiles.cmake
diff --git a/share/cmake-3.17/Modules/CheckOBJCSourceRuns.cmake b/share/cmake-3.18/Modules/CheckOBJCSourceRuns.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CheckOBJCSourceRuns.cmake
rename to share/cmake-3.18/Modules/CheckOBJCSourceRuns.cmake
diff --git a/share/cmake-3.17/Modules/CheckOBJCXXCompilerFlag.cmake b/share/cmake-3.18/Modules/CheckOBJCXXCompilerFlag.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CheckOBJCXXCompilerFlag.cmake
rename to share/cmake-3.18/Modules/CheckOBJCXXCompilerFlag.cmake
diff --git a/share/cmake-3.17/Modules/CheckOBJCXXSourceCompiles.cmake b/share/cmake-3.18/Modules/CheckOBJCXXSourceCompiles.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CheckOBJCXXSourceCompiles.cmake
rename to share/cmake-3.18/Modules/CheckOBJCXXSourceCompiles.cmake
diff --git a/share/cmake-3.17/Modules/CheckOBJCXXSourceRuns.cmake b/share/cmake-3.18/Modules/CheckOBJCXXSourceRuns.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CheckOBJCXXSourceRuns.cmake
rename to share/cmake-3.18/Modules/CheckOBJCXXSourceRuns.cmake
diff --git a/share/cmake-3.17/Modules/CheckPIESupported.cmake b/share/cmake-3.18/Modules/CheckPIESupported.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CheckPIESupported.cmake
rename to share/cmake-3.18/Modules/CheckPIESupported.cmake
diff --git a/share/cmake-3.17/Modules/CheckPrototypeDefinition.c.in b/share/cmake-3.18/Modules/CheckPrototypeDefinition.c.in
similarity index 100%
rename from share/cmake-3.17/Modules/CheckPrototypeDefinition.c.in
rename to share/cmake-3.18/Modules/CheckPrototypeDefinition.c.in
diff --git a/share/cmake-3.17/Modules/CheckPrototypeDefinition.cmake b/share/cmake-3.18/Modules/CheckPrototypeDefinition.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CheckPrototypeDefinition.cmake
rename to share/cmake-3.18/Modules/CheckPrototypeDefinition.cmake
diff --git a/share/cmake-3.17/Modules/CheckSizeOf.cmake b/share/cmake-3.18/Modules/CheckSizeOf.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CheckSizeOf.cmake
rename to share/cmake-3.18/Modules/CheckSizeOf.cmake
diff --git a/share/cmake-3.17/Modules/CheckStructHasMember.cmake b/share/cmake-3.18/Modules/CheckStructHasMember.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CheckStructHasMember.cmake
rename to share/cmake-3.18/Modules/CheckStructHasMember.cmake
diff --git a/share/cmake-3.17/Modules/CheckSymbolExists.cmake b/share/cmake-3.18/Modules/CheckSymbolExists.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CheckSymbolExists.cmake
rename to share/cmake-3.18/Modules/CheckSymbolExists.cmake
diff --git a/share/cmake-3.17/Modules/CheckTypeSize.c.in b/share/cmake-3.18/Modules/CheckTypeSize.c.in
similarity index 88%
rename from share/cmake-3.17/Modules/CheckTypeSize.c.in
rename to share/cmake-3.18/Modules/CheckTypeSize.c.in
index 82035a3..fb93073 100644
--- a/share/cmake-3.17/Modules/CheckTypeSize.c.in
+++ b/share/cmake-3.18/Modules/CheckTypeSize.c.in
@@ -5,10 +5,14 @@
 # define KEY '_','_','i','3','8','6'
 #elif defined(__x86_64)
 # define KEY '_','_','x','8','6','_','6','4'
-#elif defined(__ppc__)
-# define KEY '_','_','p','p','c','_','_'
+#elif defined(__PPC64__)
+# define KEY '_','_','P','P','C','6','4','_','_'
 #elif defined(__ppc64__)
 # define KEY '_','_','p','p','c','6','4','_','_'
+#elif defined(__PPC__)
+# define KEY '_','_','P','P','C','_','_'
+#elif defined(__ppc__)
+# define KEY '_','_','p','p','c','_','_'
 #elif defined(__aarch64__)
 # define KEY '_','_','a','a','r','c','h','6','4','_','_'
 #elif defined(__ARM_ARCH_7A__)
diff --git a/share/cmake-3.17/Modules/CheckTypeSize.cmake b/share/cmake-3.18/Modules/CheckTypeSize.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CheckTypeSize.cmake
rename to share/cmake-3.18/Modules/CheckTypeSize.cmake
diff --git a/share/cmake-3.17/Modules/CheckTypeSizeMap.cmake.in b/share/cmake-3.18/Modules/CheckTypeSizeMap.cmake.in
similarity index 100%
rename from share/cmake-3.17/Modules/CheckTypeSizeMap.cmake.in
rename to share/cmake-3.18/Modules/CheckTypeSizeMap.cmake.in
diff --git a/share/cmake-3.17/Modules/CheckVariableExists.c b/share/cmake-3.18/Modules/CheckVariableExists.c
similarity index 100%
rename from share/cmake-3.17/Modules/CheckVariableExists.c
rename to share/cmake-3.18/Modules/CheckVariableExists.c
diff --git a/share/cmake-3.17/Modules/CheckVariableExists.cmake b/share/cmake-3.18/Modules/CheckVariableExists.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/CheckVariableExists.cmake
rename to share/cmake-3.18/Modules/CheckVariableExists.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/ADSP-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/ADSP-DetermineCompiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/ADSP-DetermineCompiler.cmake
rename to share/cmake-3.18/Modules/Compiler/ADSP-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/ARMCC-ASM.cmake b/share/cmake-3.18/Modules/Compiler/ARMCC-ASM.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/ARMCC-ASM.cmake
rename to share/cmake-3.18/Modules/Compiler/ARMCC-ASM.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/ARMCC-C.cmake b/share/cmake-3.18/Modules/Compiler/ARMCC-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/ARMCC-C.cmake
rename to share/cmake-3.18/Modules/Compiler/ARMCC-C.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/ARMCC-CXX.cmake b/share/cmake-3.18/Modules/Compiler/ARMCC-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/ARMCC-CXX.cmake
rename to share/cmake-3.18/Modules/Compiler/ARMCC-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/ARMCC-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/ARMCC-DetermineCompiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/ARMCC-DetermineCompiler.cmake
rename to share/cmake-3.18/Modules/Compiler/ARMCC-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/ARMCC.cmake b/share/cmake-3.18/Modules/Compiler/ARMCC.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/ARMCC.cmake
rename to share/cmake-3.18/Modules/Compiler/ARMCC.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/ARMClang-ASM.cmake b/share/cmake-3.18/Modules/Compiler/ARMClang-ASM.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/ARMClang-ASM.cmake
rename to share/cmake-3.18/Modules/Compiler/ARMClang-ASM.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/ARMClang-C-FeatureTests.cmake b/share/cmake-3.18/Modules/Compiler/ARMClang-C-FeatureTests.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/ARMClang-C-FeatureTests.cmake
rename to share/cmake-3.18/Modules/Compiler/ARMClang-C-FeatureTests.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/ARMClang-C.cmake b/share/cmake-3.18/Modules/Compiler/ARMClang-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/ARMClang-C.cmake
rename to share/cmake-3.18/Modules/Compiler/ARMClang-C.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/ARMClang-CXX-FeatureTests.cmake b/share/cmake-3.18/Modules/Compiler/ARMClang-CXX-FeatureTests.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/ARMClang-CXX-FeatureTests.cmake
rename to share/cmake-3.18/Modules/Compiler/ARMClang-CXX-FeatureTests.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/ARMClang-CXX.cmake b/share/cmake-3.18/Modules/Compiler/ARMClang-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/ARMClang-CXX.cmake
rename to share/cmake-3.18/Modules/Compiler/ARMClang-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/ARMClang-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/ARMClang-DetermineCompiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/ARMClang-DetermineCompiler.cmake
rename to share/cmake-3.18/Modules/Compiler/ARMClang-DetermineCompiler.cmake
diff --git a/share/cmake-3.18/Modules/Compiler/ARMClang.cmake b/share/cmake-3.18/Modules/Compiler/ARMClang.cmake
new file mode 100644
index 0000000..01ce91d
--- /dev/null
+++ b/share/cmake-3.18/Modules/Compiler/ARMClang.cmake
@@ -0,0 +1,130 @@
+if(_ARMClang_CMAKE_LOADED)
+  return()
+endif()
+set(_ARMClang_CMAKE_LOADED TRUE)
+
+cmake_policy(PUSH)
+cmake_policy(SET CMP0057 NEW) # if IN_LIST
+
+get_filename_component(_CMAKE_C_TOOLCHAIN_LOCATION "${CMAKE_C_COMPILER}" PATH)
+get_filename_component(_CMAKE_CXX_TOOLCHAIN_LOCATION "${CMAKE_CXX_COMPILER}" PATH)
+
+set(CMAKE_EXECUTABLE_SUFFIX ".elf")
+
+find_program(CMAKE_ARMClang_LINKER armlink HINTS "${_CMAKE_C_TOOLCHAIN_LOCATION}" "${_CMAKE_CXX_TOOLCHAIN_LOCATION}" )
+find_program(CMAKE_ARMClang_AR     armar   HINTS "${_CMAKE_C_TOOLCHAIN_LOCATION}" "${_CMAKE_CXX_TOOLCHAIN_LOCATION}" )
+
+set(CMAKE_LINKER "${CMAKE_ARMClang_LINKER}" CACHE FILEPATH "The ARMClang linker" FORCE)
+mark_as_advanced(CMAKE_ARMClang_LINKER)
+set(CMAKE_AR "${CMAKE_ARMClang_AR}" CACHE FILEPATH "The ARMClang archiver" FORCE)
+mark_as_advanced(CMAKE_ARMClang_AR)
+
+if (CMAKE_LINKER MATCHES "armlink")
+  set(__CMAKE_ARMClang_USING_armlink TRUE)
+  set(CMAKE_LIBRARY_PATH_FLAG "--userlibpath=")
+else()
+  set(__CMAKE_ARMClang_USING_armlink FALSE)
+endif()
+
+# get compiler supported cpu list
+function(__armclang_set_processor_list lang out_var)
+  execute_process(COMMAND "${CMAKE_${lang}_COMPILER}" --target=${CMAKE_${lang}_COMPILER_TARGET} -mcpu=list
+    OUTPUT_VARIABLE processor_list
+    ERROR_VARIABLE processor_list)
+  string(REGEX MATCHALL "-mcpu=([^ \n]*)" processor_list "${processor_list}")
+  string(REGEX REPLACE "-mcpu=" "" processor_list "${processor_list}")
+  set(${out_var} "${processor_list}" PARENT_SCOPE)
+endfunction()
+
+# check processor is in list
+function(__armclang_check_processor processor list out_var)
+  string(TOLOWER "${processor}" processor)
+  if(processor IN_LIST list)
+    set(${out_var} TRUE PARENT_SCOPE)
+  else()
+    set(${out_var} FALSE PARENT_SCOPE)
+  endif()
+endfunction()
+
+# get compiler supported arch list
+function(__armclang_set_arch_list lang out_var)
+  execute_process(COMMAND "${CMAKE_${lang}_COMPILER}" --target=${CMAKE_${lang}_COMPILER_TARGET} -march=list
+    OUTPUT_VARIABLE arch_list
+    ERROR_VARIABLE arch_list)
+  string(REGEX MATCHALL "-march=([^ \n]*)" arch_list "${arch_list}")
+  string(REGEX REPLACE "-march=" "" arch_list "${arch_list}")
+  set(${out_var} "${arch_list}" PARENT_SCOPE)
+endfunction()
+
+# get linker supported cpu list
+function(__armlink_set_cpu_list lang out_var)
+  if(__CMAKE_ARMClang_USING_armlink)
+    set(__linker_wrapper_flags "")
+  else()
+    set(__linker_wrapper_flags --target=${CMAKE_${lang}_COMPILER_TARGET} -Xlinker)
+  endif()
+
+  execute_process(COMMAND "${CMAKE_LINKER}" ${__linker_wrapper_flags} --cpu=list
+    OUTPUT_VARIABLE cpu_list
+    ERROR_VARIABLE cpu_list)
+  string(REGEX MATCHALL "--cpu=([^ \n]*)" cpu_list "${cpu_list}")
+  string(REGEX REPLACE "--cpu=" "" cpu_list "${cpu_list}")
+  set(${out_var} "${cpu_list}" PARENT_SCOPE)
+endfunction()
+
+macro(__compiler_armclang lang)
+  if(NOT CMAKE_${lang}_COMPILER_TARGET)
+    set(CMAKE_${lang}_COMPILER_TARGET arm-arm-none-eabi)
+  endif()
+  if(NOT CMAKE_${lang}_COMPILER_PROCESSOR_LIST)
+    __armclang_set_processor_list(${lang} CMAKE_${lang}_COMPILER_PROCESSOR_LIST)
+  endif()
+  if(NOT CMAKE_${lang}_COMPILER_ARCH_LIST)
+    __armclang_set_arch_list(${lang} CMAKE_${lang}_COMPILER_ARCH_LIST)
+  endif()
+  if(NOT CMAKE_SYSTEM_PROCESSOR AND NOT CMAKE_SYSTEM_ARCH)
+    message(FATAL_ERROR "  CMAKE_SYSTEM_PROCESSOR or CMAKE_SYSTEM_ARCH must be set for ARMClang\n"
+      "  Supported processor: ${CMAKE_${lang}_COMPILER_PROCESSOR_LIST}\n"
+      "  Supported Architecture: ${CMAKE_${lang}_COMPILER_ARCH_LIST}")
+  else()
+    __armclang_check_processor("${CMAKE_SYSTEM_ARCH}" "${CMAKE_${lang}_COMPILER_ARCH_LIST}" _CMAKE_${lang}_CHECK_ARCH_RESULT)
+    if( _CMAKE_${lang}_CHECK_ARCH_RESULT)
+      string(APPEND CMAKE_${lang}_FLAGS_INIT "-march=${CMAKE_SYSTEM_ARCH}")
+      set(__march_flag_set TRUE)
+    endif()
+    __armclang_check_processor("${CMAKE_SYSTEM_PROCESSOR}" "${CMAKE_${lang}_COMPILER_PROCESSOR_LIST}" _CMAKE_${lang}_CHECK_PROCESSOR_RESULT)
+    if(_CMAKE_${lang}_CHECK_PROCESSOR_RESULT)
+      string(APPEND CMAKE_${lang}_FLAGS_INIT "-mcpu=${CMAKE_SYSTEM_PROCESSOR}")
+      set(__mcpu_flag_set TRUE)
+    endif()
+    if(NOT __march_flag_set AND NOT __mcpu_flag_set)
+      message(FATAL_ERROR "Atleast one of the variables CMAKE_SYSTEM_PROCESSOR or CMAKE_SYSTEM_ARCH must be set for ARMClang\n"
+                          "Supported processor: ${CMAKE_${lang}_COMPILER_PROCESSOR_LIST}\n"
+                          "  Supported Architecture: ${CMAKE_${lang}_COMPILER_ARCH_LIST}")
+    endif()
+    unset(_CMAKE_${lang}_CHECK_PROCESSOR_RESULT)
+    unset(_CMAKE_${lang}_CHECK_ARCH_RESULT)
+  endif()
+
+  #check if CMAKE_SYSTEM_PROCESSOR belongs to supported cpu list for armlink
+  __armlink_set_cpu_list( ${lang} CMAKE_LINKER_CPU_LIST)
+  list(TRANSFORM CMAKE_LINKER_CPU_LIST TOLOWER)
+  __armclang_check_processor("${CMAKE_SYSTEM_PROCESSOR}" "${CMAKE_LINKER_CPU_LIST}" _CMAKE_CHECK_LINK_CPU_RESULT)
+  if(_CMAKE_CHECK_LINK_CPU_RESULT)
+    string(APPEND CMAKE_${lang}_LINK_FLAGS "--cpu=${CMAKE_SYSTEM_PROCESSOR}")
+  endif()
+
+  if(__CMAKE_ARMClang_USING_armlink)
+    set(__CMAKE_ARMClang_USING_armlink_WRAPPER "")
+  else()
+    set(__CMAKE_ARMClang_USING_armlink_WRAPPER ${CMAKE_${lang}_LINKER_WRAPPER_FLAG})
+  endif()
+  set(CMAKE_${lang}_LINK_EXECUTABLE "<CMAKE_LINKER> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <LINK_LIBRARIES> <OBJECTS> -o <TARGET> ${__CMAKE_ARMClang_USING_armlink_WRAPPER} --list <TARGET_BASE>.map")
+  set(CMAKE_${lang}_CREATE_STATIC_LIBRARY  "<CMAKE_AR> --create -cr <TARGET> <LINK_FLAGS> <OBJECTS>")
+  set(CMAKE_${lang}_ARCHIVE_CREATE         "<CMAKE_AR> --create -cr <TARGET> <LINK_FLAGS> <OBJECTS>")
+  set(CMAKE_${lang}_RESPONSE_FILE_LINK_FLAG "${__CMAKE_ARMClang_USING_armlink_WRAPPER} --via=")
+  set(CMAKE_${lang}_OUTPUT_EXTENSION ".o")
+  set(CMAKE_${lang}_OUTPUT_EXTENSION_REPLACE 1)
+endmacro()
+
+cmake_policy(POP)
diff --git a/share/cmake-3.17/Modules/Compiler/Absoft-Fortran.cmake b/share/cmake-3.18/Modules/Compiler/Absoft-Fortran.cmake
similarity index 81%
rename from share/cmake-3.17/Modules/Compiler/Absoft-Fortran.cmake
rename to share/cmake-3.18/Modules/Compiler/Absoft-Fortran.cmake
index 76502dc..8724f85 100644
--- a/share/cmake-3.17/Modules/Compiler/Absoft-Fortran.cmake
+++ b/share/cmake-3.18/Modules/Compiler/Absoft-Fortran.cmake
@@ -9,3 +9,5 @@
 set(CMAKE_Fortran_FORMAT_FIXED_FLAG "-ffixed")
 set(CMAKE_Fortran_FORMAT_FREE_FLAG "-ffree")
 set(CMAKE_Fortran_LINKER_WRAPPER_FLAG "-X")
+set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_ON "-cpp")
+set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_OFF "-no-cpp")
diff --git a/share/cmake-3.17/Modules/Compiler/AppleClang-ASM.cmake b/share/cmake-3.18/Modules/Compiler/AppleClang-ASM.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/AppleClang-ASM.cmake
rename to share/cmake-3.18/Modules/Compiler/AppleClang-ASM.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/AppleClang-C-FeatureTests.cmake b/share/cmake-3.18/Modules/Compiler/AppleClang-C-FeatureTests.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/AppleClang-C-FeatureTests.cmake
rename to share/cmake-3.18/Modules/Compiler/AppleClang-C-FeatureTests.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/AppleClang-C.cmake b/share/cmake-3.18/Modules/Compiler/AppleClang-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/AppleClang-C.cmake
rename to share/cmake-3.18/Modules/Compiler/AppleClang-C.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/AppleClang-CXX-FeatureTests.cmake b/share/cmake-3.18/Modules/Compiler/AppleClang-CXX-FeatureTests.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/AppleClang-CXX-FeatureTests.cmake
rename to share/cmake-3.18/Modules/Compiler/AppleClang-CXX-FeatureTests.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/AppleClang-CXX.cmake b/share/cmake-3.18/Modules/Compiler/AppleClang-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/AppleClang-CXX.cmake
rename to share/cmake-3.18/Modules/Compiler/AppleClang-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/AppleClang-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/AppleClang-DetermineCompiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/AppleClang-DetermineCompiler.cmake
rename to share/cmake-3.18/Modules/Compiler/AppleClang-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/AppleClang-OBJC.cmake b/share/cmake-3.18/Modules/Compiler/AppleClang-OBJC.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/AppleClang-OBJC.cmake
rename to share/cmake-3.18/Modules/Compiler/AppleClang-OBJC.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/AppleClang-OBJCXX.cmake b/share/cmake-3.18/Modules/Compiler/AppleClang-OBJCXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/AppleClang-OBJCXX.cmake
rename to share/cmake-3.18/Modules/Compiler/AppleClang-OBJCXX.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/Borland-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/Borland-DetermineCompiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/Borland-DetermineCompiler.cmake
rename to share/cmake-3.18/Modules/Compiler/Borland-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/Bruce-C-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/Bruce-C-DetermineCompiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/Bruce-C-DetermineCompiler.cmake
rename to share/cmake-3.18/Modules/Compiler/Bruce-C-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/Bruce-C.cmake b/share/cmake-3.18/Modules/Compiler/Bruce-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/Bruce-C.cmake
rename to share/cmake-3.18/Modules/Compiler/Bruce-C.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/CCur-Fortran.cmake b/share/cmake-3.18/Modules/Compiler/CCur-Fortran.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/CCur-Fortran.cmake
rename to share/cmake-3.18/Modules/Compiler/CCur-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/CMakeCommonCompilerMacros.cmake b/share/cmake-3.18/Modules/Compiler/CMakeCommonCompilerMacros.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/CMakeCommonCompilerMacros.cmake
rename to share/cmake-3.18/Modules/Compiler/CMakeCommonCompilerMacros.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/Clang-ASM.cmake b/share/cmake-3.18/Modules/Compiler/Clang-ASM.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/Clang-ASM.cmake
rename to share/cmake-3.18/Modules/Compiler/Clang-ASM.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/Clang-C-FeatureTests.cmake b/share/cmake-3.18/Modules/Compiler/Clang-C-FeatureTests.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/Clang-C-FeatureTests.cmake
rename to share/cmake-3.18/Modules/Compiler/Clang-C-FeatureTests.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/Clang-C.cmake b/share/cmake-3.18/Modules/Compiler/Clang-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/Clang-C.cmake
rename to share/cmake-3.18/Modules/Compiler/Clang-C.cmake
diff --git a/share/cmake-3.18/Modules/Compiler/Clang-CUDA.cmake b/share/cmake-3.18/Modules/Compiler/Clang-CUDA.cmake
new file mode 100644
index 0000000..336827b
--- /dev/null
+++ b/share/cmake-3.18/Modules/Compiler/Clang-CUDA.cmake
@@ -0,0 +1,28 @@
+include(Compiler/Clang)
+__compiler_clang(CUDA)
+
+# Set explicitly, because __compiler_clang() doesn't set this if we're simulating MSVC.
+set(CMAKE_DEPFILE_FLAGS_CUDA "-MD -MT <OBJECT> -MF <DEPFILE>")
+
+# C++03 isn't supported for CXX, but is for CUDA, so we need to set these manually.
+# Do this before __compiler_clang_cxx_standards() since that adds the feature.
+set(CMAKE_CUDA03_STANDARD_COMPILE_OPTION "-std=c++03")
+set(CMAKE_CUDA03_EXTENSION_COMPILE_OPTION "-std=gnu++03")
+__compiler_clang_cxx_standards(CUDA)
+
+set(CMAKE_CUDA_COMPILER_HAS_DEVICE_LINK_PHASE TRUE)
+set(_CMAKE_COMPILE_AS_CUDA_FLAG "-x cuda")
+set(_CMAKE_CUDA_PTX_FLAG "--cuda-device-only -S")
+
+# RulePlaceholderExpander expands crosscompile variables like sysroot and target only for CMAKE_<LANG>_COMPILER. Override the default.
+set(CMAKE_CUDA_LINK_EXECUTABLE "<CMAKE_CUDA_COMPILER> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>${__IMPLICT_LINKS}")
+set(CMAKE_CUDA_CREATE_SHARED_LIBRARY "<CMAKE_CUDA_COMPILER> <CMAKE_SHARED_LIBRARY_CUDA_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_CUDA_FLAGS> <SONAME_FLAG><TARGET_SONAME> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>${__IMPLICT_LINKS}")
+
+set(CMAKE_CUDA_RUNTIME_LIBRARY_DEFAULT "STATIC")
+set(CMAKE_CUDA_RUNTIME_LIBRARY_LINK_OPTIONS_STATIC "cudadevrt;cudart_static")
+set(CMAKE_CUDA_RUNTIME_LIBRARY_LINK_OPTIONS_SHARED "cudadevrt;cudart")
+set(CMAKE_CUDA_RUNTIME_LIBRARY_LINK_OPTIONS_NONE   "")
+
+if(UNIX)
+  list(APPEND CMAKE_CUDA_RUNTIME_LIBRARY_LINK_OPTIONS_STATIC "rt" "pthread" "dl")
+endif()
diff --git a/share/cmake-3.17/Modules/Compiler/Clang-CXX-FeatureTests.cmake b/share/cmake-3.18/Modules/Compiler/Clang-CXX-FeatureTests.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/Clang-CXX-FeatureTests.cmake
rename to share/cmake-3.18/Modules/Compiler/Clang-CXX-FeatureTests.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/Clang-CXX-TestableFeatures.cmake b/share/cmake-3.18/Modules/Compiler/Clang-CXX-TestableFeatures.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/Clang-CXX-TestableFeatures.cmake
rename to share/cmake-3.18/Modules/Compiler/Clang-CXX-TestableFeatures.cmake
diff --git a/share/cmake-3.18/Modules/Compiler/Clang-CXX.cmake b/share/cmake-3.18/Modules/Compiler/Clang-CXX.cmake
new file mode 100644
index 0000000..789e991
--- /dev/null
+++ b/share/cmake-3.18/Modules/Compiler/Clang-CXX.cmake
@@ -0,0 +1,16 @@
+include(Compiler/Clang)
+__compiler_clang(CXX)
+__compiler_clang_cxx_standards(CXX)
+
+if("x${CMAKE_CXX_COMPILER_FRONTEND_VARIANT}" STREQUAL "xGNU")
+  set(CMAKE_CXX_COMPILE_OPTIONS_VISIBILITY_INLINES_HIDDEN "-fvisibility-inlines-hidden")
+endif()
+
+cmake_policy(GET CMP0025 appleClangPolicy)
+if(APPLE AND NOT appleClangPolicy STREQUAL NEW)
+  return()
+endif()
+
+if("x${CMAKE_CXX_COMPILER_FRONTEND_VARIANT}" STREQUAL "xMSVC")
+  set(CMAKE_CXX_CLANG_TIDY_DRIVER_MODE "cl")
+endif()
diff --git a/share/cmake-3.17/Modules/Compiler/Clang-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/Clang-DetermineCompiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/Clang-DetermineCompiler.cmake
rename to share/cmake-3.18/Modules/Compiler/Clang-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/Clang-DetermineCompilerInternal.cmake b/share/cmake-3.18/Modules/Compiler/Clang-DetermineCompilerInternal.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/Clang-DetermineCompilerInternal.cmake
rename to share/cmake-3.18/Modules/Compiler/Clang-DetermineCompilerInternal.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/Clang-FindBinUtils.cmake b/share/cmake-3.18/Modules/Compiler/Clang-FindBinUtils.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/Clang-FindBinUtils.cmake
rename to share/cmake-3.18/Modules/Compiler/Clang-FindBinUtils.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/Clang-OBJC.cmake b/share/cmake-3.18/Modules/Compiler/Clang-OBJC.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/Clang-OBJC.cmake
rename to share/cmake-3.18/Modules/Compiler/Clang-OBJC.cmake
diff --git a/share/cmake-3.18/Modules/Compiler/Clang-OBJCXX.cmake b/share/cmake-3.18/Modules/Compiler/Clang-OBJCXX.cmake
new file mode 100644
index 0000000..453b5fd
--- /dev/null
+++ b/share/cmake-3.18/Modules/Compiler/Clang-OBJCXX.cmake
@@ -0,0 +1,3 @@
+include(Compiler/Clang)
+__compiler_clang(OBJCXX)
+__compiler_clang_cxx_standards(OBJCXX)
diff --git a/share/cmake-3.18/Modules/Compiler/Clang.cmake b/share/cmake-3.18/Modules/Compiler/Clang.cmake
new file mode 100644
index 0000000..52d5350
--- /dev/null
+++ b/share/cmake-3.18/Modules/Compiler/Clang.cmake
@@ -0,0 +1,234 @@
+# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+
+# This module is shared by multiple languages; use include blocker.
+if(__COMPILER_CLANG)
+  return()
+endif()
+set(__COMPILER_CLANG 1)
+
+include(Compiler/CMakeCommonCompilerMacros)
+
+if("x${CMAKE_C_SIMULATE_ID}" STREQUAL "xMSVC"
+    OR "x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC"
+    OR "x${CMAKE_Fortran_SIMULATE_ID}" STREQUAL "xMSVC")
+  macro(__compiler_clang lang)
+  endmacro()
+else()
+  include(Compiler/GNU)
+
+  macro(__compiler_clang lang)
+    __compiler_gnu(${lang})
+    set(CMAKE_${lang}_COMPILE_OPTIONS_PIE "-fPIE")
+    # Link options for PIE are already set in 'Compiler/GNU.cmake'
+    # but clang may require alternate syntax on some platforms
+    if (APPLE)
+      set(CMAKE_${lang}_LINK_OPTIONS_PIE ${CMAKE_${lang}_COMPILE_OPTIONS_PIE} -Xlinker -pie)
+      set(CMAKE_${lang}_LINK_OPTIONS_NO_PIE -Xlinker -no_pie)
+    endif()
+    set(CMAKE_INCLUDE_SYSTEM_FLAG_${lang} "-isystem ")
+    set(CMAKE_${lang}_COMPILE_OPTIONS_VISIBILITY "-fvisibility=")
+    if(CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 3.4.0)
+      set(CMAKE_${lang}_COMPILE_OPTIONS_TARGET "-target ")
+      set(CMAKE_${lang}_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN "-gcc-toolchain ")
+    else()
+      set(CMAKE_${lang}_COMPILE_OPTIONS_TARGET "--target=")
+      set(CMAKE_${lang}_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN "--gcc-toolchain=")
+    endif()
+    set(CMAKE_${lang}_LINKER_WRAPPER_FLAG "-Xlinker" " ")
+    set(CMAKE_${lang}_LINKER_WRAPPER_FLAG_SEP)
+
+    if(CMAKE_${lang}_COMPILER_TARGET)
+      if(CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 3.4.0)
+        list(APPEND CMAKE_${lang}_COMPILER_PREDEFINES_COMMAND "-target" "${CMAKE_${lang}_COMPILER_TARGET}")
+      else()
+        list(APPEND CMAKE_${lang}_COMPILER_PREDEFINES_COMMAND "--target=${CMAKE_${lang}_COMPILER_TARGET}")
+      endif()
+    endif()
+
+    set(_CMAKE_${lang}_IPO_SUPPORTED_BY_CMAKE YES)
+    set(_CMAKE_${lang}_IPO_MAY_BE_SUPPORTED_BY_COMPILER YES)
+
+    string(COMPARE EQUAL "${CMAKE_${lang}_COMPILER_ID}" "AppleClang" __is_apple_clang)
+
+    # '-flto=thin' available since Clang 3.9 and Xcode 8
+    # * http://clang.llvm.org/docs/ThinLTO.html#clang-llvm
+    # * https://trac.macports.org/wiki/XcodeVersionInfo
+    set(_CMAKE_LTO_THIN TRUE)
+    if(__is_apple_clang)
+      if(CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 8.0)
+        set(_CMAKE_LTO_THIN FALSE)
+      endif()
+    else()
+      if(CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 3.9)
+        set(_CMAKE_LTO_THIN FALSE)
+      endif()
+    endif()
+
+    if(_CMAKE_LTO_THIN)
+      set(CMAKE_${lang}_COMPILE_OPTIONS_IPO "-flto=thin")
+    else()
+      set(CMAKE_${lang}_COMPILE_OPTIONS_IPO "-flto")
+    endif()
+
+    if(ANDROID)
+      # https://github.com/android-ndk/ndk/issues/242
+      set(CMAKE_${lang}_LINK_OPTIONS_IPO "-fuse-ld=gold")
+    endif()
+
+    if(ANDROID OR __is_apple_clang)
+      set(__ar "${CMAKE_AR}")
+      set(__ranlib "${CMAKE_RANLIB}")
+    else()
+      set(__ar "${CMAKE_${lang}_COMPILER_AR}")
+      set(__ranlib "${CMAKE_${lang}_COMPILER_RANLIB}")
+    endif()
+
+    set(CMAKE_${lang}_ARCHIVE_CREATE_IPO
+      "\"${__ar}\" cr <TARGET> <LINK_FLAGS> <OBJECTS>"
+    )
+
+    set(CMAKE_${lang}_ARCHIVE_APPEND_IPO
+      "\"${__ar}\" r <TARGET> <LINK_FLAGS> <OBJECTS>"
+    )
+
+    set(CMAKE_${lang}_ARCHIVE_FINISH_IPO
+      "\"${__ranlib}\" <TARGET>"
+    )
+
+    set(CMAKE_PCH_EXTENSION .pch)
+    if (NOT CMAKE_GENERATOR MATCHES "Xcode")
+      set(CMAKE_PCH_PROLOGUE "#pragma clang system_header")
+    endif()
+    set(CMAKE_${lang}_COMPILE_OPTIONS_USE_PCH -Xclang -include-pch -Xclang <PCH_FILE> -Xclang -include -Xclang <PCH_HEADER>)
+    set(CMAKE_${lang}_COMPILE_OPTIONS_CREATE_PCH -Xclang -emit-pch -Xclang -include -Xclang <PCH_HEADER>)
+  endmacro()
+endif()
+
+macro(__compiler_clang_cxx_standards lang)
+  if("x${CMAKE_${lang}_COMPILER_FRONTEND_VARIANT}" STREQUAL "xGNU")
+    if(NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 2.1)
+      set(CMAKE_${lang}98_STANDARD_COMPILE_OPTION "-std=c++98")
+      set(CMAKE_${lang}98_EXTENSION_COMPILE_OPTION "-std=gnu++98")
+    endif()
+
+    if(NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 3.1)
+      set(CMAKE_${lang}98_STANDARD__HAS_FULL_SUPPORT ON)
+      set(CMAKE_${lang}11_STANDARD_COMPILE_OPTION "-std=c++11")
+      set(CMAKE_${lang}11_EXTENSION_COMPILE_OPTION "-std=gnu++11")
+      set(CMAKE_${lang}11_STANDARD__HAS_FULL_SUPPORT ON)
+    elseif(NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 2.1)
+      set(CMAKE_${lang}11_STANDARD_COMPILE_OPTION "-std=c++0x")
+      set(CMAKE_${lang}11_EXTENSION_COMPILE_OPTION "-std=gnu++0x")
+    endif()
+
+    if(NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 3.5)
+      set(CMAKE_${lang}14_STANDARD_COMPILE_OPTION "-std=c++14")
+      set(CMAKE_${lang}14_EXTENSION_COMPILE_OPTION "-std=gnu++14")
+      set(CMAKE_${lang}14_STANDARD__HAS_FULL_SUPPORT ON)
+    elseif(NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 3.4)
+      set(CMAKE_${lang}14_STANDARD_COMPILE_OPTION "-std=c++1y")
+      set(CMAKE_${lang}14_EXTENSION_COMPILE_OPTION "-std=gnu++1y")
+      set(CMAKE_${lang}14_STANDARD__HAS_FULL_SUPPORT ON)
+    endif()
+
+    set(_clang_version_std17 5.0)
+    if(CMAKE_SYSTEM_NAME STREQUAL "Android")
+      set(_clang_version_std17 6.0)
+    endif()
+
+    if (NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS "${_clang_version_std17}")
+      set(CMAKE_${lang}17_STANDARD_COMPILE_OPTION "-std=c++17")
+      set(CMAKE_${lang}17_EXTENSION_COMPILE_OPTION "-std=gnu++17")
+    elseif (NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 3.5)
+      set(CMAKE_${lang}17_STANDARD_COMPILE_OPTION "-std=c++1z")
+      set(CMAKE_${lang}17_EXTENSION_COMPILE_OPTION "-std=gnu++1z")
+    endif()
+
+    if(NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 6.0)
+      set(CMAKE_${lang}17_STANDARD__HAS_FULL_SUPPORT ON)
+    endif()
+
+    if(NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 11.0)
+      set(CMAKE_${lang}20_STANDARD_COMPILE_OPTION "-std=c++20")
+      set(CMAKE_${lang}20_EXTENSION_COMPILE_OPTION "-std=gnu++20")
+    elseif(NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS "${_clang_version_std17}")
+      set(CMAKE_${lang}20_STANDARD_COMPILE_OPTION "-std=c++2a")
+      set(CMAKE_${lang}20_EXTENSION_COMPILE_OPTION "-std=gnu++2a")
+    endif()
+
+    unset(_clang_version_std17)
+
+    if("x${CMAKE_${lang}_SIMULATE_ID}" STREQUAL "xMSVC")
+      # The MSVC standard library requires C++14, and MSVC itself has no
+      # notion of operating in a mode not aware of at least that standard.
+      set(CMAKE_${lang}98_STANDARD_COMPILE_OPTION "-std=c++14")
+      set(CMAKE_${lang}98_EXTENSION_COMPILE_OPTION "-std=gnu++14")
+      set(CMAKE_${lang}11_STANDARD_COMPILE_OPTION "-std=c++14")
+      set(CMAKE_${lang}11_EXTENSION_COMPILE_OPTION "-std=gnu++14")
+
+      # This clang++ is missing some features because of MSVC compatibility.
+      unset(CMAKE_${lang}11_STANDARD__HAS_FULL_SUPPORT)
+      unset(CMAKE_${lang}14_STANDARD__HAS_FULL_SUPPORT)
+      unset(CMAKE_${lang}17_STANDARD__HAS_FULL_SUPPORT)
+      unset(CMAKE_${lang}20_STANDARD__HAS_FULL_SUPPORT)
+    endif()
+
+    __compiler_check_default_language_standard(${lang} 2.1 98)
+  elseif(CMAKE_${lang}_COMPILER_VERSION VERSION_GREATER_EQUAL 3.9
+      AND CMAKE_${lang}_SIMULATE_VERSION VERSION_GREATER_EQUAL 19.0)
+    # This version of clang-cl and the MSVC version it simulates have
+    # support for -std: flags.
+    set(CMAKE_${lang}98_STANDARD_COMPILE_OPTION "")
+    set(CMAKE_${lang}98_EXTENSION_COMPILE_OPTION "")
+    set(CMAKE_${lang}98_STANDARD__HAS_FULL_SUPPORT ON)
+    set(CMAKE_${lang}11_STANDARD_COMPILE_OPTION "")
+    set(CMAKE_${lang}11_EXTENSION_COMPILE_OPTION "")
+    set(CMAKE_${lang}14_STANDARD_COMPILE_OPTION "-std:c++14")
+    set(CMAKE_${lang}14_EXTENSION_COMPILE_OPTION "-std:c++14")
+    if (CMAKE_${lang}_COMPILER_VERSION VERSION_GREATER_EQUAL 6.0)
+      set(CMAKE_${lang}17_STANDARD_COMPILE_OPTION "-std:c++17")
+      set(CMAKE_${lang}17_EXTENSION_COMPILE_OPTION "-std:c++17")
+      set(CMAKE_${lang}20_STANDARD_COMPILE_OPTION "-std:c++latest")
+      set(CMAKE_${lang}20_EXTENSION_COMPILE_OPTION "-std:c++latest")
+    else()
+      set(CMAKE_${lang}17_STANDARD_COMPILE_OPTION "-std:c++latest")
+      set(CMAKE_${lang}17_EXTENSION_COMPILE_OPTION "-std:c++latest")
+    endif()
+
+    __compiler_check_default_language_standard(${lang} 3.9 14)
+  else()
+    # This version of clang-cl, or the MSVC version it simulates, does not have
+    # language standards.  Set these options as empty strings so the feature
+    # test infrastructure can at least check to see if they are defined.
+    set(CMAKE_${lang}98_STANDARD_COMPILE_OPTION "")
+    set(CMAKE_${lang}98_EXTENSION_COMPILE_OPTION "")
+    set(CMAKE_${lang}11_STANDARD_COMPILE_OPTION "")
+    set(CMAKE_${lang}11_EXTENSION_COMPILE_OPTION "")
+    set(CMAKE_${lang}14_STANDARD_COMPILE_OPTION "")
+    set(CMAKE_${lang}14_EXTENSION_COMPILE_OPTION "")
+    set(CMAKE_${lang}17_STANDARD_COMPILE_OPTION "")
+    set(CMAKE_${lang}17_EXTENSION_COMPILE_OPTION "")
+    set(CMAKE_${lang}20_STANDARD_COMPILE_OPTION "")
+    set(CMAKE_${lang}20_EXTENSION_COMPILE_OPTION "")
+
+    # There is no meaningful default for this
+    set(CMAKE_${lang}_STANDARD_DEFAULT "")
+
+    # There are no compiler modes so we only need to test features once.
+    # Override the default macro for this special case.  Pretend that
+    # all language standards are available so that at least compilation
+    # can be attempted.
+    macro(cmake_record_${lang}_compile_features)
+      list(APPEND CMAKE_${lang}_COMPILE_FEATURES
+        cxx_std_98
+        cxx_std_11
+        cxx_std_14
+        cxx_std_17
+        cxx_std_20
+        )
+      _record_compiler_features(${lang} "" CMAKE_${lang}_COMPILE_FEATURES)
+    endmacro()
+  endif()
+endmacro()
diff --git a/share/cmake-3.17/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake
rename to share/cmake-3.18/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/Compaq-C-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/Compaq-C-DetermineCompiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/Compaq-C-DetermineCompiler.cmake
rename to share/cmake-3.18/Modules/Compiler/Compaq-C-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake
rename to share/cmake-3.18/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/Cray-C.cmake b/share/cmake-3.18/Modules/Compiler/Cray-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/Cray-C.cmake
rename to share/cmake-3.18/Modules/Compiler/Cray-C.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/Cray-CXX.cmake b/share/cmake-3.18/Modules/Compiler/Cray-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/Cray-CXX.cmake
rename to share/cmake-3.18/Modules/Compiler/Cray-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/Cray-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/Cray-DetermineCompiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/Cray-DetermineCompiler.cmake
rename to share/cmake-3.18/Modules/Compiler/Cray-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/Cray-Fortran.cmake b/share/cmake-3.18/Modules/Compiler/Cray-Fortran.cmake
similarity index 60%
rename from share/cmake-3.17/Modules/Compiler/Cray-Fortran.cmake
rename to share/cmake-3.18/Modules/Compiler/Cray-Fortran.cmake
index ccb7c2e..696ae76 100644
--- a/share/cmake-3.17/Modules/Compiler/Cray-Fortran.cmake
+++ b/share/cmake-3.18/Modules/Compiler/Cray-Fortran.cmake
@@ -11,3 +11,11 @@
 set(CMAKE_Fortran_MODDIR_DEFAULT .)
 set(CMAKE_Fortran_FORMAT_FIXED_FLAG "-f fixed")
 set(CMAKE_Fortran_FORMAT_FREE_FLAG "-f free")
+
+if (NOT CMAKE_Fortran_COMPILER_VERSION VERSION_LESS 8.5)
+  set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_ON "-eT")
+  set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_OFF "-dT")
+else()
+  set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_ON "-eZ")
+  set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_OFF "-dZ")
+endif()
diff --git a/share/cmake-3.17/Modules/Compiler/Cray.cmake b/share/cmake-3.18/Modules/Compiler/Cray.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/Cray.cmake
rename to share/cmake-3.18/Modules/Compiler/Cray.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/CrayPrgEnv-C.cmake b/share/cmake-3.18/Modules/Compiler/CrayPrgEnv-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/CrayPrgEnv-C.cmake
rename to share/cmake-3.18/Modules/Compiler/CrayPrgEnv-C.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/CrayPrgEnv-CXX.cmake b/share/cmake-3.18/Modules/Compiler/CrayPrgEnv-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/CrayPrgEnv-CXX.cmake
rename to share/cmake-3.18/Modules/Compiler/CrayPrgEnv-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/CrayPrgEnv-Fortran.cmake b/share/cmake-3.18/Modules/Compiler/CrayPrgEnv-Fortran.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/CrayPrgEnv-Fortran.cmake
rename to share/cmake-3.18/Modules/Compiler/CrayPrgEnv-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/CrayPrgEnv.cmake b/share/cmake-3.18/Modules/Compiler/CrayPrgEnv.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/CrayPrgEnv.cmake
rename to share/cmake-3.18/Modules/Compiler/CrayPrgEnv.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/Embarcadero-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/Embarcadero-DetermineCompiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/Embarcadero-DetermineCompiler.cmake
rename to share/cmake-3.18/Modules/Compiler/Embarcadero-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/Flang-FindBinUtils.cmake b/share/cmake-3.18/Modules/Compiler/Flang-FindBinUtils.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/Flang-FindBinUtils.cmake
rename to share/cmake-3.18/Modules/Compiler/Flang-FindBinUtils.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/Flang-Fortran.cmake b/share/cmake-3.18/Modules/Compiler/Flang-Fortran.cmake
similarity index 77%
rename from share/cmake-3.17/Modules/Compiler/Flang-Fortran.cmake
rename to share/cmake-3.18/Modules/Compiler/Flang-Fortran.cmake
index f0e61d8..de0484e 100644
--- a/share/cmake-3.17/Modules/Compiler/Flang-Fortran.cmake
+++ b/share/cmake-3.18/Modules/Compiler/Flang-Fortran.cmake
@@ -11,3 +11,6 @@
 set(CMAKE_Fortran_FORMAT_FREE_FLAG "-ffree-form")
 
 set(CMAKE_Fortran_MODDIR_FLAG "-J")
+
+set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_ON "-cpp")
+set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_OFF "-nocpp")
diff --git a/share/cmake-3.17/Modules/Compiler/Fujitsu-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/Fujitsu-DetermineCompiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/Fujitsu-DetermineCompiler.cmake
rename to share/cmake-3.18/Modules/Compiler/Fujitsu-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/G95-Fortran.cmake b/share/cmake-3.18/Modules/Compiler/G95-Fortran.cmake
similarity index 82%
rename from share/cmake-3.17/Modules/Compiler/G95-Fortran.cmake
rename to share/cmake-3.18/Modules/Compiler/G95-Fortran.cmake
index 03b7e08..5dba04e 100644
--- a/share/cmake-3.17/Modules/Compiler/G95-Fortran.cmake
+++ b/share/cmake-3.18/Modules/Compiler/G95-Fortran.cmake
@@ -9,3 +9,5 @@
 set(CMAKE_Fortran_FORMAT_FREE_FLAG "-ffree-form")
 set(CMAKE_Fortran_LINKER_WRAPPER_FLAG "-Wl,")
 set(CMAKE_Fortran_LINKER_WRAPPER_FLAG_SEP ",")
+set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_ON "-cpp")
+set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_OFF "-no-cpp")
diff --git a/share/cmake-3.17/Modules/Compiler/GHS-C.cmake b/share/cmake-3.18/Modules/Compiler/GHS-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/GHS-C.cmake
rename to share/cmake-3.18/Modules/Compiler/GHS-C.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/GHS-CXX.cmake b/share/cmake-3.18/Modules/Compiler/GHS-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/GHS-CXX.cmake
rename to share/cmake-3.18/Modules/Compiler/GHS-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/GHS-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/GHS-DetermineCompiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/GHS-DetermineCompiler.cmake
rename to share/cmake-3.18/Modules/Compiler/GHS-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/GHS.cmake b/share/cmake-3.18/Modules/Compiler/GHS.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/GHS.cmake
rename to share/cmake-3.18/Modules/Compiler/GHS.cmake
diff --git a/share/cmake-3.18/Modules/Compiler/GNU-ASM.cmake b/share/cmake-3.18/Modules/Compiler/GNU-ASM.cmake
new file mode 100644
index 0000000..94af401
--- /dev/null
+++ b/share/cmake-3.18/Modules/Compiler/GNU-ASM.cmake
@@ -0,0 +1,13 @@
+# This file is loaded when gcc/g++ is used for assembler files (the "ASM" cmake language)
+include(Compiler/GNU)
+
+set(CMAKE_ASM_SOURCE_FILE_EXTENSIONS s;S;asm)
+
+__compiler_gnu(ASM)
+
+if(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_MATCH STREQUAL "GNU assembler")
+  set(CMAKE_DEPFILE_FLAGS_ASM${ASM_DIALECT} "--MD <DEPFILE>")
+  set(CMAKE_ASM${ASM_DIALECT}_LINK_EXECUTABLE
+    "<CMAKE_LINKER> <FLAGS> <CMAKE_ASM${ASM_DIALECT}_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
+  set(CMAKE_ASM_DEFINE_FLAG "--defsym ")
+endif()
diff --git a/share/cmake-3.17/Modules/Compiler/GNU-C-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/GNU-C-DetermineCompiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/GNU-C-DetermineCompiler.cmake
rename to share/cmake-3.18/Modules/Compiler/GNU-C-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/GNU-C-FeatureTests.cmake b/share/cmake-3.18/Modules/Compiler/GNU-C-FeatureTests.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/GNU-C-FeatureTests.cmake
rename to share/cmake-3.18/Modules/Compiler/GNU-C-FeatureTests.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/GNU-C.cmake b/share/cmake-3.18/Modules/Compiler/GNU-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/GNU-C.cmake
rename to share/cmake-3.18/Modules/Compiler/GNU-C.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake
rename to share/cmake-3.18/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/GNU-CXX-FeatureTests.cmake b/share/cmake-3.18/Modules/Compiler/GNU-CXX-FeatureTests.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/GNU-CXX-FeatureTests.cmake
rename to share/cmake-3.18/Modules/Compiler/GNU-CXX-FeatureTests.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/GNU-CXX.cmake b/share/cmake-3.18/Modules/Compiler/GNU-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/GNU-CXX.cmake
rename to share/cmake-3.18/Modules/Compiler/GNU-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/GNU-FindBinUtils.cmake b/share/cmake-3.18/Modules/Compiler/GNU-FindBinUtils.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/GNU-FindBinUtils.cmake
rename to share/cmake-3.18/Modules/Compiler/GNU-FindBinUtils.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/GNU-Fortran.cmake b/share/cmake-3.18/Modules/Compiler/GNU-Fortran.cmake
similarity index 79%
rename from share/cmake-3.17/Modules/Compiler/GNU-Fortran.cmake
rename to share/cmake-3.18/Modules/Compiler/GNU-Fortran.cmake
index 6413769..5dfb03e 100644
--- a/share/cmake-3.17/Modules/Compiler/GNU-Fortran.cmake
+++ b/share/cmake-3.18/Modules/Compiler/GNU-Fortran.cmake
@@ -10,6 +10,11 @@
 set(CMAKE_Fortran_FORMAT_FIXED_FLAG "-ffixed-form")
 set(CMAKE_Fortran_FORMAT_FREE_FLAG "-ffree-form")
 
+if (NOT CMAKE_Fortran_COMPILER_VERSION VERSION_LESS 4.4)
+  set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_ON "-cpp")
+  set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_OFF "-nocpp")
+endif()
+
 set(CMAKE_Fortran_POSTPROCESS_FLAG "-fpreprocessed")
 
 # No -DNDEBUG for Fortran.
diff --git a/share/cmake-3.17/Modules/Compiler/GNU-OBJC.cmake b/share/cmake-3.18/Modules/Compiler/GNU-OBJC.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/GNU-OBJC.cmake
rename to share/cmake-3.18/Modules/Compiler/GNU-OBJC.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/GNU-OBJCXX.cmake b/share/cmake-3.18/Modules/Compiler/GNU-OBJCXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/GNU-OBJCXX.cmake
rename to share/cmake-3.18/Modules/Compiler/GNU-OBJCXX.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/GNU.cmake b/share/cmake-3.18/Modules/Compiler/GNU.cmake
similarity index 90%
rename from share/cmake-3.17/Modules/Compiler/GNU.cmake
rename to share/cmake-3.18/Modules/Compiler/GNU.cmake
index 1c050a2..668a6a9 100644
--- a/share/cmake-3.17/Modules/Compiler/GNU.cmake
+++ b/share/cmake-3.18/Modules/Compiler/GNU.cmake
@@ -44,7 +44,8 @@
   # tests to always succeed.  Work around this by disabling dependency tracking
   # in try_compile mode.
   get_property(_IN_TC GLOBAL PROPERTY IN_TRY_COMPILE)
-  if(NOT _IN_TC OR CMAKE_FORCE_DEPFILES)
+  if(CMAKE_${lang}_COMPILER_ID STREQUAL "GNU" AND _IN_TC AND NOT CMAKE_FORCE_DEPFILES)
+  else()
     # distcc does not transform -o to -MT when invoking the preprocessor
     # internally, as it ought to.  Work around this bug by setting -MT here
     # even though it isn't strictly necessary.
@@ -110,10 +111,13 @@
   endif()
   list(APPEND CMAKE_${lang}_COMPILER_PREDEFINES_COMMAND "-dM" "-E" "-c" "${CMAKE_ROOT}/Modules/CMakeCXXCompilerABI.cpp")
 
-  set(CMAKE_PCH_EXTENSION .gch)
-  if (NOT CMAKE_GENERATOR MATCHES "Xcode")
-    set(CMAKE_PCH_PROLOGUE "#pragma GCC system_header")
+  if(NOT "x${lang}" STREQUAL "xFortran")
+    set(CMAKE_PCH_EXTENSION .gch)
+    if (NOT CMAKE_GENERATOR MATCHES "Xcode")
+      set(CMAKE_PCH_PROLOGUE "#pragma GCC system_header")
+    endif()
+    set(CMAKE_${lang}_COMPILE_OPTIONS_INVALID_PCH -Winvalid-pch)
+    set(CMAKE_${lang}_COMPILE_OPTIONS_USE_PCH -include <PCH_HEADER>)
+    set(CMAKE_${lang}_COMPILE_OPTIONS_CREATE_PCH -x ${__pch_header_${lang}} -include <PCH_HEADER>)
   endif()
-  set(CMAKE_${lang}_COMPILE_OPTIONS_USE_PCH -Winvalid-pch -include <PCH_HEADER>)
-  set(CMAKE_${lang}_COMPILE_OPTIONS_CREATE_PCH -Winvalid-pch -x ${__pch_header_${lang}} -include <PCH_HEADER>)
 endmacro()
diff --git a/share/cmake-3.17/Modules/Compiler/HP-ASM.cmake b/share/cmake-3.18/Modules/Compiler/HP-ASM.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/HP-ASM.cmake
rename to share/cmake-3.18/Modules/Compiler/HP-ASM.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/HP-C-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/HP-C-DetermineCompiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/HP-C-DetermineCompiler.cmake
rename to share/cmake-3.18/Modules/Compiler/HP-C-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/HP-C.cmake b/share/cmake-3.18/Modules/Compiler/HP-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/HP-C.cmake
rename to share/cmake-3.18/Modules/Compiler/HP-C.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/HP-CXX-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/HP-CXX-DetermineCompiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/HP-CXX-DetermineCompiler.cmake
rename to share/cmake-3.18/Modules/Compiler/HP-CXX-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/HP-CXX.cmake b/share/cmake-3.18/Modules/Compiler/HP-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/HP-CXX.cmake
rename to share/cmake-3.18/Modules/Compiler/HP-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/HP-Fortran.cmake b/share/cmake-3.18/Modules/Compiler/HP-Fortran.cmake
similarity index 80%
rename from share/cmake-3.17/Modules/Compiler/HP-Fortran.cmake
rename to share/cmake-3.18/Modules/Compiler/HP-Fortran.cmake
index 63a0331..d3e2a30 100644
--- a/share/cmake-3.17/Modules/Compiler/HP-Fortran.cmake
+++ b/share/cmake-3.18/Modules/Compiler/HP-Fortran.cmake
@@ -7,3 +7,6 @@
 
 set(CMAKE_Fortran_LINKER_WRAPPER_FLAG "-Wl,")
 set(CMAKE_Fortran_LINKER_WRAPPER_FLAG ",")
+
+set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_ON "+cpp=yes")
+set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_OFF "+cpp=no")
diff --git a/share/cmake-3.17/Modules/Compiler/IAR-ASM.cmake b/share/cmake-3.18/Modules/Compiler/IAR-ASM.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/IAR-ASM.cmake
rename to share/cmake-3.18/Modules/Compiler/IAR-ASM.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/IAR-C.cmake b/share/cmake-3.18/Modules/Compiler/IAR-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/IAR-C.cmake
rename to share/cmake-3.18/Modules/Compiler/IAR-C.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/IAR-CXX.cmake b/share/cmake-3.18/Modules/Compiler/IAR-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/IAR-CXX.cmake
rename to share/cmake-3.18/Modules/Compiler/IAR-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/IAR-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/IAR-DetermineCompiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/IAR-DetermineCompiler.cmake
rename to share/cmake-3.18/Modules/Compiler/IAR-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/IAR-FindBinUtils.cmake b/share/cmake-3.18/Modules/Compiler/IAR-FindBinUtils.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/IAR-FindBinUtils.cmake
rename to share/cmake-3.18/Modules/Compiler/IAR-FindBinUtils.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/IAR.cmake b/share/cmake-3.18/Modules/Compiler/IAR.cmake
similarity index 99%
rename from share/cmake-3.17/Modules/Compiler/IAR.cmake
rename to share/cmake-3.18/Modules/Compiler/IAR.cmake
index 8e75caa..296e2fd 100644
--- a/share/cmake-3.17/Modules/Compiler/IAR.cmake
+++ b/share/cmake-3.18/Modules/Compiler/IAR.cmake
@@ -1,6 +1,6 @@
 # This file is processed when the IAR compiler is used for a C or C++ file
 # Documentation can be downloaded here: http://www.iar.com/website1/1.0.1.0/675/1/
-# The initial feature request is here: https://gitlab.kitware.com/cmake/cmake/issues/10176
+# The initial feature request is here: https://gitlab.kitware.com/cmake/cmake/-/issues/10176
 # It also contains additional links and information.
 # See USER GUIDES -> C/C++ Development Guide and ReleaseNotes for EWARM:
 # version 6.30.8: http://supp.iar.com/FilesPublic/UPDINFO/006607/arm/doc/infocenter/index.ENU.html
diff --git a/share/cmake-3.17/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake b/share/cmake-3.18/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake
rename to share/cmake-3.18/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake b/share/cmake-3.18/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake
rename to share/cmake-3.18/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/Intel-ASM.cmake b/share/cmake-3.18/Modules/Compiler/Intel-ASM.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/Intel-ASM.cmake
rename to share/cmake-3.18/Modules/Compiler/Intel-ASM.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/Intel-C-FeatureTests.cmake b/share/cmake-3.18/Modules/Compiler/Intel-C-FeatureTests.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/Intel-C-FeatureTests.cmake
rename to share/cmake-3.18/Modules/Compiler/Intel-C-FeatureTests.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/Intel-C.cmake b/share/cmake-3.18/Modules/Compiler/Intel-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/Intel-C.cmake
rename to share/cmake-3.18/Modules/Compiler/Intel-C.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/Intel-CXX-FeatureTests.cmake b/share/cmake-3.18/Modules/Compiler/Intel-CXX-FeatureTests.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/Intel-CXX-FeatureTests.cmake
rename to share/cmake-3.18/Modules/Compiler/Intel-CXX-FeatureTests.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/Intel-CXX.cmake b/share/cmake-3.18/Modules/Compiler/Intel-CXX.cmake
similarity index 89%
rename from share/cmake-3.17/Modules/Compiler/Intel-CXX.cmake
rename to share/cmake-3.18/Modules/Compiler/Intel-CXX.cmake
index 1ed1b08..b71b946 100644
--- a/share/cmake-3.17/Modules/Compiler/Intel-CXX.cmake
+++ b/share/cmake-3.18/Modules/Compiler/Intel-CXX.cmake
@@ -11,6 +11,11 @@
 
   set(CMAKE_CXX_CLANG_TIDY_DRIVER_MODE "cl")
 
+  if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 19.0.0)
+    set(CMAKE_CXX20_STANDARD_COMPILE_OPTION "-Qstd=c++20")
+    set(CMAKE_CXX20_EXTENSION_COMPILE_OPTION "-Qstd=c++20")
+  endif()
+
   if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 18.0.0)
     set(CMAKE_CXX17_STANDARD_COMPILE_OPTION "-Qstd=c++17")
     set(CMAKE_CXX17_EXTENSION_COMPILE_OPTION "-Qstd=c++17")
@@ -37,6 +42,11 @@
 
 else()
 
+  if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 19.0.0)
+    set(CMAKE_CXX20_STANDARD_COMPILE_OPTION "-std=c++20")
+    set(CMAKE_CXX20_EXTENSION_COMPILE_OPTION "-std=gnu++20")
+  endif()
+
   if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 18.0.0)
     set(CMAKE_CXX17_STANDARD_COMPILE_OPTION "-std=c++17")
     set(CMAKE_CXX17_EXTENSION_COMPILE_OPTION "-std=gnu++17")
diff --git a/share/cmake-3.17/Modules/Compiler/Intel-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/Intel-DetermineCompiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/Intel-DetermineCompiler.cmake
rename to share/cmake-3.18/Modules/Compiler/Intel-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/Intel-Fortran.cmake b/share/cmake-3.18/Modules/Compiler/Intel-Fortran.cmake
similarity index 85%
rename from share/cmake-3.17/Modules/Compiler/Intel-Fortran.cmake
rename to share/cmake-3.18/Modules/Compiler/Intel-Fortran.cmake
index 156b533..71f25f4 100644
--- a/share/cmake-3.17/Modules/Compiler/Intel-Fortran.cmake
+++ b/share/cmake-3.18/Modules/Compiler/Intel-Fortran.cmake
@@ -15,3 +15,5 @@
 
 set(CMAKE_Fortran_PREPROCESS_SOURCE
   "<CMAKE_Fortran_COMPILER> -fpp <DEFINES> <INCLUDES> <FLAGS> -E <SOURCE> > <PREPROCESSED_SOURCE>")
+set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_ON "-fpp")
+set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_OFF "-nofpp")
diff --git a/share/cmake-3.17/Modules/Compiler/Intel.cmake b/share/cmake-3.18/Modules/Compiler/Intel.cmake
similarity index 72%
rename from share/cmake-3.17/Modules/Compiler/Intel.cmake
rename to share/cmake-3.18/Modules/Compiler/Intel.cmake
index d895ed0..9a760c8 100644
--- a/share/cmake-3.17/Modules/Compiler/Intel.cmake
+++ b/share/cmake-3.18/Modules/Compiler/Intel.cmake
@@ -33,11 +33,14 @@
     endif()
     list(APPEND CMAKE_${lang}_COMPILER_PREDEFINES_COMMAND "-QdM" "-P" "-Za" "${CMAKE_ROOT}/Modules/CMakeCXXCompilerABI.cpp")
 
-    # Precompile Headers
-    set(CMAKE_PCH_EXTENSION .pchi)
-    set(CMAKE_LINK_PCH ON)
-    set(CMAKE_PCH_EPILOGUE "#pragma hdrstop")
-    set(CMAKE_${lang}_COMPILE_OPTIONS_USE_PCH -Winvalid-pch -Wno-pch-messages -pch-use <PCH_FILE> -include <PCH_HEADER>)
-    set(CMAKE_${lang}_COMPILE_OPTIONS_CREATE_PCH -Winvalid-pch -Wno-pch-messages -pch-create <PCH_FILE> -include <PCH_HEADER>)
+    if(NOT "x${lang}" STREQUAL "xFortran")
+      # Precompile Headers
+      set(CMAKE_PCH_EXTENSION .pchi)
+      set(CMAKE_LINK_PCH ON)
+      set(CMAKE_PCH_EPILOGUE "#pragma hdrstop")
+      set(CMAKE_${lang}_COMPILE_OPTIONS_INVALID_PCH -Winvalid-pch)
+      set(CMAKE_${lang}_COMPILE_OPTIONS_USE_PCH -Wno-pch-messages -pch-use <PCH_FILE> -include <PCH_HEADER>)
+      set(CMAKE_${lang}_COMPILE_OPTIONS_CREATE_PCH -Wno-pch-messages -pch-create <PCH_FILE> -include <PCH_HEADER>)
+    endif()
   endmacro()
 endif()
diff --git a/share/cmake-3.17/Modules/Compiler/MSVC-ASM.cmake b/share/cmake-3.18/Modules/Compiler/MSVC-ASM.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/MSVC-ASM.cmake
rename to share/cmake-3.18/Modules/Compiler/MSVC-ASM.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/MSVC-C-FeatureTests.cmake b/share/cmake-3.18/Modules/Compiler/MSVC-C-FeatureTests.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/MSVC-C-FeatureTests.cmake
rename to share/cmake-3.18/Modules/Compiler/MSVC-C-FeatureTests.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/MSVC-C.cmake b/share/cmake-3.18/Modules/Compiler/MSVC-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/MSVC-C.cmake
rename to share/cmake-3.18/Modules/Compiler/MSVC-C.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/MSVC-CXX-FeatureTests.cmake b/share/cmake-3.18/Modules/Compiler/MSVC-CXX-FeatureTests.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/MSVC-CXX-FeatureTests.cmake
rename to share/cmake-3.18/Modules/Compiler/MSVC-CXX-FeatureTests.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/MSVC-CXX.cmake b/share/cmake-3.18/Modules/Compiler/MSVC-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/MSVC-CXX.cmake
rename to share/cmake-3.18/Modules/Compiler/MSVC-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/MSVC-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/MSVC-DetermineCompiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/MSVC-DetermineCompiler.cmake
rename to share/cmake-3.18/Modules/Compiler/MSVC-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/NAG-Fortran.cmake b/share/cmake-3.18/Modules/Compiler/NAG-Fortran.cmake
similarity index 96%
rename from share/cmake-3.17/Modules/Compiler/NAG-Fortran.cmake
rename to share/cmake-3.18/Modules/Compiler/NAG-Fortran.cmake
index 2111c65..ffce97e 100644
--- a/share/cmake-3.17/Modules/Compiler/NAG-Fortran.cmake
+++ b/share/cmake-3.18/Modules/Compiler/NAG-Fortran.cmake
@@ -37,3 +37,4 @@
 set(CMAKE_Fortran_COMPILE_OPTIONS_PIC "-PIC")
 set(CMAKE_Fortran_COMPILE_OPTIONS_PIE "-PIC")
 set(CMAKE_Fortran_RESPONSE_FILE_LINK_FLAG "-Wl,@")
+set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_ON "-fpp")
diff --git a/share/cmake-3.17/Modules/Compiler/NVIDIA-CUDA.cmake b/share/cmake-3.18/Modules/Compiler/NVIDIA-CUDA.cmake
similarity index 77%
rename from share/cmake-3.17/Modules/Compiler/NVIDIA-CUDA.cmake
rename to share/cmake-3.18/Modules/Compiler/NVIDIA-CUDA.cmake
index 1f4d54d..feb5ecc 100644
--- a/share/cmake-3.17/Modules/Compiler/NVIDIA-CUDA.cmake
+++ b/share/cmake-3.18/Modules/Compiler/NVIDIA-CUDA.cmake
@@ -4,6 +4,9 @@
 set(CMAKE_CUDA_VERBOSE_FLAG "-v")
 set(CMAKE_CUDA_VERBOSE_COMPILE_FLAG "-Xcompiler=-v")
 
+set(_CMAKE_COMPILE_AS_CUDA_FLAG "-x cu")
+set(_CMAKE_CUDA_PTX_FLAG "-ptx")
+
 if (CMAKE_CUDA_COMPILER_VERSION VERSION_GREATER_EQUAL 10.2.89)
   # The -forward-unknown-to-host-compiler flag was only
   # added to nvcc in 10.2 so before that we had no good
@@ -43,11 +46,27 @@
 set(CMAKE_SHARED_LIBRARY_CREATE_CUDA_FLAGS -shared)
 set(CMAKE_INCLUDE_SYSTEM_FLAG_CUDA -isystem=)
 
-set(CMAKE_CUDA_RUNTIME_LIBRARY_DEFAULT "STATIC")
+if (CMAKE_CUDA_SIMULATE_ID STREQUAL "GNU")
+  set(CMAKE_CUDA_LINKER_WRAPPER_FLAG "-Wl,")
+  set(CMAKE_CUDA_LINKER_WRAPPER_FLAG_SEP ",")
+elseif(CMAKE_CUDA_SIMULATE_ID STREQUAL "Clang")
+  set(CMAKE_CUDA_LINKER_WRAPPER_FLAG "-Xlinker" " ")
+  set(CMAKE_CUDA_LINKER_WRAPPER_FLAG_SEP)
+endif()
+
+set(CMAKE_CUDA_DEVICE_COMPILER_WRAPPER_FLAG "-Xcompiler=")
+set(CMAKE_CUDA_DEVICE_COMPILER_WRAPPER_FLAG_SEP ",")
+set(CMAKE_CUDA_DEVICE_LINKER_WRAPPER_FLAG "-Xlinker=")
+set(CMAKE_CUDA_DEVICE_LINKER_WRAPPER_FLAG_SEP ",")
+
 set(CMAKE_CUDA_RUNTIME_LIBRARY_LINK_OPTIONS_STATIC  "cudadevrt;cudart_static")
 set(CMAKE_CUDA_RUNTIME_LIBRARY_LINK_OPTIONS_SHARED  "cudadevrt;cudart")
 set(CMAKE_CUDA_RUNTIME_LIBRARY_LINK_OPTIONS_NONE    "")
 
+if(UNIX)
+  list(APPEND CMAKE_CUDA_RUNTIME_LIBRARY_LINK_OPTIONS_STATIC "rt" "pthread" "dl")
+endif()
+
 if("x${CMAKE_CUDA_SIMULATE_ID}" STREQUAL "xMSVC")
   set(CMAKE_CUDA03_STANDARD_COMPILE_OPTION "")
   set(CMAKE_CUDA03_EXTENSION_COMPILE_OPTION "")
@@ -59,6 +78,12 @@
     set(CMAKE_CUDA14_STANDARD_COMPILE_OPTION "")
     set(CMAKE_CUDA14_EXTENSION_COMPILE_OPTION "")
   endif()
+
+  if (NOT CMAKE_CUDA_COMPILER_VERSION VERSION_LESS 11.0)
+    set(CMAKE_CUDA17_STANDARD_COMPILE_OPTION "")
+    set(CMAKE_CUDA17_EXTENSION_COMPILE_OPTION "")
+  endif()
+
 else()
   set(CMAKE_CUDA03_STANDARD_COMPILE_OPTION "")
   set(CMAKE_CUDA03_EXTENSION_COMPILE_OPTION "")
@@ -73,6 +98,11 @@
     set(CMAKE_CUDA14_EXTENSION_COMPILE_OPTION "-std=c++14")
   endif()
 
+  if (NOT CMAKE_CUDA_COMPILER_VERSION VERSION_LESS 11.0)
+    set(CMAKE_CUDA17_STANDARD_COMPILE_OPTION "-std=c++17")
+    set(CMAKE_CUDA17_EXTENSION_COMPILE_OPTION "-std=c++17")
+  endif()
+
 endif()
 
 # FIXME: investigate use of --options-file.
diff --git a/share/cmake-3.18/Modules/Compiler/NVIDIA-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/NVIDIA-DetermineCompiler.cmake
new file mode 100644
index 0000000..4f6ddc2
--- /dev/null
+++ b/share/cmake-3.18/Modules/Compiler/NVIDIA-DetermineCompiler.cmake
@@ -0,0 +1,29 @@
+
+set(_compiler_id_pp_test "defined(__NVCC__)")
+
+set(_compiler_id_version_compute "
+# if defined(__CUDACC_VER_MAJOR__)
+#  define @PREFIX@COMPILER_VERSION_MAJOR @MACRO_DEC@(__CUDACC_VER_MAJOR__)
+#  define @PREFIX@COMPILER_VERSION_MINOR @MACRO_DEC@(__CUDACC_VER_MINOR__)
+#  define @PREFIX@COMPILER_VERSION_PATCH @MACRO_DEC@(__CUDACC_VER_BUILD__)
+# endif
+# if defined(_MSC_VER)
+   /* _MSC_VER = VVRR */
+#  define @PREFIX@SIMULATE_VERSION_MAJOR @MACRO_DEC@(_MSC_VER / 100)
+#  define @PREFIX@SIMULATE_VERSION_MINOR @MACRO_DEC@(_MSC_VER % 100)
+# elif defined(__clang__)
+#  define @PREFIX@SIMULATE_VERSION_MAJOR @MACRO_DEC@(__clang_major__)
+#  define @PREFIX@SIMULATE_VERSION_MINOR @MACRO_DEC@(__clang_minor__)
+# elif defined(__GNUC__)
+#  define @PREFIX@SIMULATE_VERSION_MAJOR @MACRO_DEC@(__GNUC__)
+#  define @PREFIX@SIMULATE_VERSION_MINOR @MACRO_DEC@(__GNUC_MINOR__)
+# endif")
+
+set(_compiler_id_simulate "
+# if defined(_MSC_VER)
+#  define @PREFIX@SIMULATE_ID \"MSVC\"
+# elif defined(__clang__)
+#  define @PREFIX@SIMULATE_ID \"Clang\"
+# elif defined(__GNUC__)
+#  define @PREFIX@SIMULATE_ID \"GNU\"
+# endif")
diff --git a/share/cmake-3.18/Modules/Compiler/OpenWatcom-C.cmake b/share/cmake-3.18/Modules/Compiler/OpenWatcom-C.cmake
new file mode 100644
index 0000000..19e3359
--- /dev/null
+++ b/share/cmake-3.18/Modules/Compiler/OpenWatcom-C.cmake
@@ -0,0 +1 @@
+include(Compiler/OpenWatcom)
diff --git a/share/cmake-3.18/Modules/Compiler/OpenWatcom-CXX.cmake b/share/cmake-3.18/Modules/Compiler/OpenWatcom-CXX.cmake
new file mode 100644
index 0000000..19e3359
--- /dev/null
+++ b/share/cmake-3.18/Modules/Compiler/OpenWatcom-CXX.cmake
@@ -0,0 +1 @@
+include(Compiler/OpenWatcom)
diff --git a/share/cmake-3.17/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake
rename to share/cmake-3.18/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake
diff --git a/share/cmake-3.18/Modules/Compiler/OpenWatcom.cmake b/share/cmake-3.18/Modules/Compiler/OpenWatcom.cmake
new file mode 100644
index 0000000..9efbfc2
--- /dev/null
+++ b/share/cmake-3.18/Modules/Compiler/OpenWatcom.cmake
@@ -0,0 +1,118 @@
+# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+# This module is shared by multiple languages; use include blocker.
+include_guard()
+
+set(CMAKE_LIBRARY_PATH_FLAG "libpath ")
+set(CMAKE_LINK_LIBRARY_FLAG "library ")
+set(CMAKE_LINK_LIBRARY_FILE_FLAG "library ")
+
+if(CMAKE_VERBOSE_MAKEFILE)
+  set(CMAKE_WCL_QUIET)
+  set(CMAKE_WLINK_QUIET)
+  set(CMAKE_LIB_QUIET)
+else()
+  set(CMAKE_WCL_QUIET "-zq")
+  set(CMAKE_WLINK_QUIET "option quiet")
+  set(CMAKE_LIB_QUIET "-q")
+endif()
+
+foreach(type CREATE_SHARED_LIBRARY CREATE_SHARED_MODULE LINK_EXECUTABLE)
+  set(CMAKE_C_${type}_USE_WATCOM_QUOTE 1)
+  set(CMAKE_CXX_${type}_USE_WATCOM_QUOTE 1)
+endforeach()
+
+foreach(type SHARED MODULE EXE)
+  # linker map file creation directives
+  string(APPEND CMAKE_${type}_LINKER_FLAGS_INIT " opt map")
+  # linker debug directives
+  string(APPEND CMAKE_${type}_LINKER_FLAGS_DEBUG_INIT " debug all")
+  string(APPEND CMAKE_${type}_LINKER_FLAGS_RELWITHDEBINFO_INIT " debug all")
+endforeach()
+
+foreach(lang C CXX)
+  # warning level
+  string(APPEND CMAKE_${lang}_FLAGS_INIT " -w3")
+  # debug options
+  string(APPEND CMAKE_${lang}_FLAGS_DEBUG_INIT " -d2")
+  string(APPEND CMAKE_${lang}_FLAGS_MINSIZEREL_INIT " -s -os -d0 -dNDEBUG")
+  string(APPEND CMAKE_${lang}_FLAGS_RELEASE_INIT " -s -ot -d0 -dNDEBUG")
+  string(APPEND CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT " -s -ot -d1 -dNDEBUG")
+endforeach()
+
+# C create import library
+set(CMAKE_C_CREATE_IMPORT_LIBRARY
+  "wlib -c -q -n -b <TARGET_IMPLIB> +<TARGET_QUOTED>")
+# C++ create import library
+set(CMAKE_CXX_CREATE_IMPORT_LIBRARY ${CMAKE_C_CREATE_IMPORT_LIBRARY})
+
+# C link a object files into an executable file
+set(CMAKE_C_LINK_EXECUTABLE
+  "wlink ${CMAKE_WLINK_QUIET} name <TARGET> <LINK_FLAGS> file {<OBJECTS>} <LINK_LIBRARIES>")
+# C++ link a object files into an executable file
+set(CMAKE_CXX_LINK_EXECUTABLE ${CMAKE_C_LINK_EXECUTABLE})
+
+# C compile a file into an object file
+set(CMAKE_C_COMPILE_OBJECT
+  "<CMAKE_C_COMPILER> ${CMAKE_WCL_QUIET} -d+ <DEFINES> <INCLUDES> <FLAGS> -fo<OBJECT> -c -cc <SOURCE>")
+# C++ compile a file into an object file
+set(CMAKE_CXX_COMPILE_OBJECT
+  "<CMAKE_CXX_COMPILER> ${CMAKE_WCL_QUIET} -d+ <DEFINES> <INCLUDES> <FLAGS> -fo<OBJECT> -c -cc++ <SOURCE>")
+
+# C preprocess a source file
+set(CMAKE_C_CREATE_PREPROCESSED_SOURCE
+  "<CMAKE_C_COMPILER> ${CMAKE_WCL_QUIET} -d+ <DEFINES> <INCLUDES> <FLAGS> -fo<PREPROCESSED_SOURCE> -pl -cc <SOURCE>")
+# C++ preprocess a source file
+set(CMAKE_CXX_CREATE_PREPROCESSED_SOURCE
+  "<CMAKE_CXX_COMPILER> ${CMAKE_WCL_QUIET} -d+ <DEFINES> <INCLUDES> <FLAGS> -fo<PREPROCESSED_SOURCE> -pl -cc++ <SOURCE>")
+
+# C create a shared library
+set(CMAKE_C_CREATE_SHARED_LIBRARY
+  "wlink ${CMAKE_WLINK_QUIET} name <TARGET> <LINK_FLAGS> option implib=<TARGET_IMPLIB> file {<OBJECTS>} <LINK_LIBRARIES>")
+# C++ create a shared library
+set(CMAKE_CXX_CREATE_SHARED_LIBRARY ${CMAKE_C_CREATE_SHARED_LIBRARY})
+
+# C create a shared module
+set(CMAKE_C_CREATE_SHARED_MODULE
+  "wlink ${CMAKE_WLINK_QUIET} name <TARGET> <LINK_FLAGS> file {<OBJECTS>} <LINK_LIBRARIES>")
+# C++ create a shared module
+set(CMAKE_CXX_CREATE_SHARED_MODULE ${CMAKE_C_CREATE_SHARED_MODULE})
+
+# C create a static library
+set(CMAKE_C_CREATE_STATIC_LIBRARY
+  "wlib ${CMAKE_LIB_QUIET} -c -n -b <TARGET_QUOTED> <LINK_FLAGS> <OBJECTS> ")
+# C++ create a static library
+set(CMAKE_CXX_CREATE_STATIC_LIBRARY ${CMAKE_C_CREATE_STATIC_LIBRARY})
+
+
+# old CMake internaly used OpenWatcom version macros
+# for backward compatibility
+if(NOT _CMAKE_WATCOM_VERSION)
+  set(_CMAKE_WATCOM_VERSION 1)
+  if(CMAKE_C_COMPILER_VERSION)
+    set(_compiler_version ${CMAKE_C_COMPILER_VERSION})
+    set(_compiler_id ${CMAKE_C_COMPILER_ID})
+  else()
+    set(_compiler_version ${CMAKE_CXX_COMPILER_VERSION})
+    set(_compiler_id ${CMAKE_CXX_COMPILER_ID})
+  endif()
+  set(WATCOM16)
+  set(WATCOM17)
+  set(WATCOM18)
+  set(WATCOM19)
+  if("${_compiler_id}" STREQUAL "OpenWatcom")
+    if("${_compiler_version}" VERSION_LESS 1.7)
+      set(WATCOM16 1)
+    endif()
+    if("${_compiler_version}" VERSION_EQUAL 1.7)
+      set(WATCOM17 1)
+    endif()
+    if("${_compiler_version}" VERSION_EQUAL 1.8)
+      set(WATCOM18 1)
+    endif()
+    if("${_compiler_version}" VERSION_EQUAL 1.9)
+      set(WATCOM19 1)
+    endif()
+  endif()
+endif()
diff --git a/share/cmake-3.17/Modules/Compiler/PGI-C.cmake b/share/cmake-3.18/Modules/Compiler/PGI-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/PGI-C.cmake
rename to share/cmake-3.18/Modules/Compiler/PGI-C.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/PGI-CXX.cmake b/share/cmake-3.18/Modules/Compiler/PGI-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/PGI-CXX.cmake
rename to share/cmake-3.18/Modules/Compiler/PGI-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/PGI-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/PGI-DetermineCompiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/PGI-DetermineCompiler.cmake
rename to share/cmake-3.18/Modules/Compiler/PGI-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/PGI-Fortran.cmake b/share/cmake-3.18/Modules/Compiler/PGI-Fortran.cmake
similarity index 87%
rename from share/cmake-3.17/Modules/Compiler/PGI-Fortran.cmake
rename to share/cmake-3.18/Modules/Compiler/PGI-Fortran.cmake
index 3daf798..ff87577 100644
--- a/share/cmake-3.17/Modules/Compiler/PGI-Fortran.cmake
+++ b/share/cmake-3.18/Modules/Compiler/PGI-Fortran.cmake
@@ -6,6 +6,7 @@
 
 set(CMAKE_Fortran_PREPROCESS_SOURCE
   "<CMAKE_Fortran_COMPILER> -Mpreprocess <DEFINES> <INCLUDES> <FLAGS> -E <SOURCE> > <PREPROCESSED_SOURCE>")
+set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_ON "-Mpreprocess")
 
 set(CMAKE_Fortran_FORMAT_FIXED_FLAG "-Mnofreeform")
 set(CMAKE_Fortran_FORMAT_FREE_FLAG "-Mfreeform")
diff --git a/share/cmake-3.17/Modules/Compiler/PGI.cmake b/share/cmake-3.18/Modules/Compiler/PGI.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/PGI.cmake
rename to share/cmake-3.18/Modules/Compiler/PGI.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/PathScale-C.cmake b/share/cmake-3.18/Modules/Compiler/PathScale-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/PathScale-C.cmake
rename to share/cmake-3.18/Modules/Compiler/PathScale-C.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/PathScale-CXX.cmake b/share/cmake-3.18/Modules/Compiler/PathScale-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/PathScale-CXX.cmake
rename to share/cmake-3.18/Modules/Compiler/PathScale-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/PathScale-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/PathScale-DetermineCompiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/PathScale-DetermineCompiler.cmake
rename to share/cmake-3.18/Modules/Compiler/PathScale-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/PathScale-Fortran.cmake b/share/cmake-3.18/Modules/Compiler/PathScale-Fortran.cmake
similarity index 63%
rename from share/cmake-3.17/Modules/Compiler/PathScale-Fortran.cmake
rename to share/cmake-3.18/Modules/Compiler/PathScale-Fortran.cmake
index d903621..891d93e 100644
--- a/share/cmake-3.17/Modules/Compiler/PathScale-Fortran.cmake
+++ b/share/cmake-3.18/Modules/Compiler/PathScale-Fortran.cmake
@@ -4,3 +4,6 @@
 set(CMAKE_Fortran_MODDIR_FLAG "-module ")
 set(CMAKE_Fortran_FORMAT_FIXED_FLAG "-fixedform")
 set(CMAKE_Fortran_FORMAT_FREE_FLAG "-freeform")
+
+set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_ON "-cpp")
+set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_OFF "-nocpp")
diff --git a/share/cmake-3.17/Modules/Compiler/PathScale.cmake b/share/cmake-3.18/Modules/Compiler/PathScale.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/PathScale.cmake
rename to share/cmake-3.18/Modules/Compiler/PathScale.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/QCC-ASM.cmake b/share/cmake-3.18/Modules/Compiler/QCC-ASM.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/QCC-ASM.cmake
rename to share/cmake-3.18/Modules/Compiler/QCC-ASM.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/QCC-C-FeatureTests.cmake b/share/cmake-3.18/Modules/Compiler/QCC-C-FeatureTests.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/QCC-C-FeatureTests.cmake
rename to share/cmake-3.18/Modules/Compiler/QCC-C-FeatureTests.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/QCC-C.cmake b/share/cmake-3.18/Modules/Compiler/QCC-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/QCC-C.cmake
rename to share/cmake-3.18/Modules/Compiler/QCC-C.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/QCC-CXX-FeatureTests.cmake b/share/cmake-3.18/Modules/Compiler/QCC-CXX-FeatureTests.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/QCC-CXX-FeatureTests.cmake
rename to share/cmake-3.18/Modules/Compiler/QCC-CXX-FeatureTests.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/QCC-CXX.cmake b/share/cmake-3.18/Modules/Compiler/QCC-CXX.cmake
similarity index 90%
rename from share/cmake-3.17/Modules/Compiler/QCC-CXX.cmake
rename to share/cmake-3.18/Modules/Compiler/QCC-CXX.cmake
index 0e7314a..42303f4 100644
--- a/share/cmake-3.17/Modules/Compiler/QCC-CXX.cmake
+++ b/share/cmake-3.18/Modules/Compiler/QCC-CXX.cmake
@@ -10,6 +10,6 @@
   "<CMAKE_CXX_COMPILER> -lang-c++ <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT> -c <SOURCE>")
 
 set(CMAKE_CXX_LINK_EXECUTABLE
-  "<CMAKE_CXX_COMPILER> -lang-c++ <FLAGS> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS>  -o <TARGET> <LINK_LIBRARIES>")
+  "<CMAKE_CXX_COMPILER> -lang-c++ <FLAGS> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
 
 set(CMAKE_CXX_COMPILE_OPTIONS_VISIBILITY_INLINES_HIDDEN "-fvisibility-inlines-hidden")
diff --git a/share/cmake-3.17/Modules/Compiler/QCC.cmake b/share/cmake-3.18/Modules/Compiler/QCC.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/QCC.cmake
rename to share/cmake-3.18/Modules/Compiler/QCC.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/SCO-C.cmake b/share/cmake-3.18/Modules/Compiler/SCO-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/SCO-C.cmake
rename to share/cmake-3.18/Modules/Compiler/SCO-C.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/SCO-CXX.cmake b/share/cmake-3.18/Modules/Compiler/SCO-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/SCO-CXX.cmake
rename to share/cmake-3.18/Modules/Compiler/SCO-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/SCO-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/SCO-DetermineCompiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/SCO-DetermineCompiler.cmake
rename to share/cmake-3.18/Modules/Compiler/SCO-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/SCO.cmake b/share/cmake-3.18/Modules/Compiler/SCO.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/SCO.cmake
rename to share/cmake-3.18/Modules/Compiler/SCO.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/SDCC-C-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/SDCC-C-DetermineCompiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/SDCC-C-DetermineCompiler.cmake
rename to share/cmake-3.18/Modules/Compiler/SDCC-C-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/SunPro-ASM.cmake b/share/cmake-3.18/Modules/Compiler/SunPro-ASM.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/SunPro-ASM.cmake
rename to share/cmake-3.18/Modules/Compiler/SunPro-ASM.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/SunPro-C-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/SunPro-C-DetermineCompiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/SunPro-C-DetermineCompiler.cmake
rename to share/cmake-3.18/Modules/Compiler/SunPro-C-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/SunPro-C-FeatureTests.cmake b/share/cmake-3.18/Modules/Compiler/SunPro-C-FeatureTests.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/SunPro-C-FeatureTests.cmake
rename to share/cmake-3.18/Modules/Compiler/SunPro-C-FeatureTests.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/SunPro-C.cmake b/share/cmake-3.18/Modules/Compiler/SunPro-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/SunPro-C.cmake
rename to share/cmake-3.18/Modules/Compiler/SunPro-C.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake
rename to share/cmake-3.18/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/SunPro-CXX-FeatureTests.cmake b/share/cmake-3.18/Modules/Compiler/SunPro-CXX-FeatureTests.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/SunPro-CXX-FeatureTests.cmake
rename to share/cmake-3.18/Modules/Compiler/SunPro-CXX-FeatureTests.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/SunPro-CXX.cmake b/share/cmake-3.18/Modules/Compiler/SunPro-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/SunPro-CXX.cmake
rename to share/cmake-3.18/Modules/Compiler/SunPro-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/SunPro-Fortran.cmake b/share/cmake-3.18/Modules/Compiler/SunPro-Fortran.cmake
similarity index 96%
rename from share/cmake-3.17/Modules/Compiler/SunPro-Fortran.cmake
rename to share/cmake-3.18/Modules/Compiler/SunPro-Fortran.cmake
index 0c93c94..0ba5015 100644
--- a/share/cmake-3.17/Modules/Compiler/SunPro-Fortran.cmake
+++ b/share/cmake-3.18/Modules/Compiler/SunPro-Fortran.cmake
@@ -30,3 +30,5 @@
 
 set(CMAKE_Fortran_CREATE_PREPROCESSED_SOURCE "<CMAKE_Fortran_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -F -fpp <SOURCE> -o <PREPROCESSED_SOURCE>")
 set(CMAKE_Fortran_CREATE_ASSEMBLY_SOURCE "<CMAKE_Fortran_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -S <SOURCE> -o <ASSEMBLY_SOURCE>")
+
+set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_ON "-fpp")
diff --git a/share/cmake-3.17/Modules/Compiler/SunPro.cmake b/share/cmake-3.18/Modules/Compiler/SunPro.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/SunPro.cmake
rename to share/cmake-3.18/Modules/Compiler/SunPro.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/TI-ASM.cmake b/share/cmake-3.18/Modules/Compiler/TI-ASM.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/TI-ASM.cmake
rename to share/cmake-3.18/Modules/Compiler/TI-ASM.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/TI-C.cmake b/share/cmake-3.18/Modules/Compiler/TI-C.cmake
similarity index 72%
rename from share/cmake-3.17/Modules/Compiler/TI-C.cmake
rename to share/cmake-3.18/Modules/Compiler/TI-C.cmake
index 1c0f4bc..b060ee9 100644
--- a/share/cmake-3.17/Modules/Compiler/TI-C.cmake
+++ b/share/cmake-3.18/Modules/Compiler/TI-C.cmake
@@ -14,5 +14,9 @@
 set(CMAKE_C_CREATE_PREPROCESSED_SOURCE "<CMAKE_C_COMPILER> --preproc_only --c_file=<SOURCE> <DEFINES> <INCLUDES> <FLAGS> --output_file=<PREPROCESSED_SOURCE>")
 
 set(CMAKE_C_COMPILE_OBJECT  "<CMAKE_C_COMPILER> --compile_only --c_file=<SOURCE> <DEFINES> <INCLUDES> <FLAGS> --output_file=<OBJECT>")
-set(CMAKE_C_ARCHIVE_CREATE "<CMAKE_AR> -r <TARGET> <OBJECTS>")
-set(CMAKE_C_LINK_EXECUTABLE "<CMAKE_C_COMPILER> --run_linker --output_file=<TARGET> --map_file=<TARGET>.map <CMAKE_C_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> <LINK_LIBRARIES>")
+set(CMAKE_C_ARCHIVE_CREATE "<CMAKE_AR> qr <TARGET> <OBJECTS>")
+set(CMAKE_C_ARCHIVE_APPEND "<CMAKE_AR> qa <TARGET> <OBJECTS>")
+set(CMAKE_C_LINK_EXECUTABLE "<CMAKE_C_COMPILER> --run_linker --output_file=<TARGET> --map_file=<TARGET_NAME>.map <CMAKE_C_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> <LINK_LIBRARIES>")
+set(CMAKE_ASM_RESPONSE_FILE_FLAG "--cmd_file=")
+set(CMAKE_C_RESPONSE_FILE_FLAG "--cmd_file=")
+set(CMAKE_C_RESPONSE_FILE_LINK_FLAG " ")
diff --git a/share/cmake-3.17/Modules/Compiler/TI-CXX.cmake b/share/cmake-3.18/Modules/Compiler/TI-CXX.cmake
similarity index 69%
rename from share/cmake-3.17/Modules/Compiler/TI-CXX.cmake
rename to share/cmake-3.18/Modules/Compiler/TI-CXX.cmake
index 4c6af06..7836543 100644
--- a/share/cmake-3.17/Modules/Compiler/TI-CXX.cmake
+++ b/share/cmake-3.18/Modules/Compiler/TI-CXX.cmake
@@ -8,5 +8,8 @@
 set(CMAKE_CXX_CREATE_PREPROCESSED_SOURCE "<CMAKE_CXX_COMPILER> --preproc_only --cpp_file=<SOURCE> <DEFINES> <INCLUDES> <FLAGS> --output_file=<PREPROCESSED_SOURCE>")
 
 set(CMAKE_CXX_COMPILE_OBJECT  "<CMAKE_CXX_COMPILER> --compile_only --cpp_file=<SOURCE> <DEFINES> <INCLUDES> <FLAGS> --output_file=<OBJECT>")
-set(CMAKE_CXX_ARCHIVE_CREATE "<CMAKE_AR> -r <TARGET> <OBJECTS>")
-set(CMAKE_CXX_LINK_EXECUTABLE "<CMAKE_CXX_COMPILER> --run_linker --output_file=<TARGET> --map_file=<TARGET>.map <CMAKE_CXX_LINK_FLAGS> <LINK_LIBRARIES> <LINK_FLAGS> <OBJECTS>")
+set(CMAKE_CXX_ARCHIVE_CREATE "<CMAKE_AR> qr <TARGET> <OBJECTS>")
+set(CMAKE_CXX_ARCHIVE_APPEND "<CMAKE_AR> qa <TARGET> <OBJECTS>")
+set(CMAKE_CXX_LINK_EXECUTABLE "<CMAKE_CXX_COMPILER> --run_linker --output_file=<TARGET> --map_file=<TARGET_NAME>.map <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> <LINK_LIBRARIES>")
+set(CMAKE_CXX_RESPONSE_FILE_FLAG "--cmd_file=")
+set(CMAKE_CXX_RESPONSE_FILE_LINK_FLAG " ")
diff --git a/share/cmake-3.17/Modules/Compiler/TI-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/TI-DetermineCompiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/TI-DetermineCompiler.cmake
rename to share/cmake-3.18/Modules/Compiler/TI-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake
rename to share/cmake-3.18/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/TinyCC-C.cmake b/share/cmake-3.18/Modules/Compiler/TinyCC-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/TinyCC-C.cmake
rename to share/cmake-3.18/Modules/Compiler/TinyCC-C.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake
rename to share/cmake-3.18/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/VisualAge-C.cmake b/share/cmake-3.18/Modules/Compiler/VisualAge-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/VisualAge-C.cmake
rename to share/cmake-3.18/Modules/Compiler/VisualAge-C.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake
rename to share/cmake-3.18/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/VisualAge-CXX.cmake b/share/cmake-3.18/Modules/Compiler/VisualAge-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/VisualAge-CXX.cmake
rename to share/cmake-3.18/Modules/Compiler/VisualAge-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/VisualAge-Fortran.cmake b/share/cmake-3.18/Modules/Compiler/VisualAge-Fortran.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/VisualAge-Fortran.cmake
rename to share/cmake-3.18/Modules/Compiler/VisualAge-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/Watcom-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/Watcom-DetermineCompiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/Watcom-DetermineCompiler.cmake
rename to share/cmake-3.18/Modules/Compiler/Watcom-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/XL-ASM.cmake b/share/cmake-3.18/Modules/Compiler/XL-ASM.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/XL-ASM.cmake
rename to share/cmake-3.18/Modules/Compiler/XL-ASM.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/XL-C-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/XL-C-DetermineCompiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/XL-C-DetermineCompiler.cmake
rename to share/cmake-3.18/Modules/Compiler/XL-C-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/XL-C.cmake b/share/cmake-3.18/Modules/Compiler/XL-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/XL-C.cmake
rename to share/cmake-3.18/Modules/Compiler/XL-C.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/XL-CXX-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/XL-CXX-DetermineCompiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/XL-CXX-DetermineCompiler.cmake
rename to share/cmake-3.18/Modules/Compiler/XL-CXX-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/XL-CXX.cmake b/share/cmake-3.18/Modules/Compiler/XL-CXX.cmake
similarity index 76%
rename from share/cmake-3.17/Modules/Compiler/XL-CXX.cmake
rename to share/cmake-3.18/Modules/Compiler/XL-CXX.cmake
index 3037851..41e3e11 100644
--- a/share/cmake-3.17/Modules/Compiler/XL-CXX.cmake
+++ b/share/cmake-3.18/Modules/Compiler/XL-CXX.cmake
@@ -17,8 +17,14 @@
   set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-qlanglvl=extended0x")
   set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-qlanglvl=extended0x")
   set(CMAKE_CXX98_STANDARD__HAS_FULL_SUPPORT ON)
+
+  # XL does not really have full C++11 or C++14 support, but since we do not
+  # have a granular XL-CXX-FeatureTests table for it just pretend it does.
+  # This way projects that specify granular features will at least get a
+  # compiler mode for the corresponding standard.
   set(CMAKE_CXX11_STANDARD__HAS_FULL_SUPPORT ON)
-  if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 16.1.0)
+
+  if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 16.1.0 AND CMAKE_SYSTEM_NAME STREQUAL "Linux")
     set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "-qlanglvl=extended1y")
     set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "-qlanglvl=extended1y")
     set(CMAKE_CXX14_STANDARD__HAS_FULL_SUPPORT ON)
diff --git a/share/cmake-3.17/Modules/Compiler/XL-Fortran.cmake b/share/cmake-3.18/Modules/Compiler/XL-Fortran.cmake
similarity index 77%
rename from share/cmake-3.17/Modules/Compiler/XL-Fortran.cmake
rename to share/cmake-3.18/Modules/Compiler/XL-Fortran.cmake
index 1683dff..cc15e65 100644
--- a/share/cmake-3.17/Modules/Compiler/XL-Fortran.cmake
+++ b/share/cmake-3.18/Modules/Compiler/XL-Fortran.cmake
@@ -8,6 +8,7 @@
 set(CMAKE_Fortran_FORMAT_FREE_FLAG "-qfree") # [=f90|ibm]
 
 set(CMAKE_Fortran_MODDIR_FLAG "-qmoddir=")
+set(CMAKE_Fortran_MODDIR_INCLUDE_FLAG "-I") # -qmoddir= does not affect search path
 
 set(CMAKE_Fortran_DEFINE_FLAG "-WF,-D")
 
@@ -22,3 +23,8 @@
 set(CMAKE_Fortran_PREPROCESS_SOURCE
   "<CMAKE_Fortran_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -qpreprocess -qnoobject -qsuppress=1517-020 -tF -B \"${CMAKE_CURRENT_LIST_DIR}/XL-Fortran/\" -WF,--cpp,\"${CMAKE_Fortran_XL_CPP}\",--out,<PREPROCESSED_SOURCE> <SOURCE>"
   )
+
+if (NOT CMAKE_Fortran_COMPILER_VERSION VERSION_LESS 15.1.6)
+  set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_ON "-qpreprocess")
+  set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_OFF "-qnopreprocess")
+endif()
diff --git a/share/cmake-3.17/Modules/Compiler/XL-Fortran/cpp b/share/cmake-3.18/Modules/Compiler/XL-Fortran/cpp
old mode 100644
new mode 100755
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/XL-Fortran/cpp
rename to share/cmake-3.18/Modules/Compiler/XL-Fortran/cpp
diff --git a/share/cmake-3.17/Modules/Compiler/XL.cmake b/share/cmake-3.18/Modules/Compiler/XL.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/XL.cmake
rename to share/cmake-3.18/Modules/Compiler/XL.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/XLClang-C-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/XLClang-C-DetermineCompiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/XLClang-C-DetermineCompiler.cmake
rename to share/cmake-3.18/Modules/Compiler/XLClang-C-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/XLClang-C.cmake b/share/cmake-3.18/Modules/Compiler/XLClang-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/XLClang-C.cmake
rename to share/cmake-3.18/Modules/Compiler/XLClang-C.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake
rename to share/cmake-3.18/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/XLClang-CXX.cmake b/share/cmake-3.18/Modules/Compiler/XLClang-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/XLClang-CXX.cmake
rename to share/cmake-3.18/Modules/Compiler/XLClang-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/XLClang.cmake b/share/cmake-3.18/Modules/Compiler/XLClang.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/XLClang.cmake
rename to share/cmake-3.18/Modules/Compiler/XLClang.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/zOS-C-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/zOS-C-DetermineCompiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/zOS-C-DetermineCompiler.cmake
rename to share/cmake-3.18/Modules/Compiler/zOS-C-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake
rename to share/cmake-3.18/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/CompilerId/GHS_default.gpj.in b/share/cmake-3.18/Modules/CompilerId/GHS_default.gpj.in
similarity index 100%
rename from share/cmake-3.17/Modules/CompilerId/GHS_default.gpj.in
rename to share/cmake-3.18/Modules/CompilerId/GHS_default.gpj.in
diff --git a/share/cmake-3.17/Modules/CompilerId/GHS_lib.gpj.in b/share/cmake-3.18/Modules/CompilerId/GHS_lib.gpj.in
similarity index 100%
rename from share/cmake-3.17/Modules/CompilerId/GHS_lib.gpj.in
rename to share/cmake-3.18/Modules/CompilerId/GHS_lib.gpj.in
diff --git a/share/cmake-3.17/Modules/CompilerId/VS-10.csproj.in b/share/cmake-3.18/Modules/CompilerId/VS-10.csproj.in
similarity index 100%
rename from share/cmake-3.17/Modules/CompilerId/VS-10.csproj.in
rename to share/cmake-3.18/Modules/CompilerId/VS-10.csproj.in
diff --git a/share/cmake-3.17/Modules/CompilerId/VS-10.vcxproj.in b/share/cmake-3.18/Modules/CompilerId/VS-10.vcxproj.in
similarity index 100%
rename from share/cmake-3.17/Modules/CompilerId/VS-10.vcxproj.in
rename to share/cmake-3.18/Modules/CompilerId/VS-10.vcxproj.in
diff --git a/share/cmake-3.17/Modules/CompilerId/VS-7.vcproj.in b/share/cmake-3.18/Modules/CompilerId/VS-7.vcproj.in
similarity index 100%
rename from share/cmake-3.17/Modules/CompilerId/VS-7.vcproj.in
rename to share/cmake-3.18/Modules/CompilerId/VS-7.vcproj.in
diff --git a/share/cmake-3.17/Modules/CompilerId/VS-Intel.vfproj.in b/share/cmake-3.18/Modules/CompilerId/VS-Intel.vfproj.in
similarity index 100%
rename from share/cmake-3.17/Modules/CompilerId/VS-Intel.vfproj.in
rename to share/cmake-3.18/Modules/CompilerId/VS-Intel.vfproj.in
diff --git a/share/cmake-3.17/Modules/CompilerId/VS-NsightTegra.vcxproj.in b/share/cmake-3.18/Modules/CompilerId/VS-NsightTegra.vcxproj.in
similarity index 100%
rename from share/cmake-3.17/Modules/CompilerId/VS-NsightTegra.vcxproj.in
rename to share/cmake-3.18/Modules/CompilerId/VS-NsightTegra.vcxproj.in
diff --git a/share/cmake-3.17/Modules/CompilerId/Xcode-3.pbxproj.in b/share/cmake-3.18/Modules/CompilerId/Xcode-3.pbxproj.in
similarity index 99%
rename from share/cmake-3.17/Modules/CompilerId/Xcode-3.pbxproj.in
rename to share/cmake-3.18/Modules/CompilerId/Xcode-3.pbxproj.in
index 672044e..6fe17e5 100644
--- a/share/cmake-3.17/Modules/CompilerId/Xcode-3.pbxproj.in
+++ b/share/cmake-3.18/Modules/CompilerId/Xcode-3.pbxproj.in
@@ -84,6 +84,7 @@
 				CODE_SIGNING_REQUIRED = NO;
 				CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)";
 				SYMROOT = .;
+				@id_archs@
 				@id_toolset@
 				@id_lang_version@
 				@id_clang_cxx_library@
diff --git a/share/cmake-3.17/Modules/CompilerId/main.swift.in b/share/cmake-3.18/Modules/CompilerId/main.swift.in
similarity index 100%
rename from share/cmake-3.17/Modules/CompilerId/main.swift.in
rename to share/cmake-3.18/Modules/CompilerId/main.swift.in
diff --git a/share/cmake-3.17/Modules/Dart.cmake b/share/cmake-3.18/Modules/Dart.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Dart.cmake
rename to share/cmake-3.18/Modules/Dart.cmake
diff --git a/share/cmake-3.17/Modules/DartConfiguration.tcl.in b/share/cmake-3.18/Modules/DartConfiguration.tcl.in
similarity index 100%
rename from share/cmake-3.17/Modules/DartConfiguration.tcl.in
rename to share/cmake-3.18/Modules/DartConfiguration.tcl.in
diff --git a/share/cmake-3.17/Modules/DeployQt4.cmake b/share/cmake-3.18/Modules/DeployQt4.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/DeployQt4.cmake
rename to share/cmake-3.18/Modules/DeployQt4.cmake
diff --git a/share/cmake-3.18/Modules/Documentation.cmake b/share/cmake-3.18/Modules/Documentation.cmake
new file mode 100644
index 0000000..c297231
--- /dev/null
+++ b/share/cmake-3.18/Modules/Documentation.cmake
@@ -0,0 +1,74 @@
+# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+Documentation
+-------------
+
+This module provides support for the VTK documentation framework.  It
+relies on several tools (Doxygen, Perl, etc).
+#]=======================================================================]
+
+cmake_policy(GET CMP0106 _Documentation_policy)
+
+if (_Documentation_policy STREQUAL "NEW")
+  message(FATAL_ERROR
+    "Documentation.cmake is VTK-specific code and should not be used in "
+    "non-VTK projects. This logic in this module is best shipped with the "
+    "project using it rather than with CMake. This is now an error according "
+    "to policy CMP0106.")
+else ()
+
+if (_Documentation_policy STREQUAL "")
+  # Ignore the warning if the project is detected as VTK itself.
+  if (NOT CMAKE_PROJECT_NAME STREQUAL "VTK" AND
+      NOT PROJECT_NAME STREQUAL "VTK")
+    cmake_policy(GET_WARNING CMP0106 _Documentation_policy_warning)
+    message(AUTHOR_WARNING
+      "${_Documentation_policy_warning}\n"
+      "Documentation.cmake is VTK-specific code and should not be used in "
+      "non-VTK projects. This logic in this module is best shipped with the "
+      "project using it rather than with CMake.")
+  endif ()
+  unset(_Documentation_policy_warning)
+endif ()
+
+#
+# Build the documentation ?
+#
+option(BUILD_DOCUMENTATION "Build the documentation (Doxygen)." OFF)
+mark_as_advanced(BUILD_DOCUMENTATION)
+
+if (BUILD_DOCUMENTATION)
+
+  #
+  # Check for the tools
+  #
+  find_package(UnixCommands)
+  find_package(Doxygen)
+  find_package(Gnuplot)
+  find_package(HTMLHelp)
+  find_package(Perl)
+  find_package(Wget)
+
+  option(DOCUMENTATION_HTML_HELP
+    "Build the HTML Help file (CHM)." OFF)
+
+  option(DOCUMENTATION_HTML_TARZ
+    "Build a compressed tar archive of the HTML doc." OFF)
+
+  mark_as_advanced(
+    DOCUMENTATION_HTML_HELP
+    DOCUMENTATION_HTML_TARZ
+    )
+
+  #
+  # The documentation process is controlled by a batch file.
+  # We will probably need bash to create the custom target
+  #
+
+endif ()
+
+endif ()
+
+unset(_Documentation_policy)
diff --git a/share/cmake-3.17/Modules/DummyCXXFile.cxx b/share/cmake-3.18/Modules/DummyCXXFile.cxx
similarity index 100%
rename from share/cmake-3.17/Modules/DummyCXXFile.cxx
rename to share/cmake-3.18/Modules/DummyCXXFile.cxx
diff --git a/share/cmake-3.17/Modules/ExternalData.cmake b/share/cmake-3.18/Modules/ExternalData.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/ExternalData.cmake
rename to share/cmake-3.18/Modules/ExternalData.cmake
diff --git a/share/cmake-3.17/Modules/ExternalData_config.cmake.in b/share/cmake-3.18/Modules/ExternalData_config.cmake.in
similarity index 100%
rename from share/cmake-3.17/Modules/ExternalData_config.cmake.in
rename to share/cmake-3.18/Modules/ExternalData_config.cmake.in
diff --git a/share/cmake-3.17/Modules/ExternalProject-download.cmake.in b/share/cmake-3.18/Modules/ExternalProject-download.cmake.in
similarity index 100%
rename from share/cmake-3.17/Modules/ExternalProject-download.cmake.in
rename to share/cmake-3.18/Modules/ExternalProject-download.cmake.in
diff --git a/share/cmake-3.18/Modules/ExternalProject-gitupdate.cmake.in b/share/cmake-3.18/Modules/ExternalProject-gitupdate.cmake.in
new file mode 100644
index 0000000..eff39c1
--- /dev/null
+++ b/share/cmake-3.18/Modules/ExternalProject-gitupdate.cmake.in
@@ -0,0 +1,216 @@
+# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+cmake_minimum_required(VERSION 3.5)
+
+execute_process(
+  COMMAND "@git_EXECUTABLE@" rev-list --max-count=1 HEAD
+  WORKING_DIRECTORY "@work_dir@"
+  RESULT_VARIABLE error_code
+  OUTPUT_VARIABLE head_sha
+  OUTPUT_STRIP_TRAILING_WHITESPACE
+  )
+if(error_code)
+  message(FATAL_ERROR "Failed to get the hash for HEAD")
+endif()
+
+execute_process(
+  COMMAND "@git_EXECUTABLE@" show-ref "@git_tag@"
+  WORKING_DIRECTORY "@work_dir@"
+  OUTPUT_VARIABLE show_ref_output
+  )
+# If a remote ref is asked for, which can possibly move around,
+# we must always do a fetch and checkout.
+if("${show_ref_output}" MATCHES "remotes")
+  set(is_remote_ref 1)
+else()
+  set(is_remote_ref 0)
+endif()
+
+# Tag is in the form <remote>/<tag> (i.e. origin/master) we must strip
+# the remote from the tag.
+if("${show_ref_output}" MATCHES "refs/remotes/@git_tag@")
+  string(REGEX MATCH "^([^/]+)/(.+)$" _unused "@git_tag@")
+  set(git_remote "${CMAKE_MATCH_1}")
+  set(git_tag "${CMAKE_MATCH_2}")
+else()
+  set(git_remote "@git_remote_name@")
+  set(git_tag "@git_tag@")
+endif()
+
+# This will fail if the tag does not exist (it probably has not been fetched
+# yet).
+execute_process(
+  COMMAND "@git_EXECUTABLE@" rev-list --max-count=1 "${git_tag}"
+  WORKING_DIRECTORY "@work_dir@"
+  RESULT_VARIABLE error_code
+  OUTPUT_VARIABLE tag_sha
+  OUTPUT_STRIP_TRAILING_WHITESPACE
+  )
+
+# Is the hash checkout out that we want?
+if(error_code OR is_remote_ref OR NOT ("${tag_sha}" STREQUAL "${head_sha}"))
+  execute_process(
+    COMMAND "@git_EXECUTABLE@" fetch
+    WORKING_DIRECTORY "@work_dir@"
+    RESULT_VARIABLE error_code
+    )
+  if(error_code)
+    message(FATAL_ERROR "Failed to fetch repository '@git_repository@'")
+  endif()
+
+  if(is_remote_ref)
+    # Check if stash is needed
+    execute_process(
+      COMMAND "@git_EXECUTABLE@" status --porcelain
+      WORKING_DIRECTORY "@work_dir@"
+      RESULT_VARIABLE error_code
+      OUTPUT_VARIABLE repo_status
+      )
+    if(error_code)
+      message(FATAL_ERROR "Failed to get the status")
+    endif()
+    string(LENGTH "${repo_status}" need_stash)
+
+    # If not in clean state, stash changes in order to be able to perform a
+    # rebase or checkout without losing those changes permanently
+    if(need_stash)
+      execute_process(
+        COMMAND "@git_EXECUTABLE@" stash save @git_stash_save_options@
+        WORKING_DIRECTORY "@work_dir@"
+        RESULT_VARIABLE error_code
+        )
+      if(error_code)
+        message(FATAL_ERROR "Failed to stash changes")
+      endif()
+    endif()
+
+    if("@git_update_strategy@" STREQUAL "CHECKOUT")
+      execute_process(
+        COMMAND "@git_EXECUTABLE@" checkout "${git_remote}/${git_tag}"
+        WORKING_DIRECTORY "@work_dir@"
+        RESULT_VARIABLE error_code
+        )
+      if(error_code)
+        message(FATAL_ERROR "Failed to checkout tag: '${git_remote}/${git_tag}'")
+      endif()
+    else()
+      # Pull changes from the remote branch
+      execute_process(
+        COMMAND "@git_EXECUTABLE@" rebase "${git_remote}/${git_tag}"
+        WORKING_DIRECTORY "@work_dir@"
+        RESULT_VARIABLE error_code
+        OUTPUT_VARIABLE rebase_output
+        ERROR_VARIABLE  rebase_output
+        )
+      if(error_code)
+        # Rebase failed, undo the rebase attempt before continuing
+        execute_process(
+          COMMAND "@git_EXECUTABLE@" rebase --abort
+          WORKING_DIRECTORY "@work_dir@"
+        )
+
+        if(NOT "@git_update_strategy@" STREQUAL "REBASE_CHECKOUT")
+          # Not allowed to do a checkout as a fallback, so cannot proceed
+          if(need_stash)
+            execute_process(
+              COMMAND "@git_EXECUTABLE@" stash pop --index --quiet
+              WORKING_DIRECTORY "@work_dir@"
+              )
+          endif()
+          message(FATAL_ERROR "\nFailed to rebase in: '@work_dir@'."
+                              "\nOutput from the attempted rebase follows:"
+                              "\n${rebase_output}"
+                              "\n\nYou will have to resolve the conflicts manually")
+        endif()
+
+        # Fall back to checkout. We create an annotated tag so that the user
+        # can manually inspect the situation and revert if required.
+        # We can't log the failed rebase output because MSVC sees it and
+        # intervenes, causing the build to fail even though it completes.
+        # Write it to a file instead.
+        string(TIMESTAMP tag_timestamp "%Y%m%dT%H%M%S" UTC)
+        set(tag_name _cmake_ExternalProject_moved_from_here_${tag_timestamp}Z)
+        set(error_log_file ${CMAKE_CURRENT_LIST_DIR}/rebase_error_${tag_timestamp}Z.log)
+        file(WRITE ${error_log_file} "${rebase_output}")
+        message(WARNING "Rebase failed, output has been saved to ${error_log_file}"
+                        "\nFalling back to checkout, previous commit tagged as ${tag_name}")
+        execute_process(
+          COMMAND "@git_EXECUTABLE@" tag -a
+                  -m "ExternalProject attempting to move from here to ${git_remote}/${git_tag}"
+                  ${tag_name}
+          WORKING_DIRECTORY "@work_dir@"
+          RESULT_VARIABLE error_code
+        )
+        if(error_code)
+          message(FATAL_ERROR "Failed to add marker tag")
+        endif()
+
+        execute_process(
+          COMMAND "@git_EXECUTABLE@" checkout "${git_remote}/${git_tag}"
+          WORKING_DIRECTORY "@work_dir@"
+          RESULT_VARIABLE error_code
+        )
+        if(error_code)
+          message(FATAL_ERROR "Failed to checkout : '${git_remote}/${git_tag}'")
+        endif()
+
+      endif()
+    endif()
+
+    if(need_stash)
+      execute_process(
+        COMMAND "@git_EXECUTABLE@" stash pop --index --quiet
+        WORKING_DIRECTORY "@work_dir@"
+        RESULT_VARIABLE error_code
+        )
+      if(error_code)
+        # Stash pop --index failed: Try again dropping the index
+        execute_process(
+          COMMAND "@git_EXECUTABLE@" reset --hard --quiet
+          WORKING_DIRECTORY "@work_dir@"
+          RESULT_VARIABLE error_code
+          )
+        execute_process(
+          COMMAND "@git_EXECUTABLE@" stash pop --quiet
+          WORKING_DIRECTORY "@work_dir@"
+          RESULT_VARIABLE error_code
+          )
+        if(error_code)
+          # Stash pop failed: Restore previous state.
+          execute_process(
+            COMMAND "@git_EXECUTABLE@" reset --hard --quiet ${head_sha}
+            WORKING_DIRECTORY "@work_dir@"
+          )
+          execute_process(
+            COMMAND "@git_EXECUTABLE@" stash pop --index --quiet
+            WORKING_DIRECTORY "@work_dir@"
+          )
+          message(FATAL_ERROR "\nFailed to unstash changes in: '@work_dir@'."
+                              "\nYou will have to resolve the conflicts manually")
+        endif()
+      endif()
+    endif()
+  else()
+    execute_process(
+      COMMAND "@git_EXECUTABLE@" checkout "${git_tag}"
+      WORKING_DIRECTORY "@work_dir@"
+      RESULT_VARIABLE error_code
+      )
+    if(error_code)
+      message(FATAL_ERROR "Failed to checkout tag: '${git_tag}'")
+    endif()
+  endif()
+
+  set(init_submodules "@init_submodules@")
+  if(init_submodules)
+    execute_process(
+      COMMAND "@git_EXECUTABLE@" submodule update @git_submodules_recurse@ --init @git_submodules@
+      WORKING_DIRECTORY "@work_dir@"
+      RESULT_VARIABLE error_code
+      )
+  endif()
+  if(error_code)
+    message(FATAL_ERROR "Failed to update submodules in: '@work_dir@'")
+  endif()
+endif()
diff --git a/share/cmake-3.17/Modules/ExternalProject-verify.cmake.in b/share/cmake-3.18/Modules/ExternalProject-verify.cmake.in
similarity index 100%
rename from share/cmake-3.17/Modules/ExternalProject-verify.cmake.in
rename to share/cmake-3.18/Modules/ExternalProject-verify.cmake.in
diff --git a/share/cmake-3.17/Modules/ExternalProject.cmake b/share/cmake-3.18/Modules/ExternalProject.cmake
similarity index 93%
rename from share/cmake-3.17/Modules/ExternalProject.cmake
rename to share/cmake-3.18/Modules/ExternalProject.cmake
index 5bac0d8..aecc00b 100644
--- a/share/cmake-3.17/Modules/ExternalProject.cmake
+++ b/share/cmake-3.18/Modules/ExternalProject.cmake
@@ -9,8 +9,11 @@
 
    .. contents::
 
+Commands
+^^^^^^^^
+
 External Project Definition
-^^^^^^^^^^^^^^^^^^^^^^^^^^^
+"""""""""""""""""""""""""""
 
 .. command:: ExternalProject_Add
 
@@ -291,6 +294,42 @@
         ``git clone`` command line, with each option required to be in the
         form ``key=value``.
 
+      ``GIT_REMOTE_UPDATE_STRATEGY <strategy>``
+        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:
+
+        ``CHECKOUT``
+          Ignore the local branch and always checkout the branch specified by
+          ``GIT_TAG``.
+
+        ``REBASE``
+          Try to rebase the current branch to the one specified by ``GIT_TAG``.
+          If there are local uncommitted changes, they will be stashed first
+          and popped again after rebasing.  If rebasing or popping stashed
+          changes fail, abort the rebase and halt with an error.
+          When ``GIT_REMOTE_UPDATE_STRATEGY`` is not present, this is the
+          default strategy unless the default has been overridden with
+          ``CMAKE_EP_GIT_REMOTE_UPDATE_STRATEGY`` (see below).
+
+        ``REBASE_CHECKOUT``
+          Same as ``REBASE`` except if the rebase fails, an annotated tag will
+          be created at the original ``HEAD`` position from before the rebase
+          and then checkout ``GIT_TAG`` just like the ``CHECKOUT`` strategy.
+          The message stored on the annotated tag will give information about
+          what was attempted and the tag name will include a timestamp so that
+          each failed run will add a new tag.  This strategy ensures no changes
+          will be lost, but updates should always succeed if ``GIT_TAG`` refers
+          to a valid ref unless there are uncommitted changes that cannot be
+          popped successfully.
+
+        The variable ``CMAKE_EP_GIT_REMOTE_UPDATE_STRATEGY`` can be set to
+        override the default strategy.  This variable should not be set by a
+        project, it is intended for the user to set.  It is primarily intended
+        for use in continuous integration scripts to ensure that when history
+        is rewritten on a remote branch, the build doesn't end up with unintended
+        changes or failed builds resulting from conflicts during rebase operations.
+
     *Subversion*
       ``SVN_REPOSITORY <url>``
         URL of the Subversion repository.
@@ -665,7 +704,7 @@
   automatic substitutions that are supported for some options.
 
 Obtaining Project Properties
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+""""""""""""""""""""""""""""
 
 .. command:: ExternalProject_Get_Property
 
@@ -686,7 +725,7 @@
     message("Source dir of myExtProj = ${SOURCE_DIR}")
 
 Explicit Step Management
-^^^^^^^^^^^^^^^^^^^^^^^^
+""""""""""""""""""""""""
 
 The ``ExternalProject_Add()`` function on its own is often sufficient for
 incorporating an external project into the main build. Certain scenarios
@@ -935,6 +974,7 @@
 
 cmake_policy(PUSH)
 cmake_policy(SET CMP0054 NEW) # if() quoted variables not dereferenced
+cmake_policy(SET CMP0057 NEW) # if() supports IN_LIST
 
 # Pre-compute a regex to match documented keywords for each command.
 math(EXPR _ep_documentation_line_count "${CMAKE_CURRENT_LIST_LINE} - 4")
@@ -1084,7 +1124,11 @@
     message(FATAL_ERROR "Tag for git checkout should not be empty.")
   endif()
 
-  set(git_clone_options "--no-checkout")
+  if(GIT_VERSION_STRING VERSION_LESS 2.20 OR 2.21 VERSION_LESS_EQUAL GIT_VERSION_STRING)
+    set(git_clone_options "--no-checkout")
+  else()
+    set(git_clone_options)
+  endif()
   if(git_shallow)
     if(NOT GIT_VERSION_STRING VERSION_LESS 1.7.10)
       list(APPEND git_clone_options "--depth 1 --no-single-branch")
@@ -1239,7 +1283,7 @@
 endfunction()
 
 
-function(_ep_write_gitupdate_script script_filename git_EXECUTABLE git_tag git_remote_name init_submodules git_submodules_recurse git_submodules git_repository work_dir)
+function(_ep_write_gitupdate_script script_filename git_EXECUTABLE git_tag git_remote_name init_submodules git_submodules_recurse git_submodules git_repository work_dir git_update_strategy)
   if("${git_tag}" STREQUAL "")
     message(FATAL_ERROR "Tag for git checkout should not be empty.")
   endif()
@@ -1248,171 +1292,13 @@
   else()
     set(git_stash_save_options --quiet)
   endif()
-  file(WRITE ${script_filename}
-"
-execute_process(
-  COMMAND \"${git_EXECUTABLE}\" rev-list --max-count=1 HEAD
-  WORKING_DIRECTORY \"${work_dir}\"
-  RESULT_VARIABLE error_code
-  OUTPUT_VARIABLE head_sha
-  OUTPUT_STRIP_TRAILING_WHITESPACE
+
+  configure_file(
+      "${_ExternalProject_SELF_DIR}/ExternalProject-gitupdate.cmake.in"
+      "${script_filename}"
+      @ONLY
   )
-if(error_code)
-  message(FATAL_ERROR \"Failed to get the hash for HEAD\")
-endif()
-
-execute_process(
-  COMMAND \"${git_EXECUTABLE}\" show-ref ${git_tag}
-  WORKING_DIRECTORY \"${work_dir}\"
-  OUTPUT_VARIABLE show_ref_output
-  )
-# If a remote ref is asked for, which can possibly move around,
-# we must always do a fetch and checkout.
-if(\"\${show_ref_output}\" MATCHES \"remotes\")
-  set(is_remote_ref 1)
-else()
-  set(is_remote_ref 0)
-endif()
-
-# Tag is in the form <remote>/<tag> (i.e. origin/master) we must strip
-# the remote from the tag.
-if(\"\${show_ref_output}\" MATCHES \"refs/remotes/${git_tag}\")
-  string(REGEX MATCH \"^([^/]+)/(.+)$\" _unused \"${git_tag}\")
-  set(git_remote \"\${CMAKE_MATCH_1}\")
-  set(git_tag \"\${CMAKE_MATCH_2}\")
-else()
-  set(git_remote \"${git_remote_name}\")
-  set(git_tag \"${git_tag}\")
-endif()
-
-# This will fail if the tag does not exist (it probably has not been fetched
-# yet).
-execute_process(
-  COMMAND \"${git_EXECUTABLE}\" rev-list --max-count=1 ${git_tag}
-  WORKING_DIRECTORY \"${work_dir}\"
-  RESULT_VARIABLE error_code
-  OUTPUT_VARIABLE tag_sha
-  OUTPUT_STRIP_TRAILING_WHITESPACE
-  )
-
-# Is the hash checkout out that we want?
-if(error_code OR is_remote_ref OR NOT (\"\${tag_sha}\" STREQUAL \"\${head_sha}\"))
-  execute_process(
-    COMMAND \"${git_EXECUTABLE}\" fetch
-    WORKING_DIRECTORY \"${work_dir}\"
-    RESULT_VARIABLE error_code
-    )
-  if(error_code)
-    message(FATAL_ERROR \"Failed to fetch repository '${git_repository}'\")
-  endif()
-
-  if(is_remote_ref)
-    # Check if stash is needed
-    execute_process(
-      COMMAND \"${git_EXECUTABLE}\" status --porcelain
-      WORKING_DIRECTORY \"${work_dir}\"
-      RESULT_VARIABLE error_code
-      OUTPUT_VARIABLE repo_status
-      )
-    if(error_code)
-      message(FATAL_ERROR \"Failed to get the status\")
-    endif()
-    string(LENGTH \"\${repo_status}\" need_stash)
-
-    # If not in clean state, stash changes in order to be able to be able to
-    # perform git pull --rebase
-    if(need_stash)
-      execute_process(
-        COMMAND \"${git_EXECUTABLE}\" stash save ${git_stash_save_options}
-        WORKING_DIRECTORY \"${work_dir}\"
-        RESULT_VARIABLE error_code
-        )
-      if(error_code)
-        message(FATAL_ERROR \"Failed to stash changes\")
-      endif()
-    endif()
-
-    # Pull changes from the remote branch
-    execute_process(
-      COMMAND \"${git_EXECUTABLE}\" rebase \${git_remote}/\${git_tag}
-      WORKING_DIRECTORY \"${work_dir}\"
-      RESULT_VARIABLE error_code
-      )
-    if(error_code)
-      # Rebase failed: Restore previous state.
-      execute_process(
-        COMMAND \"${git_EXECUTABLE}\" rebase --abort
-        WORKING_DIRECTORY \"${work_dir}\"
-      )
-      if(need_stash)
-        execute_process(
-          COMMAND \"${git_EXECUTABLE}\" stash pop --index --quiet
-          WORKING_DIRECTORY \"${work_dir}\"
-          )
-      endif()
-      message(FATAL_ERROR \"\\nFailed to rebase in: '${work_dir}/${src_name}'.\\nYou will have to resolve the conflicts manually\")
-    endif()
-
-    if(need_stash)
-      execute_process(
-        COMMAND \"${git_EXECUTABLE}\" stash pop --index --quiet
-        WORKING_DIRECTORY \"${work_dir}\"
-        RESULT_VARIABLE error_code
-        )
-      if(error_code)
-        # Stash pop --index failed: Try again dropping the index
-        execute_process(
-          COMMAND \"${git_EXECUTABLE}\" reset --hard --quiet
-          WORKING_DIRECTORY \"${work_dir}\"
-          RESULT_VARIABLE error_code
-          )
-        execute_process(
-          COMMAND \"${git_EXECUTABLE}\" stash pop --quiet
-          WORKING_DIRECTORY \"${work_dir}\"
-          RESULT_VARIABLE error_code
-          )
-        if(error_code)
-          # Stash pop failed: Restore previous state.
-          execute_process(
-            COMMAND \"${git_EXECUTABLE}\" reset --hard --quiet \${head_sha}
-            WORKING_DIRECTORY \"${work_dir}\"
-          )
-          execute_process(
-            COMMAND \"${git_EXECUTABLE}\" stash pop --index --quiet
-            WORKING_DIRECTORY \"${work_dir}\"
-          )
-          message(FATAL_ERROR \"\\nFailed to unstash changes in: '${work_dir}/${src_name}'.\\nYou will have to resolve the conflicts manually\")
-        endif()
-      endif()
-    endif()
-  else()
-    execute_process(
-      COMMAND \"${git_EXECUTABLE}\" checkout ${git_tag}
-      WORKING_DIRECTORY \"${work_dir}\"
-      RESULT_VARIABLE error_code
-      )
-    if(error_code)
-      message(FATAL_ERROR \"Failed to checkout tag: '${git_tag}'\")
-    endif()
-  endif()
-
-  set(init_submodules ${init_submodules})
-  if(init_submodules)
-    execute_process(
-      COMMAND \"${git_EXECUTABLE}\" submodule update ${git_submodules_recurse} --init ${git_submodules}
-      WORKING_DIRECTORY \"${work_dir}/${src_name}\"
-      RESULT_VARIABLE error_code
-      )
-  endif()
-  if(error_code)
-    message(FATAL_ERROR \"Failed to update submodules in: '${work_dir}/${src_name}'\")
-  endif()
-endif()
-
-"
-)
-
-endfunction(_ep_write_gitupdate_script)
+endfunction()
 
 function(_ep_write_downloadfile_script script_filename REMOTE LOCAL timeout no_progress hash tls_verify tls_cainfo userpwd http_headers netrc netrc_file)
   if(timeout)
@@ -1905,7 +1791,11 @@
     get_target_property(args ${name} _EP_${step}_ARGS)
   endif()
 
-  list(APPEND cmd ${args})
+  if(NOT "${args}" STREQUAL "")
+    # args could have empty items, so we must quote it to prevent them
+    # from being silently removed
+    list(APPEND cmd "${args}")
+  endif()
   set(${cmd_var} "${cmd}" PARENT_SCOPE)
 endfunction()
 
@@ -2221,17 +2111,23 @@
     set(command ${CMAKE_COMMAND} -E echo_append)
   endif()
 
-  add_custom_command(
-    OUTPUT ${stamp_file}
-    BYPRODUCTS ${byproducts}
-    COMMENT ${comment}
-    COMMAND ${command}
-    COMMAND ${touch}
-    DEPENDS ${depends}
-    WORKING_DIRECTORY ${work_dir}
-    VERBATIM
-    ${uses_terminal}
-    )
+  set(__cmdQuoted)
+  foreach(__item IN LISTS command)
+    string(APPEND __cmdQuoted " [==[${__item}]==]")
+  endforeach()
+  cmake_language(EVAL CODE "
+    add_custom_command(
+      OUTPUT \${stamp_file}
+      BYPRODUCTS \${byproducts}
+      COMMENT \${comment}
+      COMMAND ${__cmdQuoted}
+      COMMAND \${touch}
+      DEPENDS \${depends}
+      WORKING_DIRECTORY \${work_dir}
+      VERBATIM
+      ${uses_terminal}
+    )"
+  )
   set_property(TARGET ${name} APPEND PROPERTY _EP_STEPS ${step})
 
   # Add custom "step target"?
@@ -2279,7 +2175,7 @@
 
   get_property(steps TARGET ${name} PROPERTY _EP_STEPS)
   list(FIND steps ${step} is_step)
-  if(NOT is_step)
+  if(is_step LESS 0)
     message(FATAL_ERROR "External project \"${name}\" does not have a step \"${step}\".")
   endif()
 
@@ -2595,7 +2491,7 @@
       set(cmd   ${CMAKE_COMMAND} -E rm -rf ${source_dir}
         COMMAND ${CMAKE_COMMAND} -E copy_directory ${abs_dir} ${source_dir})
     else()
-      get_property(no_extract TARGET "${name}" PROPERTY _EP_DOWNLOAD_NO_EXTRACT SET)
+      get_property(no_extract TARGET "${name}" PROPERTY _EP_DOWNLOAD_NO_EXTRACT)
       if("${url}" MATCHES "^[a-z]+://")
         # TODO: Should download and extraction be different steps?
         if("x${fname}" STREQUAL "x")
@@ -2686,17 +2582,32 @@
     set(uses_terminal "")
   endif()
 
-  ExternalProject_Add_Step(${name} download
-    COMMENT ${comment}
-    COMMAND ${cmd}
-    WORKING_DIRECTORY ${work_dir}
-    DEPENDS ${depends}
-    DEPENDEES mkdir
-    ${log}
-    ${uses_terminal}
-    )
+  set(__cmdQuoted)
+  foreach(__item IN LISTS cmd)
+    string(APPEND __cmdQuoted " [==[${__item}]==]")
+  endforeach()
+  cmake_language(EVAL CODE "
+    ExternalProject_Add_Step(\${name} download
+      COMMENT \${comment}
+      COMMAND ${__cmdQuoted}
+      WORKING_DIRECTORY \${work_dir}
+      DEPENDS \${depends}
+      DEPENDEES mkdir
+      ${log}
+      ${uses_terminal}
+      )"
+  )
 endfunction()
 
+function(_ep_get_update_disconnected var name)
+  get_property(update_disconnected_set TARGET ${name} PROPERTY _EP_UPDATE_DISCONNECTED SET)
+  if(update_disconnected_set)
+    get_property(update_disconnected TARGET ${name} PROPERTY _EP_UPDATE_DISCONNECTED)
+  else()
+    get_property(update_disconnected DIRECTORY PROPERTY EP_UPDATE_DISCONNECTED)
+  endif()
+  set(${var} "${update_disconnected}" PARENT_SCOPE)
+endfunction()
 
 function(_ep_add_update_command name)
   ExternalProject_Get_Property(${name} source_dir tmp_dir)
@@ -2707,12 +2618,8 @@
   get_property(svn_repository TARGET ${name} PROPERTY _EP_SVN_REPOSITORY)
   get_property(git_repository TARGET ${name} PROPERTY _EP_GIT_REPOSITORY)
   get_property(hg_repository  TARGET ${name} PROPERTY _EP_HG_REPOSITORY )
-  get_property(update_disconnected_set TARGET ${name} PROPERTY _EP_UPDATE_DISCONNECTED SET)
-  if(update_disconnected_set)
-    get_property(update_disconnected TARGET ${name} PROPERTY _EP_UPDATE_DISCONNECTED)
-  else()
-    get_property(update_disconnected DIRECTORY PROPERTY EP_UPDATE_DISCONNECTED)
-  endif()
+
+  _ep_get_update_disconnected(update_disconnected ${name})
 
   set(work_dir)
   set(comment)
@@ -2781,10 +2688,22 @@
       endif()
     endif()
 
+    get_property(git_update_strategy TARGET ${name} PROPERTY _EP_GIT_REMOTE_UPDATE_STRATEGY)
+    if(NOT git_update_strategy)
+      set(git_update_strategy "${CMAKE_EP_GIT_REMOTE_UPDATE_STRATEGY}")
+    endif()
+    if(NOT git_update_strategy)
+      set(git_update_strategy REBASE)
+    endif()
+    set(strategies CHECKOUT REBASE REBASE_CHECKOUT)
+    if(NOT git_update_strategy IN_LIST strategies)
+      message(FATAL_ERROR "'${git_update_strategy}' is not one of the supported strategies: ${strategies}")
+    endif()
+
     _ep_get_git_submodules_recurse(git_submodules_recurse)
 
     _ep_write_gitupdate_script(${tmp_dir}/${name}-gitupdate.cmake
-      ${GIT_EXECUTABLE} ${git_tag} ${git_remote_name} ${git_init_submodules} "${git_submodules_recurse}" "${git_submodules}" ${git_repository} ${work_dir}
+      ${GIT_EXECUTABLE} ${git_tag} ${git_remote_name} ${git_init_submodules} "${git_submodules_recurse}" "${git_submodules}" ${git_repository} ${work_dir} ${git_update_strategy}
       )
     set(cmd ${CMAKE_COMMAND} -P ${tmp_dir}/${name}-gitupdate.cmake)
     set(always 1)
@@ -2826,16 +2745,22 @@
     set(uses_terminal "")
   endif()
 
-  ExternalProject_Add_Step(${name} update
-    COMMENT ${comment}
-    COMMAND ${cmd}
-    ALWAYS ${always}
-    EXCLUDE_FROM_MAIN ${update_disconnected}
-    WORKING_DIRECTORY ${work_dir}
-    DEPENDEES download
-    ${log}
-    ${uses_terminal}
-    )
+  set(__cmdQuoted)
+  foreach(__item IN LISTS cmd)
+    string(APPEND __cmdQuoted " [==[${__item}]==]")
+  endforeach()
+  cmake_language(EVAL CODE "
+    ExternalProject_Add_Step(${name} update
+      COMMENT \${comment}
+      COMMAND ${__cmdQuoted}
+      ALWAYS \${always}
+      EXCLUDE_FROM_MAIN \${update_disconnected}
+      WORKING_DIRECTORY \${work_dir}
+      DEPENDEES download
+      ${log}
+      ${uses_terminal}
+      )"
+  )
 
   if(update_disconnected)
     _ep_get_step_stampfile(${name} skip-update skip-update_stamp_file)
@@ -2874,12 +2799,25 @@
     set(log "")
   endif()
 
-  ExternalProject_Add_Step(${name} patch
-    COMMAND ${cmd}
-    WORKING_DIRECTORY ${work_dir}
-    DEPENDEES download
-    ${log}
-    )
+  _ep_get_update_disconnected(update_disconnected ${name})
+  if(update_disconnected)
+    set(update_dep skip-update)
+  else()
+    set(update_dep update)
+  endif()
+
+  set(__cmdQuoted)
+  foreach(__item IN LISTS cmd)
+    string(APPEND __cmdQuoted " [==[${__item}]==]")
+  endforeach()
+  cmake_language(EVAL CODE "
+    ExternalProject_Add_Step(${name} patch
+      COMMAND ${__cmdQuoted}
+      WORKING_DIRECTORY \${work_dir}
+      DEPENDEES download \${update_dep}
+      ${log}
+      )"
+  )
 endfunction()
 
 
@@ -2974,6 +2912,10 @@
       endif()
       _ep_write_initial_cache(${name} "${_ep_cache_args_script}" "${script_initial_cache_force}${script_initial_cache_default}")
       list(APPEND cmd "-C${_ep_cache_args_script}")
+      _ep_replace_location_tags(${name} _ep_cache_args_script)
+      set(_ep_cache_args_script
+        "${_ep_cache_args_script}"
+        PARENT_SCOPE)
     endif()
 
     list(APPEND cmd "<SOURCE_DIR><SOURCE_SUBDIR>")
@@ -3004,7 +2946,7 @@
 
   # If anything about the configure command changes, (command itself, cmake
   # used, cmake args or cmake generator) then re-run the configure step.
-  # Fixes issue https://gitlab.kitware.com/cmake/cmake/issues/10258
+  # Fixes issue https://gitlab.kitware.com/cmake/cmake/-/issues/10258
   #
   if(NOT EXISTS ${tmp_dir}/${name}-cfgcmd.txt.in)
     file(WRITE ${tmp_dir}/${name}-cfgcmd.txt.in "cmd='\@cmd\@'\n")
@@ -3028,26 +2970,27 @@
     set(uses_terminal "")
   endif()
 
-  get_property(update_disconnected_set TARGET ${name} PROPERTY _EP_UPDATE_DISCONNECTED SET)
-  if(update_disconnected_set)
-    get_property(update_disconnected TARGET ${name} PROPERTY _EP_UPDATE_DISCONNECTED)
-  else()
-    get_property(update_disconnected DIRECTORY PROPERTY EP_UPDATE_DISCONNECTED)
-  endif()
+  _ep_get_update_disconnected(update_disconnected ${name})
   if(update_disconnected)
     set(update_dep skip-update)
   else()
     set(update_dep update)
   endif()
 
-  ExternalProject_Add_Step(${name} configure
-    COMMAND ${cmd}
-    WORKING_DIRECTORY ${binary_dir}
-    DEPENDEES ${update_dep} patch
-    DEPENDS ${file_deps}
-    ${log}
-    ${uses_terminal}
-    )
+  set(__cmdQuoted)
+  foreach(__item IN LISTS cmd)
+    string(APPEND __cmdQuoted " [==[${__item}]==]")
+  endforeach()
+  cmake_language(EVAL CODE "
+    ExternalProject_Add_Step(${name} configure
+      COMMAND ${__cmdQuoted}
+      WORKING_DIRECTORY \${binary_dir}
+      DEPENDEES \${update_dep} patch
+      DEPENDS \${file_deps}
+      ${log}
+      ${uses_terminal}
+      )"
+  )
 endfunction()
 
 
@@ -3085,15 +3028,21 @@
 
   get_property(build_byproducts TARGET ${name} PROPERTY _EP_BUILD_BYPRODUCTS)
 
-  ExternalProject_Add_Step(${name} build
-    COMMAND ${cmd}
-    BYPRODUCTS ${build_byproducts}
-    WORKING_DIRECTORY ${binary_dir}
-    DEPENDEES configure
-    ALWAYS ${always}
-    ${log}
-    ${uses_terminal}
-    )
+  set(__cmdQuoted)
+  foreach(__item IN LISTS cmd)
+    string(APPEND __cmdQuoted " [==[${__item}]==]")
+  endforeach()
+  cmake_language(EVAL CODE "
+    ExternalProject_Add_Step(${name} build
+      COMMAND ${__cmdQuoted}
+      BYPRODUCTS \${build_byproducts}
+      WORKING_DIRECTORY \${binary_dir}
+      DEPENDEES configure
+      ALWAYS \${always}
+      ${log}
+      ${uses_terminal}
+      )"
+  )
 endfunction()
 
 
@@ -3122,13 +3071,19 @@
     set(uses_terminal "")
   endif()
 
-  ExternalProject_Add_Step(${name} install
-    COMMAND ${cmd}
-    WORKING_DIRECTORY ${binary_dir}
-    DEPENDEES build
-    ${log}
-    ${uses_terminal}
-    )
+  set(__cmdQuoted)
+  foreach(__item IN LISTS cmd)
+    string(APPEND __cmdQuoted " [==[${__item}]==]")
+  endforeach()
+  cmake_language(EVAL CODE "
+    ExternalProject_Add_Step(${name} install
+      COMMAND ${__cmdQuoted}
+      WORKING_DIRECTORY \${binary_dir}
+      DEPENDEES build
+      ${log}
+      ${uses_terminal}
+      )"
+  )
 endfunction()
 
 
@@ -3183,15 +3138,21 @@
       set(uses_terminal "")
     endif()
 
-    ExternalProject_Add_Step(${name} test
-      COMMAND ${cmd}
-      WORKING_DIRECTORY ${binary_dir}
-      ${dependees_args}
-      ${dependers_args}
-      ${exclude_args}
-      ${log}
-      ${uses_terminal}
-      )
+    set(__cmdQuoted)
+    foreach(__item IN LISTS cmd)
+      string(APPEND __cmdQuoted " [==[${__item}]==]")
+    endforeach()
+    cmake_language(EVAL CODE "
+      ExternalProject_Add_Step(${name} test
+        COMMAND ${__cmdQuoted}
+        WORKING_DIRECTORY \${binary_dir}
+        ${dependees_args}
+        ${dependers_args}
+        ${exclude_args}
+        ${log}
+        ${uses_terminal}
+        )"
+    )
   endif()
 endfunction()
 
diff --git a/share/cmake-3.17/Modules/FLTKCompatibility.cmake b/share/cmake-3.18/Modules/FLTKCompatibility.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FLTKCompatibility.cmake
rename to share/cmake-3.18/Modules/FLTKCompatibility.cmake
diff --git a/share/cmake-3.17/Modules/FeatureSummary.cmake b/share/cmake-3.18/Modules/FeatureSummary.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FeatureSummary.cmake
rename to share/cmake-3.18/Modules/FeatureSummary.cmake
diff --git a/share/cmake-3.17/Modules/FetchContent.cmake b/share/cmake-3.18/Modules/FetchContent.cmake
similarity index 87%
rename from share/cmake-3.17/Modules/FetchContent.cmake
rename to share/cmake-3.18/Modules/FetchContent.cmake
index f3e1b51..e05ca96 100644
--- a/share/cmake-3.17/Modules/FetchContent.cmake
+++ b/share/cmake-3.18/Modules/FetchContent.cmake
@@ -76,8 +76,11 @@
 populate some content in CMake's script mode.
 
 
+Commands
+^^^^^^^^
+
 Declaring Content Details
-^^^^^^^^^^^^^^^^^^^^^^^^^
+"""""""""""""""""""""""""
 
 .. command:: FetchContent_Declare
 
@@ -105,9 +108,13 @@
   The ``<contentOptions>`` can be any of the download or update/patch options
   that the :command:`ExternalProject_Add` command understands.  The configure,
   build, install and test steps are explicitly disabled and therefore options
-  related to them will be ignored.  In most cases, ``<contentOptions>`` will
-  just be a couple of options defining the download method and method-specific
-  details like a commit tag or archive hash.  For example:
+  related to them will be ignored.  The ``SOURCE_SUBDIR`` option is an
+  exception, see :command:`FetchContent_MakeAvailable` for details on how that
+  affects behavior.
+
+  In most cases, ``<contentOptions>`` will just be a couple of options defining
+  the download method and method-specific details like a commit tag or archive
+  hash.  For example:
 
   .. code-block:: cmake
 
@@ -130,7 +137,7 @@
     )
 
 Populating The Content
-^^^^^^^^^^^^^^^^^^^^^^
+""""""""""""""""""""""
 
 For most common scenarios, population means making content available to the
 main build according to previously declared details for that dependency.
@@ -161,8 +168,9 @@
 The above is such a common pattern that, where no custom steps are needed
 between the calls to :command:`FetchContent_Populate` and
 :command:`add_subdirectory`, equivalent logic can be obtained by calling
-:command:`FetchContent_MakeAvailable` instead (and should be preferred where
-it meets the needs of the project).
+:command:`FetchContent_MakeAvailable` instead.  Where it meets the needs of
+the project, :command:`FetchContent_MakeAvailable` should be preferred, as it
+is simpler and provides additional features over the pattern above.
 
 .. command:: FetchContent_Populate
 
@@ -332,6 +340,8 @@
     ``${CMAKE_CURRENT_BINARY_DIR}/<lcName>-subbuild`` and it would be unusual
     to need to override this default.  If a relative path is specified, it will
     be interpreted as relative to :variable:`CMAKE_CURRENT_BINARY_DIR`.
+    This option should not be confused with the ``SOURCE_SUBDIR`` option which
+    only affects the :command:`FetchContent_MakeAvailable` command.
 
   ``SOURCE_DIR``, ``BINARY_DIR``
     The ``SOURCE_DIR`` and ``BINARY_DIR`` arguments are supported by
@@ -406,15 +416,22 @@
 
   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 same
+  and for each one it loosely follows the
   :ref:`canonical pattern <fetch-content-canonical-pattern>` as
-  presented at the beginning of this section.  One small difference to
-  that pattern is that it will only call :command:`add_subdirectory` on the
+  presented at the beginning of this section.  An important difference is
+  that :command:`add_subdirectory` will only be called on the
   populated content if there is a ``CMakeLists.txt`` file in its top level
   source directory.  This allows the command to be used for dependencies
   that make downloaded content available at a known location but which do
   not need or support being added directly to the build.
 
+  The ``SOURCE_SUBDIR`` option can be given in the declared details to
+  instruct ``FetchContent_MakeAvailable()`` to look for a ``CMakeLists.txt``
+  file in a subdirectory below the top level (i.e. the same way that
+  ``SOURCE_SUBDIR`` is used by the :command:`ExternalProject_Add` command).
+  ``SOURCE_SUBDIR`` must always be a relative path.  See the next section
+  for an example of this option.
+
 
 .. _`fetch-content-examples`:
 
@@ -442,6 +459,23 @@
   # Catch2 will be defined and available to the rest of the build
   FetchContent_MakeAvailable(googletest Catch2)
 
+If the sub-project's ``CMakeLists.txt`` file is not at the top level of its
+source tree, the ``SOURCE_SUBDIR`` option can be used to tell ``FetchContent``
+where to find it.  The following example shows how to use that option and
+it also sets a variable which is meaningful to the subproject before pulling
+it into the main build:
+
+.. code-block:: cmake
+
+  include(FetchContent)
+  FetchContent_Declare(
+    protobuf
+    GIT_REPOSITORY https://github.com/protocolbuffers/protobuf.git
+    GIT_TAG        v3.12.0
+    SOURCE_SUBDIR  cmake
+  )
+  set(protobuf_BUILD_TESTS OFF)
+  FetchContent_MakeAvailable(protobuf)
 
 In more complex project hierarchies, the dependency relationships can be more
 complicated.  Consider a hierarchy where ``projA`` is the top level project and
@@ -622,7 +656,12 @@
       BRIEF_DOCS "Internal implementation detail of FetchContent_Populate()"
       FULL_DOCS  "Details used by FetchContent_Populate() for ${contentName}"
     )
-    set_property(GLOBAL PROPERTY ${propertyName} ${ARGN})
+    set(__cmdArgs)
+    foreach(__item IN LISTS ARGN)
+      string(APPEND __cmdArgs " [==[${__item}]==]")
+    endforeach()
+    cmake_language(EVAL CODE
+      "set_property(GLOBAL PROPERTY ${propertyName} ${__cmdArgs})")
   endif()
 
 endfunction()
@@ -655,7 +694,8 @@
   set(oneValueArgs SVN_REPOSITORY)
   set(multiValueArgs "")
 
-  cmake_parse_arguments(ARG "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
+  cmake_parse_arguments(PARSE_ARGV 1 ARG
+    "${options}" "${oneValueArgs}" "${multiValueArgs}")
 
   unset(srcDirSuffix)
   unset(svnRepoArgs)
@@ -673,13 +713,20 @@
   endif()
 
   string(TOLOWER ${contentName} contentNameLower)
-  __FetchContent_declareDetails(
-    ${contentNameLower}
-    SOURCE_DIR "${FETCHCONTENT_BASE_DIR}/${contentNameLower}-src${srcDirSuffix}"
-    BINARY_DIR "${FETCHCONTENT_BASE_DIR}/${contentNameLower}-build"
-    ${svnRepoArgs}
-    # List these last so they can override things we set above
-    ${ARG_UNPARSED_ARGUMENTS}
+
+  set(__argsQuoted)
+  foreach(__item IN LISTS ARG_UNPARSED_ARGUMENTS)
+    string(APPEND __argsQuoted " [==[${__item}]==]")
+  endforeach()
+  cmake_language(EVAL CODE "
+    __FetchContent_declareDetails(
+      ${contentNameLower}
+      SOURCE_DIR \"${FETCHCONTENT_BASE_DIR}/${contentNameLower}-src${srcDirSuffix}\"
+      BINARY_DIR \"${FETCHCONTENT_BASE_DIR}/${contentNameLower}-build\"
+      \${svnRepoArgs}
+      # List these last so they can override things we set above
+      ${__argsQuoted}
+    )"
   )
 
 endfunction()
@@ -793,6 +840,8 @@
       SUBBUILD_DIR
       SOURCE_DIR
       BINARY_DIR
+      # We need special processing if DOWNLOAD_NO_EXTRACT is true
+      DOWNLOAD_NO_EXTRACT
       # Prevent the following from being passed through
       CONFIGURE_COMMAND
       BUILD_COMMAND
@@ -808,7 +857,8 @@
   )
   set(multiValueArgs "")
 
-  cmake_parse_arguments(ARG "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
+  cmake_parse_arguments(PARSE_ARGV 1 ARG
+    "${options}" "${oneValueArgs}" "${multiValueArgs}")
 
   if(NOT ARG_SUBBUILD_DIR)
     message(FATAL_ERROR "Internal error: SUBBUILD_DIR not set")
@@ -843,6 +893,26 @@
     set(ARG_EXTRA "${ARG_EXTRA} \"${arg}\"")
   endforeach()
 
+  if(ARG_DOWNLOAD_NO_EXTRACT)
+    set(ARG_EXTRA "${ARG_EXTRA} DOWNLOAD_NO_EXTRACT YES")
+    set(__FETCHCONTENT_COPY_FILE
+"
+ExternalProject_Get_Property(${contentName}-populate DOWNLOADED_FILE)
+get_filename_component(dlFileName \"\${DOWNLOADED_FILE}\" NAME)
+
+ExternalProject_Add_Step(${contentName}-populate copyfile
+  COMMAND    \"${CMAKE_COMMAND}\" -E copy_if_different
+             \"<DOWNLOADED_FILE>\" \"${ARG_SOURCE_DIR}\"
+  DEPENDEES  patch
+  DEPENDERS  configure
+  BYPRODUCTS \"${ARG_SOURCE_DIR}/\${dlFileName}\"
+  COMMENT    \"Copying file to SOURCE_DIR\"
+)
+")
+  else()
+    unset(__FETCHCONTENT_COPY_FILE)
+  endif()
+
   # Hide output if requested, but save it to a variable in case there's an
   # error so we can show the output upon failure. When not quiet, don't
   # capture the output to a variable because the user may want to see the
@@ -860,16 +930,16 @@
   endif()
 
   if(CMAKE_GENERATOR)
-    set(generatorOpts "-G${CMAKE_GENERATOR}")
+    set(subCMakeOpts "-G${CMAKE_GENERATOR}")
     if(CMAKE_GENERATOR_PLATFORM)
-      list(APPEND generatorOpts "-A${CMAKE_GENERATOR_PLATFORM}")
+      list(APPEND subCMakeOpts "-A${CMAKE_GENERATOR_PLATFORM}")
     endif()
     if(CMAKE_GENERATOR_TOOLSET)
-      list(APPEND generatorOpts "-T${CMAKE_GENERATOR_TOOLSET}")
+      list(APPEND subCMakeOpts "-T${CMAKE_GENERATOR_TOOLSET}")
     endif()
 
     if(CMAKE_MAKE_PROGRAM)
-      list(APPEND generatorOpts "-DCMAKE_MAKE_PROGRAM:FILEPATH=${CMAKE_MAKE_PROGRAM}")
+      list(APPEND subCMakeOpts "-DCMAKE_MAKE_PROGRAM:FILEPATH=${CMAKE_MAKE_PROGRAM}")
     endif()
 
   else()
@@ -877,7 +947,12 @@
     # generator is set (and hence CMAKE_MAKE_PROGRAM could not be
     # trusted even if provided). We will have to rely on being
     # able to find the default generator and build tool.
-    unset(generatorOpts)
+    unset(subCMakeOpts)
+  endif()
+
+  if(DEFINED CMAKE_EP_GIT_REMOTE_UPDATE_STRATEGY)
+    list(APPEND subCMakeOpts
+      "-DCMAKE_EP_GIT_REMOTE_UPDATE_STRATEGY=${CMAKE_EP_GIT_REMOTE_UPDATE_STRATEGY}")
   endif()
 
   # Create and build a separate CMake project to carry out the population.
@@ -888,7 +963,7 @@
   configure_file("${CMAKE_CURRENT_FUNCTION_LIST_DIR}/FetchContent/CMakeLists.cmake.in"
                  "${ARG_SUBBUILD_DIR}/CMakeLists.txt")
   execute_process(
-    COMMAND ${CMAKE_COMMAND} ${generatorOpts} .
+    COMMAND ${CMAKE_COMMAND} ${subCMakeOpts} .
     RESULT_VARIABLE result
     ${outputOptions}
     WORKING_DIRECTORY "${ARG_SUBBUILD_DIR}"
@@ -1000,17 +1075,23 @@
       message(FATAL_ERROR "No details have been set for content: ${contentName}")
     endif()
 
-    __FetchContent_directPopulate(
-      ${contentNameLower}
-      ${quietFlag}
-      UPDATE_DISCONNECTED ${disconnectUpdates}
-      SUBBUILD_DIR "${FETCHCONTENT_BASE_DIR}/${contentNameLower}-subbuild"
-      SOURCE_DIR   "${FETCHCONTENT_BASE_DIR}/${contentNameLower}-src"
-      BINARY_DIR   "${FETCHCONTENT_BASE_DIR}/${contentNameLower}-build"
-      # Put the saved details last so they can override any of the
-      # the options we set above (this can include SOURCE_DIR or
-      # BUILD_DIR)
-      ${contentDetails}
+    set(__detailsQuoted)
+    foreach(__item IN LISTS contentDetails)
+      string(APPEND __detailsQuoted " [==[${__item}]==]")
+    endforeach()
+    cmake_language(EVAL CODE "
+      __FetchContent_directPopulate(
+        ${contentNameLower}
+        ${quietFlag}
+        UPDATE_DISCONNECTED ${disconnectUpdates}
+        SUBBUILD_DIR \"${FETCHCONTENT_BASE_DIR}/${contentNameLower}-subbuild\"
+        SOURCE_DIR   \"${FETCHCONTENT_BASE_DIR}/${contentNameLower}-src\"
+        BINARY_DIR   \"${FETCHCONTENT_BASE_DIR}/${contentNameLower}-build\"
+        # Put the saved details last so they can override any of the
+        # the options we set above (this can include SOURCE_DIR or
+        # BUILD_DIR)
+        ${__detailsQuoted}
+      )"
     )
   endif()
 
@@ -1047,11 +1128,26 @@
       # can be treated that way. Protecting the call with the check
       # allows this function to be used for projects that just want
       # to ensure the content exists, such as to provide content at
-      # a known location.
-      if(EXISTS ${${contentNameLower}_SOURCE_DIR}/CMakeLists.txt)
-        add_subdirectory(${${contentNameLower}_SOURCE_DIR}
-                         ${${contentNameLower}_BINARY_DIR})
+      # a known location. We check the saved details for an optional
+      # SOURCE_SUBDIR which can be used in the same way as its meaning
+      # for ExternalProject. It won't matter if it was passed through
+      # to the ExternalProject sub-build, since it would have been
+      # ignored there.
+      set(__fc_srcdir "${${contentNameLower}_SOURCE_DIR}")
+      __FetchContent_getSavedDetails(${contentName} contentDetails)
+      if("${contentDetails}" STREQUAL "")
+        message(FATAL_ERROR "No details have been set for content: ${contentName}")
       endif()
+      cmake_parse_arguments(__fc_arg "" "SOURCE_SUBDIR" "" ${contentDetails})
+      if(NOT "${__fc_arg_SOURCE_SUBDIR}" STREQUAL "")
+        string(APPEND __fc_srcdir "/${__fc_arg_SOURCE_SUBDIR}")
+      endif()
+
+      if(EXISTS ${__fc_srcdir}/CMakeLists.txt)
+        add_subdirectory(${__fc_srcdir} ${${contentNameLower}_BINARY_DIR})
+      endif()
+
+      unset(__fc_srcdir)
     endif()
   endforeach()
 
diff --git a/share/cmake-3.17/Modules/FetchContent/CMakeLists.cmake.in b/share/cmake-3.18/Modules/FetchContent/CMakeLists.cmake.in
similarity index 96%
rename from share/cmake-3.17/Modules/FetchContent/CMakeLists.cmake.in
rename to share/cmake-3.18/Modules/FetchContent/CMakeLists.cmake.in
index 0095b11..45e4df0 100644
--- a/share/cmake-3.17/Modules/FetchContent/CMakeLists.cmake.in
+++ b/share/cmake-3.18/Modules/FetchContent/CMakeLists.cmake.in
@@ -21,3 +21,5 @@
                     USES_TERMINAL_DOWNLOAD  YES
                     USES_TERMINAL_UPDATE    YES
 )
+
+@__FETCHCONTENT_COPY_FILE@
diff --git a/share/cmake-3.17/Modules/FindALSA.cmake b/share/cmake-3.18/Modules/FindALSA.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindALSA.cmake
rename to share/cmake-3.18/Modules/FindALSA.cmake
diff --git a/share/cmake-3.17/Modules/FindASPELL.cmake b/share/cmake-3.18/Modules/FindASPELL.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindASPELL.cmake
rename to share/cmake-3.18/Modules/FindASPELL.cmake
diff --git a/share/cmake-3.17/Modules/FindAVIFile.cmake b/share/cmake-3.18/Modules/FindAVIFile.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindAVIFile.cmake
rename to share/cmake-3.18/Modules/FindAVIFile.cmake
diff --git a/share/cmake-3.18/Modules/FindArmadillo.cmake b/share/cmake-3.18/Modules/FindArmadillo.cmake
new file mode 100644
index 0000000..243b9e0
--- /dev/null
+++ b/share/cmake-3.18/Modules/FindArmadillo.cmake
@@ -0,0 +1,131 @@
+# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindArmadillo
+-------------
+
+Find the Armadillo C++ library.
+Armadillo is a library for linear algebra & scientific computing.
+
+Using Armadillo:
+
+::
+
+  find_package(Armadillo REQUIRED)
+  include_directories(${ARMADILLO_INCLUDE_DIRS})
+  add_executable(foo foo.cc)
+  target_link_libraries(foo ${ARMADILLO_LIBRARIES})
+
+This module sets the following variables:
+
+::
+
+  ARMADILLO_FOUND - set to true if the library is found
+  ARMADILLO_INCLUDE_DIRS - list of required include directories
+  ARMADILLO_LIBRARIES - list of libraries to be linked
+  ARMADILLO_VERSION_MAJOR - major version number
+  ARMADILLO_VERSION_MINOR - minor version number
+  ARMADILLO_VERSION_PATCH - patch version number
+  ARMADILLO_VERSION_STRING - version number as a string (ex: "1.0.4")
+  ARMADILLO_VERSION_NAME - name of the version (ex: "Antipodean Antileech")
+#]=======================================================================]
+
+find_path(ARMADILLO_INCLUDE_DIR
+  NAMES armadillo
+  PATHS "$ENV{ProgramFiles}/Armadillo/include"
+  )
+mark_as_advanced(ARMADILLO_INCLUDE_DIR)
+
+if(ARMADILLO_INCLUDE_DIR)
+  # ------------------------------------------------------------------------
+  #  Extract version information from <armadillo>
+  # ------------------------------------------------------------------------
+
+  # WARNING: Early releases of Armadillo didn't have the arma_version.hpp file.
+  # (e.g. v.0.9.8-1 in ubuntu maverick packages (2001-03-15))
+  # If the file is missing, set all values to 0
+  set(ARMADILLO_VERSION_MAJOR 0)
+  set(ARMADILLO_VERSION_MINOR 0)
+  set(ARMADILLO_VERSION_PATCH 0)
+  set(ARMADILLO_VERSION_NAME "EARLY RELEASE")
+
+  if(EXISTS "${ARMADILLO_INCLUDE_DIR}/armadillo_bits/arma_version.hpp")
+
+    # Read and parse armdillo version header file for version number
+    file(STRINGS "${ARMADILLO_INCLUDE_DIR}/armadillo_bits/arma_version.hpp" _ARMA_HEADER_CONTENTS REGEX "#define ARMA_VERSION_[A-Z]+ ")
+    string(REGEX REPLACE ".*#define ARMA_VERSION_MAJOR ([0-9]+).*" "\\1" ARMADILLO_VERSION_MAJOR "${_ARMA_HEADER_CONTENTS}")
+    string(REGEX REPLACE ".*#define ARMA_VERSION_MINOR ([0-9]+).*" "\\1" ARMADILLO_VERSION_MINOR "${_ARMA_HEADER_CONTENTS}")
+    string(REGEX REPLACE ".*#define ARMA_VERSION_PATCH ([0-9]+).*" "\\1" ARMADILLO_VERSION_PATCH "${_ARMA_HEADER_CONTENTS}")
+
+    # WARNING: The number of spaces before the version name is not one.
+    string(REGEX REPLACE ".*#define ARMA_VERSION_NAME\ +\"([0-9a-zA-Z\ _-]+)\".*" "\\1" ARMADILLO_VERSION_NAME "${_ARMA_HEADER_CONTENTS}")
+
+  endif()
+
+  set(ARMADILLO_VERSION_STRING "${ARMADILLO_VERSION_MAJOR}.${ARMADILLO_VERSION_MINOR}.${ARMADILLO_VERSION_PATCH}")
+endif ()
+
+if(EXISTS "${ARMADILLO_INCLUDE_DIR}/armadillo_bits/config.hpp")
+  file(STRINGS "${ARMADILLO_INCLUDE_DIR}/armadillo_bits/config.hpp" _ARMA_CONFIG_CONTENTS REGEX "^#define ARMA_USE_[A-Z]+")
+  string(REGEX MATCH "ARMA_USE_WRAPPER" _ARMA_USE_WRAPPER "${_ARMA_CONFIG_CONTENTS}")
+  string(REGEX MATCH "ARMA_USE_LAPACK" _ARMA_USE_LAPACK "${_ARMA_CONFIG_CONTENTS}")
+  string(REGEX MATCH "ARMA_USE_BLAS" _ARMA_USE_BLAS "${_ARMA_CONFIG_CONTENTS}")
+  string(REGEX MATCH "ARMA_USE_ARPACK" _ARMA_USE_ARPACK "${_ARMA_CONFIG_CONTENTS}")
+  string(REGEX MATCH "ARMA_USE_HDF5" _ARMA_USE_HDF5 "${_ARMA_CONFIG_CONTENTS}")
+endif()
+
+include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
+
+# If _ARMA_USE_WRAPPER is set, then we just link to armadillo, but if it's not then we need support libraries instead
+set(_ARMA_SUPPORT_LIBRARIES)
+
+if(_ARMA_USE_WRAPPER)
+  # Link to the armadillo wrapper library.
+  find_library(ARMADILLO_LIBRARY
+    NAMES armadillo
+    PATHS
+      "$ENV{ProgramFiles}/Armadillo/lib"
+      "$ENV{ProgramFiles}/Armadillo/lib64"
+      "$ENV{ProgramFiles}/Armadillo"
+    )
+  mark_as_advanced(ARMADILLO_LIBRARY)
+  set(_ARMA_REQUIRED_VARS ARMADILLO_LIBRARY)
+else()
+  # Link directly to individual components.
+  set(ARMADILLO_LIBRARY "")
+  foreach(pkg
+      LAPACK
+      BLAS
+      ARPACK
+      HDF5
+      )
+    if(_ARMA_USE_${pkg})
+      find_package(${pkg} QUIET)
+      list(APPEND _ARMA_REQUIRED_VARS "${pkg}_FOUND")
+      if(${pkg}_FOUND)
+        list(APPEND _ARMA_SUPPORT_LIBRARIES ${${pkg}_LIBRARIES})
+      endif()
+    endif()
+  endforeach()
+endif()
+
+find_package_handle_standard_args(Armadillo
+  REQUIRED_VARS ARMADILLO_INCLUDE_DIR ${_ARMA_REQUIRED_VARS}
+  VERSION_VAR ARMADILLO_VERSION_STRING)
+
+if (ARMADILLO_FOUND)
+  set(ARMADILLO_INCLUDE_DIRS ${ARMADILLO_INCLUDE_DIR})
+  set(ARMADILLO_LIBRARIES ${ARMADILLO_LIBRARY} ${_ARMA_SUPPORT_LIBRARIES})
+endif ()
+
+# Clean up internal variables
+unset(_ARMA_REQUIRED_VARS)
+unset(_ARMA_SUPPORT_LIBRARIES)
+unset(_ARMA_USE_WRAPPER)
+unset(_ARMA_USE_LAPACK)
+unset(_ARMA_USE_BLAS)
+unset(_ARMA_USE_ARPACK)
+unset(_ARMA_USE_HDF5)
+unset(_ARMA_CONFIG_CONTENTS)
+unset(_ARMA_HEADER_CONTENTS)
diff --git a/share/cmake-3.17/Modules/FindBISON.cmake b/share/cmake-3.18/Modules/FindBISON.cmake
similarity index 98%
rename from share/cmake-3.17/Modules/FindBISON.cmake
rename to share/cmake-3.18/Modules/FindBISON.cmake
index 6b5828e..1e1a5a3 100644
--- a/share/cmake-3.17/Modules/FindBISON.cmake
+++ b/share/cmake-3.18/Modules/FindBISON.cmake
@@ -82,7 +82,7 @@
   add_executable(Foo main.cpp ${BISON_MyParser_OUTPUTS})
 #]=======================================================================]
 
-find_program(BISON_EXECUTABLE NAMES bison win_bison DOC "path to the bison executable")
+find_program(BISON_EXECUTABLE NAMES bison win-bison win_bison DOC "path to the bison executable")
 mark_as_advanced(BISON_EXECUTABLE)
 
 if(BISON_EXECUTABLE)
diff --git a/share/cmake-3.17/Modules/FindBLAS.cmake b/share/cmake-3.18/Modules/FindBLAS.cmake
similarity index 95%
rename from share/cmake-3.17/Modules/FindBLAS.cmake
rename to share/cmake-3.18/Modules/FindBLAS.cmake
index 9b6d09c..60f178b 100644
--- a/share/cmake-3.17/Modules/FindBLAS.cmake
+++ b/share/cmake-3.18/Modules/FindBLAS.cmake
@@ -48,6 +48,10 @@
   * ``ACML_GPU``
   * ``Apple``
   * ``NAS``
+  * ``Arm``
+  * ``Arm_mp``
+  * ``Arm_ilp64``
+  * ``Arm_ilp64_mp``
   * ``Generic``
 
 ``BLA_F95``
@@ -57,6 +61,15 @@
   if set ``pkg-config`` will be used to search for a BLAS library first
   and if one is found that is preferred
 
+Imported targets
+^^^^^^^^^^^^^^^^
+
+This module defines the following :prop_tgt:`IMPORTED` target:
+
+``BLAS::BLAS``
+  The libraries to use for BLAS, if found.
+
+
 Result Variables
 ^^^^^^^^^^^^^^^^
 
@@ -107,6 +120,17 @@
   endif()
 endif()
 
+function(_add_blas_target)
+  if(NOT TARGET BLAS::BLAS)
+    add_library(BLAS::BLAS INTERFACE IMPORTED)
+    if(BLAS_LIBRARIES)
+      set_target_properties(BLAS::BLAS PROPERTIES
+        INTERFACE_LINK_LIBRARIES "${BLAS_LIBRARIES}"
+      )
+    endif()
+  endif()
+endfunction()
+
 if(CMAKE_Fortran_COMPILER_LOADED)
   include(${CMAKE_CURRENT_LIST_DIR}/CheckFortranFunctionExists.cmake)
 else()
@@ -123,6 +147,7 @@
   if(PKGC_BLAS_FOUND)
     set(BLAS_FOUND ${PKGC_BLAS_FOUND})
     set(BLAS_LIBRARIES "${PKGC_BLAS_LINK_LIBRARIES}")
+    _add_blas_target()
     return()
   endif()
 endif()
@@ -448,7 +473,7 @@
         set(BLAS_mkl_OS_NAME "lin")
       endif()
       if(DEFINED ENV{MKLROOT})
-        set(BLAS_mkl_MKLROOT "$ENV{MKLROOT}")
+        file(TO_CMAKE_PATH "$ENV{MKLROOT}" BLAS_mkl_MKLROOT)
         # If MKLROOT points to the subdirectory 'mkl', use the parent directory instead
         # so we can better detect other relevant libraries in 'compiler' or 'tbb':
         get_filename_component(BLAS_mkl_MKLROOT_LAST_DIR "${BLAS_mkl_MKLROOT}" NAME)
@@ -550,6 +575,36 @@
   endif()
 endif()
 
+# ArmPL blas library? (https://developer.arm.com/tools-and-software/server-and-hpc/compile/arm-compiler-for-linux/arm-performance-libraries)
+if(BLA_VENDOR MATCHES "Arm" OR BLA_VENDOR STREQUAL "All")
+
+   # Check for 64bit Integer support
+   if(BLA_VENDOR MATCHES "_ilp64")
+     set(BLAS_armpl_LIB "armpl_ilp64")
+   else()
+     set(BLAS_armpl_LIB "armpl_lp64")
+   endif()
+
+   # Check for OpenMP support, VIA BLA_VENDOR of Arm_mp or Arm_ipl64_mp
+   if(BLA_VENDOR MATCHES "_mp")
+     set(BLAS_armpl_LIB "${BLAS_armpl_LIB}_mp")
+   endif()
+
+   if(NOT BLAS_LIBRARIES)
+    check_blas_libraries(
+      BLAS_LIBRARIES
+      BLAS
+      sgemm
+      ""
+      "${BLAS_armpl_LIB}"
+      ""
+      ""
+      ""
+      )
+  endif()
+
+endif()
+
 # FLAME's blis library? (https://github.com/flame/blis)
 if(BLA_VENDOR STREQUAL "FLAME" OR BLA_VENDOR STREQUAL "All")
   if(NOT BLAS_LIBRARIES)
@@ -892,11 +947,13 @@
   find_package_handle_standard_args(BLAS REQUIRED_VARS BLAS_LIBRARIES)
 endif()
 
+
 # On compilers that implicitly link BLAS (such as ftn, cc, and CC on Cray HPC machines)
 # we used a placeholder for empty BLAS_LIBRARIES to get through our logic above.
 if(BLAS_LIBRARIES STREQUAL "BLAS_LIBRARIES-PLACEHOLDER-FOR-EMPTY-LIBRARIES")
   set(BLAS_LIBRARIES "")
 endif()
 
+_add_blas_target()
 cmake_pop_check_state()
 set(CMAKE_FIND_LIBRARY_SUFFIXES ${_blas_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES})
diff --git a/share/cmake-3.17/Modules/FindBZip2.cmake b/share/cmake-3.18/Modules/FindBZip2.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindBZip2.cmake
rename to share/cmake-3.18/Modules/FindBZip2.cmake
diff --git a/share/cmake-3.17/Modules/FindBacktrace.cmake b/share/cmake-3.18/Modules/FindBacktrace.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindBacktrace.cmake
rename to share/cmake-3.18/Modules/FindBacktrace.cmake
diff --git a/share/cmake-3.17/Modules/FindBoost.cmake b/share/cmake-3.18/Modules/FindBoost.cmake
similarity index 80%
rename from share/cmake-3.17/Modules/FindBoost.cmake
rename to share/cmake-3.18/Modules/FindBoost.cmake
index 3c52466..13981d3 100644
--- a/share/cmake-3.17/Modules/FindBoost.cmake
+++ b/share/cmake-3.18/Modules/FindBoost.cmake
@@ -155,6 +155,10 @@
                              used if multiple compatible suffixes should
                              be tested for, in decreasing order of
                              preference.
+  Boost_LIB_PREFIX         - 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       - Set to the architecture-specific library suffix
                              (e.g. "-x64").  Default is auto-computed for the
                              C++ compiler in use.
@@ -750,7 +754,11 @@
         set(_boost_COMPILER "-mgw") # no GCC version encoding prior to 1.34
     else()
       _Boost_COMPILER_DUMPVERSION(_boost_COMPILER_VERSION _boost_COMPILER_VERSION_MAJOR _boost_COMPILER_VERSION_MINOR)
-      set(_boost_COMPILER "-mgw${_boost_COMPILER_VERSION}")
+      if(Boost_VERSION_STRING VERSION_GREATER_EQUAL 1.73 AND _boost_COMPILER_VERSION_MAJOR VERSION_GREATER_EQUAL 5)
+        set(_boost_COMPILER "-mgw${_boost_COMPILER_VERSION_MAJOR}")
+      else()
+        set(_boost_COMPILER "-mgw${_boost_COMPILER_VERSION}")
+      endif()
     endif()
   elseif (UNIX)
     _Boost_COMPILER_DUMPVERSION(_boost_COMPILER_VERSION _boost_COMPILER_VERSION_MAJOR _boost_COMPILER_VERSION_MINOR)
@@ -850,318 +858,334 @@
   endif()
 
   set(_Boost_IMPORTED_TARGETS TRUE)
-  if(Boost_VERSION_STRING AND Boost_VERSION_STRING VERSION_LESS 1.33.0)
-    message(WARNING "Imported targets and dependency information not available for Boost version ${Boost_VERSION_STRING} (all versions older than 1.33)")
-    set(_Boost_IMPORTED_TARGETS FALSE)
-  elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.33.0 AND Boost_VERSION_STRING VERSION_LESS 1.35.0)
-    set(_Boost_IOSTREAMS_DEPENDENCIES regex thread)
-    set(_Boost_REGEX_DEPENDENCIES thread)
-    set(_Boost_WAVE_DEPENDENCIES filesystem thread)
-    set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
-  elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.35.0 AND Boost_VERSION_STRING VERSION_LESS 1.36.0)
-    set(_Boost_FILESYSTEM_DEPENDENCIES system)
-    set(_Boost_IOSTREAMS_DEPENDENCIES regex)
-    set(_Boost_MPI_DEPENDENCIES serialization)
-    set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
-    set(_Boost_WAVE_DEPENDENCIES filesystem system thread)
-    set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
-  elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.36.0 AND Boost_VERSION_STRING VERSION_LESS 1.38.0)
-    set(_Boost_FILESYSTEM_DEPENDENCIES system)
-    set(_Boost_IOSTREAMS_DEPENDENCIES regex)
-    set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l)
-    set(_Boost_MPI_DEPENDENCIES serialization)
-    set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
-    set(_Boost_WAVE_DEPENDENCIES filesystem system thread)
-    set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
-  elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.38.0 AND Boost_VERSION_STRING VERSION_LESS 1.43.0)
-    set(_Boost_FILESYSTEM_DEPENDENCIES system)
-    set(_Boost_IOSTREAMS_DEPENDENCIES regex)
-    set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l)
-    set(_Boost_MPI_DEPENDENCIES serialization)
-    set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
-    set(_Boost_THREAD_DEPENDENCIES date_time)
-    set(_Boost_WAVE_DEPENDENCIES filesystem system thread date_time)
-    set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
-  elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.43.0 AND Boost_VERSION_STRING VERSION_LESS 1.44.0)
-    set(_Boost_FILESYSTEM_DEPENDENCIES system)
-    set(_Boost_IOSTREAMS_DEPENDENCIES regex)
-    set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l random)
-    set(_Boost_MPI_DEPENDENCIES serialization)
-    set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
-    set(_Boost_THREAD_DEPENDENCIES date_time)
-    set(_Boost_WAVE_DEPENDENCIES filesystem system thread date_time)
-    set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
-  elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.44.0 AND Boost_VERSION_STRING VERSION_LESS 1.45.0)
-    set(_Boost_FILESYSTEM_DEPENDENCIES system)
-    set(_Boost_IOSTREAMS_DEPENDENCIES regex)
-    set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l random serialization)
-    set(_Boost_MPI_DEPENDENCIES serialization)
-    set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
-    set(_Boost_THREAD_DEPENDENCIES date_time)
-    set(_Boost_WAVE_DEPENDENCIES serialization filesystem system thread date_time)
-    set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
-  elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.45.0 AND Boost_VERSION_STRING VERSION_LESS 1.47.0)
-    set(_Boost_FILESYSTEM_DEPENDENCIES system)
-    set(_Boost_IOSTREAMS_DEPENDENCIES regex)
-    set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l random)
-    set(_Boost_MPI_DEPENDENCIES serialization)
-    set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
-    set(_Boost_THREAD_DEPENDENCIES date_time)
-    set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread date_time)
-    set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
-  elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.47.0 AND Boost_VERSION_STRING VERSION_LESS 1.48.0)
-    set(_Boost_CHRONO_DEPENDENCIES system)
-    set(_Boost_FILESYSTEM_DEPENDENCIES system)
-    set(_Boost_IOSTREAMS_DEPENDENCIES regex)
-    set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l random)
-    set(_Boost_MPI_DEPENDENCIES serialization)
-    set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
-    set(_Boost_THREAD_DEPENDENCIES date_time)
-    set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread date_time)
-    set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
-  elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.48.0 AND Boost_VERSION_STRING VERSION_LESS 1.50.0)
-    set(_Boost_CHRONO_DEPENDENCIES system)
-    set(_Boost_FILESYSTEM_DEPENDENCIES system)
-    set(_Boost_IOSTREAMS_DEPENDENCIES regex)
-    set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l random)
-    set(_Boost_MPI_DEPENDENCIES serialization)
-    set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
-    set(_Boost_THREAD_DEPENDENCIES date_time)
-    set(_Boost_TIMER_DEPENDENCIES chrono system)
-    set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread date_time)
-    set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
-  elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.50.0 AND Boost_VERSION_STRING VERSION_LESS 1.53.0)
-    set(_Boost_CHRONO_DEPENDENCIES system)
-    set(_Boost_FILESYSTEM_DEPENDENCIES system)
-    set(_Boost_IOSTREAMS_DEPENDENCIES regex)
-    set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l regex random)
-    set(_Boost_MPI_DEPENDENCIES serialization)
-    set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
-    set(_Boost_THREAD_DEPENDENCIES chrono system date_time)
-    set(_Boost_TIMER_DEPENDENCIES chrono system)
-    set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time)
-    set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
-  elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.53.0 AND Boost_VERSION_STRING VERSION_LESS 1.54.0)
-    set(_Boost_ATOMIC_DEPENDENCIES thread chrono system date_time)
-    set(_Boost_CHRONO_DEPENDENCIES system)
-    set(_Boost_FILESYSTEM_DEPENDENCIES system)
-    set(_Boost_IOSTREAMS_DEPENDENCIES regex)
-    set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l regex random)
-    set(_Boost_MPI_DEPENDENCIES serialization)
-    set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
-    set(_Boost_THREAD_DEPENDENCIES chrono system date_time atomic)
-    set(_Boost_TIMER_DEPENDENCIES chrono system)
-    set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time)
-    set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
-  elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.54.0 AND Boost_VERSION_STRING VERSION_LESS 1.55.0)
-    set(_Boost_ATOMIC_DEPENDENCIES thread chrono system date_time)
-    set(_Boost_CHRONO_DEPENDENCIES system)
-    set(_Boost_FILESYSTEM_DEPENDENCIES system)
-    set(_Boost_IOSTREAMS_DEPENDENCIES regex)
-    set(_Boost_LOG_DEPENDENCIES log_setup date_time system filesystem thread regex chrono)
-    set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l regex random)
-    set(_Boost_MPI_DEPENDENCIES serialization)
-    set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
-    set(_Boost_THREAD_DEPENDENCIES chrono system date_time atomic)
-    set(_Boost_TIMER_DEPENDENCIES chrono system)
-    set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic)
-    set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
-  elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.55.0 AND Boost_VERSION_STRING VERSION_LESS 1.56.0)
-    set(_Boost_CHRONO_DEPENDENCIES system)
-    set(_Boost_COROUTINE_DEPENDENCIES context system)
-    set(_Boost_FILESYSTEM_DEPENDENCIES system)
-    set(_Boost_IOSTREAMS_DEPENDENCIES regex)
-    set(_Boost_LOG_DEPENDENCIES log_setup date_time system filesystem thread regex chrono)
-    set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l regex random)
-    set(_Boost_MPI_DEPENDENCIES serialization)
-    set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
-    set(_Boost_THREAD_DEPENDENCIES chrono system date_time atomic)
-    set(_Boost_TIMER_DEPENDENCIES chrono system)
-    set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic)
-    set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
-  elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.56.0 AND Boost_VERSION_STRING VERSION_LESS 1.59.0)
-    set(_Boost_CHRONO_DEPENDENCIES system)
-    set(_Boost_COROUTINE_DEPENDENCIES context system)
-    set(_Boost_FILESYSTEM_DEPENDENCIES system)
-    set(_Boost_IOSTREAMS_DEPENDENCIES regex)
-    set(_Boost_LOG_DEPENDENCIES log_setup date_time system filesystem thread regex chrono)
-    set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l atomic)
-    set(_Boost_MPI_DEPENDENCIES serialization)
-    set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
-    set(_Boost_RANDOM_DEPENDENCIES system)
-    set(_Boost_THREAD_DEPENDENCIES chrono system date_time atomic)
-    set(_Boost_TIMER_DEPENDENCIES chrono system)
-    set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic)
-    set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
-  elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.59.0 AND Boost_VERSION_STRING VERSION_LESS 1.60.0)
-    set(_Boost_CHRONO_DEPENDENCIES system)
-    set(_Boost_COROUTINE_DEPENDENCIES context system)
-    set(_Boost_FILESYSTEM_DEPENDENCIES system)
-    set(_Boost_IOSTREAMS_DEPENDENCIES regex)
-    set(_Boost_LOG_DEPENDENCIES log_setup date_time system filesystem thread regex chrono atomic)
-    set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l atomic)
-    set(_Boost_MPI_DEPENDENCIES serialization)
-    set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
-    set(_Boost_RANDOM_DEPENDENCIES system)
-    set(_Boost_THREAD_DEPENDENCIES chrono system date_time atomic)
-    set(_Boost_TIMER_DEPENDENCIES chrono system)
-    set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic)
-    set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
-  elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.60.0 AND Boost_VERSION_STRING VERSION_LESS 1.61.0)
-    set(_Boost_CHRONO_DEPENDENCIES system)
-    set(_Boost_COROUTINE_DEPENDENCIES context system)
-    set(_Boost_FILESYSTEM_DEPENDENCIES system)
-    set(_Boost_IOSTREAMS_DEPENDENCIES regex)
-    set(_Boost_LOG_DEPENDENCIES date_time log_setup system filesystem thread regex chrono atomic)
-    set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l atomic)
-    set(_Boost_MPI_DEPENDENCIES serialization)
-    set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
-    set(_Boost_RANDOM_DEPENDENCIES system)
-    set(_Boost_THREAD_DEPENDENCIES chrono system date_time atomic)
-    set(_Boost_TIMER_DEPENDENCIES chrono system)
-    set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic)
-    set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
-  elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.61.0 AND Boost_VERSION_STRING VERSION_LESS 1.62.0)
-    set(_Boost_CHRONO_DEPENDENCIES system)
-    set(_Boost_CONTEXT_DEPENDENCIES thread chrono system date_time)
-    set(_Boost_COROUTINE_DEPENDENCIES context system)
-    set(_Boost_FILESYSTEM_DEPENDENCIES system)
-    set(_Boost_IOSTREAMS_DEPENDENCIES regex)
-    set(_Boost_LOG_DEPENDENCIES date_time log_setup system filesystem thread regex chrono atomic)
-    set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l atomic)
-    set(_Boost_MPI_DEPENDENCIES serialization)
-    set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
-    set(_Boost_RANDOM_DEPENDENCIES system)
-    set(_Boost_THREAD_DEPENDENCIES chrono system date_time atomic)
-    set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic)
-    set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
-  elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.62.0 AND Boost_VERSION_STRING VERSION_LESS 1.63.0)
-    set(_Boost_CHRONO_DEPENDENCIES system)
-    set(_Boost_CONTEXT_DEPENDENCIES thread chrono system date_time)
-    set(_Boost_COROUTINE_DEPENDENCIES context system)
-    set(_Boost_FIBER_DEPENDENCIES context thread chrono system date_time)
-    set(_Boost_FILESYSTEM_DEPENDENCIES system)
-    set(_Boost_IOSTREAMS_DEPENDENCIES regex)
-    set(_Boost_LOG_DEPENDENCIES date_time log_setup system filesystem thread regex chrono atomic)
-    set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l atomic)
-    set(_Boost_MPI_DEPENDENCIES serialization)
-    set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
-    set(_Boost_RANDOM_DEPENDENCIES system)
-    set(_Boost_THREAD_DEPENDENCIES chrono system date_time atomic)
-    set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic)
-    set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
-  elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.63.0 AND Boost_VERSION_STRING VERSION_LESS 1.65.0)
-    set(_Boost_CHRONO_DEPENDENCIES system)
-    set(_Boost_CONTEXT_DEPENDENCIES thread chrono system date_time)
-    set(_Boost_COROUTINE_DEPENDENCIES context system)
-    set(_Boost_COROUTINE2_DEPENDENCIES context fiber thread chrono system date_time)
-    set(_Boost_FIBER_DEPENDENCIES context thread chrono system date_time)
-    set(_Boost_FILESYSTEM_DEPENDENCIES system)
-    set(_Boost_IOSTREAMS_DEPENDENCIES regex)
-    set(_Boost_LOG_DEPENDENCIES date_time log_setup system filesystem thread regex chrono atomic)
-    set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l atomic)
-    set(_Boost_MPI_DEPENDENCIES serialization)
-    set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
-    set(_Boost_RANDOM_DEPENDENCIES system)
-    set(_Boost_THREAD_DEPENDENCIES chrono system date_time atomic)
-    set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic)
-    set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
-  elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.65.0 AND Boost_VERSION_STRING VERSION_LESS 1.67.0)
-    set(_Boost_CHRONO_DEPENDENCIES system)
-    set(_Boost_CONTEXT_DEPENDENCIES thread chrono system date_time)
-    set(_Boost_COROUTINE_DEPENDENCIES context system)
-    set(_Boost_FIBER_DEPENDENCIES context thread chrono system date_time)
-    set(_Boost_FILESYSTEM_DEPENDENCIES system)
-    set(_Boost_IOSTREAMS_DEPENDENCIES regex)
-    set(_Boost_LOG_DEPENDENCIES date_time log_setup system filesystem thread regex chrono atomic)
-    set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l atomic)
-    set(_Boost_MPI_DEPENDENCIES serialization)
-    set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
-    set(_Boost_NUMPY_DEPENDENCIES python${component_python_version})
-    set(_Boost_RANDOM_DEPENDENCIES system)
-    set(_Boost_THREAD_DEPENDENCIES chrono system date_time atomic)
-    set(_Boost_TIMER_DEPENDENCIES chrono system)
-    set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic)
-    set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
-  elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.67.0 AND Boost_VERSION_STRING VERSION_LESS 1.68.0)
-    set(_Boost_CHRONO_DEPENDENCIES system)
-    set(_Boost_CONTEXT_DEPENDENCIES thread chrono system date_time)
-    set(_Boost_COROUTINE_DEPENDENCIES context system)
-    set(_Boost_FIBER_DEPENDENCIES context thread chrono system date_time)
-    set(_Boost_FILESYSTEM_DEPENDENCIES system)
-    set(_Boost_IOSTREAMS_DEPENDENCIES regex)
-    set(_Boost_LOG_DEPENDENCIES date_time log_setup system filesystem thread regex chrono atomic)
-    set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l atomic)
-    set(_Boost_MPI_DEPENDENCIES serialization)
-    set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
-    set(_Boost_NUMPY_DEPENDENCIES python${component_python_version})
-    set(_Boost_RANDOM_DEPENDENCIES system)
-    set(_Boost_THREAD_DEPENDENCIES chrono system date_time atomic)
-    set(_Boost_TIMER_DEPENDENCIES chrono system)
-    set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic)
-    set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
-  elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.68.0 AND Boost_VERSION_STRING VERSION_LESS 1.69.0)
-    set(_Boost_CHRONO_DEPENDENCIES system)
-    set(_Boost_CONTEXT_DEPENDENCIES thread chrono system date_time)
-    set(_Boost_CONTRACT_DEPENDENCIES thread chrono system date_time)
-    set(_Boost_COROUTINE_DEPENDENCIES context system)
-    set(_Boost_FIBER_DEPENDENCIES context thread chrono system date_time)
-    set(_Boost_FILESYSTEM_DEPENDENCIES system)
-    set(_Boost_IOSTREAMS_DEPENDENCIES regex)
-    set(_Boost_LOG_DEPENDENCIES date_time log_setup system filesystem thread regex chrono atomic)
-    set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l atomic)
-    set(_Boost_MPI_DEPENDENCIES serialization)
-    set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
-    set(_Boost_NUMPY_DEPENDENCIES python${component_python_version})
-    set(_Boost_RANDOM_DEPENDENCIES system)
-    set(_Boost_THREAD_DEPENDENCIES chrono system date_time atomic)
-    set(_Boost_TIMER_DEPENDENCIES chrono system)
-    set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic)
-    set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
-  elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.69.0 AND Boost_VERSION_STRING VERSION_LESS 1.70.0)
-    set(_Boost_CONTRACT_DEPENDENCIES thread chrono date_time)
-    set(_Boost_COROUTINE_DEPENDENCIES context)
-    set(_Boost_FIBER_DEPENDENCIES context)
-    set(_Boost_IOSTREAMS_DEPENDENCIES regex)
-    set(_Boost_LOG_DEPENDENCIES date_time log_setup filesystem thread regex chrono atomic)
-    set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l atomic)
-    set(_Boost_MPI_DEPENDENCIES serialization)
-    set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
-    set(_Boost_NUMPY_DEPENDENCIES python${component_python_version})
-    set(_Boost_THREAD_DEPENDENCIES chrono date_time atomic)
-    set(_Boost_TIMER_DEPENDENCIES chrono system)
-    set(_Boost_WAVE_DEPENDENCIES filesystem serialization thread chrono date_time atomic)
-    set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
-  elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.70.0 AND Boost_VERSION_STRING VERSION_LESS 1.72.0)
-    set(_Boost_CONTRACT_DEPENDENCIES thread chrono date_time)
-    set(_Boost_COROUTINE_DEPENDENCIES context)
-    set(_Boost_FIBER_DEPENDENCIES context)
-    set(_Boost_IOSTREAMS_DEPENDENCIES regex)
-    set(_Boost_LOG_DEPENDENCIES date_time log_setup filesystem thread regex chrono atomic)
-    set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l atomic)
-    set(_Boost_MPI_DEPENDENCIES serialization)
-    set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
-    set(_Boost_NUMPY_DEPENDENCIES python${component_python_version})
-    set(_Boost_THREAD_DEPENDENCIES chrono date_time atomic)
-    set(_Boost_TIMER_DEPENDENCIES chrono)
-    set(_Boost_WAVE_DEPENDENCIES filesystem serialization thread chrono date_time atomic)
-    set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
-  elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.72.0)
-    set(_Boost_CONTRACT_DEPENDENCIES thread chrono date_time)
-    set(_Boost_COROUTINE_DEPENDENCIES context)
-    set(_Boost_FIBER_DEPENDENCIES context)
-    set(_Boost_IOSTREAMS_DEPENDENCIES regex)
-    set(_Boost_LOG_DEPENDENCIES date_time log_setup filesystem thread regex chrono atomic)
-    set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l chrono atomic)
-    set(_Boost_MPI_DEPENDENCIES serialization)
-    set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
-    set(_Boost_NUMPY_DEPENDENCIES python${component_python_version})
-    set(_Boost_THREAD_DEPENDENCIES chrono date_time atomic)
-    set(_Boost_TIMER_DEPENDENCIES chrono)
-    set(_Boost_WAVE_DEPENDENCIES filesystem serialization thread chrono date_time atomic)
-    set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
-    if(NOT Boost_VERSION_STRING VERSION_LESS 1.73.0)
-      message(WARNING "New Boost version may have incorrect or missing dependencies and imported targets")
+  if(Boost_VERSION_STRING)
+    if(Boost_VERSION_STRING VERSION_LESS 1.33.0)
+      message(WARNING "Imported targets and dependency information not available for Boost version ${Boost_VERSION_STRING} (all versions older than 1.33)")
+      set(_Boost_IMPORTED_TARGETS FALSE)
+    elseif(Boost_VERSION_STRING VERSION_LESS 1.35.0)
+      set(_Boost_IOSTREAMS_DEPENDENCIES regex thread)
+      set(_Boost_REGEX_DEPENDENCIES thread)
+      set(_Boost_WAVE_DEPENDENCIES filesystem thread)
+      set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
+    elseif(Boost_VERSION_STRING VERSION_LESS 1.36.0)
+      set(_Boost_FILESYSTEM_DEPENDENCIES system)
+      set(_Boost_IOSTREAMS_DEPENDENCIES regex)
+      set(_Boost_MPI_DEPENDENCIES serialization)
+      set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
+      set(_Boost_WAVE_DEPENDENCIES filesystem system thread)
+      set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
+    elseif(Boost_VERSION_STRING VERSION_LESS 1.38.0)
+      set(_Boost_FILESYSTEM_DEPENDENCIES system)
+      set(_Boost_IOSTREAMS_DEPENDENCIES regex)
+      set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l)
+      set(_Boost_MPI_DEPENDENCIES serialization)
+      set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
+      set(_Boost_WAVE_DEPENDENCIES filesystem system thread)
+      set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
+    elseif(Boost_VERSION_STRING VERSION_LESS 1.43.0)
+      set(_Boost_FILESYSTEM_DEPENDENCIES system)
+      set(_Boost_IOSTREAMS_DEPENDENCIES regex)
+      set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l)
+      set(_Boost_MPI_DEPENDENCIES serialization)
+      set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
+      set(_Boost_THREAD_DEPENDENCIES date_time)
+      set(_Boost_WAVE_DEPENDENCIES filesystem system thread date_time)
+      set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
+    elseif(Boost_VERSION_STRING VERSION_LESS 1.44.0)
+      set(_Boost_FILESYSTEM_DEPENDENCIES system)
+      set(_Boost_IOSTREAMS_DEPENDENCIES regex)
+      set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l random)
+      set(_Boost_MPI_DEPENDENCIES serialization)
+      set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
+      set(_Boost_THREAD_DEPENDENCIES date_time)
+      set(_Boost_WAVE_DEPENDENCIES filesystem system thread date_time)
+      set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
+    elseif(Boost_VERSION_STRING VERSION_LESS 1.45.0)
+      set(_Boost_FILESYSTEM_DEPENDENCIES system)
+      set(_Boost_IOSTREAMS_DEPENDENCIES regex)
+      set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l random serialization)
+      set(_Boost_MPI_DEPENDENCIES serialization)
+      set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
+      set(_Boost_THREAD_DEPENDENCIES date_time)
+      set(_Boost_WAVE_DEPENDENCIES serialization filesystem system thread date_time)
+      set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
+    elseif(Boost_VERSION_STRING VERSION_LESS 1.47.0)
+      set(_Boost_FILESYSTEM_DEPENDENCIES system)
+      set(_Boost_IOSTREAMS_DEPENDENCIES regex)
+      set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l random)
+      set(_Boost_MPI_DEPENDENCIES serialization)
+      set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
+      set(_Boost_THREAD_DEPENDENCIES date_time)
+      set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread date_time)
+      set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
+    elseif(Boost_VERSION_STRING VERSION_LESS 1.48.0)
+      set(_Boost_CHRONO_DEPENDENCIES system)
+      set(_Boost_FILESYSTEM_DEPENDENCIES system)
+      set(_Boost_IOSTREAMS_DEPENDENCIES regex)
+      set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l random)
+      set(_Boost_MPI_DEPENDENCIES serialization)
+      set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
+      set(_Boost_THREAD_DEPENDENCIES date_time)
+      set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread date_time)
+      set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
+    elseif(Boost_VERSION_STRING VERSION_LESS 1.50.0)
+      set(_Boost_CHRONO_DEPENDENCIES system)
+      set(_Boost_FILESYSTEM_DEPENDENCIES system)
+      set(_Boost_IOSTREAMS_DEPENDENCIES regex)
+      set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l random)
+      set(_Boost_MPI_DEPENDENCIES serialization)
+      set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
+      set(_Boost_THREAD_DEPENDENCIES date_time)
+      set(_Boost_TIMER_DEPENDENCIES chrono system)
+      set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread date_time)
+      set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
+    elseif(Boost_VERSION_STRING VERSION_LESS 1.53.0)
+      set(_Boost_CHRONO_DEPENDENCIES system)
+      set(_Boost_FILESYSTEM_DEPENDENCIES system)
+      set(_Boost_IOSTREAMS_DEPENDENCIES regex)
+      set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l regex random)
+      set(_Boost_MPI_DEPENDENCIES serialization)
+      set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
+      set(_Boost_THREAD_DEPENDENCIES chrono system date_time)
+      set(_Boost_TIMER_DEPENDENCIES chrono system)
+      set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time)
+      set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
+    elseif(Boost_VERSION_STRING VERSION_LESS 1.54.0)
+      set(_Boost_ATOMIC_DEPENDENCIES thread chrono system date_time)
+      set(_Boost_CHRONO_DEPENDENCIES system)
+      set(_Boost_FILESYSTEM_DEPENDENCIES system)
+      set(_Boost_IOSTREAMS_DEPENDENCIES regex)
+      set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l regex random)
+      set(_Boost_MPI_DEPENDENCIES serialization)
+      set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
+      set(_Boost_THREAD_DEPENDENCIES chrono system date_time atomic)
+      set(_Boost_TIMER_DEPENDENCIES chrono system)
+      set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time)
+      set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
+    elseif(Boost_VERSION_STRING VERSION_LESS 1.55.0)
+      set(_Boost_ATOMIC_DEPENDENCIES thread chrono system date_time)
+      set(_Boost_CHRONO_DEPENDENCIES system)
+      set(_Boost_FILESYSTEM_DEPENDENCIES system)
+      set(_Boost_IOSTREAMS_DEPENDENCIES regex)
+      set(_Boost_LOG_DEPENDENCIES log_setup date_time system filesystem thread regex chrono)
+      set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l regex random)
+      set(_Boost_MPI_DEPENDENCIES serialization)
+      set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
+      set(_Boost_THREAD_DEPENDENCIES chrono system date_time atomic)
+      set(_Boost_TIMER_DEPENDENCIES chrono system)
+      set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic)
+      set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
+    elseif(Boost_VERSION_STRING VERSION_LESS 1.56.0)
+      set(_Boost_CHRONO_DEPENDENCIES system)
+      set(_Boost_COROUTINE_DEPENDENCIES context system)
+      set(_Boost_FILESYSTEM_DEPENDENCIES system)
+      set(_Boost_IOSTREAMS_DEPENDENCIES regex)
+      set(_Boost_LOG_DEPENDENCIES log_setup date_time system filesystem thread regex chrono)
+      set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l regex random)
+      set(_Boost_MPI_DEPENDENCIES serialization)
+      set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
+      set(_Boost_THREAD_DEPENDENCIES chrono system date_time atomic)
+      set(_Boost_TIMER_DEPENDENCIES chrono system)
+      set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic)
+      set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
+    elseif(Boost_VERSION_STRING VERSION_LESS 1.59.0)
+      set(_Boost_CHRONO_DEPENDENCIES system)
+      set(_Boost_COROUTINE_DEPENDENCIES context system)
+      set(_Boost_FILESYSTEM_DEPENDENCIES system)
+      set(_Boost_IOSTREAMS_DEPENDENCIES regex)
+      set(_Boost_LOG_DEPENDENCIES log_setup date_time system filesystem thread regex chrono)
+      set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l atomic)
+      set(_Boost_MPI_DEPENDENCIES serialization)
+      set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
+      set(_Boost_RANDOM_DEPENDENCIES system)
+      set(_Boost_THREAD_DEPENDENCIES chrono system date_time atomic)
+      set(_Boost_TIMER_DEPENDENCIES chrono system)
+      set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic)
+      set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
+    elseif(Boost_VERSION_STRING VERSION_LESS 1.60.0)
+      set(_Boost_CHRONO_DEPENDENCIES system)
+      set(_Boost_COROUTINE_DEPENDENCIES context system)
+      set(_Boost_FILESYSTEM_DEPENDENCIES system)
+      set(_Boost_IOSTREAMS_DEPENDENCIES regex)
+      set(_Boost_LOG_DEPENDENCIES log_setup date_time system filesystem thread regex chrono atomic)
+      set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l atomic)
+      set(_Boost_MPI_DEPENDENCIES serialization)
+      set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
+      set(_Boost_RANDOM_DEPENDENCIES system)
+      set(_Boost_THREAD_DEPENDENCIES chrono system date_time atomic)
+      set(_Boost_TIMER_DEPENDENCIES chrono system)
+      set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic)
+      set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
+    elseif(Boost_VERSION_STRING VERSION_LESS 1.61.0)
+      set(_Boost_CHRONO_DEPENDENCIES system)
+      set(_Boost_COROUTINE_DEPENDENCIES context system)
+      set(_Boost_FILESYSTEM_DEPENDENCIES system)
+      set(_Boost_IOSTREAMS_DEPENDENCIES regex)
+      set(_Boost_LOG_DEPENDENCIES date_time log_setup system filesystem thread regex chrono atomic)
+      set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l atomic)
+      set(_Boost_MPI_DEPENDENCIES serialization)
+      set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
+      set(_Boost_RANDOM_DEPENDENCIES system)
+      set(_Boost_THREAD_DEPENDENCIES chrono system date_time atomic)
+      set(_Boost_TIMER_DEPENDENCIES chrono system)
+      set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic)
+      set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
+    elseif(Boost_VERSION_STRING VERSION_LESS 1.62.0)
+      set(_Boost_CHRONO_DEPENDENCIES system)
+      set(_Boost_CONTEXT_DEPENDENCIES thread chrono system date_time)
+      set(_Boost_COROUTINE_DEPENDENCIES context system)
+      set(_Boost_FILESYSTEM_DEPENDENCIES system)
+      set(_Boost_IOSTREAMS_DEPENDENCIES regex)
+      set(_Boost_LOG_DEPENDENCIES date_time log_setup system filesystem thread regex chrono atomic)
+      set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l atomic)
+      set(_Boost_MPI_DEPENDENCIES serialization)
+      set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
+      set(_Boost_RANDOM_DEPENDENCIES system)
+      set(_Boost_THREAD_DEPENDENCIES chrono system date_time atomic)
+      set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic)
+      set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
+    elseif(Boost_VERSION_STRING VERSION_LESS 1.63.0)
+      set(_Boost_CHRONO_DEPENDENCIES system)
+      set(_Boost_CONTEXT_DEPENDENCIES thread chrono system date_time)
+      set(_Boost_COROUTINE_DEPENDENCIES context system)
+      set(_Boost_FIBER_DEPENDENCIES context thread chrono system date_time)
+      set(_Boost_FILESYSTEM_DEPENDENCIES system)
+      set(_Boost_IOSTREAMS_DEPENDENCIES regex)
+      set(_Boost_LOG_DEPENDENCIES date_time log_setup system filesystem thread regex chrono atomic)
+      set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l atomic)
+      set(_Boost_MPI_DEPENDENCIES serialization)
+      set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
+      set(_Boost_RANDOM_DEPENDENCIES system)
+      set(_Boost_THREAD_DEPENDENCIES chrono system date_time atomic)
+      set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic)
+      set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
+    elseif(Boost_VERSION_STRING VERSION_LESS 1.65.0)
+      set(_Boost_CHRONO_DEPENDENCIES system)
+      set(_Boost_CONTEXT_DEPENDENCIES thread chrono system date_time)
+      set(_Boost_COROUTINE_DEPENDENCIES context system)
+      set(_Boost_COROUTINE2_DEPENDENCIES context fiber thread chrono system date_time)
+      set(_Boost_FIBER_DEPENDENCIES context thread chrono system date_time)
+      set(_Boost_FILESYSTEM_DEPENDENCIES system)
+      set(_Boost_IOSTREAMS_DEPENDENCIES regex)
+      set(_Boost_LOG_DEPENDENCIES date_time log_setup system filesystem thread regex chrono atomic)
+      set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l atomic)
+      set(_Boost_MPI_DEPENDENCIES serialization)
+      set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
+      set(_Boost_RANDOM_DEPENDENCIES system)
+      set(_Boost_THREAD_DEPENDENCIES chrono system date_time atomic)
+      set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic)
+      set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
+    elseif(Boost_VERSION_STRING VERSION_LESS 1.67.0)
+      set(_Boost_CHRONO_DEPENDENCIES system)
+      set(_Boost_CONTEXT_DEPENDENCIES thread chrono system date_time)
+      set(_Boost_COROUTINE_DEPENDENCIES context system)
+      set(_Boost_FIBER_DEPENDENCIES context thread chrono system date_time)
+      set(_Boost_FILESYSTEM_DEPENDENCIES system)
+      set(_Boost_IOSTREAMS_DEPENDENCIES regex)
+      set(_Boost_LOG_DEPENDENCIES date_time log_setup system filesystem thread regex chrono atomic)
+      set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l atomic)
+      set(_Boost_MPI_DEPENDENCIES serialization)
+      set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
+      set(_Boost_NUMPY_DEPENDENCIES python${component_python_version})
+      set(_Boost_RANDOM_DEPENDENCIES system)
+      set(_Boost_THREAD_DEPENDENCIES chrono system date_time atomic)
+      set(_Boost_TIMER_DEPENDENCIES chrono system)
+      set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic)
+      set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
+    elseif(Boost_VERSION_STRING VERSION_LESS 1.68.0)
+      set(_Boost_CHRONO_DEPENDENCIES system)
+      set(_Boost_CONTEXT_DEPENDENCIES thread chrono system date_time)
+      set(_Boost_COROUTINE_DEPENDENCIES context system)
+      set(_Boost_FIBER_DEPENDENCIES context thread chrono system date_time)
+      set(_Boost_FILESYSTEM_DEPENDENCIES system)
+      set(_Boost_IOSTREAMS_DEPENDENCIES regex)
+      set(_Boost_LOG_DEPENDENCIES date_time log_setup system filesystem thread regex chrono atomic)
+      set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l atomic)
+      set(_Boost_MPI_DEPENDENCIES serialization)
+      set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
+      set(_Boost_NUMPY_DEPENDENCIES python${component_python_version})
+      set(_Boost_RANDOM_DEPENDENCIES system)
+      set(_Boost_THREAD_DEPENDENCIES chrono system date_time atomic)
+      set(_Boost_TIMER_DEPENDENCIES chrono system)
+      set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic)
+      set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
+    elseif(Boost_VERSION_STRING VERSION_LESS 1.69.0)
+      set(_Boost_CHRONO_DEPENDENCIES system)
+      set(_Boost_CONTEXT_DEPENDENCIES thread chrono system date_time)
+      set(_Boost_CONTRACT_DEPENDENCIES thread chrono system date_time)
+      set(_Boost_COROUTINE_DEPENDENCIES context system)
+      set(_Boost_FIBER_DEPENDENCIES context thread chrono system date_time)
+      set(_Boost_FILESYSTEM_DEPENDENCIES system)
+      set(_Boost_IOSTREAMS_DEPENDENCIES regex)
+      set(_Boost_LOG_DEPENDENCIES date_time log_setup system filesystem thread regex chrono atomic)
+      set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l atomic)
+      set(_Boost_MPI_DEPENDENCIES serialization)
+      set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
+      set(_Boost_NUMPY_DEPENDENCIES python${component_python_version})
+      set(_Boost_RANDOM_DEPENDENCIES system)
+      set(_Boost_THREAD_DEPENDENCIES chrono system date_time atomic)
+      set(_Boost_TIMER_DEPENDENCIES chrono system)
+      set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic)
+      set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
+    elseif(Boost_VERSION_STRING VERSION_LESS 1.70.0)
+      set(_Boost_CONTRACT_DEPENDENCIES thread chrono date_time)
+      set(_Boost_COROUTINE_DEPENDENCIES context)
+      set(_Boost_FIBER_DEPENDENCIES context)
+      set(_Boost_IOSTREAMS_DEPENDENCIES regex)
+      set(_Boost_LOG_DEPENDENCIES date_time log_setup filesystem thread regex chrono atomic)
+      set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l atomic)
+      set(_Boost_MPI_DEPENDENCIES serialization)
+      set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
+      set(_Boost_NUMPY_DEPENDENCIES python${component_python_version})
+      set(_Boost_THREAD_DEPENDENCIES chrono date_time atomic)
+      set(_Boost_TIMER_DEPENDENCIES chrono system)
+      set(_Boost_WAVE_DEPENDENCIES filesystem serialization thread chrono date_time atomic)
+      set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
+    elseif(Boost_VERSION_STRING VERSION_LESS 1.72.0)
+      set(_Boost_CONTRACT_DEPENDENCIES thread chrono date_time)
+      set(_Boost_COROUTINE_DEPENDENCIES context)
+      set(_Boost_FIBER_DEPENDENCIES context)
+      set(_Boost_IOSTREAMS_DEPENDENCIES regex)
+      set(_Boost_LOG_DEPENDENCIES date_time log_setup filesystem thread regex chrono atomic)
+      set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l atomic)
+      set(_Boost_MPI_DEPENDENCIES serialization)
+      set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
+      set(_Boost_NUMPY_DEPENDENCIES python${component_python_version})
+      set(_Boost_THREAD_DEPENDENCIES chrono date_time atomic)
+      set(_Boost_TIMER_DEPENDENCIES chrono)
+      set(_Boost_WAVE_DEPENDENCIES filesystem serialization thread chrono date_time atomic)
+      set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
+    elseif(Boost_VERSION_STRING VERSION_LESS 1.73.0)
+      set(_Boost_CONTRACT_DEPENDENCIES thread chrono date_time)
+      set(_Boost_COROUTINE_DEPENDENCIES context)
+      set(_Boost_FIBER_DEPENDENCIES context)
+      set(_Boost_IOSTREAMS_DEPENDENCIES regex)
+      set(_Boost_LOG_DEPENDENCIES date_time log_setup filesystem thread regex chrono atomic)
+      set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l chrono atomic)
+      set(_Boost_MPI_DEPENDENCIES serialization)
+      set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
+      set(_Boost_NUMPY_DEPENDENCIES python${component_python_version})
+      set(_Boost_THREAD_DEPENDENCIES chrono date_time atomic)
+      set(_Boost_TIMER_DEPENDENCIES chrono)
+      set(_Boost_WAVE_DEPENDENCIES filesystem serialization thread chrono date_time atomic)
+      set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
+    else()
+      set(_Boost_CONTRACT_DEPENDENCIES thread chrono date_time)
+      set(_Boost_COROUTINE_DEPENDENCIES context)
+      set(_Boost_FIBER_DEPENDENCIES context)
+      set(_Boost_IOSTREAMS_DEPENDENCIES regex)
+      set(_Boost_LOG_DEPENDENCIES date_time log_setup filesystem thread regex chrono atomic)
+      set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l atomic)
+      set(_Boost_MPI_DEPENDENCIES serialization)
+      set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
+      set(_Boost_NUMPY_DEPENDENCIES python${component_python_version})
+      set(_Boost_THREAD_DEPENDENCIES chrono date_time atomic)
+      set(_Boost_TIMER_DEPENDENCIES chrono)
+      set(_Boost_WAVE_DEPENDENCIES filesystem serialization thread chrono date_time atomic)
+      set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
+      if(Boost_VERSION_STRING VERSION_GREATER_EQUAL 1.74.0)
+        message(WARNING "New Boost version may have incorrect or missing dependencies and imported targets")
+      endif()
     endif()
   endif()
 
@@ -1224,6 +1248,7 @@
   set(_Boost_MPI_HEADERS                 "boost/mpi.hpp")
   set(_Boost_MPI_PYTHON_HEADERS          "boost/mpi/python/config.hpp")
   set(_Boost_NUMPY_HEADERS               "boost/python/numpy.hpp")
+  set(_Boost_NOWIDE_HEADERS              "boost/nowide/cstdlib.hpp")
   set(_Boost_PRG_EXEC_MONITOR_HEADERS    "boost/test/prg_exec_monitor.hpp")
   set(_Boost_PROGRAM_OPTIONS_HEADERS     "boost/program_options.hpp")
   set(_Boost_PYTHON_HEADERS              "boost/python.hpp")
@@ -1432,7 +1457,7 @@
   # _Boost_COMPONENT_HEADERS.  See the instructions at the top of
   # _Boost_COMPONENT_DEPENDENCIES.
   set(_Boost_KNOWN_VERSIONS ${Boost_ADDITIONAL_VERSIONS}
-    "1.72.0" "1.72" "1.71.0" "1.71" "1.70.0" "1.70" "1.69.0" "1.69"
+    "1.73.0" "1.73" "1.72.0" "1.72" "1.71.0" "1.71" "1.70.0" "1.70" "1.69.0" "1.69"
     "1.68.0" "1.68" "1.67.0" "1.67" "1.66.0" "1.66" "1.65.1" "1.65.0" "1.65"
     "1.64.0" "1.64" "1.63.0" "1.63" "1.62.0" "1.62" "1.61.0" "1.61" "1.60.0" "1.60"
     "1.59.0" "1.59" "1.58.0" "1.58" "1.57.0" "1.57" "1.56.0" "1.56" "1.55.0" "1.55"
@@ -1646,10 +1671,17 @@
 #  Prefix initialization
 # ------------------------------------------------------------------------
 
-set(Boost_LIB_PREFIX "")
-if ( (GHSMULTI AND Boost_USE_STATIC_LIBS) OR
-    (WIN32 AND Boost_USE_STATIC_LIBS AND NOT CYGWIN) )
-  set(Boost_LIB_PREFIX "lib")
+if ( NOT DEFINED Boost_LIB_PREFIX )
+  # Boost's static libraries use a "lib" prefix on DLL platforms
+  # to distinguish them from the DLL import libraries.
+  if (Boost_USE_STATIC_LIBS AND (
+      (WIN32 AND NOT CYGWIN)
+      OR GHSMULTI
+      ))
+    set(Boost_LIB_PREFIX "lib")
+  else()
+    set(Boost_LIB_PREFIX "")
+  endif()
 endif()
 
 if ( NOT Boost_NAMESPACE )
diff --git a/share/cmake-3.17/Modules/FindBullet.cmake b/share/cmake-3.18/Modules/FindBullet.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindBullet.cmake
rename to share/cmake-3.18/Modules/FindBullet.cmake
diff --git a/share/cmake-3.17/Modules/FindCABLE.cmake b/share/cmake-3.18/Modules/FindCABLE.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindCABLE.cmake
rename to share/cmake-3.18/Modules/FindCABLE.cmake
diff --git a/share/cmake-3.17/Modules/FindCUDA.cmake b/share/cmake-3.18/Modules/FindCUDA.cmake
similarity index 99%
rename from share/cmake-3.17/Modules/FindCUDA.cmake
rename to share/cmake-3.18/Modules/FindCUDA.cmake
index e1af2d6..a93d4fd 100644
--- a/share/cmake-3.17/Modules/FindCUDA.cmake
+++ b/share/cmake-3.18/Modules/FindCUDA.cmake
@@ -357,7 +357,8 @@
   CUDA_nppicc_LIBRARY   -- NVIDIA Performance Primitives lib (image processing).
                            Only available for CUDA version 9.0.
   CUDA_nppicom_LIBRARY  -- NVIDIA Performance Primitives lib (image processing).
-                           Only available for CUDA version 9.0.
+                           Only available for CUDA version 9.0 - 10.2.
+                           Replaced by nvjpeg.
   CUDA_nppidei_LIBRARY  -- NVIDIA Performance Primitives lib (image processing).
                            Only available for CUDA version 9.0.
   CUDA_nppif_LIBRARY    -- NVIDIA Performance Primitives lib (image processing).
@@ -1002,7 +1003,9 @@
   find_cuda_helper_libs(nppc)
   find_cuda_helper_libs(nppial)
   find_cuda_helper_libs(nppicc)
-  find_cuda_helper_libs(nppicom)
+  if(CUDA_VERSION VERSION_LESS "11.0")
+    find_cuda_helper_libs(nppicom)
+  endif()
   find_cuda_helper_libs(nppidei)
   find_cuda_helper_libs(nppif)
   find_cuda_helper_libs(nppig)
diff --git a/share/cmake-3.17/Modules/FindCUDA/make2cmake.cmake b/share/cmake-3.18/Modules/FindCUDA/make2cmake.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindCUDA/make2cmake.cmake
rename to share/cmake-3.18/Modules/FindCUDA/make2cmake.cmake
diff --git a/share/cmake-3.17/Modules/FindCUDA/parse_cubin.cmake b/share/cmake-3.18/Modules/FindCUDA/parse_cubin.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindCUDA/parse_cubin.cmake
rename to share/cmake-3.18/Modules/FindCUDA/parse_cubin.cmake
diff --git a/share/cmake-3.17/Modules/FindCUDA/run_nvcc.cmake b/share/cmake-3.18/Modules/FindCUDA/run_nvcc.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindCUDA/run_nvcc.cmake
rename to share/cmake-3.18/Modules/FindCUDA/run_nvcc.cmake
diff --git a/share/cmake-3.17/Modules/FindCUDA/select_compute_arch.cmake b/share/cmake-3.18/Modules/FindCUDA/select_compute_arch.cmake
similarity index 89%
rename from share/cmake-3.17/Modules/FindCUDA/select_compute_arch.cmake
rename to share/cmake-3.18/Modules/FindCUDA/select_compute_arch.cmake
index 7ddb709..c11725d 100644
--- a/share/cmake-3.17/Modules/FindCUDA/select_compute_arch.cmake
+++ b/share/cmake-3.18/Modules/FindCUDA/select_compute_arch.cmake
@@ -5,9 +5,9 @@
 #       - "Auto" detects local machine GPU compute arch at runtime.
 #       - "Common" and "All" cover common and entire subsets of architectures
 #      ARCH_AND_PTX : NAME | NUM.NUM | NUM.NUM(NUM.NUM) | NUM.NUM+PTX
-#      NAME: Fermi Kepler Maxwell Kepler+Tegra Kepler+Tesla Maxwell+Tegra Pascal Volta Turing
+#      NAME: Fermi Kepler Maxwell Kepler+Tegra Kepler+Tesla Maxwell+Tegra Pascal Volta Turing Ampere
 #      NUM: Any number. Only those pairs are currently accepted by NVCC though:
-#            2.0 2.1 3.0 3.2 3.5 3.7 5.0 5.2 5.3 6.0 6.2 7.0 7.2 7.5
+#            2.0 2.1 3.0 3.2 3.5 3.7 5.0 5.2 5.3 6.0 6.2 7.0 7.2 7.5 8.0
 #      Returns LIST of flags to be added to CUDA_NVCC_FLAGS in ${out_variable}
 #      Additionally, sets ${out_variable}_readable to the resulting numeric list
 #      Example:
@@ -30,7 +30,12 @@
 set(CUDA_KNOWN_GPU_ARCHITECTURES  "Fermi" "Kepler" "Maxwell")
 
 # This list will be used for CUDA_ARCH_NAME = Common option (enabled by default)
-set(CUDA_COMMON_GPU_ARCHITECTURES "3.0" "3.5" "5.0")
+set(CUDA_COMMON_GPU_ARCHITECTURES "3.5" "5.0")
+# 3.0 is removed in CUDA 11, see:
+# https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html#deprecated-features
+if(CUDA_VERSION VERSION_LESS "11.0")
+  list(APPEND CUDA_COMMON_GPU_ARCHITECTURES "3.0")
+endif()
 
 if(CUDA_VERSION VERSION_LESS "7.0")
   set(CUDA_LIMIT_GPU_ARCHITECTURE "5.2")
@@ -55,27 +60,39 @@
   list(APPEND CUDA_ALL_GPU_ARCHITECTURES "6.0" "6.1" "6.2")
 
   if(CUDA_VERSION VERSION_LESS "9.0")
-    list(APPEND CUDA_COMMON_GPU_ARCHITECTURES "6.1+PTX")
+    list(APPEND CUDA_COMMON_GPU_ARCHITECTURES "6.2+PTX")
     set(CUDA_LIMIT_GPU_ARCHITECTURE "7.0")
   endif()
 endif ()
 
 if(CUDA_VERSION VERSION_GREATER_EQUAL "9.0")
   list(APPEND CUDA_KNOWN_GPU_ARCHITECTURES "Volta")
-  list(APPEND CUDA_COMMON_GPU_ARCHITECTURES "7.0" "7.0+PTX")
-  list(APPEND CUDA_ALL_GPU_ARCHITECTURES "7.0" "7.0+PTX" "7.2" "7.2+PTX")
+  list(APPEND CUDA_COMMON_GPU_ARCHITECTURES "7.0")
+  list(APPEND CUDA_ALL_GPU_ARCHITECTURES "7.0" "7.2")
 
   if(CUDA_VERSION VERSION_LESS "10.0")
+    list(APPEND CUDA_COMMON_GPU_ARCHITECTURES "7.2+PTX")
     set(CUDA_LIMIT_GPU_ARCHITECTURE "8.0")
   endif()
 endif()
 
 if(CUDA_VERSION VERSION_GREATER_EQUAL "10.0")
   list(APPEND CUDA_KNOWN_GPU_ARCHITECTURES "Turing")
-  list(APPEND CUDA_COMMON_GPU_ARCHITECTURES "7.5" "7.5+PTX")
-  list(APPEND CUDA_ALL_GPU_ARCHITECTURES "7.5" "7.5+PTX")
+  list(APPEND CUDA_COMMON_GPU_ARCHITECTURES "7.5")
+  list(APPEND CUDA_ALL_GPU_ARCHITECTURES "7.5")
 
   if(CUDA_VERSION VERSION_LESS "11.0")
+    set(CUDA_LIMIT_GPU_ARCHITECTURE "8.0")
+    list(APPEND CUDA_COMMON_GPU_ARCHITECTURES "7.5+PTX")
+  endif()
+endif()
+
+if(CUDA_VERSION VERSION_GREATER_EQUAL "11.0")
+  list(APPEND CUDA_KNOWN_GPU_ARCHITECTURES "Ampere")
+  list(APPEND CUDA_COMMON_GPU_ARCHITECTURES "8.0" "8.0+PTX")
+  list(APPEND CUDA_ALL_GPU_ARCHITECTURES "8.0")
+
+  if(CUDA_VERSION VERSION_LESS "12.0")
     set(CUDA_LIMIT_GPU_ARCHITECTURE "9.0")
   endif()
 endif()
@@ -214,6 +231,9 @@
       elseif(${arch_name} STREQUAL "Turing")
         set(arch_bin 7.5)
         set(arch_ptx 7.5)
+      elseif(${arch_name} STREQUAL "Ampere")
+        set(arch_bin 8.0)
+        set(arch_ptx 8.0)
       else()
         message(SEND_ERROR "Unknown CUDA Architecture Name ${arch_name} in CUDA_SELECT_NVCC_ARCH_FLAGS")
       endif()
diff --git a/share/cmake-3.17/Modules/FindCUDAToolkit.cmake b/share/cmake-3.18/Modules/FindCUDAToolkit.cmake
similarity index 74%
rename from share/cmake-3.17/Modules/FindCUDAToolkit.cmake
rename to share/cmake-3.18/Modules/FindCUDAToolkit.cmake
index 4b14ddc..47bc546 100644
--- a/share/cmake-3.17/Modules/FindCUDAToolkit.cmake
+++ b/share/cmake-3.18/Modules/FindCUDAToolkit.cmake
@@ -154,6 +154,8 @@
 
 - ``CUDA::cublas``
 - ``CUDA::cublas_static``
+- ``CUDA::cublasLt`` starting in CUDA 10.1
+- ``CUDA::cublasLt_static`` starting in CUDA 10.1
 
 .. _`cuda_toolkit_cuFFT`:
 
@@ -240,6 +242,7 @@
   - ``CUDA::nppicc_static``
 
 - `nppicom`: JPEG compression and decompression functions in `nppi_compression_functions.h`
+  Removed starting in CUDA 11.0, use :ref:`nvJPEG<cuda_toolkit_nvJPEG>` instead.
 
   - ``CUDA::nppicom``
   - ``CUDA::nppicom_static``
@@ -302,6 +305,7 @@
 """""""
 
 The `nvGRAPH <https://docs.nvidia.com/cuda/nvgraph/index.html>`_ library.
+Removed starting in CUDA 11.0
 
 Targets Created:
 
@@ -421,6 +425,10 @@
     The path to the CUDA Toolkit library directory that contains the CUDA
     Runtime library ``cudart``.
 
+``CUDAToolkit_LIBRARY_ROOT``
+    The path to the CUDA Toolkit directory containing the nvvm directory and
+    version.txt.
+
 ``CUDAToolkit_TARGET_DIR``
     The path to the CUDA Toolkit directory including the target architecture
     when cross-compiling. When not cross-compiling this will be equivalant to
@@ -473,214 +481,179 @@
 #
 ###############################################################################
 
-if(CMAKE_CUDA_COMPILER_LOADED AND NOT CUDAToolkit_BIN_DIR)
-  get_filename_component(cuda_dir "${CMAKE_CUDA_COMPILER}" DIRECTORY)
-  # use the already detected cuda compiler
-  set(CUDAToolkit_BIN_DIR "${cuda_dir}" CACHE PATH "")
-  mark_as_advanced(CUDAToolkit_BIN_DIR)
-  unset(cuda_dir)
-endif()
+# The toolkit is located during compiler detection for CUDA and stored in CMakeCUDACompiler.cmake as
+# CMAKE_CUDA_COMPILER_TOOLKIT_ROOT and CMAKE_CUDA_COMPILER_LIBRARY_ROOT.
+# We compute the rest based on those here to avoid re-searching and to avoid finding a possibly
+# different installation.
+if(CMAKE_CUDA_COMPILER_TOOLKIT_ROOT)
+  set(CUDAToolkit_ROOT_DIR "${CMAKE_CUDA_COMPILER_TOOLKIT_ROOT}")
+  set(CUDAToolkit_LIBRARY_ROOT "${CMAKE_CUDA_COMPILER_LIBRARY_ROOT}")
+  set(CUDAToolkit_BIN_DIR "${CUDAToolkit_ROOT_DIR}/bin")
+  set(CUDAToolkit_NVCC_EXECUTABLE "${CUDAToolkit_BIN_DIR}/nvcc${CMAKE_EXECUTABLE_SUFFIX}")
+else()
+  # For NVCC we can easily deduce the SDK binary directory from the compiler path.
+  if(CMAKE_CUDA_COMPILER_LOADED AND NOT CUDAToolkit_BIN_DIR AND CMAKE_CUDA_COMPILER_ID STREQUAL "NVIDIA")
+    get_filename_component(CUDAToolkit_BIN_DIR "${CMAKE_CUDA_COMPILER}" DIRECTORY)
+    set(CUDAToolkit_BIN_DIR "${CUDAToolkit_BIN_DIR}" CACHE PATH "")
+    mark_as_advanced(CUDAToolkit_BIN_DIR)
+  endif()
 
-# Try language- or user-provided path first.
-if(CUDAToolkit_BIN_DIR)
-  find_program(CUDAToolkit_NVCC_EXECUTABLE
-    NAMES nvcc nvcc.exe
-    PATHS ${CUDAToolkit_BIN_DIR}
-    NO_DEFAULT_PATH
+  # Try language- or user-provided path first.
+  if(CUDAToolkit_BIN_DIR)
+    find_program(CUDAToolkit_NVCC_EXECUTABLE
+      NAMES nvcc nvcc.exe
+      PATHS ${CUDAToolkit_BIN_DIR}
+      NO_DEFAULT_PATH
     )
-endif()
-
-# Search using CUDAToolkit_ROOT
-find_program(CUDAToolkit_NVCC_EXECUTABLE
-  NAMES nvcc nvcc.exe
-  PATHS ENV CUDA_PATH
-  PATH_SUFFIXES bin
-)
-
-# If the user specified CUDAToolkit_ROOT but nvcc could not be found, this is an error.
-if (NOT CUDAToolkit_NVCC_EXECUTABLE AND (DEFINED CUDAToolkit_ROOT OR DEFINED ENV{CUDAToolkit_ROOT}))
-  # Declare error messages now, print later depending on find_package args.
-  set(fail_base "Could not find nvcc executable in path specified by")
-  set(cuda_root_fail "${fail_base} CUDAToolkit_ROOT=${CUDAToolkit_ROOT}")
-  set(env_cuda_root_fail "${fail_base} environment variable CUDAToolkit_ROOT=$ENV{CUDAToolkit_ROOT}")
-
-  if (CUDAToolkit_FIND_REQUIRED)
-    if (DEFINED CUDAToolkit_ROOT)
-      message(FATAL_ERROR ${cuda_root_fail})
-    elseif (DEFINED ENV{CUDAToolkit_ROOT})
-      message(FATAL_ERROR ${env_cuda_root_fail})
-    endif()
-  else()
-    if (NOT CUDAToolkit_FIND_QUIETLY)
-      if (DEFINED CUDAToolkit_ROOT)
-        message(STATUS ${cuda_root_fail})
-      elseif (DEFINED ENV{CUDAToolkit_ROOT})
-        message(STATUS ${env_cuda_root_fail})
-      endif()
-    endif()
-    set(CUDAToolkit_FOUND FALSE)
-    unset(fail_base)
-    unset(cuda_root_fail)
-    unset(env_cuda_root_fail)
-    return()
-  endif()
-endif()
-
-# CUDAToolkit_ROOT cmake / env variable not specified, try platform defaults.
-#
-# - Linux: /usr/local/cuda-X.Y
-# - macOS: /Developer/NVIDIA/CUDA-X.Y
-# - Windows: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\vX.Y
-#
-# We will also search the default symlink location /usr/local/cuda first since
-# if CUDAToolkit_ROOT is not specified, it is assumed that the symlinked
-# directory is the desired location.
-if (NOT CUDAToolkit_NVCC_EXECUTABLE)
-  if (UNIX)
-    if (NOT APPLE)
-      set(platform_base "/usr/local/cuda-")
-    else()
-      set(platform_base "/Developer/NVIDIA/CUDA-")
-    endif()
-  else()
-    set(platform_base "C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v")
   endif()
 
-  # Build out a descending list of possible cuda installations, e.g.
-  file(GLOB possible_paths "${platform_base}*")
-  # Iterate the glob results and create a descending list.
-  set(possible_versions)
-  foreach (p ${possible_paths})
-    # Extract version number from end of string
-    string(REGEX MATCH "[0-9][0-9]?\\.[0-9]$" p_version ${p})
-    if (IS_DIRECTORY ${p} AND p_version)
-      list(APPEND possible_versions ${p_version})
-    endif()
-  endforeach()
-
-  # Cannot use list(SORT) because that is alphabetical, we need numerical.
-  # NOTE: this is not an efficient sorting strategy.  But even if a user had
-  # every possible version of CUDA installed, this wouldn't create any
-  # significant overhead.
-  set(versions)
-  foreach (v ${possible_versions})
-    list(LENGTH versions num_versions)
-    # First version, nothing to compare with so just append.
-    if (num_versions EQUAL 0)
-      list(APPEND versions ${v})
-    else()
-      # Loop through list.  Insert at an index when comparison is
-      # VERSION_GREATER since we want a descending list.  Duplicates will not
-      # happen since this came from a glob list of directories.
-      set(i 0)
-      set(early_terminate FALSE)
-      while (i LESS num_versions)
-        list(GET versions ${i} curr)
-        if (v VERSION_GREATER curr)
-          list(INSERT versions ${i} ${v})
-          set(early_terminate TRUE)
-          break()
-        endif()
-        math(EXPR i "${i} + 1")
-      endwhile()
-      # If it did not get inserted, place it at the end.
-      if (NOT early_terminate)
-        list(APPEND versions ${v})
-      endif()
-    endif()
-  endforeach()
-
-  # With a descending list of versions, populate possible paths to search.
-  set(search_paths)
-  foreach (v ${versions})
-    list(APPEND search_paths "${platform_base}${v}")
-  endforeach()
-
-  # Force the global default /usr/local/cuda to the front on Unix.
-  if (UNIX)
-    list(INSERT search_paths 0 "/usr/local/cuda")
-  endif()
-
-  # Now search for nvcc again using the platform default search paths.
+  # Search using CUDAToolkit_ROOT
   find_program(CUDAToolkit_NVCC_EXECUTABLE
     NAMES nvcc nvcc.exe
-    PATHS ${search_paths}
+    PATHS ENV CUDA_PATH
     PATH_SUFFIXES bin
   )
 
-  # We are done with these variables now, cleanup for caller.
-  unset(platform_base)
-  unset(possible_paths)
-  unset(possible_versions)
-  unset(versions)
-  unset(i)
-  unset(early_terminate)
-  unset(search_paths)
+  # If the user specified CUDAToolkit_ROOT but nvcc could not be found, this is an error.
+  if(NOT CUDAToolkit_NVCC_EXECUTABLE AND (DEFINED CUDAToolkit_ROOT OR DEFINED ENV{CUDAToolkit_ROOT}))
+    # Declare error messages now, print later depending on find_package args.
+    set(fail_base "Could not find nvcc executable in path specified by")
+    set(cuda_root_fail "${fail_base} CUDAToolkit_ROOT=${CUDAToolkit_ROOT}")
+    set(env_cuda_root_fail "${fail_base} environment variable CUDAToolkit_ROOT=$ENV{CUDAToolkit_ROOT}")
 
-  if (NOT CUDAToolkit_NVCC_EXECUTABLE)
-    if (CUDAToolkit_FIND_REQUIRED)
-      message(FATAL_ERROR "Could not find nvcc, please set CUDAToolkit_ROOT.")
-    elseif(NOT CUDAToolkit_FIND_QUIETLY)
-      message(STATUS "Could not find nvcc, please set CUDAToolkit_ROOT.")
+    if(CUDAToolkit_FIND_REQUIRED)
+      if(DEFINED CUDAToolkit_ROOT)
+        message(FATAL_ERROR ${cuda_root_fail})
+      elseif(DEFINED ENV{CUDAToolkit_ROOT})
+        message(FATAL_ERROR ${env_cuda_root_fail})
+      endif()
+    else()
+      if(NOT CUDAToolkit_FIND_QUIETLY)
+        if(DEFINED CUDAToolkit_ROOT)
+          message(STATUS ${cuda_root_fail})
+        elseif(DEFINED ENV{CUDAToolkit_ROOT})
+          message(STATUS ${env_cuda_root_fail})
+        endif()
+      endif()
+      set(CUDAToolkit_FOUND FALSE)
+      unset(fail_base)
+      unset(cuda_root_fail)
+      unset(env_cuda_root_fail)
+      return()
+    endif()
+  endif()
+
+  # CUDAToolkit_ROOT cmake / env variable not specified, try platform defaults.
+  #
+  # - Linux: /usr/local/cuda-X.Y
+  # - macOS: /Developer/NVIDIA/CUDA-X.Y
+  # - Windows: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\vX.Y
+  #
+  # We will also search the default symlink location /usr/local/cuda first since
+  # if CUDAToolkit_ROOT is not specified, it is assumed that the symlinked
+  # directory is the desired location.
+  if(NOT CUDAToolkit_NVCC_EXECUTABLE)
+    if(UNIX)
+      if(NOT APPLE)
+        set(platform_base "/usr/local/cuda-")
+      else()
+        set(platform_base "/Developer/NVIDIA/CUDA-")
+      endif()
+    else()
+      set(platform_base "C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v")
     endif()
 
-    set(CUDAToolkit_FOUND FALSE)
-    return()
+    # Build out a descending list of possible cuda installations, e.g.
+    file(GLOB possible_paths "${platform_base}*")
+    # Iterate the glob results and create a descending list.
+    set(versions)
+    foreach(p ${possible_paths})
+      # Extract version number from end of string
+      string(REGEX MATCH "[0-9][0-9]?\\.[0-9]$" p_version ${p})
+      if(IS_DIRECTORY ${p} AND p_version)
+        list(APPEND versions ${p_version})
+      endif()
+    endforeach()
+
+    # Sort numerically in descending order, so we try the newest versions first.
+    list(SORT versions COMPARE NATURAL ORDER DESCENDING)
+
+    # With a descending list of versions, populate possible paths to search.
+    set(search_paths)
+    foreach(v ${versions})
+      list(APPEND search_paths "${platform_base}${v}")
+    endforeach()
+
+    # Force the global default /usr/local/cuda to the front on Unix.
+    if(UNIX)
+      list(INSERT search_paths 0 "/usr/local/cuda")
+    endif()
+
+    # Now search for nvcc again using the platform default search paths.
+    find_program(CUDAToolkit_NVCC_EXECUTABLE
+      NAMES nvcc nvcc.exe
+      PATHS ${search_paths}
+      PATH_SUFFIXES bin
+    )
+
+    # We are done with these variables now, cleanup for caller.
+    unset(platform_base)
+    unset(possible_paths)
+    unset(versions)
+    unset(search_paths)
+
+    if(NOT CUDAToolkit_NVCC_EXECUTABLE)
+      if(CUDAToolkit_FIND_REQUIRED)
+        message(FATAL_ERROR "Could not find nvcc, please set CUDAToolkit_ROOT.")
+      elseif(NOT CUDAToolkit_FIND_QUIETLY)
+        message(STATUS "Could not find nvcc, please set CUDAToolkit_ROOT.")
+      endif()
+
+      set(CUDAToolkit_FOUND FALSE)
+      return()
+    endif()
+  endif()
+
+  if(NOT CUDAToolkit_BIN_DIR AND CUDAToolkit_NVCC_EXECUTABLE)
+    get_filename_component(CUDAToolkit_BIN_DIR "${CUDAToolkit_NVCC_EXECUTABLE}" DIRECTORY)
+    set(CUDAToolkit_BIN_DIR "${CUDAToolkit_BIN_DIR}" CACHE PATH "" FORCE)
+    mark_as_advanced(CUDAToolkit_BIN_DIR)
+  endif()
+
+  get_filename_component(CUDAToolkit_ROOT_DIR ${CUDAToolkit_BIN_DIR} DIRECTORY ABSOLUTE)
+
+  # CUDAToolkit_LIBRARY_ROOT contains the device library and version file.
+  # In a non-scattered installation this is equivalent to CUDAToolkit_ROOT_DIR.
+  # We first check for a non-scattered installation to prefer it over a scattered installation.
+  if(EXISTS "${CUDAToolkit_ROOT_DIR}/version.txt")
+    set(CUDAToolkit_LIBRARY_ROOT "${CUDAToolkit_ROOT_DIR}")
+  elseif(CMAKE_SYSROOT_LINK AND EXISTS "${CMAKE_SYSROOT_LINK}/usr/lib/cuda/version.txt")
+    set(CUDAToolkit_LIBRARY_ROOT "${CMAKE_SYSROOT_LINK}/usr/lib/cuda")
+  elseif(EXISTS "${CMAKE_SYSROOT}/usr/lib/cuda/version.txt")
+    set(CUDAToolkit_LIBRARY_ROOT "${CMAKE_SYSROOT}/usr/lib/cuda")
   endif()
 endif()
 
-if(NOT CUDAToolkit_BIN_DIR AND CUDAToolkit_NVCC_EXECUTABLE)
-  get_filename_component(cuda_dir "${CUDAToolkit_NVCC_EXECUTABLE}" DIRECTORY)
-  set(CUDAToolkit_BIN_DIR "${cuda_dir}" CACHE PATH "" FORCE)
-  mark_as_advanced(CUDAToolkit_BIN_DIR)
-  unset(cuda_dir)
-endif()
-
-if(CUDAToolkit_NVCC_EXECUTABLE AND
-   CUDAToolkit_NVCC_EXECUTABLE STREQUAL CMAKE_CUDA_COMPILER)
-  # Need to set these based off the already computed CMAKE_CUDA_COMPILER_VERSION value
-  # This if statement will always match, but is used to provide variables for MATCH 1,2,3...
-  if(CMAKE_CUDA_COMPILER_VERSION MATCHES [=[([0-9]+)\.([0-9]+)\.([0-9]+)]=])
-    set(CUDAToolkit_VERSION_MAJOR "${CMAKE_MATCH_1}")
-    set(CUDAToolkit_VERSION_MINOR "${CMAKE_MATCH_2}")
-    set(CUDAToolkit_VERSION_PATCH "${CMAKE_MATCH_3}")
-    set(CUDAToolkit_VERSION "${CMAKE_CUDA_COMPILER_VERSION}")
-  endif()
-else()
-  # Compute the version by invoking nvcc
-  execute_process (COMMAND ${CUDAToolkit_NVCC_EXECUTABLE} "--version" OUTPUT_VARIABLE NVCC_OUT)
-  if(NVCC_OUT MATCHES [=[ V([0-9]+)\.([0-9]+)\.([0-9]+)]=])
-    set(CUDAToolkit_VERSION_MAJOR "${CMAKE_MATCH_1}")
-    set(CUDAToolkit_VERSION_MINOR "${CMAKE_MATCH_2}")
-    set(CUDAToolkit_VERSION_PATCH "${CMAKE_MATCH_3}")
-    set(CUDAToolkit_VERSION  "${CMAKE_MATCH_1}.${CMAKE_MATCH_2}.${CMAKE_MATCH_3}")
-  endif()
-  unset(NVCC_OUT)
-endif()
-
-
-get_filename_component(CUDAToolkit_ROOT_DIR ${CUDAToolkit_BIN_DIR} DIRECTORY ABSOLUTE)
-
 # Handle cross compilation
 if(CMAKE_CROSSCOMPILING)
   if(CMAKE_SYSTEM_PROCESSOR STREQUAL "armv7-a")
     # Support for NVPACK
-    set (CUDAToolkit_TARGET_NAME "armv7-linux-androideabi")
+    set(CUDAToolkit_TARGET_NAME "armv7-linux-androideabi")
   elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm")
     # Support for arm cross compilation
     set(CUDAToolkit_TARGET_NAME "armv7-linux-gnueabihf")
   elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64")
     # Support for aarch64 cross compilation
-    if (ANDROID_ARCH_NAME STREQUAL "arm64")
+    if(ANDROID_ARCH_NAME STREQUAL "arm64")
       set(CUDAToolkit_TARGET_NAME "aarch64-linux-androideabi")
     else()
       set(CUDAToolkit_TARGET_NAME "aarch64-linux")
-    endif (ANDROID_ARCH_NAME STREQUAL "arm64")
+    endif(ANDROID_ARCH_NAME STREQUAL "arm64")
   elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
-      set(CUDAToolkit_TARGET_NAME "x86_64-linux")
+    set(CUDAToolkit_TARGET_NAME "x86_64-linux")
   endif()
 
-  if (EXISTS "${CUDAToolkit_ROOT_DIR}/targets/${CUDAToolkit_TARGET_NAME}")
+  if(EXISTS "${CUDAToolkit_ROOT_DIR}/targets/${CUDAToolkit_TARGET_NAME}")
     set(CUDAToolkit_TARGET_DIR "${CUDAToolkit_ROOT_DIR}/targets/${CUDAToolkit_TARGET_NAME}")
     # add known CUDA target root path to the set of directories we search for programs, libraries and headers
     list(PREPEND CMAKE_FIND_ROOT_PATH "${CUDAToolkit_TARGET_DIR}")
@@ -702,18 +675,47 @@
   set(_CUDAToolkit_Pop_Prefix True)
 endif()
 
+# CUDAToolkit_TARGET_DIR always points to the directory containing the include directory.
+# On a scattered installation /usr, on a non-scattered something like /usr/local/cuda or /usr/local/cuda-10.2/targets/aarch64-linux.
+if(EXISTS "${CUDAToolkit_TARGET_DIR}/include/cuda_runtime.h")
+  set(CUDAToolkit_INCLUDE_DIR "${CUDAToolkit_TARGET_DIR}/include")
+elseif(NOT CUDAToolkit_FIND_QUIETLY)
+  message(STATUS "Unable to find cuda_runtime.h in \"${CUDAToolkit_TARGET_DIR}/include\" for CUDAToolkit_INCLUDE_DIR.")
+endif()
 
-# Find the include/ directory
-find_path(CUDAToolkit_INCLUDE_DIR
-  NAMES cuda_runtime.h
-)
+if(CUDAToolkit_NVCC_EXECUTABLE AND
+   CUDAToolkit_NVCC_EXECUTABLE STREQUAL CMAKE_CUDA_COMPILER)
+  # Need to set these based off the already computed CMAKE_CUDA_COMPILER_VERSION value
+  # This if statement will always match, but is used to provide variables for MATCH 1,2,3...
+  if(CMAKE_CUDA_COMPILER_VERSION MATCHES [=[([0-9]+)\.([0-9]+)\.([0-9]+)]=])
+    set(CUDAToolkit_VERSION_MAJOR "${CMAKE_MATCH_1}")
+    set(CUDAToolkit_VERSION_MINOR "${CMAKE_MATCH_2}")
+    set(CUDAToolkit_VERSION_PATCH "${CMAKE_MATCH_3}")
+    set(CUDAToolkit_VERSION "${CMAKE_CUDA_COMPILER_VERSION}")
+  endif()
+else()
+  # Compute the version by invoking nvcc
+  execute_process(COMMAND ${CUDAToolkit_NVCC_EXECUTABLE} "--version" OUTPUT_VARIABLE NVCC_OUT)
+  if(NVCC_OUT MATCHES [=[ V([0-9]+)\.([0-9]+)\.([0-9]+)]=])
+    set(CUDAToolkit_VERSION_MAJOR "${CMAKE_MATCH_1}")
+    set(CUDAToolkit_VERSION_MINOR "${CMAKE_MATCH_2}")
+    set(CUDAToolkit_VERSION_PATCH "${CMAKE_MATCH_3}")
+    set(CUDAToolkit_VERSION  "${CMAKE_MATCH_1}.${CMAKE_MATCH_2}.${CMAKE_MATCH_3}")
+  endif()
+  unset(NVCC_OUT)
+endif()
 
-# And find the CUDA Runtime Library libcudart
+# Find the CUDA Runtime Library libcudart
 find_library(CUDA_CUDART
   NAMES cudart
-  PATH_SUFFIXES lib64 lib64/stubs lib/x64
+  PATH_SUFFIXES lib64 lib/x64
 )
-if (NOT CUDA_CUDART AND NOT CUDAToolkit_FIND_QUIETLY)
+find_library(CUDA_CUDART
+  NAMES cudart
+  PATH_SUFFIXES lib64/stubs lib/x64/stubs
+)
+
+if(NOT CUDA_CUDART AND NOT CUDAToolkit_FIND_QUIETLY)
   message(STATUS "Unable to find cudart library.")
 endif()
 
@@ -742,8 +744,8 @@
 #-----------------------------------------------------------------------------
 # Construct result variables
 if(CUDAToolkit_FOUND)
- set(CUDAToolkit_INCLUDE_DIRS ${CUDAToolkit_INCLUDE_DIR})
- get_filename_component(CUDAToolkit_LIBRARY_DIR ${CUDA_CUDART} DIRECTORY ABSOLUTE)
+  set(CUDAToolkit_INCLUDE_DIRS ${CUDAToolkit_INCLUDE_DIR})
+  get_filename_component(CUDAToolkit_LIBRARY_DIR ${CUDA_CUDART} DIRECTORY ABSOLUTE)
 endif()
 
 #-----------------------------------------------------------------------------
@@ -759,9 +761,18 @@
       NAMES ${search_names}
       HINTS ${CUDAToolkit_LIBRARY_DIR}
             ENV CUDA_PATH
-      PATH_SUFFIXES nvidia/current lib64 lib64/stubs lib/x64 lib lib/stubs
+      PATH_SUFFIXES nvidia/current lib64 lib/x64 lib
                     ${arg_EXTRA_PATH_SUFFIXES}
     )
+    # Don't try any stub directories until we have exhausted all other
+    # search locations.
+    find_library(CUDA_${lib_name}_LIBRARY
+      NAMES ${search_names}
+      HINTS ${CUDAToolkit_LIBRARY_DIR}
+            ENV CUDA_PATH
+      PATH_SUFFIXES lib64/stubs lib/x64/stubs lib/stubs stubs
+    )
+
     mark_as_advanced(CUDA_${lib_name}_LIBRARY)
 
     if (NOT TARGET CUDA::${lib_name} AND CUDA_${lib_name}_LIBRARY)
@@ -814,7 +825,7 @@
   endif()
 
   _CUDAToolkit_find_and_add_import_lib(culibos) # it's a static library
-  foreach (cuda_lib cublas cufft curand cusparse nppc nvjpeg)
+  foreach (cuda_lib cublasLt cublas cufft curand cusparse nppc nvjpeg)
     _CUDAToolkit_find_and_add_import_lib(${cuda_lib})
     _CUDAToolkit_find_and_add_import_lib(${cuda_lib}_static DEPS culibos)
   endforeach()
diff --git a/share/cmake-3.17/Modules/FindCURL.cmake b/share/cmake-3.18/Modules/FindCURL.cmake
similarity index 98%
rename from share/cmake-3.17/Modules/FindCURL.cmake
rename to share/cmake-3.18/Modules/FindCURL.cmake
index 919babc..be7e16e 100644
--- a/share/cmake-3.17/Modules/FindCURL.cmake
+++ b/share/cmake-3.18/Modules/FindCURL.cmake
@@ -148,16 +148,16 @@
   endif()
   foreach(component IN LISTS CURL_FIND_COMPONENTS)
     list(FIND CURL_KNOWN_PROTOCOLS ${component} _found)
-    if(_found)
+    if(NOT _found EQUAL -1)
       list(FIND CURL_SUPPORTED_PROTOCOLS ${component} _found)
-      if(_found)
+      if(NOT _found EQUAL -1)
         set(CURL_${component}_FOUND TRUE)
       elseif(CURL_FIND_REQUIRED)
         message(FATAL_ERROR "CURL: Required protocol ${component} is not found")
       endif()
     else()
       list(FIND CURL_SUPPORTED_FEATURES ${component} _found)
-      if(_found)
+      if(NOT _found EQUAL -1)
         set(CURL_${component}_FOUND TRUE)
       elseif(CURL_FIND_REQUIRED)
         message(FATAL_ERROR "CURL: Required feature ${component} is not found")
diff --git a/share/cmake-3.17/Modules/FindCVS.cmake b/share/cmake-3.18/Modules/FindCVS.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindCVS.cmake
rename to share/cmake-3.18/Modules/FindCVS.cmake
diff --git a/share/cmake-3.17/Modules/FindCoin3D.cmake b/share/cmake-3.18/Modules/FindCoin3D.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindCoin3D.cmake
rename to share/cmake-3.18/Modules/FindCoin3D.cmake
diff --git a/share/cmake-3.17/Modules/FindCups.cmake b/share/cmake-3.18/Modules/FindCups.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindCups.cmake
rename to share/cmake-3.18/Modules/FindCups.cmake
diff --git a/share/cmake-3.17/Modules/FindCurses.cmake b/share/cmake-3.18/Modules/FindCurses.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindCurses.cmake
rename to share/cmake-3.18/Modules/FindCurses.cmake
diff --git a/share/cmake-3.17/Modules/FindCxxTest.cmake b/share/cmake-3.18/Modules/FindCxxTest.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindCxxTest.cmake
rename to share/cmake-3.18/Modules/FindCxxTest.cmake
diff --git a/share/cmake-3.17/Modules/FindCygwin.cmake b/share/cmake-3.18/Modules/FindCygwin.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindCygwin.cmake
rename to share/cmake-3.18/Modules/FindCygwin.cmake
diff --git a/share/cmake-3.17/Modules/FindDCMTK.cmake b/share/cmake-3.18/Modules/FindDCMTK.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindDCMTK.cmake
rename to share/cmake-3.18/Modules/FindDCMTK.cmake
diff --git a/share/cmake-3.17/Modules/FindDart.cmake b/share/cmake-3.18/Modules/FindDart.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindDart.cmake
rename to share/cmake-3.18/Modules/FindDart.cmake
diff --git a/share/cmake-3.17/Modules/FindDevIL.cmake b/share/cmake-3.18/Modules/FindDevIL.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindDevIL.cmake
rename to share/cmake-3.18/Modules/FindDevIL.cmake
diff --git a/share/cmake-3.17/Modules/FindDoxygen.cmake b/share/cmake-3.18/Modules/FindDoxygen.cmake
similarity index 99%
rename from share/cmake-3.17/Modules/FindDoxygen.cmake
rename to share/cmake-3.18/Modules/FindDoxygen.cmake
index faa03f9..184a9a2 100644
--- a/share/cmake-3.17/Modules/FindDoxygen.cmake
+++ b/share/cmake-3.18/Modules/FindDoxygen.cmake
@@ -999,9 +999,11 @@
     foreach(_item IN LISTS DOXYGEN_INPUT)
         get_filename_component(_abs_item "${_item}" ABSOLUTE
                                BASE_DIR "${_args_WORKING_DIRECTORY}")
-        if(EXISTS "${_abs_item}" AND
-           NOT IS_DIRECTORY "${_abs_item}" AND
-           NOT IS_SYMLINK "${_abs_item}")
+        get_source_file_property(_isGenerated "${_abs_item}" GENERATED)
+        if(_isGenerated OR
+           (EXISTS "${_abs_item}" AND
+            NOT IS_DIRECTORY "${_abs_item}" AND
+            NOT IS_SYMLINK "${_abs_item}"))
             list(APPEND _sources "${_abs_item}")
         elseif(_args_USE_STAMP_FILE)
             message(FATAL_ERROR "Source does not exist or is not a file:\n"
diff --git a/share/cmake-3.17/Modules/FindEXPAT.cmake b/share/cmake-3.18/Modules/FindEXPAT.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindEXPAT.cmake
rename to share/cmake-3.18/Modules/FindEXPAT.cmake
diff --git a/share/cmake-3.17/Modules/FindEnvModules.cmake b/share/cmake-3.18/Modules/FindEnvModules.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindEnvModules.cmake
rename to share/cmake-3.18/Modules/FindEnvModules.cmake
diff --git a/share/cmake-3.17/Modules/FindFLEX.cmake b/share/cmake-3.18/Modules/FindFLEX.cmake
similarity index 98%
rename from share/cmake-3.17/Modules/FindFLEX.cmake
rename to share/cmake-3.18/Modules/FindFLEX.cmake
index 90e5f86..1384736 100644
--- a/share/cmake-3.17/Modules/FindFLEX.cmake
+++ b/share/cmake-3.18/Modules/FindFLEX.cmake
@@ -99,7 +99,7 @@
   ====================================================================
 #]=======================================================================]
 
-find_program(FLEX_EXECUTABLE NAMES flex win_flex DOC "path to the flex executable")
+find_program(FLEX_EXECUTABLE NAMES flex win-flex win_flex DOC "path to the flex executable")
 mark_as_advanced(FLEX_EXECUTABLE)
 
 find_library(FL_LIBRARY NAMES fl
diff --git a/share/cmake-3.17/Modules/FindFLTK.cmake b/share/cmake-3.18/Modules/FindFLTK.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindFLTK.cmake
rename to share/cmake-3.18/Modules/FindFLTK.cmake
diff --git a/share/cmake-3.17/Modules/FindFLTK2.cmake b/share/cmake-3.18/Modules/FindFLTK2.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindFLTK2.cmake
rename to share/cmake-3.18/Modules/FindFLTK2.cmake
diff --git a/share/cmake-3.17/Modules/FindFontconfig.cmake b/share/cmake-3.18/Modules/FindFontconfig.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindFontconfig.cmake
rename to share/cmake-3.18/Modules/FindFontconfig.cmake
diff --git a/share/cmake-3.17/Modules/FindFreetype.cmake b/share/cmake-3.18/Modules/FindFreetype.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindFreetype.cmake
rename to share/cmake-3.18/Modules/FindFreetype.cmake
diff --git a/share/cmake-3.17/Modules/FindGCCXML.cmake b/share/cmake-3.18/Modules/FindGCCXML.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindGCCXML.cmake
rename to share/cmake-3.18/Modules/FindGCCXML.cmake
diff --git a/share/cmake-3.17/Modules/FindGDAL.cmake b/share/cmake-3.18/Modules/FindGDAL.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindGDAL.cmake
rename to share/cmake-3.18/Modules/FindGDAL.cmake
diff --git a/share/cmake-3.17/Modules/FindGIF.cmake b/share/cmake-3.18/Modules/FindGIF.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindGIF.cmake
rename to share/cmake-3.18/Modules/FindGIF.cmake
diff --git a/share/cmake-3.17/Modules/FindGLEW.cmake b/share/cmake-3.18/Modules/FindGLEW.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindGLEW.cmake
rename to share/cmake-3.18/Modules/FindGLEW.cmake
diff --git a/share/cmake-3.17/Modules/FindGLU.cmake b/share/cmake-3.18/Modules/FindGLU.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindGLU.cmake
rename to share/cmake-3.18/Modules/FindGLU.cmake
diff --git a/share/cmake-3.17/Modules/FindGLUT.cmake b/share/cmake-3.18/Modules/FindGLUT.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindGLUT.cmake
rename to share/cmake-3.18/Modules/FindGLUT.cmake
diff --git a/share/cmake-3.17/Modules/FindGSL.cmake b/share/cmake-3.18/Modules/FindGSL.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindGSL.cmake
rename to share/cmake-3.18/Modules/FindGSL.cmake
diff --git a/share/cmake-3.17/Modules/FindGTK.cmake b/share/cmake-3.18/Modules/FindGTK.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindGTK.cmake
rename to share/cmake-3.18/Modules/FindGTK.cmake
diff --git a/share/cmake-3.17/Modules/FindGTK2.cmake b/share/cmake-3.18/Modules/FindGTK2.cmake
similarity index 99%
rename from share/cmake-3.17/Modules/FindGTK2.cmake
rename to share/cmake-3.18/Modules/FindGTK2.cmake
index 565763d..62f1614 100644
--- a/share/cmake-3.17/Modules/FindGTK2.cmake
+++ b/share/cmake-3.18/Modules/FindGTK2.cmake
@@ -695,11 +695,14 @@
         _GTK2_FIND_LIBRARY    (CAIRO cairo false false)
         _GTK2_ADD_TARGET      (CAIRO)
 
+        _GTK2_FIND_INCLUDE_DIR(HARFBUZZ hb.h)
+        _GTK2_FIND_LIBRARY    (HARFBUZZ harfbuzz false false)
+        _GTK2_ADD_TARGET      (HARFBUZZ)
+
         _GTK2_FIND_INCLUDE_DIR(PANGO pango/pango.h)
         _GTK2_FIND_LIBRARY    (PANGO pango false true)
-        _GTK2_ADD_TARGET      (PANGO GTK2_DEPENDS gobject glib)
-
-        _GTK2_FIND_INCLUDE_DIR(HARFBUZZ hb.h)
+        _GTK2_ADD_TARGET      (PANGO GTK2_DEPENDS gobject glib
+                                     GTK2_OPTIONAL_DEPENDS harfbuzz)
 
         _GTK2_FIND_LIBRARY    (PANGOCAIRO pangocairo false true)
         _GTK2_ADD_TARGET      (PANGOCAIRO GTK2_DEPENDS pango cairo gobject glib)
diff --git a/share/cmake-3.17/Modules/FindGTest.cmake b/share/cmake-3.18/Modules/FindGTest.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindGTest.cmake
rename to share/cmake-3.18/Modules/FindGTest.cmake
diff --git a/share/cmake-3.17/Modules/FindGettext.cmake b/share/cmake-3.18/Modules/FindGettext.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindGettext.cmake
rename to share/cmake-3.18/Modules/FindGettext.cmake
diff --git a/share/cmake-3.17/Modules/FindGit.cmake b/share/cmake-3.18/Modules/FindGit.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindGit.cmake
rename to share/cmake-3.18/Modules/FindGit.cmake
diff --git a/share/cmake-3.17/Modules/FindGnuTLS.cmake b/share/cmake-3.18/Modules/FindGnuTLS.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindGnuTLS.cmake
rename to share/cmake-3.18/Modules/FindGnuTLS.cmake
diff --git a/share/cmake-3.17/Modules/FindGnuplot.cmake b/share/cmake-3.18/Modules/FindGnuplot.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindGnuplot.cmake
rename to share/cmake-3.18/Modules/FindGnuplot.cmake
diff --git a/share/cmake-3.17/Modules/FindHDF5.cmake b/share/cmake-3.18/Modules/FindHDF5.cmake
similarity index 69%
rename from share/cmake-3.17/Modules/FindHDF5.cmake
rename to share/cmake-3.18/Modules/FindHDF5.cmake
index b488418..60a313d 100644
--- a/share/cmake-3.17/Modules/FindHDF5.cmake
+++ b/share/cmake-3.18/Modules/FindHDF5.cmake
@@ -19,9 +19,12 @@
 ``COMPONENTS`` are specified, then the find module will default to finding
 only the ``HDF5`` C library.  If one or more ``COMPONENTS`` are specified, the
 module will attempt to find the language bindings for the specified
-components.  The only valid components are ``C``, ``CXX``, ``Fortran``, ``HL``,
-and ``Fortran_HL``.  If the ``COMPONENTS`` argument is not given, the module will
+components.  The valid components are ``C``, ``CXX``, ``Fortran``, ``HL``.
+``HL`` refers to the "high-level" HDF5 functions for C and Fortran.
+If the ``COMPONENTS`` argument is not given, the module will
 attempt to find only the C bindings.
+For example, to use Fortran HDF5 and HDF5-HL functions, do:
+``find_package(HDF5 COMPONENTS Fortran HL)``.
 
 This module will read the variable
 ``HDF5_USE_STATIC_LIBRARIES`` to determine whether or not to prefer a
@@ -29,16 +32,11 @@
 To use this feature, make sure that the ``HDF5_USE_STATIC_LIBRARIES``
 variable is set before the call to find_package.
 
-To provide the module with a hint about where to find your ``HDF5``
-installation, you can set the environment variable ``HDF5_ROOT``.  The
-Find module will then look in this path when searching for ``HDF5``
-executables, paths, and libraries.
-
 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
 behavior can be reversed by setting the variable ``HDF5_PREFER_PARALLEL`` to
-``True``.
+``TRUE``.
 
 In addition to finding the includes and libraries required to compile
 an ``HDF5`` client application, this module also makes an effort to find
@@ -115,10 +113,10 @@
 Hints
 ^^^^^
 
-The following variable can be set to guide the search for HDF5 libraries and includes:
+The following variables can be set to guide the search for HDF5 libraries and includes:
 
-``HDF5_ROOT``
-  Specify the path to the HDF5 installation to use.
+``HDF5_PREFER_PARALLEL``
+  set ``true`` to prefer parallel HDF5 (by default, serial is preferred)
 
 ``HDF5_FIND_DEBUG``
   Set ``true`` to get extra debugging output.
@@ -141,28 +139,30 @@
 else()
   set(HDF5_LANGUAGE_BINDINGS)
   # add the extra specified components, ensuring that they are valid.
-  set(FIND_HL OFF)
-  foreach(component IN LISTS HDF5_FIND_COMPONENTS)
-    list(FIND HDF5_VALID_LANGUAGE_BINDINGS ${component} component_location)
-    if(NOT component_location EQUAL -1)
-      list(APPEND HDF5_LANGUAGE_BINDINGS ${component})
-    elseif(component STREQUAL "HL")
-      set(FIND_HL ON)
-    elseif(component STREQUAL "Fortran_HL") # only for compatibility
+  set(HDF5_FIND_HL OFF)
+  foreach(_component IN LISTS HDF5_FIND_COMPONENTS)
+    list(FIND HDF5_VALID_LANGUAGE_BINDINGS ${_component} _component_location)
+    if(NOT _component_location EQUAL -1)
+      list(APPEND HDF5_LANGUAGE_BINDINGS ${_component})
+    elseif(_component STREQUAL "HL")
+      set(HDF5_FIND_HL ON)
+    elseif(_component STREQUAL "Fortran_HL") # only for compatibility
       list(APPEND HDF5_LANGUAGE_BINDINGS Fortran)
-      set(FIND_HL ON)
-      set(HDF5_FIND_REQUIRED_Fortran_HL False)
-      set(HDF5_FIND_REQUIRED_Fortran True)
-      set(HDF5_FIND_REQUIRED_HL True)
+      set(HDF5_FIND_HL ON)
+      set(HDF5_FIND_REQUIRED_Fortran_HL FALSE)
+      set(HDF5_FIND_REQUIRED_Fortran TRUE)
+      set(HDF5_FIND_REQUIRED_HL TRUE)
     else()
-      message(FATAL_ERROR "${component} is not a valid HDF5 component.")
+      message(FATAL_ERROR "${_component} is not a valid HDF5 component.")
     endif()
   endforeach()
+  unset(_component)
+  unset(_component_location)
   if(NOT HDF5_LANGUAGE_BINDINGS)
-    get_property(__langs GLOBAL PROPERTY ENABLED_LANGUAGES)
-    foreach(__lang IN LISTS __langs)
-      if(__lang MATCHES "^(C|CXX|Fortran)$")
-        list(APPEND HDF5_LANGUAGE_BINDINGS ${__lang})
+    get_property(_langs GLOBAL PROPERTY ENABLED_LANGUAGES)
+    foreach(_lang IN LISTS _langs)
+      if(_lang MATCHES "^(C|CXX|Fortran)$")
+        list(APPEND HDF5_LANGUAGE_BINDINGS ${_lang})
       endif()
     endforeach()
   endif()
@@ -328,97 +328,109 @@
 
 # Invoke the HDF5 wrapper compiler.  The compiler return value is stored to the
 # return_value argument, the text output is stored to the output variable.
-macro( _HDF5_invoke_compiler language output return_value version is_parallel)
-    set(${version})
-    if(HDF5_USE_STATIC_LIBRARIES)
-        set(lib_type_args -noshlib)
-    else()
-        set(lib_type_args -shlib)
-    endif()
-    set(scratch_dir ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/hdf5)
-    if("${language}" STREQUAL "C")
-        set(test_file ${scratch_dir}/cmake_hdf5_test.c)
-    elseif("${language}" STREQUAL "CXX")
-        set(test_file ${scratch_dir}/cmake_hdf5_test.cxx)
-    elseif("${language}" STREQUAL "Fortran")
-        set(test_file ${scratch_dir}/cmake_hdf5_test.f90)
-    endif()
+function( _HDF5_invoke_compiler language output_var return_value_var version_var is_parallel_var)
+  set(is_parallel FALSE)
+  if(HDF5_USE_STATIC_LIBRARIES)
+    set(lib_type_args -noshlib)
+  else()
+    set(lib_type_args -shlib)
+  endif()
+  set(scratch_dir ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/hdf5)
+  if("${language}" STREQUAL "C")
+    set(test_file ${scratch_dir}/cmake_hdf5_test.c)
+  elseif("${language}" STREQUAL "CXX")
+    set(test_file ${scratch_dir}/cmake_hdf5_test.cxx)
+  elseif("${language}" STREQUAL "Fortran")
+    set(test_file ${scratch_dir}/cmake_hdf5_test.f90)
+  endif()
+  # Verify that the compiler wrapper can actually compile: sometimes the compiler
+  # wrapper exists, but not the compiler.  E.g. Miniconda / Anaconda Python
+  execute_process(
+    COMMAND ${HDF5_${language}_COMPILER_EXECUTABLE} ${test_file}
+    RESULT_VARIABLE return_value
+    )
+  if(return_value)
+    message(STATUS
+      "HDF5 ${language} compiler wrapper is unable to compile a minimal HDF5 program.")
+  else()
     execute_process(
       COMMAND ${HDF5_${language}_COMPILER_EXECUTABLE} -show ${lib_type_args} ${test_file}
-      OUTPUT_VARIABLE ${output}
-      ERROR_VARIABLE ${output}
-      RESULT_VARIABLE ${return_value}
+      OUTPUT_VARIABLE output
+      ERROR_VARIABLE output
+      RESULT_VARIABLE return_value
+      OUTPUT_STRIP_TRAILING_WHITESPACE
       )
-    if(NOT ${${return_value}} EQUAL 0)
-        message(STATUS
-          "Unable to determine HDF5 ${language} flags from HDF5 wrapper.")
+    if(return_value)
+      message(STATUS
+        "Unable to determine HDF5 ${language} flags from HDF5 wrapper.")
     endif()
     execute_process(
       COMMAND ${HDF5_${language}_COMPILER_EXECUTABLE} -showconfig
       OUTPUT_VARIABLE config_output
       ERROR_VARIABLE config_output
-      RESULT_VARIABLE config_return
+      RESULT_VARIABLE return_value
+      OUTPUT_STRIP_TRAILING_WHITESPACE
       )
-    if(NOT ${return_value} EQUAL 0)
-        message( STATUS
-          "Unable to determine HDF5 ${language} version from HDF5 wrapper.")
+    if(return_value)
+      message(STATUS
+        "Unable to determine HDF5 ${language} version_var from HDF5 wrapper.")
     endif()
-    string(REGEX MATCH "HDF5 Version: ([a-zA-Z0-9\\.\\-]*)" version_match "${config_output}")
-    if(version_match)
-        string(REPLACE "HDF5 Version: " "" ${version} "${version_match}")
-        string(REPLACE "-patch" "." ${version} "${${version}}")
+    string(REGEX MATCH "HDF5 Version: ([a-zA-Z0-9\\.\\-]*)" version "${config_output}")
+    if(version)
+      string(REPLACE "HDF5 Version: " "" version "${version}")
+      string(REPLACE "-patch" "." version "${version}")
     endif()
     if(config_output MATCHES "Parallel HDF5: yes")
-      set(${is_parallel} TRUE)
-    else()
-      set(${is_parallel} FALSE)
+      set(is_parallel TRUE)
     endif()
-endmacro()
+  endif()
+  foreach(var output return_value version is_parallel)
+    set(${${var}_var} ${${var}} PARENT_SCOPE)
+  endforeach()
+endfunction()
 
 # Parse a compile line for definitions, includes, library paths, and libraries.
-macro( _HDF5_parse_compile_line
-    compile_line_var
-    include_paths
-    definitions
-    library_paths
-    libraries
-    libraries_hl)
+function(_HDF5_parse_compile_line compile_line_var include_paths definitions
+    library_paths libraries libraries_hl)
 
-  separate_arguments(_HDF5_COMPILE_ARGS NATIVE_COMMAND "${${compile_line_var}}")
+  separate_arguments(_compile_args NATIVE_COMMAND "${${compile_line_var}}")
 
-  foreach(arg IN LISTS _HDF5_COMPILE_ARGS)
-    if("${arg}" MATCHES "^-I(.*)$")
+  foreach(_arg IN LISTS _compile_args)
+    if("${_arg}" MATCHES "^-I(.*)$")
       # include directory
-      list(APPEND ${include_paths} "${CMAKE_MATCH_1}")
-    elseif("${arg}" MATCHES "^-D(.*)$")
+      list(APPEND include_paths "${CMAKE_MATCH_1}")
+    elseif("${_arg}" MATCHES "^-D(.*)$")
       # compile definition
-      list(APPEND ${definitions} "-D${CMAKE_MATCH_1}")
-    elseif("${arg}" MATCHES "^-L(.*)$")
+      list(APPEND definitions "-D${CMAKE_MATCH_1}")
+    elseif("${_arg}" MATCHES "^-L(.*)$")
       # library search path
-      list(APPEND ${library_paths} "${CMAKE_MATCH_1}")
-    elseif("${arg}" MATCHES "^-l(hdf5.*hl.*)$")
+      list(APPEND library_paths "${CMAKE_MATCH_1}")
+    elseif("${_arg}" MATCHES "^-l(hdf5.*hl.*)$")
       # library name (hl)
-      list(APPEND ${libraries_hl} "${CMAKE_MATCH_1}")
-    elseif("${arg}" MATCHES "^-l(.*)$")
+      list(APPEND libraries_hl "${CMAKE_MATCH_1}")
+    elseif("${_arg}" MATCHES "^-l(.*)$")
       # library name
-      list(APPEND ${libraries} "${CMAKE_MATCH_1}")
-    elseif("${arg}" MATCHES "^(.:)?[/\\].*\\.(a|so|dylib|sl|lib)$")
+      list(APPEND libraries "${CMAKE_MATCH_1}")
+    elseif("${_arg}" MATCHES "^(.:)?[/\\].*\\.(a|so|dylib|sl|lib)$")
       # library file
-      if(NOT EXISTS "${arg}")
+      if(NOT EXISTS "${_arg}")
         continue()
       endif()
-      get_filename_component(_HDF5_LPATH "${arg}" DIRECTORY)
-      get_filename_component(_HDF5_LNAME "${arg}" NAME_WE)
-      string(REGEX REPLACE "^lib" "" _HDF5_LNAME "${_HDF5_LNAME}")
-      list(APPEND ${library_paths} "${_HDF5_LPATH}")
-      if(_HDF5_LNAME MATCHES "hdf5.*hl")
-        list(APPEND ${libraries_hl} "${_HDF5_LNAME}")
+      get_filename_component(_lpath "${_arg}" DIRECTORY)
+      get_filename_component(_lname "${_arg}" NAME_WE)
+      string(REGEX REPLACE "^lib" "" _lname "${_lname}")
+      list(APPEND library_paths "${_lpath}")
+      if(_lname MATCHES "hdf5.*hl")
+        list(APPEND libraries_hl "${_lname}")
       else()
-        list(APPEND ${libraries} "${_HDF5_LNAME}")
+        list(APPEND libraries "${_lname}")
       endif()
     endif()
   endforeach()
-endmacro()
+  foreach(var include_paths definitions library_paths libraries libraries_hl)
+    set(${${var}_var} ${${var}} PARENT_SCOPE)
+  endforeach()
+endfunction()
 
 # Select a preferred imported configuration from a target
 function(_HDF5_select_imported_config target imported_conf)
@@ -528,10 +540,10 @@
                 set(HDF5_${_lang}_LIBRARY ${_hdf5_lang_location})
                 list(APPEND HDF5_LIBRARIES ${HDF5_${_lang}_TARGET}${_suffix})
                 set(HDF5_${_lang}_LIBRARIES ${HDF5_${_lang}_TARGET}${_suffix})
-                set(HDF5_${_lang}_FOUND True)
+                set(HDF5_${_lang}_FOUND TRUE)
             endif()
-            if(FIND_HL)
-                get_target_property(__lang_hl_location ${HDF5_${_lang}_HL_TARGET}${_suffix} IMPORTED_IMPLIB_${_hdf5_imported_conf} )
+            if(HDF5_FIND_HL)
+                get_target_property(_lang_hl_location ${HDF5_${_lang}_HL_TARGET}${_suffix} IMPORTED_IMPLIB_${_hdf5_imported_conf} )
                 if (NOT _hdf5_lang_hl_location)
                     get_target_property(_hdf5_lang_hl_location ${HDF5_${_lang}_HL_TARGET}${_suffix} LOCATION_${_hdf5_imported_conf})
                     if (NOT _hdf5_hl_lang_location)
@@ -542,7 +554,7 @@
                     set(HDF5_${_lang}_HL_LIBRARY ${_hdf5_lang_hl_location})
                     list(APPEND HDF5_HL_LIBRARIES ${HDF5_${_lang}_HL_TARGET}${_suffix})
                     set(HDF5_${_lang}_HL_LIBRARIES ${HDF5_${_lang}_HL_TARGET}${_suffix})
-                    set(HDF5_HL_FOUND True)
+                    set(HDF5_HL_FOUND TRUE)
                 endif()
                 unset(_hdf5_lang_hl_location)
             endif()
@@ -553,172 +565,177 @@
 endif()
 
 if(NOT HDF5_FOUND)
-  set(_HDF5_NEED_TO_SEARCH False)
-  set(HDF5_COMPILER_NO_INTERROGATE True)
+  set(_HDF5_NEED_TO_SEARCH FALSE)
+  set(HDF5_COMPILER_NO_INTERROGATE TRUE)
   # Only search for languages we've enabled
-  foreach(__lang IN LISTS HDF5_LANGUAGE_BINDINGS)
+  foreach(_lang IN LISTS HDF5_LANGUAGE_BINDINGS)
     # First check to see if our regular compiler is one of wrappers
-    if(__lang STREQUAL "C")
+    if(_lang STREQUAL "C")
       _HDF5_test_regular_compiler_C(
-        HDF5_${__lang}_COMPILER_NO_INTERROGATE
-        HDF5_${__lang}_VERSION
-        HDF5_${__lang}_IS_PARALLEL)
-    elseif(__lang STREQUAL "CXX")
+        HDF5_${_lang}_COMPILER_NO_INTERROGATE
+        HDF5_${_lang}_VERSION
+        HDF5_${_lang}_IS_PARALLEL)
+    elseif(_lang STREQUAL "CXX")
       _HDF5_test_regular_compiler_CXX(
-        HDF5_${__lang}_COMPILER_NO_INTERROGATE
-        HDF5_${__lang}_VERSION
-        HDF5_${__lang}_IS_PARALLEL)
-    elseif(__lang STREQUAL "Fortran")
+        HDF5_${_lang}_COMPILER_NO_INTERROGATE
+        HDF5_${_lang}_VERSION
+        HDF5_${_lang}_IS_PARALLEL)
+    elseif(_lang STREQUAL "Fortran")
       _HDF5_test_regular_compiler_Fortran(
-        HDF5_${__lang}_COMPILER_NO_INTERROGATE
-        HDF5_${__lang}_IS_PARALLEL)
+        HDF5_${_lang}_COMPILER_NO_INTERROGATE
+        HDF5_${_lang}_IS_PARALLEL)
     else()
       continue()
     endif()
-    if(HDF5_${__lang}_COMPILER_NO_INTERROGATE)
-      message(STATUS "HDF5: Using hdf5 compiler wrapper for all ${__lang} compiling")
-      set(HDF5_${__lang}_FOUND True)
-      set(HDF5_${__lang}_COMPILER_EXECUTABLE_NO_INTERROGATE
-          "${CMAKE_${__lang}_COMPILER}"
-          CACHE FILEPATH "HDF5 ${__lang} compiler wrapper")
-      set(HDF5_${__lang}_DEFINITIONS)
-      set(HDF5_${__lang}_INCLUDE_DIRS)
-      set(HDF5_${__lang}_LIBRARIES)
-      set(HDF5_${__lang}_HL_LIBRARIES)
+    if(HDF5_${_lang}_COMPILER_NO_INTERROGATE)
+      if(HDF5_FIND_DEBUG)
+        message(STATUS "HDF5: Using hdf5 compiler wrapper for all ${_lang} compiling")
+      endif()
+      set(HDF5_${_lang}_FOUND TRUE)
+      set(HDF5_${_lang}_COMPILER_EXECUTABLE_NO_INTERROGATE
+          "${CMAKE_${_lang}_COMPILER}"
+          CACHE FILEPATH "HDF5 ${_lang} compiler wrapper")
+      set(HDF5_${_lang}_DEFINITIONS)
+      set(HDF5_${_lang}_INCLUDE_DIRS)
+      set(HDF5_${_lang}_LIBRARIES)
+      set(HDF5_${_lang}_HL_LIBRARIES)
 
-      mark_as_advanced(HDF5_${__lang}_COMPILER_EXECUTABLE_NO_INTERROGATE)
+      mark_as_advanced(HDF5_${_lang}_COMPILER_EXECUTABLE_NO_INTERROGATE)
 
-      set(HDF5_${__lang}_FOUND True)
-      set(HDF5_HL_FOUND True)
+      set(HDF5_${_lang}_FOUND TRUE)
+      set(HDF5_HL_FOUND TRUE)
     else()
-      set(HDF5_COMPILER_NO_INTERROGATE False)
+      set(HDF5_COMPILER_NO_INTERROGATE FALSE)
       # If this language isn't using the wrapper, then try to seed the
       # search options with the wrapper
-      find_program(HDF5_${__lang}_COMPILER_EXECUTABLE
-        NAMES ${HDF5_${__lang}_COMPILER_NAMES} NAMES_PER_DIR
+      find_program(HDF5_${_lang}_COMPILER_EXECUTABLE
+        NAMES ${HDF5_${_lang}_COMPILER_NAMES} NAMES_PER_DIR
         HINTS ${HDF5_ROOT}
         PATH_SUFFIXES bin Bin
-        DOC "HDF5 ${__lang} Wrapper compiler.  Used only to detect HDF5 compile flags."
+        DOC "HDF5 ${_lang} Wrapper compiler.  Used only to detect HDF5 compile flags."
         ${_HDF5_SEARCH_OPTS}
       )
-      mark_as_advanced( HDF5_${__lang}_COMPILER_EXECUTABLE )
-      unset(HDF5_${__lang}_COMPILER_NAMES)
+      mark_as_advanced( HDF5_${_lang}_COMPILER_EXECUTABLE )
+      unset(HDF5_${_lang}_COMPILER_NAMES)
 
-      if(HDF5_${__lang}_COMPILER_EXECUTABLE)
-        _HDF5_invoke_compiler(${__lang} HDF5_${__lang}_COMPILE_LINE
-          HDF5_${__lang}_RETURN_VALUE HDF5_${__lang}_VERSION HDF5_${__lang}_IS_PARALLEL)
-        if(HDF5_${__lang}_RETURN_VALUE EQUAL 0)
-          message(STATUS "HDF5: Using hdf5 compiler wrapper to determine ${__lang} configuration")
-          _HDF5_parse_compile_line( HDF5_${__lang}_COMPILE_LINE
-            HDF5_${__lang}_INCLUDE_DIRS
-            HDF5_${__lang}_DEFINITIONS
-            HDF5_${__lang}_LIBRARY_DIRS
-            HDF5_${__lang}_LIBRARY_NAMES
-            HDF5_${__lang}_HL_LIBRARY_NAMES
+      if(HDF5_${_lang}_COMPILER_EXECUTABLE)
+        _HDF5_invoke_compiler(${_lang} HDF5_${_lang}_COMPILE_LINE
+          HDF5_${_lang}_RETURN_VALUE HDF5_${_lang}_VERSION HDF5_${_lang}_IS_PARALLEL)
+        if(HDF5_${_lang}_RETURN_VALUE EQUAL 0)
+          if(HDF5_FIND_DEBUG)
+            message(STATUS "HDF5: Using hdf5 compiler wrapper to determine ${_lang} configuration")
+          endif()
+          _HDF5_parse_compile_line( HDF5_${_lang}_COMPILE_LINE
+            HDF5_${_lang}_INCLUDE_DIRS
+            HDF5_${_lang}_DEFINITIONS
+            HDF5_${_lang}_LIBRARY_DIRS
+            HDF5_${_lang}_LIBRARY_NAMES
+            HDF5_${_lang}_HL_LIBRARY_NAMES
           )
-          set(HDF5_${__lang}_LIBRARIES)
+          set(HDF5_${_lang}_LIBRARIES)
 
-          foreach(L IN LISTS HDF5_${__lang}_LIBRARY_NAMES)
+          foreach(_lib IN LISTS HDF5_${_lang}_LIBRARY_NAMES)
             set(_HDF5_SEARCH_NAMES_LOCAL)
-            if("x${L}" MATCHES "hdf5")
+            if("x${_lib}" MATCHES "hdf5")
               # hdf5 library
               set(_HDF5_SEARCH_OPTS_LOCAL ${_HDF5_SEARCH_OPTS})
               if(HDF5_USE_STATIC_LIBRARIES)
                 if(WIN32)
-                  set(_HDF5_SEARCH_NAMES_LOCAL lib${L})
+                  set(_HDF5_SEARCH_NAMES_LOCAL lib${_lib})
                 else()
-                  set(_HDF5_SEARCH_NAMES_LOCAL lib${L}.a)
+                  set(_HDF5_SEARCH_NAMES_LOCAL lib${_lib}.a)
                 endif()
               endif()
             else()
               # external library
               set(_HDF5_SEARCH_OPTS_LOCAL)
             endif()
-            find_library(HDF5_${__lang}_LIBRARY_${L}
-              NAMES ${_HDF5_SEARCH_NAMES_LOCAL} ${L} NAMES_PER_DIR
-              HINTS ${HDF5_${__lang}_LIBRARY_DIRS}
+            find_library(HDF5_${_lang}_LIBRARY_${_lib}
+              NAMES ${_HDF5_SEARCH_NAMES_LOCAL} ${_lib} NAMES_PER_DIR
+              HINTS ${HDF5_${_lang}_LIBRARY_DIRS}
                     ${HDF5_ROOT}
               ${_HDF5_SEARCH_OPTS_LOCAL}
               )
             unset(_HDF5_SEARCH_OPTS_LOCAL)
             unset(_HDF5_SEARCH_NAMES_LOCAL)
-            if(HDF5_${__lang}_LIBRARY_${L})
-              list(APPEND HDF5_${__lang}_LIBRARIES ${HDF5_${__lang}_LIBRARY_${L}})
+            if(HDF5_${_lang}_LIBRARY_${_lib})
+              list(APPEND HDF5_${_lang}_LIBRARIES ${HDF5_${_lang}_LIBRARY_${_lib}})
             else()
-              list(APPEND HDF5_${__lang}_LIBRARIES ${L})
+              list(APPEND HDF5_${_lang}_LIBRARIES ${_lib})
             endif()
           endforeach()
-          if(FIND_HL)
-            set(HDF5_${__lang}_HL_LIBRARIES)
-            foreach(L IN LISTS HDF5_${__lang}_HL_LIBRARY_NAMES)
+          if(HDF5_FIND_HL)
+            set(HDF5_${_lang}_HL_LIBRARIES)
+            foreach(_lib IN LISTS HDF5_${_lang}_HL_LIBRARY_NAMES)
               set(_HDF5_SEARCH_NAMES_LOCAL)
-              if("x${L}" MATCHES "hdf5")
+              if("x${_lib}" MATCHES "hdf5")
                 # hdf5 library
                 set(_HDF5_SEARCH_OPTS_LOCAL ${_HDF5_SEARCH_OPTS})
                 if(HDF5_USE_STATIC_LIBRARIES)
                   if(WIN32)
-                    set(_HDF5_SEARCH_NAMES_LOCAL lib${L})
+                    set(_HDF5_SEARCH_NAMES_LOCAL lib${_lib})
                   else()
-                    set(_HDF5_SEARCH_NAMES_LOCAL lib${L}.a)
+                    set(_HDF5_SEARCH_NAMES_LOCAL lib${_lib}.a)
                   endif()
                 endif()
               else()
                 # external library
                 set(_HDF5_SEARCH_OPTS_LOCAL)
               endif()
-              find_library(HDF5_${__lang}_LIBRARY_${L}
-                NAMES ${_HDF5_SEARCH_NAMES_LOCAL} ${L} NAMES_PER_DIR
-                HINTS ${HDF5_${__lang}_LIBRARY_DIRS}
+              find_library(HDF5_${_lang}_LIBRARY_${_lib}
+                NAMES ${_HDF5_SEARCH_NAMES_LOCAL} ${_lib} NAMES_PER_DIR
+                HINTS ${HDF5_${_lang}_LIBRARY_DIRS}
                       ${HDF5_ROOT}
                 ${_HDF5_SEARCH_OPTS_LOCAL}
                 )
               unset(_HDF5_SEARCH_OPTS_LOCAL)
               unset(_HDF5_SEARCH_NAMES_LOCAL)
-              if(HDF5_${__lang}_LIBRARY_${L})
-                list(APPEND HDF5_${__lang}_HL_LIBRARIES ${HDF5_${__lang}_LIBRARY_${L}})
+              if(HDF5_${_lang}_LIBRARY_${_lib})
+                list(APPEND HDF5_${_lang}_HL_LIBRARIES ${HDF5_${_lang}_LIBRARY_${_lib}})
               else()
-                list(APPEND HDF5_${__lang}_HL_LIBRARIES ${L})
+                list(APPEND HDF5_${_lang}_HL_LIBRARIES ${_lib})
               endif()
             endforeach()
-            set(HDF5_HL_FOUND True)
+            set(HDF5_HL_FOUND TRUE)
           endif()
 
-          set(HDF5_${__lang}_FOUND True)
-          _HDF5_remove_duplicates_from_beginning(HDF5_${__lang}_DEFINITIONS)
-          _HDF5_remove_duplicates_from_beginning(HDF5_${__lang}_INCLUDE_DIRS)
-          _HDF5_remove_duplicates_from_beginning(HDF5_${__lang}_LIBRARIES)
-          _HDF5_remove_duplicates_from_beginning(HDF5_${__lang}_HL_LIBRARIES)
+          set(HDF5_${_lang}_FOUND TRUE)
+          _HDF5_remove_duplicates_from_beginning(HDF5_${_lang}_DEFINITIONS)
+          _HDF5_remove_duplicates_from_beginning(HDF5_${_lang}_INCLUDE_DIRS)
+          _HDF5_remove_duplicates_from_beginning(HDF5_${_lang}_LIBRARIES)
+          _HDF5_remove_duplicates_from_beginning(HDF5_${_lang}_HL_LIBRARIES)
         else()
-          set(_HDF5_NEED_TO_SEARCH True)
+          set(_HDF5_NEED_TO_SEARCH TRUE)
         endif()
       else()
-        set(_HDF5_NEED_TO_SEARCH True)
+        set(_HDF5_NEED_TO_SEARCH TRUE)
       endif()
     endif()
-    if(HDF5_${__lang}_VERSION)
+    if(HDF5_${_lang}_VERSION)
       if(NOT HDF5_VERSION)
-        set(HDF5_VERSION ${HDF5_${__lang}_VERSION})
-      elseif(NOT HDF5_VERSION VERSION_EQUAL HDF5_${__lang}_VERSION)
-        message(WARNING "HDF5 Version found for language ${__lang}, ${HDF5_${__lang}_VERSION} is different than previously found version ${HDF5_VERSION}")
+        set(HDF5_VERSION ${HDF5_${_lang}_VERSION})
+      elseif(NOT HDF5_VERSION VERSION_EQUAL HDF5_${_lang}_VERSION)
+        message(WARNING "HDF5 Version found for language ${_lang}, ${HDF5_${_lang}_VERSION} is different than previously found version ${HDF5_VERSION}")
       endif()
     endif()
-    if(DEFINED HDF5_${__lang}_IS_PARALLEL)
+    if(DEFINED HDF5_${_lang}_IS_PARALLEL)
       if(NOT DEFINED HDF5_IS_PARALLEL)
-        set(HDF5_IS_PARALLEL ${HDF5_${__lang}_IS_PARALLEL})
-      elseif(NOT HDF5_IS_PARALLEL AND HDF5_${__lang}_IS_PARALLEL)
-        message(WARNING "HDF5 found for language ${__lang} is parallel but previously found language is not parallel.")
-      elseif(HDF5_IS_PARALLEL AND NOT HDF5_${__lang}_IS_PARALLEL)
-        message(WARNING "HDF5 found for language ${__lang} is not parallel but previously found language is parallel.")
+        set(HDF5_IS_PARALLEL ${HDF5_${_lang}_IS_PARALLEL})
+      elseif(NOT HDF5_IS_PARALLEL AND HDF5_${_lang}_IS_PARALLEL)
+        message(WARNING "HDF5 found for language ${_lang} is parallel but previously found language is not parallel.")
+      elseif(HDF5_IS_PARALLEL AND NOT HDF5_${_lang}_IS_PARALLEL)
+        message(WARNING "HDF5 found for language ${_lang} is not parallel but previously found language is parallel.")
       endif()
     endif()
   endforeach()
+  unset(_lib)
 else()
-  set(_HDF5_NEED_TO_SEARCH True)
+  set(_HDF5_NEED_TO_SEARCH TRUE)
 endif()
 
 if(NOT HDF5_FOUND AND HDF5_COMPILER_NO_INTERROGATE)
   # No arguments necessary, all languages can use the compiler wrappers
-  set(HDF5_FOUND True)
+  set(HDF5_FOUND TRUE)
   set(HDF5_METHOD "Included by compiler wrappers")
   set(HDF5_REQUIRED_VARS HDF5_METHOD)
 elseif(NOT HDF5_FOUND AND NOT _HDF5_NEED_TO_SEARCH)
@@ -727,14 +744,14 @@
   set(HDF5_INCLUDE_DIRS)
   set(HDF5_LIBRARIES)
   set(HDF5_HL_LIBRARIES)
-  foreach(__lang IN LISTS HDF5_LANGUAGE_BINDINGS)
-    if(HDF5_${__lang}_FOUND)
-      if(NOT HDF5_${__lang}_COMPILER_NO_INTERROGATE)
-        list(APPEND HDF5_DEFINITIONS ${HDF5_${__lang}_DEFINITIONS})
-        list(APPEND HDF5_INCLUDE_DIRS ${HDF5_${__lang}_INCLUDE_DIRS})
-        list(APPEND HDF5_LIBRARIES ${HDF5_${__lang}_LIBRARIES})
-        if(FIND_HL)
-          list(APPEND HDF5_HL_LIBRARIES ${HDF5_${__lang}_HL_LIBRARIES})
+  foreach(_lang IN LISTS HDF5_LANGUAGE_BINDINGS)
+    if(HDF5_${_lang}_FOUND)
+      if(NOT HDF5_${_lang}_COMPILER_NO_INTERROGATE)
+        list(APPEND HDF5_DEFINITIONS ${HDF5_${_lang}_DEFINITIONS})
+        list(APPEND HDF5_INCLUDE_DIRS ${HDF5_${_lang}_INCLUDE_DIRS})
+        list(APPEND HDF5_LIBRARIES ${HDF5_${_lang}_LIBRARIES})
+        if(HDF5_FIND_HL)
+          list(APPEND HDF5_HL_LIBRARIES ${HDF5_${_lang}_HL_LIBRARIES})
         endif()
       endif()
     endif()
@@ -743,9 +760,9 @@
   _HDF5_remove_duplicates_from_beginning(HDF5_INCLUDE_DIRS)
   _HDF5_remove_duplicates_from_beginning(HDF5_LIBRARIES)
   _HDF5_remove_duplicates_from_beginning(HDF5_HL_LIBRARIES)
-  set(HDF5_FOUND True)
+  set(HDF5_FOUND TRUE)
   set(HDF5_REQUIRED_VARS HDF5_LIBRARIES)
-  if(FIND_HL)
+  if(HDF5_FIND_HL)
     list(APPEND HDF5_REQUIRED_VARS HDF5_HL_LIBRARIES)
   endif()
 endif()
@@ -769,33 +786,44 @@
     set(HDF5_Fortran_LIBRARY_NAMES    hdf5_fortran   ${HDF5_C_LIBRARY_NAMES})
     set(HDF5_Fortran_HL_LIBRARY_NAMES hdf5hl_fortran ${HDF5_C_HL_LIBRARY_NAMES} ${HDF5_Fortran_LIBRARY_NAMES})
 
-    foreach(__lang IN LISTS HDF5_LANGUAGE_BINDINGS)
+    # suffixes as seen on Linux, MSYS2, ...
+    set(_lib_suffixes hdf5)
+    if(NOT HDF5_PREFER_PARALLEL)
+      list(APPEND _lib_suffixes hdf5/serial)
+    endif()
+    if(HDF5_USE_STATIC_LIBRARIES)
+      set(_inc_suffixes include/static)
+    else()
+      set(_inc_suffixes include/shared)
+    endif()
+
+    foreach(_lang IN LISTS HDF5_LANGUAGE_BINDINGS)
         # find the HDF5 include directories
-        if("${__lang}" STREQUAL "Fortran")
+        if("${_lang}" STREQUAL "Fortran")
             set(HDF5_INCLUDE_FILENAME hdf5.mod HDF5.mod)
-        elseif("${__lang}" STREQUAL "CXX")
+        elseif("${_lang}" STREQUAL "CXX")
             set(HDF5_INCLUDE_FILENAME H5Cpp.h)
         else()
             set(HDF5_INCLUDE_FILENAME hdf5.h)
         endif()
 
-        find_path(HDF5_${__lang}_INCLUDE_DIR ${HDF5_INCLUDE_FILENAME}
+        find_path(HDF5_${_lang}_INCLUDE_DIR ${HDF5_INCLUDE_FILENAME}
             HINTS ${HDF5_ROOT}
             PATHS $ENV{HOME}/.local/include
-            PATH_SUFFIXES include Include
+            PATH_SUFFIXES include Include ${_inc_suffixes} ${_lib_suffixes}
             ${_HDF5_SEARCH_OPTS}
         )
-        mark_as_advanced(HDF5_${__lang}_INCLUDE_DIR)
+        mark_as_advanced(HDF5_${_lang}_INCLUDE_DIR)
         # set the _DIRS variable as this is what the user will normally use
-        set(HDF5_${__lang}_INCLUDE_DIRS ${HDF5_${__lang}_INCLUDE_DIR})
-        list(APPEND HDF5_INCLUDE_DIRS ${HDF5_${__lang}_INCLUDE_DIR})
+        set(HDF5_${_lang}_INCLUDE_DIRS ${HDF5_${_lang}_INCLUDE_DIR})
+        list(APPEND HDF5_INCLUDE_DIRS ${HDF5_${_lang}_INCLUDE_DIR})
 
         # find the HDF5 libraries
-        foreach(LIB IN LISTS HDF5_${__lang}_LIBRARY_NAMES)
+        foreach(LIB IN LISTS HDF5_${_lang}_LIBRARY_NAMES)
             if(HDF5_USE_STATIC_LIBRARIES)
                 # According to bug 1643 on the CMake bug tracker, this is the
                 # preferred method for searching for a static library.
-                # See https://gitlab.kitware.com/cmake/cmake/issues/1643.  We search
+                # See https://gitlab.kitware.com/cmake/cmake/-/issues/1643.  We search
                 # first for the full static library name, but fall back to a
                 # generic search on the name if the static search fails.
                 set( THIS_LIBRARY_SEARCH_DEBUG
@@ -811,31 +839,32 @@
             endif()
             find_library(HDF5_${LIB}_LIBRARY_DEBUG
                 NAMES ${THIS_LIBRARY_SEARCH_DEBUG}
-                HINTS ${HDF5_ROOT} PATH_SUFFIXES lib Lib
+                HINTS ${HDF5_ROOT} PATH_SUFFIXES lib Lib ${_lib_suffixes}
                 ${_HDF5_SEARCH_OPTS}
             )
-            find_library( HDF5_${LIB}_LIBRARY_RELEASE
+            find_library(HDF5_${LIB}_LIBRARY_RELEASE
                 NAMES ${THIS_LIBRARY_SEARCH_RELEASE}
-                HINTS ${HDF5_ROOT} PATH_SUFFIXES lib Lib
+                HINTS ${HDF5_ROOT} PATH_SUFFIXES lib Lib ${_lib_suffixes}
                 ${_HDF5_SEARCH_OPTS}
             )
+
             select_library_configurations( HDF5_${LIB} )
-            list(APPEND HDF5_${__lang}_LIBRARIES ${HDF5_${LIB}_LIBRARY})
+            list(APPEND HDF5_${_lang}_LIBRARIES ${HDF5_${LIB}_LIBRARY})
         endforeach()
-        if(HDF5_${__lang}_LIBRARIES)
-            set(HDF5_${__lang}_FOUND True)
+        if(HDF5_${_lang}_LIBRARIES)
+            set(HDF5_${_lang}_FOUND TRUE)
         endif()
 
         # Append the libraries for this language binding to the list of all
         # required libraries.
-        list(APPEND HDF5_LIBRARIES ${HDF5_${__lang}_LIBRARIES})
+        list(APPEND HDF5_LIBRARIES ${HDF5_${_lang}_LIBRARIES})
 
-        if(FIND_HL)
-            foreach(LIB IN LISTS HDF5_${__lang}_HL_LIBRARY_NAMES)
+        if(HDF5_FIND_HL)
+            foreach(LIB IN LISTS HDF5_${_lang}_HL_LIBRARY_NAMES)
                 if(HDF5_USE_STATIC_LIBRARIES)
                     # According to bug 1643 on the CMake bug tracker, this is the
                     # preferred method for searching for a static library.
-                    # See https://gitlab.kitware.com/cmake/cmake/issues/1643.  We search
+                    # See https://gitlab.kitware.com/cmake/cmake/-/issues/1643.  We search
                     # first for the full static library name, but fall back to a
                     # generic search on the name if the static search fails.
                     set( THIS_LIBRARY_SEARCH_DEBUG
@@ -848,25 +877,26 @@
                 endif()
                 find_library(HDF5_${LIB}_LIBRARY_DEBUG
                     NAMES ${THIS_LIBRARY_SEARCH_DEBUG}
-                    HINTS ${HDF5_ROOT} PATH_SUFFIXES lib Lib
+                    HINTS ${HDF5_ROOT} PATH_SUFFIXES lib Lib ${_lib_suffixes}
                     ${_HDF5_SEARCH_OPTS}
                 )
-                find_library( HDF5_${LIB}_LIBRARY_RELEASE
+                find_library(HDF5_${LIB}_LIBRARY_RELEASE
                     NAMES ${THIS_LIBRARY_SEARCH_RELEASE}
-                    HINTS ${HDF5_ROOT} PATH_SUFFIXES lib Lib
+                    HINTS ${HDF5_ROOT} PATH_SUFFIXES lib Lib ${_lib_suffixes}
                     ${_HDF5_SEARCH_OPTS}
                 )
+
                 select_library_configurations( HDF5_${LIB} )
-                list(APPEND HDF5_${__lang}_HL_LIBRARIES ${HDF5_${LIB}_LIBRARY})
+                list(APPEND HDF5_${_lang}_HL_LIBRARIES ${HDF5_${LIB}_LIBRARY})
             endforeach()
 
             # Append the libraries for this language binding to the list of all
             # required libraries.
-            list(APPEND HDF5_HL_LIBRARIES ${HDF5_${__lang}_HL_LIBRARIES})
+            list(APPEND HDF5_HL_LIBRARIES ${HDF5_${_lang}_HL_LIBRARIES})
         endif()
     endforeach()
-    if(FIND_HL AND HDF5_HL_LIBRARIES)
-        set(HDF5_HL_FOUND True)
+    if(HDF5_FIND_HL AND HDF5_HL_LIBRARIES)
+        set(HDF5_HL_FOUND TRUE)
     endif()
 
     _HDF5_remove_duplicates_from_beginning(HDF5_DEFINITIONS)
@@ -903,12 +933,14 @@
         endif()
       endforeach()
     endforeach()
+    unset(_hdr)
+    unset(_dir)
     set( HDF5_IS_PARALLEL ${HDF5_IS_PARALLEL} CACHE BOOL
         "HDF5 library compiled with parallel IO support" )
     mark_as_advanced( HDF5_IS_PARALLEL )
 
     set(HDF5_REQUIRED_VARS HDF5_LIBRARIES HDF5_INCLUDE_DIRS)
-    if(FIND_HL)
+    if(HDF5_FIND_HL)
         list(APPEND HDF5_REQUIRED_VARS HDF5_HL_LIBRARIES)
     endif()
 endif()
@@ -946,13 +978,15 @@
   message(STATUS "HDF5_INCLUDE_DIRS: ${HDF5_INCLUDE_DIRS}")
   message(STATUS "HDF5_LIBRARIES: ${HDF5_LIBRARIES}")
   message(STATUS "HDF5_HL_LIBRARIES: ${HDF5_HL_LIBRARIES}")
-  foreach(__lang IN LISTS HDF5_LANGUAGE_BINDINGS)
-    message(STATUS "HDF5_${__lang}_DEFINITIONS: ${HDF5_${__lang}_DEFINITIONS}")
-    message(STATUS "HDF5_${__lang}_INCLUDE_DIR: ${HDF5_${__lang}_INCLUDE_DIR}")
-    message(STATUS "HDF5_${__lang}_INCLUDE_DIRS: ${HDF5_${__lang}_INCLUDE_DIRS}")
-    message(STATUS "HDF5_${__lang}_LIBRARY: ${HDF5_${__lang}_LIBRARY}")
-    message(STATUS "HDF5_${__lang}_LIBRARIES: ${HDF5_${__lang}_LIBRARIES}")
-    message(STATUS "HDF5_${__lang}_HL_LIBRARY: ${HDF5_${__lang}_HL_LIBRARY}")
-    message(STATUS "HDF5_${__lang}_HL_LIBRARIES: ${HDF5_${__lang}_HL_LIBRARIES}")
+  foreach(_lang IN LISTS HDF5_LANGUAGE_BINDINGS)
+    message(STATUS "HDF5_${_lang}_DEFINITIONS: ${HDF5_${_lang}_DEFINITIONS}")
+    message(STATUS "HDF5_${_lang}_INCLUDE_DIR: ${HDF5_${_lang}_INCLUDE_DIR}")
+    message(STATUS "HDF5_${_lang}_INCLUDE_DIRS: ${HDF5_${_lang}_INCLUDE_DIRS}")
+    message(STATUS "HDF5_${_lang}_LIBRARY: ${HDF5_${_lang}_LIBRARY}")
+    message(STATUS "HDF5_${_lang}_LIBRARIES: ${HDF5_${_lang}_LIBRARIES}")
+    message(STATUS "HDF5_${_lang}_HL_LIBRARY: ${HDF5_${_lang}_HL_LIBRARY}")
+    message(STATUS "HDF5_${_lang}_HL_LIBRARIES: ${HDF5_${_lang}_HL_LIBRARIES}")
   endforeach()
 endif()
+unset(_lang)
+unset(_HDF5_NEED_TO_SEARCH)
diff --git a/share/cmake-3.17/Modules/FindHSPELL.cmake b/share/cmake-3.18/Modules/FindHSPELL.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindHSPELL.cmake
rename to share/cmake-3.18/Modules/FindHSPELL.cmake
diff --git a/share/cmake-3.17/Modules/FindHTMLHelp.cmake b/share/cmake-3.18/Modules/FindHTMLHelp.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindHTMLHelp.cmake
rename to share/cmake-3.18/Modules/FindHTMLHelp.cmake
diff --git a/share/cmake-3.17/Modules/FindHg.cmake b/share/cmake-3.18/Modules/FindHg.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindHg.cmake
rename to share/cmake-3.18/Modules/FindHg.cmake
diff --git a/share/cmake-3.17/Modules/FindICU.cmake b/share/cmake-3.18/Modules/FindICU.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindICU.cmake
rename to share/cmake-3.18/Modules/FindICU.cmake
diff --git a/share/cmake-3.17/Modules/FindIce.cmake b/share/cmake-3.18/Modules/FindIce.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindIce.cmake
rename to share/cmake-3.18/Modules/FindIce.cmake
diff --git a/share/cmake-3.17/Modules/FindIconv.cmake b/share/cmake-3.18/Modules/FindIconv.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindIconv.cmake
rename to share/cmake-3.18/Modules/FindIconv.cmake
diff --git a/share/cmake-3.17/Modules/FindIcotool.cmake b/share/cmake-3.18/Modules/FindIcotool.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindIcotool.cmake
rename to share/cmake-3.18/Modules/FindIcotool.cmake
diff --git a/share/cmake-3.17/Modules/FindImageMagick.cmake b/share/cmake-3.18/Modules/FindImageMagick.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindImageMagick.cmake
rename to share/cmake-3.18/Modules/FindImageMagick.cmake
diff --git a/share/cmake-3.17/Modules/FindIntl.cmake b/share/cmake-3.18/Modules/FindIntl.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindIntl.cmake
rename to share/cmake-3.18/Modules/FindIntl.cmake
diff --git a/share/cmake-3.17/Modules/FindJNI.cmake b/share/cmake-3.18/Modules/FindJNI.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindJNI.cmake
rename to share/cmake-3.18/Modules/FindJNI.cmake
diff --git a/share/cmake-3.17/Modules/FindJPEG.cmake b/share/cmake-3.18/Modules/FindJPEG.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindJPEG.cmake
rename to share/cmake-3.18/Modules/FindJPEG.cmake
diff --git a/share/cmake-3.17/Modules/FindJasper.cmake b/share/cmake-3.18/Modules/FindJasper.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindJasper.cmake
rename to share/cmake-3.18/Modules/FindJasper.cmake
diff --git a/share/cmake-3.17/Modules/FindJava.cmake b/share/cmake-3.18/Modules/FindJava.cmake
similarity index 98%
rename from share/cmake-3.17/Modules/FindJava.cmake
rename to share/cmake-3.18/Modules/FindJava.cmake
index 945df3c..9db740b 100644
--- a/share/cmake-3.17/Modules/FindJava.cmake
+++ b/share/cmake-3.18/Modules/FindJava.cmake
@@ -160,9 +160,8 @@
       OUTPUT_STRIP_TRAILING_WHITESPACE
       ERROR_STRIP_TRAILING_WHITESPACE)
     if( res )
-      if(var MATCHES "No Java runtime present, requesting install")
-        set_property(CACHE Java_JAVA_EXECUTABLE
-          PROPERTY VALUE "Java_JAVA_EXECUTABLE-NOTFOUND")
+      if(var MATCHES "Unable to locate a Java Runtime to invoke|No Java runtime present, requesting install")
+        set(Java_JAVA_EXECUTABLE Java_JAVA_EXECUTABLE-NOTFOUND)
       elseif(${Java_FIND_REQUIRED})
         message( FATAL_ERROR "Error executing java -version" )
       else()
diff --git a/share/cmake-3.17/Modules/FindKDE3.cmake b/share/cmake-3.18/Modules/FindKDE3.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindKDE3.cmake
rename to share/cmake-3.18/Modules/FindKDE3.cmake
diff --git a/share/cmake-3.17/Modules/FindKDE4.cmake b/share/cmake-3.18/Modules/FindKDE4.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindKDE4.cmake
rename to share/cmake-3.18/Modules/FindKDE4.cmake
diff --git a/share/cmake-3.17/Modules/FindLAPACK.cmake b/share/cmake-3.18/Modules/FindLAPACK.cmake
similarity index 90%
rename from share/cmake-3.17/Modules/FindLAPACK.cmake
rename to share/cmake-3.18/Modules/FindLAPACK.cmake
index c962976..31e7de6 100644
--- a/share/cmake-3.17/Modules/FindLAPACK.cmake
+++ b/share/cmake-3.18/Modules/FindLAPACK.cmake
@@ -38,11 +38,23 @@
   * ``ACML``
   * ``Apple``
   * ``NAS``
+  * ``Arm``
+  * ``Arm_mp``
+  * ``Arm_ilp64``
+  * ``Arm_ilp64_mp``
   * ``Generic``
 
 ``BLA_F95``
   if ``ON`` tries to find the BLAS95/LAPACK95 interfaces
 
+Imported targets
+^^^^^^^^^^^^^^^^
+
+This module defines the following :prop_tgt:`IMPORTED` target:
+
+``LAPACK::LAPACK``
+  The libraries to use for LAPACK, if found.
+
 Result Variables
 ^^^^^^^^^^^^^^^^
 
@@ -267,7 +279,7 @@
           set(LAPACK_mkl_OS_NAME "lin")
         endif()
         if(DEFINED ENV{MKLROOT})
-          set(LAPACK_mkl_MKLROOT "$ENV{MKLROOT}")
+          file(TO_CMAKE_PATH "$ENV{MKLROOT}" LAPACK_mkl_MKLROOT)
           # If MKLROOT points to the subdirectory 'mkl', use the parent directory instead
           # so we can better detect other relevant libraries in 'compiler' or 'tbb':
           get_filename_component(LAPACK_mkl_MKLROOT_LAST_DIR "${LAPACK_mkl_MKLROOT}" NAME)
@@ -359,6 +371,36 @@
     endif()
   endif()
 
+  # ArmPL? (https://developer.arm.com/tools-and-software/server-and-hpc/compile/arm-compiler-for-linux/arm-performance-libraries)
+  if(BLA_VENDOR MATCHES "Arm" OR BLA_VENDOR STREQUAL "All")
+
+    # Check for 64bit Integer support
+    if(BLA_VENDOR MATCHES "_ilp64")
+      set(LAPACK_armpl_LIB "armpl_ilp64")
+    else()
+      set(LAPACK_armpl_LIB "armpl_lp64")
+    endif()
+
+    # Check for OpenMP support, VIA BLA_VENDOR of Arm_mp or Arm_ipl64_mp
+    if(BLA_VENDOR MATCHES "_mp")
+     set(LAPACK_armpl_LIB "${LAPACK_armpl_LIB}_mp")
+    endif()
+
+    if(NOT LAPACK_LIBRARIES)
+      check_lapack_libraries(
+        LAPACK_LIBRARIES
+        LAPACK
+        cheev
+        ""
+        "${LAPACK_armpl_LIB}"
+        ""
+        ""
+        ""
+        "${BLAS_LIBRARIES}"
+      )
+    endif()
+  endif()
+
   # FLAME's blis library? (https://github.com/flame/blis)
   if(BLA_VENDOR STREQUAL "FLAME" OR BLA_VENDOR STREQUAL "All")
     if(NOT LAPACK_LIBRARIES)
@@ -492,5 +534,22 @@
   set(LAPACK_LIBRARIES "")
 endif()
 
+if(NOT TARGET LAPACK::LAPACK)
+  add_library(LAPACK::LAPACK INTERFACE IMPORTED)
+  set(_lapack_libs "${LAPACK_LIBRARIES}")
+  if(_lapack_libs AND TARGET BLAS::BLAS)
+    # remove the ${BLAS_LIBRARIES} from the interface and replace it
+    # with the BLAS::BLAS target
+    list(REMOVE_ITEM _lapack_libs "${BLAS_LIBRARIES}")
+  endif()
+
+  if(_lapack_libs)
+    set_target_properties(LAPACK::LAPACK PROPERTIES
+      INTERFACE_LINK_LIBRARIES "${_lapack_libs}"
+    )
+  endif()
+  unset(_lapack_libs)
+endif()
+
 cmake_pop_check_state()
 set(CMAKE_FIND_LIBRARY_SUFFIXES ${_lapack_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES})
diff --git a/share/cmake-3.17/Modules/FindLATEX.cmake b/share/cmake-3.18/Modules/FindLATEX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindLATEX.cmake
rename to share/cmake-3.18/Modules/FindLATEX.cmake
diff --git a/share/cmake-3.17/Modules/FindLTTngUST.cmake b/share/cmake-3.18/Modules/FindLTTngUST.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindLTTngUST.cmake
rename to share/cmake-3.18/Modules/FindLTTngUST.cmake
diff --git a/share/cmake-3.17/Modules/FindLibArchive.cmake b/share/cmake-3.18/Modules/FindLibArchive.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindLibArchive.cmake
rename to share/cmake-3.18/Modules/FindLibArchive.cmake
diff --git a/share/cmake-3.17/Modules/FindLibLZMA.cmake b/share/cmake-3.18/Modules/FindLibLZMA.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindLibLZMA.cmake
rename to share/cmake-3.18/Modules/FindLibLZMA.cmake
diff --git a/share/cmake-3.17/Modules/FindLibXml2.cmake b/share/cmake-3.18/Modules/FindLibXml2.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindLibXml2.cmake
rename to share/cmake-3.18/Modules/FindLibXml2.cmake
diff --git a/share/cmake-3.18/Modules/FindLibXslt.cmake b/share/cmake-3.18/Modules/FindLibXslt.cmake
new file mode 100644
index 0000000..fc7adeb
--- /dev/null
+++ b/share/cmake-3.18/Modules/FindLibXslt.cmake
@@ -0,0 +1,131 @@
+# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindLibXslt
+-----------
+
+Find the XSL Transformations, Extensible Stylesheet Language
+Transformations (XSLT) library (LibXslt)
+
+IMPORTED Targets
+^^^^^^^^^^^^^^^^
+
+The following :prop_tgt:`IMPORTED` targets may be defined:
+
+``LibXslt::LibXslt``
+  If the libxslt library has been found
+``LibXslt::LibExslt``
+  If the libexslt library has been found
+``LibXslt::xsltproc``
+  If the xsltproc command-line executable has been found
+
+Result variables
+^^^^^^^^^^^^^^^^
+
+This module will set the following variables in your project:
+
+  LIBXSLT_FOUND - system has LibXslt
+  LIBXSLT_INCLUDE_DIR - the LibXslt include directory
+  LIBXSLT_LIBRARIES - Link these to LibXslt
+  LIBXSLT_DEFINITIONS - Compiler switches required for using LibXslt
+  LIBXSLT_VERSION_STRING - version of LibXslt found (since CMake 2.8.8)
+
+Additionally, the following two variables are set (but not required
+for using xslt):
+
+``LIBXSLT_EXSLT_INCLUDE_DIR``
+  The include directory for exslt.
+``LIBXSLT_EXSLT_LIBRARIES``
+  Link to these if you need to link against the exslt library.
+``LIBXSLT_XSLTPROC_EXECUTABLE``
+  Contains the full path to the xsltproc executable if found.
+#]=======================================================================]
+
+# use pkg-config to get the directories and then use these values
+# in the find_path() and find_library() calls
+find_package(PkgConfig QUIET)
+PKG_CHECK_MODULES(PC_LIBXSLT QUIET libxslt)
+set(LIBXSLT_DEFINITIONS ${PC_LIBXSLT_CFLAGS_OTHER})
+
+find_path(LIBXSLT_INCLUDE_DIR NAMES libxslt/xslt.h
+    HINTS
+   ${PC_LIBXSLT_INCLUDEDIR}
+   ${PC_LIBXSLT_INCLUDE_DIRS}
+  )
+
+# CMake 3.17 and below used 'LIBXSLT_LIBRARIES' as the name of
+# the cache entry storing the find_library result.  Use the
+# value if it was set by the project or user.
+if(DEFINED LIBXSLT_LIBRARIES AND NOT DEFINED LIBXSLT_LIBRARY)
+  set(LIBXSLT_LIBRARY ${LIBXSLT_LIBRARIES})
+endif()
+
+find_library(LIBXSLT_LIBRARY NAMES xslt libxslt
+    HINTS
+   ${PC_LIBXSLT_LIBDIR}
+   ${PC_LIBXSLT_LIBRARY_DIRS}
+  )
+
+set(LIBXSLT_LIBRARIES ${LIBXSLT_LIBRARY})
+
+PKG_CHECK_MODULES(PC_LIBXSLT_EXSLT QUIET libexslt)
+set(LIBXSLT_EXSLT_DEFINITIONS ${PC_LIBXSLT_EXSLT_CFLAGS_OTHER})
+
+find_path(LIBXSLT_EXSLT_INCLUDE_DIR NAMES libexslt/exslt.h
+  HINTS
+  ${PC_LIBXSLT_EXSLT_INCLUDEDIR}
+  ${PC_LIBXSLT_EXSLT_INCLUDE_DIRS}
+)
+
+find_library(LIBXSLT_EXSLT_LIBRARY NAMES exslt libexslt
+    HINTS
+    ${PC_LIBXSLT_LIBDIR}
+    ${PC_LIBXSLT_LIBRARY_DIRS}
+    ${PC_LIBXSLT_EXSLT_LIBDIR}
+    ${PC_LIBXSLT_EXSLT_LIBRARY_DIRS}
+  )
+
+set(LIBXSLT_EXSLT_LIBRARIES ${LIBXSLT_EXSLT_LIBRARY} )
+
+find_program(LIBXSLT_XSLTPROC_EXECUTABLE xsltproc)
+
+if(PC_LIBXSLT_VERSION)
+    set(LIBXSLT_VERSION_STRING ${PC_LIBXSLT_VERSION})
+elseif(LIBXSLT_INCLUDE_DIR AND EXISTS "${LIBXSLT_INCLUDE_DIR}/libxslt/xsltconfig.h")
+    file(STRINGS "${LIBXSLT_INCLUDE_DIR}/libxslt/xsltconfig.h" libxslt_version_str
+         REGEX "^#define[\t ]+LIBXSLT_DOTTED_VERSION[\t ]+\".*\"")
+
+    string(REGEX REPLACE "^#define[\t ]+LIBXSLT_DOTTED_VERSION[\t ]+\"([^\"]*)\".*" "\\1"
+           LIBXSLT_VERSION_STRING "${libxslt_version_str}")
+    unset(libxslt_version_str)
+endif()
+
+include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(LibXslt
+                                  REQUIRED_VARS LIBXSLT_LIBRARIES LIBXSLT_INCLUDE_DIR
+                                  VERSION_VAR LIBXSLT_VERSION_STRING)
+
+mark_as_advanced(LIBXSLT_INCLUDE_DIR
+                 LIBXSLT_LIBRARIES
+                 LIBXSLT_EXSLT_LIBRARY
+                 LIBXSLT_XSLTPROC_EXECUTABLE)
+
+if(LIBXSLT_FOUND AND NOT TARGET LibXslt::LibXslt)
+  add_library(LibXslt::LibXslt UNKNOWN IMPORTED)
+  set_target_properties(LibXslt::LibXslt PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${LIBXSLT_INCLUDE_DIR}")
+  set_target_properties(LibXslt::LibXslt PROPERTIES INTERFACE_COMPILE_OPTIONS "${LIBXSLT_DEFINITIONS}")
+  set_property(TARGET LibXslt::LibXslt APPEND PROPERTY IMPORTED_LOCATION "${LIBXSLT_LIBRARY}")
+endif()
+
+if(LIBXSLT_FOUND AND NOT TARGET LibXslt::LibExslt)
+  add_library(LibXslt::LibExslt UNKNOWN IMPORTED)
+  set_target_properties(LibXslt::LibExslt PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${LIBXSLT_EXSLT_INCLUDE_DIR}")
+  set_target_properties(LibXslt::LibExslt PROPERTIES INTERFACE_COMPILE_OPTIONS "${LIBXSLT_EXSLT_DEFINITIONS}")
+  set_property(TARGET LibXslt::LibExslt APPEND PROPERTY IMPORTED_LOCATION "${LIBXSLT_EXSLT_LIBRARY}")
+endif()
+
+if(LIBXSLT_XSLTPROC_EXECUTABLE AND NOT TARGET LibXslt::xsltproc)
+  add_executable(LibXslt::xsltproc IMPORTED)
+  set_target_properties(LibXslt::xsltproc PROPERTIES IMPORTED_LOCATION "${LIBXSLT_XSLTPROC_EXECUTABLE}")
+endif()
diff --git a/share/cmake-3.17/Modules/FindLibinput.cmake b/share/cmake-3.18/Modules/FindLibinput.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindLibinput.cmake
rename to share/cmake-3.18/Modules/FindLibinput.cmake
diff --git a/share/cmake-3.17/Modules/FindLua.cmake b/share/cmake-3.18/Modules/FindLua.cmake
similarity index 99%
rename from share/cmake-3.17/Modules/FindLua.cmake
rename to share/cmake-3.18/Modules/FindLua.cmake
index 0b0c970..c4361b7 100644
--- a/share/cmake-3.17/Modules/FindLua.cmake
+++ b/share/cmake-3.18/Modules/FindLua.cmake
@@ -48,7 +48,7 @@
 
 # this is a function only to have all the variables inside go away automatically
 function(_lua_get_versions)
-    set(LUA_VERSIONS5 5.3 5.2 5.1 5.0)
+    set(LUA_VERSIONS5 5.4 5.3 5.2 5.1 5.0)
 
     if (Lua_FIND_VERSION_EXACT)
         if (Lua_FIND_VERSION_COUNT GREATER 1)
diff --git a/share/cmake-3.17/Modules/FindLua50.cmake b/share/cmake-3.18/Modules/FindLua50.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindLua50.cmake
rename to share/cmake-3.18/Modules/FindLua50.cmake
diff --git a/share/cmake-3.17/Modules/FindLua51.cmake b/share/cmake-3.18/Modules/FindLua51.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindLua51.cmake
rename to share/cmake-3.18/Modules/FindLua51.cmake
diff --git a/share/cmake-3.17/Modules/FindMFC.cmake b/share/cmake-3.18/Modules/FindMFC.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindMFC.cmake
rename to share/cmake-3.18/Modules/FindMFC.cmake
diff --git a/share/cmake-3.17/Modules/FindMPEG.cmake b/share/cmake-3.18/Modules/FindMPEG.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindMPEG.cmake
rename to share/cmake-3.18/Modules/FindMPEG.cmake
diff --git a/share/cmake-3.17/Modules/FindMPEG2.cmake b/share/cmake-3.18/Modules/FindMPEG2.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindMPEG2.cmake
rename to share/cmake-3.18/Modules/FindMPEG2.cmake
diff --git a/share/cmake-3.17/Modules/FindMPI.cmake b/share/cmake-3.18/Modules/FindMPI.cmake
similarity index 98%
rename from share/cmake-3.17/Modules/FindMPI.cmake
rename to share/cmake-3.18/Modules/FindMPI.cmake
index 41e1d08..25de562 100644
--- a/share/cmake-3.17/Modules/FindMPI.cmake
+++ b/share/cmake-3.18/Modules/FindMPI.cmake
@@ -298,9 +298,9 @@
 endif()
 
 # PGI compiler names
-set(_MPI_PGI_C_COMPILER_NAMES              mpipgcc mppgcc)
-set(_MPI_PGI_CXX_COMPILER_NAMES            mpipgCC mppgCC)
-set(_MPI_PGI_Fortran_COMPILER_NAMES        mpipgf95 mpipgf90 mppgf95 mppgf90 mpipgf77 mppgf77)
+set(_MPI_PGI_C_COMPILER_NAMES              mpipgicc mpipgcc mppgcc)
+set(_MPI_PGI_CXX_COMPILER_NAMES            mpipgic++ mpipgCC mppgCC)
+set(_MPI_PGI_Fortran_COMPILER_NAMES        mpipgifort mpipgf95 mpipgf90 mppgf95 mppgf90 mpipgf77 mppgf77)
 
 # XLC MPI Compiler names
 set(_MPI_XL_C_COMPILER_NAMES               mpxlc      mpxlc_r    mpixlc     mpixlc_r)
@@ -867,11 +867,11 @@
       # We first attempt to locate the msmpi.lib. Should be find it, we'll assume that the MPI present is indeed
       # Microsoft MPI.
       if("${CMAKE_SIZEOF_VOID_P}" EQUAL 8)
-        set(MPI_MSMPI_LIB_PATH "$ENV{MSMPI_LIB64}")
-        set(MPI_MSMPI_INC_PATH_EXTRA "$ENV{MSMPI_INC}/x64")
+        file(TO_CMAKE_PATH "$ENV{MSMPI_LIB64}" MPI_MSMPI_LIB_PATH)
+        file(TO_CMAKE_PATH "$ENV{MSMPI_INC}/x64" MPI_MSMPI_INC_PATH_EXTRA)
       else()
-        set(MPI_MSMPI_LIB_PATH "$ENV{MSMPI_LIB32}")
-        set(MPI_MSMPI_INC_PATH_EXTRA "$ENV{MSMPI_INC}/x86")
+        file(TO_CMAKE_PATH "$ENV{MSMPI_LIB32}" MPI_MSMPI_LIB_PATH)
+        file(TO_CMAKE_PATH "$ENV{MSMPI_INC}/x86" MPI_MSMPI_INC_PATH_EXTRA)
       endif()
 
       find_library(MPI_msmpi_LIBRARY
@@ -1153,8 +1153,10 @@
     add_library(MPI::MPI_${LANG} INTERFACE IMPORTED)
   endif()
 
-  # When this is consumed for compiling CUDA, use '-Xcompiler' to wrap '-pthread'.
-  string(REPLACE "-pthread" "$<$<COMPILE_LANGUAGE:CUDA>:SHELL:-Xcompiler >-pthread"
+  # When this is consumed for compiling CUDA, use '-Xcompiler' to wrap '-pthread' and '-fexceptions'.
+  string(REPLACE "-pthread" "$<$<COMPILE_LANG_AND_ID:CUDA,NVIDIA>:SHELL:-Xcompiler >-pthread"
+    _MPI_${LANG}_COMPILE_OPTIONS "${MPI_${LANG}_COMPILE_OPTIONS}")
+  string(REPLACE "-fexceptions" "$<$<COMPILE_LANG_AND_ID:CUDA,NVIDIA>:SHELL:-Xcompiler >-fexceptions"
     _MPI_${LANG}_COMPILE_OPTIONS "${MPI_${LANG}_COMPILE_OPTIONS}")
   set_property(TARGET MPI::MPI_${LANG} PROPERTY INTERFACE_COMPILE_OPTIONS "${_MPI_${LANG}_COMPILE_OPTIONS}")
   unset(_MPI_${LANG}_COMPILE_OPTIONS)
@@ -1162,6 +1164,8 @@
   set_property(TARGET MPI::MPI_${LANG} PROPERTY INTERFACE_COMPILE_DEFINITIONS "${MPI_${LANG}_COMPILE_DEFINITIONS}")
 
   if(MPI_${LANG}_LINK_FLAGS)
+    string(REPLACE "-pthread" "$<$<LINK_LANG_AND_ID:CUDA,NVIDIA>:-Xlinker >-pthread"
+      _MPI_${LANG}_LINK_FLAGS "${MPI_${LANG}_LINK_FLAGS}")
     set_property(TARGET MPI::MPI_${LANG} PROPERTY INTERFACE_LINK_OPTIONS "SHELL:${MPI_${LANG}_LINK_FLAGS}")
   endif()
   # If the compiler links MPI implicitly, no libraries will be found as they're contained within
diff --git a/share/cmake-3.17/Modules/FindMPI/fortranparam_mpi.f90.in b/share/cmake-3.18/Modules/FindMPI/fortranparam_mpi.f90.in
similarity index 100%
rename from share/cmake-3.17/Modules/FindMPI/fortranparam_mpi.f90.in
rename to share/cmake-3.18/Modules/FindMPI/fortranparam_mpi.f90.in
diff --git a/share/cmake-3.17/Modules/FindMPI/libver_mpi.c b/share/cmake-3.18/Modules/FindMPI/libver_mpi.c
similarity index 100%
rename from share/cmake-3.17/Modules/FindMPI/libver_mpi.c
rename to share/cmake-3.18/Modules/FindMPI/libver_mpi.c
diff --git a/share/cmake-3.17/Modules/FindMPI/libver_mpi.f90.in b/share/cmake-3.18/Modules/FindMPI/libver_mpi.f90.in
similarity index 100%
rename from share/cmake-3.17/Modules/FindMPI/libver_mpi.f90.in
rename to share/cmake-3.18/Modules/FindMPI/libver_mpi.f90.in
diff --git a/share/cmake-3.17/Modules/FindMPI/mpiver.f90.in b/share/cmake-3.18/Modules/FindMPI/mpiver.f90.in
similarity index 100%
rename from share/cmake-3.17/Modules/FindMPI/mpiver.f90.in
rename to share/cmake-3.18/Modules/FindMPI/mpiver.f90.in
diff --git a/share/cmake-3.17/Modules/FindMPI/test_mpi.c b/share/cmake-3.18/Modules/FindMPI/test_mpi.c
similarity index 100%
rename from share/cmake-3.17/Modules/FindMPI/test_mpi.c
rename to share/cmake-3.18/Modules/FindMPI/test_mpi.c
diff --git a/share/cmake-3.17/Modules/FindMPI/test_mpi.f90.in b/share/cmake-3.18/Modules/FindMPI/test_mpi.f90.in
similarity index 100%
rename from share/cmake-3.17/Modules/FindMPI/test_mpi.f90.in
rename to share/cmake-3.18/Modules/FindMPI/test_mpi.f90.in
diff --git a/share/cmake-3.17/Modules/FindMatlab.cmake b/share/cmake-3.18/Modules/FindMatlab.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindMatlab.cmake
rename to share/cmake-3.18/Modules/FindMatlab.cmake
diff --git a/share/cmake-3.17/Modules/FindMotif.cmake b/share/cmake-3.18/Modules/FindMotif.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindMotif.cmake
rename to share/cmake-3.18/Modules/FindMotif.cmake
diff --git a/share/cmake-3.17/Modules/FindODBC.cmake b/share/cmake-3.18/Modules/FindODBC.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindODBC.cmake
rename to share/cmake-3.18/Modules/FindODBC.cmake
diff --git a/share/cmake-3.17/Modules/FindOpenACC.cmake b/share/cmake-3.18/Modules/FindOpenACC.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindOpenACC.cmake
rename to share/cmake-3.18/Modules/FindOpenACC.cmake
diff --git a/share/cmake-3.18/Modules/FindOpenAL.cmake b/share/cmake-3.18/Modules/FindOpenAL.cmake
new file mode 100644
index 0000000..b5b92c5
--- /dev/null
+++ b/share/cmake-3.18/Modules/FindOpenAL.cmake
@@ -0,0 +1,96 @@
+# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindOpenAL
+----------
+
+Finds Open Audio Library (OpenAL).
+
+Projects using this module should use ``#include "al.h"`` to include the OpenAL
+header file, **not** ``#include <AL/al.h>``.  The reason for this is that the
+latter is not entirely portable.  Windows/Creative Labs does not by default put
+their headers in ``AL/`` and macOS uses the convention ``<OpenAL/al.h>``.
+
+Hints
+^^^^^
+
+Environment variable ``$OPENALDIR`` can be used to set the prefix of OpenAL
+installation to be found.
+
+By default on macOS, system framework is search first.  In other words,
+OpenAL is searched in the following order:
+
+1. System framework: ``/System/Library/Frameworks``, whose priority can be
+   changed via setting the :variable:`CMAKE_FIND_FRAMEWORK` variable.
+2. Environment variable ``$OPENALDIR``.
+3. System paths.
+4. User-compiled framework: ``~/Library/Frameworks``.
+5. Manually compiled framework: ``/Library/Frameworks``.
+6. Add-on package: ``/opt``.
+
+Result Variables
+^^^^^^^^^^^^^^^^
+
+This module defines the following variables:
+
+``OPENAL_FOUND``
+  If false, do not try to link to OpenAL
+``OPENAL_INCLUDE_DIR``
+  OpenAL include directory
+``OPENAL_LIBRARY``
+  Path to the OpenAL library
+``OPENAL_VERSION_STRING``
+  Human-readable string containing the version of OpenAL
+#]=======================================================================]
+
+# For Windows, Creative Labs seems to have added a registry key for their
+# OpenAL 1.1 installer. I have added that key to the list of search paths,
+# however, the key looks like it could be a little fragile depending on
+# if they decide to change the 1.00.0000 number for bug fix releases.
+# Also, they seem to have laid down groundwork for multiple library platforms
+# which puts the library in an extra subdirectory. Currently there is only
+# Win32 and I have hardcoded that here. This may need to be adjusted as
+# platforms are introduced.
+# The OpenAL 1.0 installer doesn't seem to have a useful key I can use.
+# I do not know if the Nvidia OpenAL SDK has a registry key.
+
+find_path(OPENAL_INCLUDE_DIR al.h
+  HINTS
+    ENV OPENALDIR
+  PATHS
+    ~/Library/Frameworks
+    /Library/Frameworks
+    /opt
+    [HKEY_LOCAL_MACHINE\\SOFTWARE\\Creative\ Labs\\OpenAL\ 1.1\ Software\ Development\ Kit\\1.00.0000;InstallDir]
+  PATH_SUFFIXES include/AL include/OpenAL include AL OpenAL
+  )
+
+if(CMAKE_SIZEOF_VOID_P EQUAL 8)
+  set(_OpenAL_ARCH_DIR libs/Win64)
+else()
+  set(_OpenAL_ARCH_DIR libs/Win32)
+endif()
+
+find_library(OPENAL_LIBRARY
+  NAMES OpenAL al openal OpenAL32
+  HINTS
+    ENV OPENALDIR
+  PATHS
+    ~/Library/Frameworks
+    /Library/Frameworks
+    /opt
+    [HKEY_LOCAL_MACHINE\\SOFTWARE\\Creative\ Labs\\OpenAL\ 1.1\ Software\ Development\ Kit\\1.00.0000;InstallDir]
+  PATH_SUFFIXES libx32 lib64 lib libs64 libs ${_OpenAL_ARCH_DIR}
+  )
+
+unset(_OpenAL_ARCH_DIR)
+
+include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
+find_package_handle_standard_args(
+  OpenAL
+  REQUIRED_VARS OPENAL_LIBRARY OPENAL_INCLUDE_DIR
+  VERSION_VAR OPENAL_VERSION_STRING
+  )
+
+mark_as_advanced(OPENAL_LIBRARY OPENAL_INCLUDE_DIR)
diff --git a/share/cmake-3.17/Modules/FindOpenCL.cmake b/share/cmake-3.18/Modules/FindOpenCL.cmake
similarity index 97%
rename from share/cmake-3.17/Modules/FindOpenCL.cmake
rename to share/cmake-3.18/Modules/FindOpenCL.cmake
index 9891724..34a203e 100644
--- a/share/cmake-3.17/Modules/FindOpenCL.cmake
+++ b/share/cmake-3.18/Modules/FindOpenCL.cmake
@@ -78,6 +78,8 @@
     ENV CUDA_PATH
     ENV ATISTREAMSDKROOT
     ENV OCL_ROOT
+    /usr/local/cuda
+    /opt/cuda
   PATH_SUFFIXES
     include
     OpenCL/common/inc
@@ -126,6 +128,8 @@
       PATHS
         ENV AMDAPPSDKROOT
         ENV CUDA_PATH
+        /usr/local/cuda
+        /opt/cuda
       PATH_SUFFIXES
         lib/x86
         lib)
@@ -135,6 +139,8 @@
       PATHS
         ENV AMDAPPSDKROOT
         ENV CUDA_PATH
+        /usr/local/cuda
+        /opt/cuda
       PATH_SUFFIXES
         lib/x86_64
         lib/x64
diff --git a/share/cmake-3.17/Modules/FindOpenGL.cmake b/share/cmake-3.18/Modules/FindOpenGL.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindOpenGL.cmake
rename to share/cmake-3.18/Modules/FindOpenGL.cmake
diff --git a/share/cmake-3.17/Modules/FindOpenMP.cmake b/share/cmake-3.18/Modules/FindOpenMP.cmake
similarity index 99%
rename from share/cmake-3.17/Modules/FindOpenMP.cmake
rename to share/cmake-3.18/Modules/FindOpenMP.cmake
index a4b1e1e..bb38e28 100644
--- a/share/cmake-3.17/Modules/FindOpenMP.cmake
+++ b/share/cmake-3.18/Modules/FindOpenMP.cmake
@@ -509,8 +509,8 @@
       _OPENMP_GET_SPEC_DATE("${LANG}" OpenMP_${LANG}_SPEC_DATE_INTERNAL)
       set(OpenMP_${LANG}_SPEC_DATE "${OpenMP_${LANG}_SPEC_DATE_INTERNAL}" CACHE
         INTERNAL "${LANG} compiler's OpenMP specification date")
-      _OPENMP_SET_VERSION_BY_SPEC_DATE("${LANG}")
     endif()
+    _OPENMP_SET_VERSION_BY_SPEC_DATE("${LANG}")
 
     set(OpenMP_${LANG}_FIND_QUIETLY ${OpenMP_FIND_QUIETLY})
     set(OpenMP_${LANG}_FIND_REQUIRED ${OpenMP_FIND_REQUIRED})
diff --git a/share/cmake-3.17/Modules/FindOpenSSL.cmake b/share/cmake-3.18/Modules/FindOpenSSL.cmake
similarity index 86%
rename from share/cmake-3.17/Modules/FindOpenSSL.cmake
rename to share/cmake-3.18/Modules/FindOpenSSL.cmake
index af713d6..ee40696 100644
--- a/share/cmake-3.17/Modules/FindOpenSSL.cmake
+++ b/share/cmake-3.18/Modules/FindOpenSSL.cmake
@@ -22,6 +22,27 @@
   The OpenSSL ``ssl`` library, if found.
 ``OpenSSL::Crypto``
   The OpenSSL ``crypto`` library, if found.
+``OpenSSL::applink``
+  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
+  be linked even if the project has different MSVC runtime configurations with
+  the above OpenSSL targets. This target has no effect on plaforms other than
+  MSVC.
+
+NOTE: Due to how ``INTERFACE_SOURCES`` are consumed by the consuming target,
+unless you certainly know what you are doing, it is always prefered to link
+``OpenSSL::applink`` target as ``PRIVATE`` and to make sure that this target is
+linked at most once for the whole dependency graph of any library or
+executable:
+
+.. code-block:: cmake
+
+   target_link_libraries(myTarget PRIVATE OpenSSL::applink)
+
+Otherwise you would probably encounter unexpected random problems when building
+and linking, as both the ISO C and the ISO C++ standard claims almost nothing
+about what a link process should be.
 
 Result Variables
 ^^^^^^^^^^^^^^^^
@@ -45,6 +66,10 @@
   All OpenSSL libraries and their dependencies.
 ``OPENSSL_VERSION``
   This is set to ``$major.$minor.$revision$patch`` (e.g. ``0.9.8s``).
+``OPENSSL_APPLINK_SOURCE``
+  The sources in the target ``OpenSSL::applink`` that is mentioned above. This
+  variable shall always be undefined if found openssl version is less than
+  0.9.8 or if platform is not MSVC.
 
 Hints
 ^^^^^
@@ -415,6 +440,17 @@
     endif ()
 
     set(OPENSSL_VERSION "${OPENSSL_VERSION_MAJOR}.${OPENSSL_VERSION_MINOR}.${OPENSSL_VERSION_FIX}${OPENSSL_VERSION_PATCH_STRING}")
+  else ()
+    # Since OpenSSL 3.0.0, the new version format is MAJOR.MINOR.PATCH and
+    # a new OPENSSL_VERSION_STR macro contains exactly that
+    file(STRINGS "${OPENSSL_INCLUDE_DIR}/openssl/opensslv.h" OPENSSL_VERSION_STR
+         REGEX "^#[\t ]*define[\t ]+OPENSSL_VERSION_STR[\t ]+\"([0-9])+\\.([0-9])+\\.([0-9])+\".*")
+    string(REGEX REPLACE "^.*OPENSSL_VERSION_STR[\t ]+\"([0-9]+\\.[0-9]+\\.[0-9]+)\".*$"
+           "\\1" OPENSSL_VERSION_STR "${OPENSSL_VERSION_STR}")
+
+    set(OPENSSL_VERSION "${OPENSSL_VERSION_STR}")
+
+    unset(OPENSSL_VERSION_STR)
   endif ()
 endif ()
 
@@ -524,6 +560,28 @@
     endif()
     _OpenSSL_target_add_dependencies(OpenSSL::SSL)
   endif()
+
+  if("${OPENSSL_VERSION_MAJOR}.${OPENSSL_VERSION_MAJOR}.${OPENSSL_VERSION_FIX}" VERSION_GREATER_EQUAL "0.9.8")
+    if(MSVC)
+      if(EXISTS "${OPENSSL_INCLUDE_DIR}")
+        set(_OPENSSL_applink_paths PATHS ${OPENSSL_INCLUDE_DIR})
+      endif()
+      find_file(OPENSSL_APPLINK_SOURCE
+        NAMES
+          openssl/applink.c
+        ${_OPENSSL_applink_paths}
+        NO_DEFAULT_PATH)
+      if(OPENSSL_APPLINK_SOURCE)
+        set(_OPENSSL_applink_interface_srcs ${OPENSSL_APPLINK_SOURCE})
+      endif()
+    endif()
+    if(NOT TARGET OpenSSL::applink)
+      add_library(OpenSSL::applink INTERFACE IMPORTED)
+      set_property(TARGET OpenSSL::applink APPEND
+        PROPERTY INTERFACE_SOURCES
+          ${_OPENSSL_applink_interface_srcs})
+    endif()
+  endif()
 endif()
 
 # Restore the original find library ordering
diff --git a/share/cmake-3.17/Modules/FindOpenSceneGraph.cmake b/share/cmake-3.18/Modules/FindOpenSceneGraph.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindOpenSceneGraph.cmake
rename to share/cmake-3.18/Modules/FindOpenSceneGraph.cmake
diff --git a/share/cmake-3.17/Modules/FindOpenThreads.cmake b/share/cmake-3.18/Modules/FindOpenThreads.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindOpenThreads.cmake
rename to share/cmake-3.18/Modules/FindOpenThreads.cmake
diff --git a/share/cmake-3.17/Modules/FindPHP4.cmake b/share/cmake-3.18/Modules/FindPHP4.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindPHP4.cmake
rename to share/cmake-3.18/Modules/FindPHP4.cmake
diff --git a/share/cmake-3.17/Modules/FindPNG.cmake b/share/cmake-3.18/Modules/FindPNG.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindPNG.cmake
rename to share/cmake-3.18/Modules/FindPNG.cmake
diff --git a/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake b/share/cmake-3.18/Modules/FindPackageHandleStandardArgs.cmake
similarity index 96%
rename from share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake
rename to share/cmake-3.18/Modules/FindPackageHandleStandardArgs.cmake
index a078049..4fb0825 100644
--- a/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake
+++ b/share/cmake-3.18/Modules/FindPackageHandleStandardArgs.cmake
@@ -57,7 +57,8 @@
     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``.
+    variables like ``FOO_LIBRARIES``. This option is mandatory if
+    ``HANDLE_COMPONENTS`` is not specified.
 
   ``VERSION_VAR <version-var>``
     Specify the name of a variable that holds the version of the package
@@ -257,7 +258,7 @@
       set(FPHSA_VERSION_VAR ${_NAME}_VERSION)
     endif()
 
-    if(NOT FPHSA_REQUIRED_VARS)
+    if(NOT FPHSA_REQUIRED_VARS AND NOT FPHSA_HANDLE_COMPONENTS)
       message(FATAL_ERROR "No REQUIRED_VARS specified for FIND_PACKAGE_HANDLE_STANDARD_ARGS()")
     endif()
   endif()
@@ -283,7 +284,9 @@
     set(FPHSA_FAIL_MESSAGE "Could NOT find ${_NAME}")
   endif()
 
-  list(GET FPHSA_REQUIRED_VARS 0 _FIRST_REQUIRED_VAR)
+  if (FPHSA_REQUIRED_VARS)
+    list(GET FPHSA_REQUIRED_VARS 0 _FIRST_REQUIRED_VAR)
+  endif()
 
   string(TOUPPER ${_NAME} _NAME_UPPER)
   string(TOLOWER ${_NAME} _NAME_LOWER)
@@ -440,7 +443,17 @@
       _FPHSA_HANDLE_FAILURE_CONFIG_MODE()
     else()
       if(NOT VERSION_OK)
-        _FPHSA_FAILURE_MESSAGE("${FPHSA_FAIL_MESSAGE}: ${VERSION_MSG} (found ${${_FIRST_REQUIRED_VAR}})")
+        set(RESULT_MSG)
+        if (_FIRST_REQUIRED_VAR)
+          string (APPEND RESULT_MSG "found ${${_FIRST_REQUIRED_VAR}}")
+        endif()
+        if (COMPONENT_MSG)
+          if (RESULT_MSG)
+            string (APPEND RESULT_MSG ", ")
+          endif()
+          string (APPEND RESULT_MSG "${FOUND_COMPONENTS_MSG}")
+        endif()
+        _FPHSA_FAILURE_MESSAGE("${FPHSA_FAIL_MESSAGE}: ${VERSION_MSG} (${RESULT_MSG})")
       else()
         _FPHSA_FAILURE_MESSAGE("${FPHSA_FAIL_MESSAGE} (missing:${MISSING_VARS}) ${VERSION_MSG}")
       endif()
diff --git a/share/cmake-3.17/Modules/FindPackageMessage.cmake b/share/cmake-3.18/Modules/FindPackageMessage.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindPackageMessage.cmake
rename to share/cmake-3.18/Modules/FindPackageMessage.cmake
diff --git a/share/cmake-3.17/Modules/FindPatch.cmake b/share/cmake-3.18/Modules/FindPatch.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindPatch.cmake
rename to share/cmake-3.18/Modules/FindPatch.cmake
diff --git a/share/cmake-3.17/Modules/FindPerl.cmake b/share/cmake-3.18/Modules/FindPerl.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindPerl.cmake
rename to share/cmake-3.18/Modules/FindPerl.cmake
diff --git a/share/cmake-3.17/Modules/FindPerlLibs.cmake b/share/cmake-3.18/Modules/FindPerlLibs.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindPerlLibs.cmake
rename to share/cmake-3.18/Modules/FindPerlLibs.cmake
diff --git a/share/cmake-3.17/Modules/FindPhysFS.cmake b/share/cmake-3.18/Modules/FindPhysFS.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindPhysFS.cmake
rename to share/cmake-3.18/Modules/FindPhysFS.cmake
diff --git a/share/cmake-3.17/Modules/FindPike.cmake b/share/cmake-3.18/Modules/FindPike.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindPike.cmake
rename to share/cmake-3.18/Modules/FindPike.cmake
diff --git a/share/cmake-3.17/Modules/FindPkgConfig.cmake b/share/cmake-3.18/Modules/FindPkgConfig.cmake
similarity index 88%
rename from share/cmake-3.17/Modules/FindPkgConfig.cmake
rename to share/cmake-3.18/Modules/FindPkgConfig.cmake
index c79f20f..93827d8 100644
--- a/share/cmake-3.17/Modules/FindPkgConfig.cmake
+++ b/share/cmake-3.18/Modules/FindPkgConfig.cmake
@@ -34,16 +34,31 @@
 find_program(PKG_CONFIG_EXECUTABLE NAMES pkg-config DOC "pkg-config executable")
 mark_as_advanced(PKG_CONFIG_EXECUTABLE)
 
+set(_PKG_CONFIG_FAILURE_MESSAGE "")
 if (PKG_CONFIG_EXECUTABLE)
   execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE} --version
-    OUTPUT_VARIABLE PKG_CONFIG_VERSION_STRING
-    ERROR_QUIET
-    OUTPUT_STRIP_TRAILING_WHITESPACE)
+    OUTPUT_VARIABLE PKG_CONFIG_VERSION_STRING OUTPUT_STRIP_TRAILING_WHITESPACE
+    ERROR_VARIABLE _PKG_CONFIG_VERSION_ERROR ERROR_STRIP_TRAILING_WHITESPACE
+    RESULT_VARIABLE _PKG_CONFIG_VERSION_RESULT
+    )
+
+  if (NOT _PKG_CONFIG_VERSION_RESULT EQUAL 0)
+    string(REPLACE "\n" "\n    " _PKG_CONFIG_VERSION_ERROR "      ${_PKG_CONFIG_VERSION_ERROR}")
+    string(APPEND _PKG_CONFIG_FAILURE_MESSAGE
+      "The command\n"
+      "      \"${PKG_CONFIG_EXECUTABLE}\" --version\n"
+      "    failed with output\n${_PKG_CONFIG_VERSION_ERROR}"
+      )
+    set(PKG_CONFIG_EXECUTABLE "")
+    unset(PKG_CONFIG_VERSION_STRING)
+  endif ()
+  unset(_PKG_CONFIG_VERSION_RESULT)
 endif ()
 
 include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
 find_package_handle_standard_args(PkgConfig
                                   REQUIRED_VARS PKG_CONFIG_EXECUTABLE
+                                  REASON_FAILURE_MESSAGE "${_PKG_CONFIG_FAILURE_MESSAGE}"
                                   VERSION_VAR PKG_CONFIG_VERSION_STRING)
 
 # This is needed because the module name is "PkgConfig" but the name of
@@ -197,7 +212,13 @@
   endif()
 
   unset(_search_paths)
+  unset(_next_is_framework)
   foreach (flag IN LISTS ${_prefix}_LDFLAGS)
+    if (_next_is_framework)
+      list(APPEND _libs "-framework ${flag}")
+      unset(_next_is_framework)
+      continue()
+    endif ()
     if (flag MATCHES "^-L(.*)")
       list(APPEND _search_paths ${CMAKE_MATCH_1})
       continue()
@@ -205,6 +226,9 @@
     if (flag MATCHES "^-l(.*)")
       set(_pkg_search "${CMAKE_MATCH_1}")
     else()
+      if (flag STREQUAL "-framework")
+        set(_next_is_framework TRUE)
+      endif ()
       continue()
     endif()
 
@@ -364,6 +388,60 @@
   unset(_pkgconfig_path_old)
 endmacro()
 
+# pkg-config returns frameworks in --libs-only-other
+# they need to be in ${_prefix}_LIBRARIES so "-framework a -framework b" does
+# not incorrectly be combined to "-framework a b"
+function(_pkgconfig_extract_frameworks _prefix)
+  set(ldflags "${${_prefix}_LDFLAGS_OTHER}")
+  list(FIND ldflags "-framework" FR_POS)
+  list(LENGTH ldflags LD_LENGTH)
+
+  # reduce length by 1 as we need "-framework" and the next entry
+  math(EXPR LD_LENGTH "${LD_LENGTH} - 1")
+  while (FR_POS GREATER -1 AND LD_LENGTH GREATER FR_POS)
+    list(REMOVE_AT ldflags ${FR_POS})
+    list(GET ldflags ${FR_POS} HEAD)
+    list(REMOVE_AT ldflags ${FR_POS})
+    math(EXPR LD_LENGTH "${LD_LENGTH} - 2")
+
+    list(APPEND LIBS "-framework ${HEAD}")
+
+    list(FIND ldflags "-framework" FR_POS)
+  endwhile ()
+  set(${_prefix}_LIBRARIES ${${_prefix}_LIBRARIES} ${LIBS} PARENT_SCOPE)
+  set(${_prefix}_LDFLAGS_OTHER "${ldflags}" PARENT_SCOPE)
+endfunction()
+
+# pkg-config returns -isystem include directories in --cflags-only-other,
+# depending on the version and if there is a space between -isystem and
+# the actual path
+function(_pkgconfig_extract_isystem _prefix)
+  set(cflags "${${_prefix}_CFLAGS_OTHER}")
+  set(outflags "")
+  set(incdirs "${${_prefix}_INCLUDE_DIRS}")
+
+  set(next_is_isystem FALSE)
+  foreach (THING IN LISTS cflags)
+    # This may filter "-isystem -isystem". That would not work anyway,
+    # so let it happen.
+    if (THING STREQUAL "-isystem")
+      set(next_is_isystem TRUE)
+      continue()
+    endif ()
+    if (next_is_isystem)
+      set(next_is_isystem FALSE)
+      list(APPEND incdirs "${THING}")
+    elseif (THING MATCHES "^-isystem")
+      string(SUBSTRING "${THING}" 8 -1 THING)
+      list(APPEND incdirs "${THING}")
+    else ()
+      list(APPEND outflags "${THING}")
+    endif ()
+  endforeach ()
+  set(${_prefix}_CFLAGS_OTHER "${outflags}" PARENT_SCOPE)
+  set(${_prefix}_INCLUDE_DIRS "${incdirs}" PARENT_SCOPE)
+endfunction()
+
 ###
 macro(_pkg_check_modules_internal _is_required _is_silent _no_cmake_path _no_cmake_environment_path _imp_target _imp_target_global _prefix)
   _pkgconfig_unset(${_prefix}_FOUND)
@@ -497,14 +575,22 @@
       endforeach()
 
       # set variables which are combined for multiple modules
-      _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" LIBRARIES           "(^| )-l" --libs-only-l )
-      _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" LIBRARY_DIRS        "(^| )-L" --libs-only-L )
-      _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" LDFLAGS             ""        --libs )
-      _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" LDFLAGS_OTHER       ""        --libs-only-other )
+      _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" LIBRARIES     "(^| )-l"             --libs-only-l )
+      _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" LIBRARY_DIRS  "(^| )-L"             --libs-only-L )
+      _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" LDFLAGS       ""                    --libs )
+      _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" LDFLAGS_OTHER ""                    --libs-only-other )
 
-      _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" INCLUDE_DIRS        "(^| )-I" --cflags-only-I )
-      _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" CFLAGS              ""        --cflags )
-      _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" CFLAGS_OTHER        ""        --cflags-only-other )
+      if (APPLE AND "-framework" IN_LIST ${_prefix}_LDFLAGS_OTHER)
+        _pkgconfig_extract_frameworks("${_prefix}")
+      endif()
+
+      _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" INCLUDE_DIRS  "(^| )(-I|-isystem ?)" --cflags-only-I )
+      _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" CFLAGS        ""                    --cflags )
+      _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" CFLAGS_OTHER  ""                    --cflags-only-other )
+
+      if (${_prefix}_CFLAGS_OTHER MATCHES "-isystem")
+        _pkgconfig_extract_isystem("${_prefix}")
+      endif ()
 
       _pkg_recalculate("${_prefix}" ${_no_cmake_path} ${_no_cmake_environment_path} ${_imp_target} ${_imp_target_global})
     endif()
diff --git a/share/cmake-3.17/Modules/FindPostgreSQL.cmake b/share/cmake-3.18/Modules/FindPostgreSQL.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindPostgreSQL.cmake
rename to share/cmake-3.18/Modules/FindPostgreSQL.cmake
diff --git a/share/cmake-3.17/Modules/FindProducer.cmake b/share/cmake-3.18/Modules/FindProducer.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindProducer.cmake
rename to share/cmake-3.18/Modules/FindProducer.cmake
diff --git a/share/cmake-3.17/Modules/FindProtobuf.cmake b/share/cmake-3.18/Modules/FindProtobuf.cmake
similarity index 99%
rename from share/cmake-3.17/Modules/FindProtobuf.cmake
rename to share/cmake-3.18/Modules/FindProtobuf.cmake
index f35978d..e09717d 100644
--- a/share/cmake-3.17/Modules/FindProtobuf.cmake
+++ b/share/cmake-3.18/Modules/FindProtobuf.cmake
@@ -117,7 +117,7 @@
   ``PY``
     Variable to define with autogenerated Python files
   ``ARGN``
-    ``.proto`` filess
+    ``.proto`` files
 #]=======================================================================]
 
 function(protobuf_generate)
diff --git a/share/cmake-3.17/Modules/FindPython.cmake b/share/cmake-3.18/Modules/FindPython.cmake
similarity index 71%
rename from share/cmake-3.17/Modules/FindPython.cmake
rename to share/cmake-3.18/Modules/FindPython.cmake
index 9dfa222..01b82c4 100644
--- a/share/cmake-3.17/Modules/FindPython.cmake
+++ b/share/cmake-3.18/Modules/FindPython.cmake
@@ -13,13 +13,24 @@
 * ``Interpreter``: search for Python interpreter.
 * ``Compiler``: search for Python compiler. Only offered by IronPython.
 * ``Development``: search for development artifacts (include directories and
-  libraries).
+  libraries). This component includes two sub-components which can be specified
+  independently:
+
+  * ``Development.Module``: search for artifacts for Python module
+    developments.
+  * ``Development.Embed``: search for artifacts for Python embedding
+    developments.
+
 * ``NumPy``: search for NumPy include directories.
 
 If no ``COMPONENTS`` are specified, ``Interpreter`` is assumed.
 
+If component ``Development`` is specified, it implies sub-components
+``Development.Module`` and ``Development.Embed``.
+
 To ensure consistent versions between components ``Interpreter``, ``Compiler``,
-``Development`` and ``NumPy``, specify all components at the same time::
+``Development`` (or one of its sub-components) and ``NumPy``, specify all
+components at the same time::
 
   find_package (Python COMPONENTS Interpreter Development)
 
@@ -30,10 +41,11 @@
 
 .. note::
 
-  If components ``Interpreter`` and ``Development`` are both specified, this
-  module search only for interpreter with same platform architecture as the one
-  defined by ``CMake`` configuration. This contraint does not apply if only
-  ``Interpreter`` component is specified.
+  If components ``Interpreter`` and ``Development`` (or one of its
+  sub-components) are both specified, this module search only for interpreter
+  with same platform architecture as the one defined by ``CMake``
+  configuration. This contraint does not apply if only ``Interpreter``
+  component is specified.
 
 Imported Targets
 ^^^^^^^^^^^^^^^^
@@ -45,12 +57,12 @@
   Python interpreter. Target defined if component ``Interpreter`` is found.
 ``Python::Compiler``
   Python compiler. Target defined if component ``Compiler`` is found.
+``Python::Module``
+  Python library for Python module. Target defined if component
+  ``Development.Module`` is found.
 ``Python::Python``
   Python library for Python embedding. Target defined if component
-  ``Development`` is found.
-``Python::Module``
-  Python library for Python module. Target defined if component ``Development``
-  is found.
+  ``Development.Embed`` is found.
 ``Python::NumPy``
   NumPy Python library. Target defined if component ``NumPy`` is found.
 
@@ -73,33 +85,40 @@
     * Anaconda
     * Canopy
     * IronPython
+    * PyPy
 ``Python_STDLIB``
   Standard platform independent installation directory.
 
   Information returned by
-  ``distutils.sysconfig.get_python_lib(plat_specific=False,standard_lib=True)``.
+  ``distutils.sysconfig.get_python_lib(plat_specific=False,standard_lib=True)``
+  or else ``sysconfig.get_path('stdlib')``.
 ``Python_STDARCH``
   Standard platform dependent installation directory.
 
   Information returned by
-  ``distutils.sysconfig.get_python_lib(plat_specific=True,standard_lib=True)``.
+  ``distutils.sysconfig.get_python_lib(plat_specific=True,standard_lib=True)``
+  or else ``sysconfig.get_path('platstdlib')``.
 ``Python_SITELIB``
   Third-party platform independent installation directory.
 
   Information returned by
-  ``distutils.sysconfig.get_python_lib(plat_specific=False,standard_lib=False)``.
+  ``distutils.sysconfig.get_python_lib(plat_specific=False,standard_lib=False)``
+  or else ``sysconfig.get_path('purelib')``.
 ``Python_SITEARCH``
   Third-party platform dependent installation directory.
 
   Information returned by
-  ``distutils.sysconfig.get_python_lib(plat_specific=True,standard_lib=False)``.
+  ``distutils.sysconfig.get_python_lib(plat_specific=True,standard_lib=False)``
+  or else ``sysconfig.get_path('platlib')``.
 ``Python_SOABI``
   Extension suffix for modules.
 
   Information returned by
-  ``distutils.sysconfig.get_config_flag('SOABI')`` or computed from
-  ``distutils.sysconfig.get_config_flag('EXT_SUFFIX')`` or
-  ``python-config --extension-suffix``.
+  ``distutils.sysconfig.get_config_var('SOABI')`` or computed from
+  ``distutils.sysconfig.get_config_var('EXT_SUFFIX')`` or
+  ``python-config --extension-suffix``. If package ``distutils.sysconfig`` is
+  not available, ``sysconfig.get_config_var('SOABI')`` or
+  ``sysconfig.get_config_var('EXT_SUFFIX')`` are used.
 ``Python_Compiler_FOUND``
   System has the Python compiler.
 ``Python_COMPILER``
@@ -107,8 +126,14 @@
 ``Python_COMPILER_ID``
   A short string unique to the compiler. Possible values include:
     * IronPython
+``Python_DOTNET_LAUNCHER``
+  The ``.Net`` interpreter. Only used by ``IronPython`` implementation.
 ``Python_Development_FOUND``
   System has the Python development artifacts.
+``Python_Development.Module_FOUND``
+  System has the Python development artifacts for Python module.
+``Python_Development.Embed_FOUND``
+  System has the Python development artifacts for Python embedding.
 ``Python_INCLUDE_DIRS``
   The Python include directories.
 ``Python_LIBRARIES``
@@ -125,6 +150,8 @@
   Python minor version.
 ``Python_VERSION_PATCH``
   Python patch version.
+``Python_PyPy_VERSION``
+  Python PyPy version.
 ``Python_NumPy_FOUND``
   System has the NumPy.
 ``Python_NumPy_INCLUDE_DIRS``
@@ -191,8 +218,7 @@
 
 ``Python_FIND_STRATEGY``
   This variable defines how lookup will be done.
-  The ``Python_FIND_STRATEGY`` variable can be set to empty or one of the
-  following:
+  The ``Python_FIND_STRATEGY`` variable can be set to one of the following:
 
   * ``VERSION``: Try to find the most recent version in all specified
     locations.
@@ -205,8 +231,7 @@
 ``Python_FIND_REGISTRY``
   On Windows the ``Python_FIND_REGISTRY`` variable determine the order
   of preference between registry and environment variables.
-  the ``Python_FIND_REGISTRY`` variable can be set to empty or one of the
-  following:
+  the ``Python_FIND_REGISTRY`` variable can be set to one of the following:
 
   * ``FIRST``: Try to use registry before environment variables.
     This is the default.
@@ -216,8 +241,8 @@
 ``Python_FIND_FRAMEWORK``
   On macOS the ``Python_FIND_FRAMEWORK`` variable determine the order of
   preference between Apple-style and unix-style package components.
-  This variable can be set to empty or take same values as
-  :variable:`CMAKE_FIND_FRAMEWORK` variable.
+  This variable can take same values as :variable:`CMAKE_FIND_FRAMEWORK`
+  variable.
 
   .. note::
 
@@ -231,16 +256,17 @@
   ``virtualenv`` or ``conda``. It is meaningful only when a virtual environment
   is active (i.e. the ``activate`` script has been evaluated). In this case, it
   takes precedence over ``Python_FIND_REGISTRY`` and ``CMAKE_FIND_FRAMEWORK``
-  variables.  The ``Python_FIND_VIRTUALENV`` variable can be set to empty or
-  one of the following:
+  variables.  The ``Python_FIND_VIRTUALENV`` variable can be set to one of the
+  following:
 
   * ``FIRST``: The virtual environment is used before any other standard
     paths to look-up for the interpreter. This is the default.
   * ``ONLY``: Only the virtual environment is used to look-up for the
     interpreter.
   * ``STANDARD``: The virtual environment is not used to look-up for the
-    interpreter. In this case, variable ``Python_FIND_REGISTRY`` (Windows)
-    or ``CMAKE_FIND_FRAMEWORK`` (macOS) can be set with value ``LAST`` or
+    interpreter but environment variable ``PATH`` is always considered.
+    In this case, variable ``Python_FIND_REGISTRY`` (Windows) or
+    ``CMAKE_FIND_FRAMEWORK`` (macOS) can be set with value ``LAST`` or
     ``NEVER`` to select preferably the interpreter from the virtual
     environment.
 
@@ -250,6 +276,39 @@
     recommended to also include the component ``Interpreter`` to get expected
     result.
 
+``Python_FIND_IMPLEMENTATIONS``
+  This variable defines, in an ordered list, the different implementations
+  which will be searched. The ``Python_FIND_IMPLEMENTATIONS`` variable can
+  hold the following values:
+
+  * ``CPython``: this is the standard implementation. Various products, like
+    ``Anaconda`` or ``ActivePython``, rely on this implementation.
+  * ``IronPython``: This implementation use the ``CSharp`` language for
+    ``.NET Framework`` on top of the `Dynamic Language Runtime` (``DLR``).
+    See `IronPython <http://ironpython.net>`_.
+  * ``PyPy``: This implementation use ``RPython`` language and
+    ``RPython translation toolchain`` to produce the python interpreter.
+    See `PyPy <https://www.pypy.org>`_.
+
+  The default value is:
+
+  * Windows platform: ``CPython``, ``IronPython``
+  * Other platforms: ``CPython``
+
+  .. note::
+
+    This hint has the lowest priority of all hints, so even if, for example,
+    you specify ``IronPython`` first and ``CPython`` in second, a python
+    product based on ``CPython`` can be selected because, for example with
+    ``Python_FIND_STRATEGY=LOCATION``, each location will be search first for
+    ``IronPython`` and second for ``CPython``.
+
+  .. note::
+
+    When ``IronPython`` is specified, on platforms other than ``Windows``, the
+    ``.Net`` interpreter (i.e. ``mono`` command) is expected to be available
+    through the ``PATH`` variable.
+
 Artifacts Specification
 ^^^^^^^^^^^^^^^^^^^^^^^
 
@@ -262,6 +321,9 @@
 ``Python_COMPILER``
   The path to the compiler.
 
+``Python_DOTNET_LAUNCHER``
+  The ``.Net`` interpreter. Only used by ``IronPython`` implementation.
+
 ``Python_LIBRARY``
   The path to the library. It will be used to compute the
   variables ``Python_LIBRARIES``, ``Python_LIBRAY_DIRS`` and
@@ -288,6 +350,22 @@
   If more than one artifact is specified, it is the user's responsability to
   ensure the consistency of the various artifacts.
 
+By default, this module supports multiple calls in different directories of a
+project with different version/component requirements while providing correct
+and consistent results for each call. To support this behavior, ``CMake`` cache
+is not used in the traditional way which can be problematic for interactive
+specification. So, to enable also interactive specification, module behavior
+can be controled with the following variable:
+
+``Python_ARTIFACTS_INTERACTIVE``
+  Selects the behavior of the module. This is a boolean variable:
+
+  * If set to ``TRUE``: Create CMake cache entries for the above artifact
+    specification variables so that users can edit them interactively.
+    This disables support for multiple version/component requirements.
+  * If set to ``FALSE`` or undefined: Enable multiple version/component
+    requirements.
+
 Commands
 ^^^^^^^^
 
diff --git a/share/cmake-3.18/Modules/FindPython/Support.cmake b/share/cmake-3.18/Modules/FindPython/Support.cmake
new file mode 100644
index 0000000..1be0625
--- /dev/null
+++ b/share/cmake-3.18/Modules/FindPython/Support.cmake
@@ -0,0 +1,3172 @@
+# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#
+# This file is a "template" file used by various FindPython modules.
+#
+
+cmake_policy (GET CMP0094 _${_PYTHON_PREFIX}_LOOKUP_POLICY)
+
+cmake_policy (VERSION 3.7)
+
+if (_${_PYTHON_PREFIX}_LOOKUP_POLICY)
+  cmake_policy (SET CMP0094 ${_${_PYTHON_PREFIX}_LOOKUP_POLICY})
+endif()
+
+#
+# Initial configuration
+#
+if (NOT DEFINED _PYTHON_PREFIX)
+  message (FATAL_ERROR "FindPython: INTERNAL ERROR")
+endif()
+if (NOT DEFINED _${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR)
+  message (FATAL_ERROR "FindPython: INTERNAL ERROR")
+endif()
+if (_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR EQUAL "3")
+  set(_${_PYTHON_PREFIX}_VERSIONS 3.9 3.8 3.7 3.6 3.5 3.4 3.3 3.2 3.1 3.0)
+elseif (_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR EQUAL "2")
+  set(_${_PYTHON_PREFIX}_VERSIONS 2.7 2.6 2.5 2.4 2.3 2.2 2.1 2.0)
+else()
+  message (FATAL_ERROR "FindPython: INTERNAL ERROR")
+endif()
+
+get_property(_${_PYTHON_PREFIX}_CMAKE_ROLE GLOBAL PROPERTY CMAKE_ROLE)
+
+
+#
+# helper commands
+#
+macro (_PYTHON_DISPLAY_FAILURE _PYTHON_MSG)
+  if (${_PYTHON_PREFIX}_FIND_REQUIRED)
+    message (FATAL_ERROR "${_PYTHON_MSG}")
+  else()
+    if (NOT ${_PYTHON_PREFIX}_FIND_QUIETLY)
+      message(STATUS "${_PYTHON_MSG}")
+    endif ()
+  endif()
+
+  set (${_PYTHON_PREFIX}_FOUND FALSE)
+  string (TOUPPER "${_PYTHON_PREFIX}" _${_PYTHON_PREFIX}_UPPER_PREFIX)
+  set (${_PYTHON_UPPER_PREFIX}_FOUND FALSE)
+  return()
+endmacro()
+
+
+function (_PYTHON_MARK_AS_INTERNAL)
+  foreach (var IN LISTS ARGV)
+    if (DEFINED CACHE{${var}})
+      set_property (CACHE ${var} PROPERTY TYPE INTERNAL)
+    endif()
+  endforeach()
+endfunction()
+
+
+macro (_PYTHON_SELECT_LIBRARY_CONFIGURATIONS _PYTHON_BASENAME)
+  if(NOT DEFINED ${_PYTHON_BASENAME}_LIBRARY_RELEASE)
+    set(${_PYTHON_BASENAME}_LIBRARY_RELEASE "${_PYTHON_BASENAME}_LIBRARY_RELEASE-NOTFOUND")
+  endif()
+  if(NOT DEFINED ${_PYTHON_BASENAME}_LIBRARY_DEBUG)
+    set(${_PYTHON_BASENAME}_LIBRARY_DEBUG "${_PYTHON_BASENAME}_LIBRARY_DEBUG-NOTFOUND")
+  endif()
+
+  get_property(_PYTHON_isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
+  if (${_PYTHON_BASENAME}_LIBRARY_DEBUG AND ${_PYTHON_BASENAME}_LIBRARY_RELEASE AND
+      NOT ${_PYTHON_BASENAME}_LIBRARY_DEBUG STREQUAL ${_PYTHON_BASENAME}_LIBRARY_RELEASE AND
+      (_PYTHON_isMultiConfig OR CMAKE_BUILD_TYPE))
+    # if the generator is multi-config or if CMAKE_BUILD_TYPE is set for
+    # single-config generators, set optimized and debug libraries
+    set (${_PYTHON_BASENAME}_LIBRARIES "")
+    foreach (_PYTHON_libname IN LISTS ${_PYTHON_BASENAME}_LIBRARY_RELEASE)
+      list( APPEND ${_PYTHON_BASENAME}_LIBRARIES optimized "${_PYTHON_libname}")
+    endforeach()
+    foreach (_PYTHON_libname IN LISTS ${_PYTHON_BASENAME}_LIBRARY_DEBUG)
+      list( APPEND ${_PYTHON_BASENAME}_LIBRARIES debug "${_PYTHON_libname}")
+    endforeach()
+  elseif (${_PYTHON_BASENAME}_LIBRARY_RELEASE)
+    set (${_PYTHON_BASENAME}_LIBRARIES "${${_PYTHON_BASENAME}_LIBRARY_RELEASE}")
+  elseif (${_PYTHON_BASENAME}_LIBRARY_DEBUG)
+    set (${_PYTHON_BASENAME}_LIBRARIES "${${_PYTHON_BASENAME}_LIBRARY_DEBUG}")
+  else()
+    set (${_PYTHON_BASENAME}_LIBRARIES "${_PYTHON_BASENAME}_LIBRARY-NOTFOUND")
+  endif()
+endmacro()
+
+
+macro (_PYTHON_FIND_FRAMEWORKS)
+  if (CMAKE_HOST_APPLE OR APPLE)
+    file(TO_CMAKE_PATH "$ENV{CMAKE_FRAMEWORK_PATH}" _pff_CMAKE_FRAMEWORK_PATH)
+    set (_pff_frameworks ${CMAKE_FRAMEWORK_PATH}
+                         ${_pff_CMAKE_FRAMEWORK_PATH}
+                         ~/Library/Frameworks
+                         /usr/local/Frameworks
+                         ${CMAKE_SYSTEM_FRAMEWORK_PATH})
+    list (REMOVE_DUPLICATES _pff_frameworks)
+    foreach (_pff_implementation IN LISTS _${_PYTHON_PREFIX}_FIND_IMPLEMENTATIONS)
+      unset (_${_PYTHON_PREFIX}_${_pff_implementation}_FRAMEWORKS)
+      if (_pff_implementation STREQUAL "CPython")
+        foreach (_pff_framework IN LISTS _pff_frameworks)
+          if (EXISTS ${_pff_framework}/Python${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR}.framework)
+            list (APPEND _${_PYTHON_PREFIX}_${_pff_implementation}_FRAMEWORKS ${_pff_framework}/Python${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR}.framework)
+          endif()
+          if (EXISTS ${_pff_framework}/Python.framework)
+            list (APPEND _${_PYTHON_PREFIX}_${_pff_implementation}_FRAMEWORKS ${_pff_framework}/Python.framework)
+          endif()
+        endforeach()
+      elseif (_pff_implementation STREQUAL "IronPython")
+        foreach (_pff_framework IN LISTS _pff_frameworks)
+          if (EXISTS ${_pff_framework}/IronPython.framework)
+            list (APPEND _${_PYTHON_PREFIX}_${_pff_implementation}_FRAMEWORKS ${_pff_framework}/IronPython.framework)
+          endif()
+        endforeach()
+      endif()
+    endforeach()
+    unset (_pff_implementation)
+    unset (_pff_frameworks)
+    unset (_pff_framework)
+  endif()
+endmacro()
+
+function (_PYTHON_GET_FRAMEWORKS _PYTHON_PGF_FRAMEWORK_PATHS)
+  cmake_parse_arguments (PARSE_ARGV 1 _PGF "" "" "IMPLEMENTATIONS;VERSION")
+
+  if (NOT _PGF_IMPLEMENTATIONS)
+    set (_PGF_IMPLEMENTATIONS ${_${_PYTHON_PREFIX}_FIND_IMPLEMENTATIONS})
+  endif()
+
+  set (framework_paths)
+
+  foreach (implementation IN LISTS _PGF_IMPLEMENTATIONS)
+    if (implementation STREQUAL "CPython")
+      foreach (version IN LISTS _PGF_VERSION)
+        foreach (framework IN LISTS _${_PYTHON_PREFIX}_${implementation}_FRAMEWORKS)
+          if (EXISTS "${framework}/Versions/${version}")
+            list (APPEND framework_paths "${framework}/Versions/${version}")
+          endif()
+        endforeach()
+      endforeach()
+    elseif (implementation STREQUAL "IronPython")
+      foreach (version IN LISTS _PGF_VERSION)
+        foreach (framework IN LISTS _${_PYTHON_PREFIX}_${implementation}_FRAMEWORKS)
+          # pick-up all available versions
+          file (GLOB versions LIST_DIRECTORIES true RELATIVE "${framework}/Versions/"
+                              "${framework}/Versions/${version}*")
+          list (SORT versions ORDER DESCENDING)
+          list (TRANSFORM versions PREPEND "${framework}/Versions/")
+          list (APPEND framework_paths ${versions})
+        endforeach()
+      endforeach()
+    endif()
+  endforeach()
+
+  set (${_PYTHON_PGF_FRAMEWORK_PATHS} ${framework_paths} PARENT_SCOPE)
+endfunction()
+
+function (_PYTHON_GET_REGISTRIES _PYTHON_PGR_REGISTRY_PATHS)
+  cmake_parse_arguments (PARSE_ARGV 1 _PGR "" "" "IMPLEMENTATIONS;VERSION")
+
+  if (NOT _PGR_IMPLEMENTATIONS)
+    set (_PGR_IMPLEMENTATIONS ${_${_PYTHON_PREFIX}_FIND_IMPLEMENTATIONS})
+  endif()
+
+  set (registries)
+
+  foreach (implementation IN LISTS _PGR_IMPLEMENTATIONS)
+    if (implementation STREQUAL "CPython")
+      foreach (version IN LISTS _PGR_VERSION)
+        string (REPLACE "." "" version_no_dots ${version})
+        list (APPEND registries
+                     [HKEY_CURRENT_USER\\SOFTWARE\\Python\\PythonCore\\${version}-${_${_PYTHON_PREFIX}_ARCH}\\InstallPath]
+                     [HKEY_CURRENT_USER\\SOFTWARE\\Python\\PythonCore\\${version}-${_${_PYTHON_PREFIX}_ARCH2}\\InstallPath])
+        if (version VERSION_GREATER_EQUAL "3.5")
+          get_filename_component (arch "[HKEY_CURRENT_USER\\Software\\Python\\PythonCore\\${version};SysArchitecture]" NAME)
+          if (arch MATCHES "(${_${_PYTHON_PREFIX}_ARCH}|${_${_PYTHON_PREFIX}_ARCH2})bit")
+            list (APPEND registries
+                         [HKEY_CURRENT_USER\\SOFTWARE\\Python\\PythonCore\\${version}\\InstallPath])
+          endif()
+        else()
+          list (APPEND registries
+                       [HKEY_CURRENT_USER\\SOFTWARE\\Python\\PythonCore\\${version}\\InstallPath])
+        endif()
+        list (APPEND registries
+                     [HKEY_CURRENT_USER\\SOFTWARE\\Python\\ContinuumAnalytics\\Anaconda${version_no_dots}-${_${_PYTHON_PREFIX}_ARCH}\\InstallPath]
+                     [HKEY_CURRENT_USER\\SOFTWARE\\Python\\ContinuumAnalytics\\Anaconda${version_no_dots}-${_${_PYTHON_PREFIX}_ARCH2}\\InstallPath]
+                     [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${version}-${_${_PYTHON_PREFIX}_ARCH}\\InstallPath]
+                     [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${version}-${_${_PYTHON_PREFIX}_ARCH2}\\InstallPath]
+                     [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${version}\\InstallPath]
+                     [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\ContinuumAnalytics\\Anaconda${version_no_dots}-${_${_PYTHON_PREFIX}_ARCH}\\InstallPath]
+                     [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\ContinuumAnalytics\\Anaconda${version_no_dots}-${_${_PYTHON_PREFIX}_ARCH2}\\InstallPath])
+      endforeach()
+    elseif (implementation STREQUAL "IronPython")
+      foreach (version  IN LISTS _PGR_VERSION)
+        list (APPEND registries [HKEY_LOCAL_MACHINE\\SOFTWARE\\IronPython\\${version}\\InstallPath])
+      endforeach()
+    endif()
+  endforeach()
+
+  set (${_PYTHON_PGR_REGISTRY_PATHS} "${registries}" PARENT_SCOPE)
+endfunction()
+
+
+function (_PYTHON_GET_ABIFLAGS _PGABIFLAGS)
+  set (abiflags)
+  list (GET _${_PYTHON_PREFIX}_FIND_ABI 0 pydebug)
+  list (GET _${_PYTHON_PREFIX}_FIND_ABI 1 pymalloc)
+  list (GET _${_PYTHON_PREFIX}_FIND_ABI 2 unicode)
+
+  if (pymalloc STREQUAL "ANY" AND unicode STREQUAL "ANY")
+    set (abiflags "mu" "m" "u" "")
+  elseif (pymalloc STREQUAL "ANY" AND unicode STREQUAL "ON")
+    set (abiflags "mu" "u")
+  elseif (pymalloc STREQUAL "ANY" AND unicode STREQUAL "OFF")
+    set (abiflags "m" "")
+  elseif (pymalloc STREQUAL "ON" AND unicode STREQUAL "ANY")
+    set (abiflags "mu" "m")
+  elseif (pymalloc STREQUAL "ON" AND unicode STREQUAL "ON")
+    set (abiflags "mu")
+  elseif (pymalloc STREQUAL "ON" AND unicode STREQUAL "OFF")
+    set (abiflags "m")
+  elseif (pymalloc STREQUAL "ON" AND unicode STREQUAL "ANY")
+    set (abiflags "u" "")
+  elseif (pymalloc STREQUAL "OFF" AND unicode STREQUAL "ON")
+    set (abiflags "u")
+  endif()
+
+  if (pydebug STREQUAL "ON")
+    if (abiflags)
+      list (TRANSFORM abiflags PREPEND "d")
+    else()
+      set (abiflags "d")
+    endif()
+  elseif (pydebug STREQUAL "ANY")
+    if (abiflags)
+      set (flags "${abiflags}")
+      list (TRANSFORM flags PREPEND "d")
+      list (APPEND abiflags "${flags}")
+    else()
+      set (abiflags "" "d")
+    endif()
+  endif()
+
+  set (${_PGABIFLAGS} "${abiflags}" PARENT_SCOPE)
+endfunction()
+
+function (_PYTHON_GET_PATH_SUFFIXES _PYTHON_PGPS_PATH_SUFFIXES)
+  cmake_parse_arguments (PARSE_ARGV 1 _PGPS "INTERPRETER;COMPILER;LIBRARY;INCLUDE" "" "IMPLEMENTATIONS;VERSION")
+
+  if (NOT _PGPS_IMPLEMENTATIONS)
+    set (_PGPS_IMPLEMENTATIONS ${_${_PYTHON_PREFIX}_FIND_IMPLEMENTATIONS})
+  endif()
+
+  if (DEFINED _${_PYTHON_PREFIX}_ABIFLAGS)
+    set (abi "${_${_PYTHON_PREFIX}_ABIFLAGS}")
+  else()
+    set (abi "mu" "m" "u" "")
+  endif()
+
+  set (path_suffixes)
+
+  foreach (implementation IN LISTS _PGPS_IMPLEMENTATIONS)
+    if (implementation STREQUAL "CPython")
+      if (_PGPS_INTERPRETER)
+        list (APPEND path_suffixes bin Scripts)
+      else()
+        foreach (version IN LISTS _PGPS_VERSION)
+          if (_PGPS_LIBRARY)
+            if (CMAKE_LIBRARY_ARCHITECTURE)
+              list (APPEND path_suffixes lib/${CMAKE_LIBRARY_ARCHITECTURE})
+            endif()
+            list (APPEND path_suffixes lib libs)
+
+            if (CMAKE_LIBRARY_ARCHITECTURE)
+              set (suffixes "${abi}")
+              if (suffixes)
+                list (TRANSFORM suffixes PREPEND "lib/python${_PGPS_VERSION}/config-${_PGPS_VERSION}")
+                list (TRANSFORM suffixes APPEND "-${CMAKE_LIBRARY_ARCHITECTURE}")
+              else()
+                set (suffixes "lib/python${_PGPS_VERSION}/config-${_PGPS_VERSION}-${CMAKE_LIBRARY_ARCHITECTURE}")
+              endif()
+              list (APPEND path_suffixes ${suffixes})
+            endif()
+            set (suffixes "${abi}")
+            if (suffixes)
+              list (TRANSFORM suffixes PREPEND "lib/python${_PGPS_VERSION}/config-${_PGPS_VERSION}")
+            else()
+              set (suffixes "lib/python${_PGPS_VERSION}/config-${_PGPS_VERSION}")
+            endif()
+            list (APPEND path_suffixes ${suffixes})
+          elseif (_PGPS_INCLUDE)
+            set (suffixes "${abi}")
+            if (suffixes)
+              list (TRANSFORM suffixes PREPEND "include/python${_PGPS_VERSION}")
+            else()
+              set (suffixes "include/python${_PGPS_VERSION}")
+            endif()
+            list (APPEND path_suffixes ${suffixes} include)
+          endif()
+        endforeach()
+      endif()
+    elseif (implementation STREQUAL "IronPython")
+      if (_PGPS_INTERPRETER OR _PGPS_COMPILER)
+        foreach (version IN LISTS _PGPS_VERSION)
+          list (APPEND path_suffixes "share/ironpython${version}")
+        endforeach()
+        list (APPEND path_suffixes ${_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES})
+      endif()
+    elseif (implementation STREQUAL "PyPy")
+      if (_PGPS_INTERPRETER)
+        list (APPEND path_suffixes ${_${_PYTHON_PREFIX}_PYPY_EXECUTABLE_PATH_SUFFIXES})
+      elseif (_PGPS_LIBRARY)
+        list (APPEND path_suffixes ${_${_PYTHON_PREFIX}_PYPY_LIBRARY_PATH_SUFFIXES})
+      elseif (_PGPS_INCLUDE)
+        list (APPEND path_suffixes ${_${_PYTHON_PREFIX}_PYPY_INCLUDE_PATH_SUFFIXES})
+      endif()
+    endif()
+  endforeach()
+  list (REMOVE_DUPLICATES path_suffixes)
+
+  set (${_PYTHON_PGPS_PATH_SUFFIXES} ${path_suffixes} PARENT_SCOPE)
+endfunction()
+
+function (_PYTHON_GET_NAMES _PYTHON_PGN_NAMES)
+  cmake_parse_arguments (PARSE_ARGV 1 _PGN "POSIX;INTERPRETER;COMPILER;CONFIG;LIBRARY;WIN32;DEBUG" "" "IMPLEMENTATIONS;VERSION")
+
+  if (NOT _PGN_IMPLEMENTATIONS)
+    set (_PGN_IMPLEMENTATIONS ${_${_PYTHON_PREFIX}_FIND_IMPLEMENTATIONS})
+  endif()
+
+  set (names)
+
+  foreach (implementation IN LISTS _PGN_IMPLEMENTATIONS)
+    if (implementation STREQUAL "CPython")
+      foreach (version IN LISTS _PGN_VERSION)
+        if (_PGN_WIN32)
+          string (REPLACE "." "" version_no_dots ${version})
+
+          set (name python${version_no_dots})
+          if (_PGN_DEBUG)
+            string (APPEND name "_d")
+          endif()
+
+          list (APPEND names "${name}")
+        endif()
+
+        if (_PGN_POSIX)
+          if (DEFINED _${_PYTHON_PREFIX}_ABIFLAGS)
+            set (abi "${_${_PYTHON_PREFIX}_ABIFLAGS}")
+          else()
+            if (_PGN_INTERPRETER OR _PGN_CONFIG)
+              set (abi "")
+            else()
+              set (abi "mu" "m" "u" "")
+            endif()
+          endif()
+
+          if (abi)
+            if (_PGN_CONFIG AND DEFINED CMAKE_LIBRARY_ARCHITECTURE)
+              set (abinames "${abi}")
+              list (TRANSFORM abinames PREPEND "${CMAKE_LIBRARY_ARCHITECTURE}-python${version}")
+              list (TRANSFORM abinames APPEND "-config")
+              list (APPEND names ${abinames})
+            endif()
+            set (abinames "${abi}")
+            list (TRANSFORM abinames PREPEND "python${version}")
+            if (_PGN_CONFIG)
+              list (TRANSFORM abinames APPEND "-config")
+            endif()
+            list (APPEND names ${abinames})
+          else()
+            unset (abinames)
+            if (_PGN_CONFIG AND DEFINED CMAKE_LIBRARY_ARCHITECTURE)
+              set (abinames "${CMAKE_LIBRARY_ARCHITECTURE}-python${version}")
+            endif()
+            list (APPEND abinames "python${version}")
+            if (_PGN_CONFIG)
+              list (TRANSFORM abinames APPEND "-config")
+            endif()
+            list (APPEND names ${abinames})
+          endif()
+        endif()
+      endforeach()
+      if (_PGN_INTERPRETER)
+        list (APPEND names python${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR} python)
+      endif()
+    elseif (implementation STREQUAL "IronPython")
+      if (_PGN_INTERPRETER)
+        if (NOT CMAKE_SYSTEM_NAME STREQUAL "Linux")
+          # Do not use wrapper script on Linux because it is buggy: -c interpreter option cannot be used
+          foreach (version IN LISTS _PGN_VERSION)
+            list (APPEND names "ipy${version}")
+          endforeach()
+        endif()
+        list (APPEND names ${_${_PYTHON_PREFIX}_IRON_PYTHON_INTERPRETER_NAMES})
+      elseif (_PGN_COMPILER)
+        list (APPEND names ${_${_PYTHON_PREFIX}_IRON_PYTHON_COMPILER_NAMES})
+      endif()
+    elseif (implementation STREQUAL "PyPy")
+      if (_PGN_INTERPRETER)
+        list (APPEND names ${_${_PYTHON_PREFIX}_PYPY_NAMES})
+      elseif (_PGN_LIBRARY)
+        if (_PGN_WIN32)
+          foreach (version IN LISTS _PGN_VERSION)
+            string (REPLACE "." "" version_no_dots ${version})
+
+            set (name "python${version_no_dots}")
+            if (_PGN_DEBUG)
+              string (APPEND name "_d")
+            endif()
+            list (APPEND names "${name}")
+          endforeach()
+        endif()
+        list (APPEND names ${_${_PYTHON_PREFIX}_PYPY_LIB_NAMES})
+      endif()
+    endif()
+  endforeach()
+
+  set (${_PYTHON_PGN_NAMES} ${names} PARENT_SCOPE)
+endfunction()
+
+function (_PYTHON_GET_CONFIG_VAR _PYTHON_PGCV_VALUE NAME)
+  unset (${_PYTHON_PGCV_VALUE} PARENT_SCOPE)
+
+  if (NOT NAME MATCHES "^(PREFIX|ABIFLAGS|CONFIGDIR|INCLUDES|LIBS|SOABI)$")
+    return()
+  endif()
+
+  if (_${_PYTHON_PREFIX}_CONFIG)
+    if (NAME STREQUAL "SOABI")
+      set (config_flag "--extension-suffix")
+    else()
+      set (config_flag "--${NAME}")
+    endif()
+    string (TOLOWER "${config_flag}" config_flag)
+    execute_process (COMMAND "${_${_PYTHON_PREFIX}_CONFIG}" ${config_flag}
+                     RESULT_VARIABLE _result
+                     OUTPUT_VARIABLE _values
+                     ERROR_QUIET
+                     OUTPUT_STRIP_TRAILING_WHITESPACE)
+    if (_result)
+      unset (_values)
+    else()
+      if (NAME STREQUAL "INCLUDES")
+        # do some clean-up
+        string (REGEX MATCHALL "(-I|-iwithsysroot)[ ]*[^ ]+" _values "${_values}")
+        string (REGEX REPLACE "(-I|-iwithsysroot)[ ]*" "" _values "${_values}")
+        list (REMOVE_DUPLICATES _values)
+      elseif (NAME STREQUAL "SOABI")
+        # clean-up: remove prefix character and suffix
+        string (REGEX REPLACE "^[.-](.+)(${CMAKE_SHARED_LIBRARY_SUFFIX}|\\.(so|pyd))$" "\\1" _values "${_values}")
+      endif()
+    endif()
+  endif()
+
+  if (_${_PYTHON_PREFIX}_EXECUTABLE AND NOT CMAKE_CROSSCOMPILING)
+    if (NAME STREQUAL "PREFIX")
+      execute_process (COMMAND ${_${_PYTHON_PREFIX}_INTERPRETER_LAUNCHER} "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c "import sys\ntry:\n   from distutils import sysconfig\n   sys.stdout.write(';'.join([sysconfig.PREFIX,sysconfig.EXEC_PREFIX,sysconfig.BASE_EXEC_PREFIX]))\nexcept Exception:\n   import sysconfig\n   sys.stdout.write(';'.join([sysconfig.get_config_var('base') or '', sysconfig.get_config_var('installed_base') or '']))"
+                       RESULT_VARIABLE _result
+                       OUTPUT_VARIABLE _values
+                       ERROR_QUIET
+                       OUTPUT_STRIP_TRAILING_WHITESPACE)
+      if (_result)
+        unset (_values)
+      else()
+        list (REMOVE_DUPLICATES _values)
+      endif()
+    elseif (NAME STREQUAL "INCLUDES")
+      if (WIN32)
+        set (_scheme "nt")
+      else()
+        set (_scheme "posix_prefix")
+      endif()
+      execute_process (COMMAND ${_${_PYTHON_PREFIX}_INTERPRETER_LAUNCHER} "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c
+                               "import sys\ntry:\n   from distutils import sysconfig\n   sys.stdout.write(';'.join([sysconfig.get_python_inc(plat_specific=True),sysconfig.get_python_inc(plat_specific=False)]))\nexcept Exception:\n   import sysconfig\n   sys.stdout.write(';'.join([sysconfig.get_path('platinclude'),sysconfig.get_path('platinclude','${_scheme}'),sysconfig.get_path('include'),sysconfig.get_path('include','${_scheme}')]))"
+                       RESULT_VARIABLE _result
+                       OUTPUT_VARIABLE _values
+                       ERROR_QUIET
+                       OUTPUT_STRIP_TRAILING_WHITESPACE)
+      if (_result)
+        unset (_values)
+      else()
+        list (REMOVE_DUPLICATES _values)
+      endif()
+    elseif (NAME STREQUAL "SOABI")
+      execute_process (COMMAND ${_${_PYTHON_PREFIX}_INTERPRETER_LAUNCHER} "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c
+                               "import sys\ntry:\n   from distutils import sysconfig\n   sys.stdout.write(';'.join([sysconfig.get_config_var('SOABI') or '',sysconfig.get_config_var('EXT_SUFFIX') or '']))\nexcept Exception:\n   import sysconfig;sys.stdout.write(';'.join([sysconfig.get_config_var('SOABI') or '',sysconfig.get_config_var('EXT_SUFFIX') or '']))"
+                       RESULT_VARIABLE _result
+                       OUTPUT_VARIABLE _soabi
+                       ERROR_QUIET
+                       OUTPUT_STRIP_TRAILING_WHITESPACE)
+      if (_result)
+        unset (_values)
+      else()
+        foreach (_item IN LISTS _soabi)
+          if (_item)
+            set (_values "${_item}")
+            break()
+          endif()
+        endforeach()
+        if (_values)
+          # clean-up: remove prefix character and suffix
+          string (REGEX REPLACE "^[.-](.+)(${CMAKE_SHARED_LIBRARY_SUFFIX}|\\.(so|pyd))$" "\\1" _values "${_values}")
+        endif()
+      endif()
+    else()
+      set (config_flag "${NAME}")
+      if (NAME STREQUAL "CONFIGDIR")
+        set (config_flag "LIBPL")
+      endif()
+      execute_process (COMMAND ${_${_PYTHON_PREFIX}_INTERPRETER_LAUNCHER} "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c
+                               "import sys\ntry:\n   from distutils import sysconfig\n   sys.stdout.write(sysconfig.get_config_var('${config_flag}'))\nexcept Exception:\n   import sysconfig\n   sys.stdout.write(sysconfig.get_config_var('${config_flag}'))"
+                       RESULT_VARIABLE _result
+                       OUTPUT_VARIABLE _values
+                       ERROR_QUIET
+                       OUTPUT_STRIP_TRAILING_WHITESPACE)
+      if (_result)
+        unset (_values)
+      endif()
+    endif()
+  endif()
+
+  if (config_flag STREQUAL "ABIFLAGS")
+    set (${_PYTHON_PGCV_VALUE} "${_values}" PARENT_SCOPE)
+    return()
+  endif()
+
+  if (NOT _values OR _values STREQUAL "None")
+    return()
+  endif()
+
+  if (NAME STREQUAL "LIBS")
+    # do some clean-up
+    string (REGEX MATCHALL "-(l|framework)[ ]*[^ ]+" _values "${_values}")
+    # remove elements relative to python library itself
+    list (FILTER _values EXCLUDE REGEX "-lpython")
+    list (REMOVE_DUPLICATES _values)
+  endif()
+
+  if (WIN32 AND NAME MATCHES "^(PREFIX|CONFIGDIR|INCLUDES)$")
+    file (TO_CMAKE_PATH "${_values}" _values)
+  endif()
+
+  set (${_PYTHON_PGCV_VALUE} "${_values}" PARENT_SCOPE)
+endfunction()
+
+function (_PYTHON_GET_VERSION)
+  cmake_parse_arguments (PARSE_ARGV 0 _PGV "LIBRARY;INCLUDE" "PREFIX" "")
+
+  unset (${_PGV_PREFIX}VERSION PARENT_SCOPE)
+  unset (${_PGV_PREFIX}VERSION_MAJOR PARENT_SCOPE)
+  unset (${_PGV_PREFIX}VERSION_MINOR PARENT_SCOPE)
+  unset (${_PGV_PREFIX}VERSION_PATCH PARENT_SCOPE)
+  unset (${_PGV_PREFIX}ABI PARENT_SCOPE)
+
+  if (_PGV_LIBRARY)
+    # retrieve version and abi from library name
+    if (_${_PYTHON_PREFIX}_LIBRARY_RELEASE)
+      # extract version from library name
+      if (_${_PYTHON_PREFIX}_LIBRARY_RELEASE MATCHES "python([23])([0-9]+)")
+        set (${_PGV_PREFIX}VERSION_MAJOR "${CMAKE_MATCH_1}" PARENT_SCOPE)
+        set (${_PGV_PREFIX}VERSION_MINOR "${CMAKE_MATCH_2}" PARENT_SCOPE)
+        set (${_PGV_PREFIX}VERSION "${CMAKE_MATCH_1}.${CMAKE_MATCH_2}" PARENT_SCOPE)
+        set (${_PGV_PREFIX}ABI "" PARENT_SCOPE)
+      elseif (_${_PYTHON_PREFIX}_LIBRARY_RELEASE MATCHES "python([23])\\.([0-9]+)([dmu]*)")
+        set (${_PGV_PREFIX}VERSION_MAJOR "${CMAKE_MATCH_1}" PARENT_SCOPE)
+        set (${_PGV_PREFIX}VERSION_MINOR "${CMAKE_MATCH_2}" PARENT_SCOPE)
+        set (${_PGV_PREFIX}VERSION "${CMAKE_MATCH_1}.${CMAKE_MATCH_2}" PARENT_SCOPE)
+        set (${_PGV_PREFIX}ABI "${CMAKE_MATCH_3}" PARENT_SCOPE)
+      elseif (_${_PYTHON_PREFIX}_LIBRARY_RELEASE MATCHES "pypy(3)?")
+        set (version "${CMAKE_MATCH_1}")
+        if (version EQUAL "3")
+          set (${_PGV_PREFIX}VERSION_MAJOR "3" PARENT_SCOPE)
+          set (${_PGV_PREFIX}VERSION "3" PARENT_SCOPE)
+        else()
+          set (${_PGV_PREFIX}VERSION_MAJOR "2" PARENT_SCOPE)
+          set (${_PGV_PREFIX}VERSION "2" PARENT_SCOPE)
+        endif()
+        set (${_PGV_PREFIX}ABI "" PARENT_SCOPE)
+      endif()
+    endif()
+  else()
+    if (_${_PYTHON_PREFIX}_INCLUDE_DIR)
+      # retrieve version from header file
+      file (STRINGS "${_${_PYTHON_PREFIX}_INCLUDE_DIR}/patchlevel.h" version
+            REGEX "^#define[ \t]+PY_VERSION[ \t]+\"[^\"]+\"")
+      string (REGEX REPLACE "^#define[ \t]+PY_VERSION[ \t]+\"([^\"]+)\".*" "\\1"
+                            version "${version}")
+      string (REGEX MATCHALL "[0-9]+" versions "${version}")
+      list (GET versions 0 version_major)
+      list (GET versions 1 version_minor)
+      list (GET versions 2 version_patch)
+
+      set (${_PGV_PREFIX}VERSION "${version_major}.${version_minor}.${version_patch}" PARENT_SCOPE)
+      set (${_PGV_PREFIX}VERSION_MAJOR ${version_major} PARENT_SCOPE)
+      set (${_PGV_PREFIX}VERSION_MINOR ${version_minor} PARENT_SCOPE)
+      set (${_PGV_PREFIX}VERSION_PATCH ${version_patch} PARENT_SCOPE)
+
+      # compute ABI flags
+      if (version_major VERSION_GREATER "2")
+        file (STRINGS "${_${_PYTHON_PREFIX}_INCLUDE_DIR}/pyconfig.h" config REGEX "(Py_DEBUG|WITH_PYMALLOC|Py_UNICODE_SIZE|MS_WIN32)")
+        set (abi)
+        if (config MATCHES "#[ ]*define[ ]+MS_WIN32")
+          # ABI not used on Windows
+          set (abi "")
+        else()
+          if (config MATCHES "#[ ]*define[ ]+Py_DEBUG[ ]+1")
+            string (APPEND abi "d")
+          endif()
+          if (config MATCHES "#[ ]*define[ ]+WITH_PYMALLOC[ ]+1")
+            string (APPEND abi "m")
+          endif()
+          if (config MATCHES "#[ ]*define[ ]+Py_UNICODE_SIZE[ ]+4")
+            string (APPEND abi "u")
+          endif()
+          set (${_PGV_PREFIX}ABI "${abi}" PARENT_SCOPE)
+        endif()
+      else()
+        # ABI not supported
+        set (${_PGV_PREFIX}ABI "" PARENT_SCOPE)
+      endif()
+    endif()
+  endif()
+endfunction()
+
+function (_PYTHON_GET_LAUNCHER _PYTHON_PGL_NAME)
+  cmake_parse_arguments (PARSE_ARGV 1 _PGL "INTERPRETER;COMPILER" "" "")
+
+  unset ({_PYTHON_PGL_NAME} PARENT_SCOPE)
+
+  if ((_PGL_INTERPRETER AND NOT _${_PYTHON_PREFIX}_EXECUTABLE)
+      OR (_PGL_COMPILER AND NOT _${_PYTHON_PREFIX}_COMPILER))
+    return()
+  endif()
+
+  if ("IronPython" IN_LIST _${_PYTHON_PREFIX}_FIND_IMPLEMENTATIONS
+      AND NOT SYSTEM_NAME MATCHES "Windows|Linux")
+    if (_PGL_INTERPRETER)
+      get_filename_component (name "${_${_PYTHON_PREFIX}_EXECUTABLE}" NAME)
+      get_filename_component (ext "${_${_PYTHON_PREFIX}_EXECUTABLE}" LAST_EXT)
+      if (name IN_LIST _${_PYTHON_PREFIX}_IRON_PYTHON_INTERPRETER_NAMES
+          AND ext STREQUAL ".exe")
+        set (${_PYTHON_PGL_NAME} "${${_PYTHON_PREFIX}_DOTNET_LAUNCHER}" PARENT_SCOPE)
+      endif()
+    else()
+      get_filename_component (name "${_${_PYTHON_PREFIX}_COMPILER}" NAME)
+      get_filename_component (ext "${_${_PYTHON_PREFIX}_COMPILER}" LAST_EXT)
+      if (name IN_LIST _${_PYTHON_PREFIX}_IRON_PYTHON_COMPILER_NAMES
+          AND ext STREQUAL ".exe")
+        set (${_PYTHON_PGL_NAME} "${${_PYTHON_PREFIX}_DOTNET_LAUNCHER}" PARENT_SCOPE)
+      endif()
+    endif()
+  endif()
+endfunction()
+
+
+function (_PYTHON_VALIDATE_INTERPRETER)
+  if (NOT _${_PYTHON_PREFIX}_EXECUTABLE)
+    return()
+  endif()
+
+  cmake_parse_arguments (PARSE_ARGV 0 _PVI "EXACT;CHECK_EXISTS" "" "")
+  if (_PVI_UNPARSED_ARGUMENTS)
+    set (expected_version "${_PVI_UNPARSED_ARGUMENTS}")
+  else()
+    unset (expected_version)
+  endif()
+
+  if (_PVI_CHECK_EXISTS AND NOT EXISTS "${_${_PYTHON_PREFIX}_EXECUTABLE}")
+    # interpreter does not exist anymore
+    set (_${_PYTHON_PREFIX}_Interpreter_REASON_FAILURE "Cannot find the interpreter \"${_${_PYTHON_PREFIX}_EXECUTABLE}\"" PARENT_SCOPE)
+    set_property (CACHE _${_PYTHON_PREFIX}_EXECUTABLE PROPERTY VALUE "${_PYTHON_PREFIX}_EXECUTABLE-NOTFOUND")
+    return()
+  endif()
+
+  _python_get_launcher (launcher INTERPRETER)
+
+  # validate ABI compatibility
+  if (DEFINED _${_PYTHON_PREFIX}_FIND_ABI)
+    execute_process (COMMAND ${launcher} "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c
+                             "import sys; sys.stdout.write(sys.abiflags)"
+                     RESULT_VARIABLE result
+                     OUTPUT_VARIABLE abi
+                     ERROR_QUIET
+                     OUTPUT_STRIP_TRAILING_WHITESPACE)
+    if (result)
+      # assume ABI is not supported
+      set (abi "")
+    endif()
+    if (NOT abi IN_LIST _${_PYTHON_PREFIX}_ABIFLAGS)
+      # incompatible ABI
+      set (_${_PYTHON_PREFIX}_Interpreter_REASON_FAILURE "Wrong ABI for the interpreter \"${_${_PYTHON_PREFIX}_EXECUTABLE}\"" PARENT_SCOPE)
+      set_property (CACHE _${_PYTHON_PREFIX}_EXECUTABLE PROPERTY VALUE "${_PYTHON_PREFIX}_EXECUTABLE-NOTFOUND")
+      return()
+    endif()
+  endif()
+
+  get_filename_component (python_name "${_${_PYTHON_PREFIX}_EXECUTABLE}" NAME)
+
+  if (expected_version)
+    if (NOT python_name STREQUAL "python${expected_version}${abi}${CMAKE_EXECUTABLE_SUFFIX}")
+      # compute number of components for version
+      string (REGEX REPLACE "[^.]" "" dots "${expected_version}")
+      # add one dot because there is one dot less than there are components
+      string (LENGTH "${dots}." count)
+      if (count GREATER 3)
+        set (count 3)
+      endif()
+
+      # executable found must have a specific version
+      execute_process (COMMAND ${launcher} "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c
+                               "import sys; sys.stdout.write('.'.join([str(x) for x in sys.version_info[:${count}]]))"
+                       RESULT_VARIABLE result
+                       OUTPUT_VARIABLE version
+                       ERROR_QUIET
+                       OUTPUT_STRIP_TRAILING_WHITESPACE)
+      if (result)
+        # interpreter is not usable
+        set (_${_PYTHON_PREFIX}_Interpreter_REASON_FAILURE "Cannot use the interpreter \"${_${_PYTHON_PREFIX}_EXECUTABLE}\"" PARENT_SCOPE)
+        set_property (CACHE _${_PYTHON_PREFIX}_EXECUTABLE PROPERTY VALUE "${_PYTHON_PREFIX}_EXECUTABLE-NOTFOUND")
+      else()
+        if (_PVI_EXACT AND NOT version VERSION_EQUAL expected_version)
+          # interpreter has wrong version
+          set (_${_PYTHON_PREFIX}_Interpreter_REASON_FAILURE "Wrong version for the interpreter \"${_${_PYTHON_PREFIX}_EXECUTABLE}\"" PARENT_SCOPE)
+          set_property (CACHE _${_PYTHON_PREFIX}_EXECUTABLE PROPERTY VALUE "${_PYTHON_PREFIX}_EXECUTABLE-NOTFOUND")
+        else()
+          # check that version is OK
+          string(REGEX REPLACE "^([0-9]+)\\.?.*$" "\\1" major_version "${version}")
+          string(REGEX REPLACE "^([0-9]+)\\.?.*$" "\\1" expected_major_version "${expected_version}")
+          if (NOT major_version VERSION_EQUAL expected_major_version
+              OR NOT version VERSION_GREATER_EQUAL expected_version)
+            set (_${_PYTHON_PREFIX}_Interpreter_REASON_FAILURE "Wrong version for the interpreter \"${_${_PYTHON_PREFIX}_EXECUTABLE}\"" PARENT_SCOPE)
+            set_property (CACHE _${_PYTHON_PREFIX}_EXECUTABLE PROPERTY VALUE "${_PYTHON_PREFIX}_EXECUTABLE-NOTFOUND")
+          endif()
+        endif()
+      endif()
+      if (NOT _${_PYTHON_PREFIX}_EXECUTABLE)
+        return()
+      endif()
+    endif()
+  else()
+    if (NOT python_name STREQUAL "python${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR}${CMAKE_EXECUTABLE_SUFFIX}")
+      # executable found do not have version in name
+      # ensure major version is OK
+      execute_process (COMMAND ${launcher} "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c
+                               "import sys; sys.stdout.write(str(sys.version_info[0]))"
+                       RESULT_VARIABLE result
+                       OUTPUT_VARIABLE version
+                       ERROR_QUIET
+                       OUTPUT_STRIP_TRAILING_WHITESPACE)
+      if (result OR NOT version EQUAL _${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR)
+        # interpreter not usable or has wrong major version
+        if (result)
+          set (_${_PYTHON_PREFIX}_Interpreter_REASON_FAILURE "Cannot use the interpreter \"${_${_PYTHON_PREFIX}_EXECUTABLE}\"" PARENT_SCOPE)
+        else()
+          set (_${_PYTHON_PREFIX}_Interpreter_REASON_FAILURE "Wrong major version for the interpreter \"${_${_PYTHON_PREFIX}_EXECUTABLE}\"" PARENT_SCOPE)
+        endif()
+        set_property (CACHE _${_PYTHON_PREFIX}_EXECUTABLE PROPERTY VALUE "${_PYTHON_PREFIX}_EXECUTABLE-NOTFOUND")
+        return()
+      endif()
+    endif()
+  endif()
+
+  if (CMAKE_SIZEOF_VOID_P AND ("Development.Module" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS
+        OR "Development.Embed" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS)
+      AND NOT CMAKE_CROSSCOMPILING)
+    # In this case, interpreter must have same architecture as environment
+    execute_process (COMMAND ${launcher} "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c
+                             "import sys, struct; sys.stdout.write(str(struct.calcsize(\"P\")))"
+                     RESULT_VARIABLE result
+                     OUTPUT_VARIABLE size
+                     ERROR_QUIET
+                     OUTPUT_STRIP_TRAILING_WHITESPACE)
+    if (result OR NOT size EQUAL CMAKE_SIZEOF_VOID_P)
+      # interpreter not usable or has wrong architecture
+      if (result)
+        set (_${_PYTHON_PREFIX}_Interpreter_REASON_FAILURE "Cannot use the interpreter \"${_${_PYTHON_PREFIX}_EXECUTABLE}\"" PARENT_SCOPE)
+      else()
+        set (_${_PYTHON_PREFIX}_Interpreter_REASON_FAILURE "Wrong architecture for the interpreter \"${_${_PYTHON_PREFIX}_EXECUTABLE}\"" PARENT_SCOPE)
+      endif()
+      set_property (CACHE _${_PYTHON_PREFIX}_EXECUTABLE PROPERTY VALUE "${_PYTHON_PREFIX}_EXECUTABLE-NOTFOUND")
+      return()
+    endif()
+  endif()
+endfunction()
+
+
+function (_PYTHON_VALIDATE_COMPILER)
+  if (NOT _${_PYTHON_PREFIX}_COMPILER)
+    return()
+  endif()
+
+  cmake_parse_arguments (PARSE_ARGV 0 _PVC "EXACT;CHECK_EXISTS" "" "")
+  if (_PVC_UNPARSED_ARGUMENTS)
+    set (major_version FALSE)
+    set (expected_version "${_PVC_UNPARSED_ARGUMENTS}")
+  else()
+    set (major_version TRUE)
+    set (expected_version "${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR}")
+    set (_PVC_EXACT TRUE)
+  endif()
+
+  if (_PVC_CHECK_EXISTS AND NOT EXISTS "${_${_PYTHON_PREFIX}_COMPILER}")
+    # Compiler does not exist anymore
+    set (_${_PYTHON_PREFIX}_Compiler_REASON_FAILURE "Cannot find the compiler \"${_${_PYTHON_PREFIX}_COMPILER}\"" PARENT_SCOPE)
+    set_property (CACHE _${_PYTHON_PREFIX}_COMPILER PROPERTY VALUE "${_PYTHON_PREFIX}_COMPILER-NOTFOUND")
+    return()
+  endif()
+
+  _python_get_launcher (launcher COMPILER)
+
+  # retrieve python environment version from compiler
+  set (working_dir "${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/PythonCompilerVersion.dir")
+  if (major_version)
+    # check only major version
+    file (WRITE "${working_dir}/version.py" "import sys; sys.stdout.write(str(sys.version_info[0]))")
+  else()
+    # compute number of components for version
+    string (REGEX REPLACE "[^.]" "" dots "${expected_version}")
+    # add one dot because there is one dot less than there are components
+    string (LENGTH "${dots}." count)
+    if (count GREATER 3)
+      set (count 3)
+    endif()
+    file (WRITE "${working_dir}/version.py" "import sys; sys.stdout.write('.'.join([str(x) for x in sys.version_info[:${count}]]))\n")
+  endif()
+  execute_process (COMMAND ${launcher} "${_${_PYTHON_PREFIX}_COMPILER}"
+                           ${_${_PYTHON_PREFIX}_IRON_PYTHON_COMPILER_ARCH_FLAGS}
+                           /target:exe /embed "${working_dir}/version.py"
+                   WORKING_DIRECTORY "${working_dir}"
+                   OUTPUT_QUIET
+                   ERROR_QUIET
+                   OUTPUT_STRIP_TRAILING_WHITESPACE)
+  get_filename_component (ir_dir "${_${_PYTHON_PREFIX}_COMPILER}" DIRECTORY)
+  execute_process (COMMAND "${CMAKE_COMMAND}" -E env "MONO_PATH=${ir_dir}"
+                                              ${${_PYTHON_PREFIX}_DOTNET_LAUNCHER} "${working_dir}/version.exe"
+                   WORKING_DIRECTORY "${working_dir}"
+                   RESULT_VARIABLE result
+                   OUTPUT_VARIABLE version
+                   ERROR_QUIET)
+  file (REMOVE_RECURSE "${working_dir}")
+  if (result)
+    # compiler is not usable
+    set (_${_PYTHON_PREFIX}_Compiler_REASON_FAILURE "Cannot use the compiler \"${_${_PYTHON_PREFIX}_COMPILER}\"" PARENT_SCOPE)
+    set_property (CACHE _${_PYTHON_PREFIX}_COMPILER PROPERTY VALUE "${_PYTHON_PREFIX}_COMPILER-NOTFOUND")
+  elseif ((_PVC_EXACT AND NOT version VERSION_EQUAL expected_version)
+          OR NOT version VERSION_GREATER_EQUAL expected_version)
+    # Compiler has wrong version
+    set (_${_PYTHON_PREFIX}_Compiler_REASON_FAILURE "Wrong version for the compiler \"${_${_PYTHON_PREFIX}_COMPILER}\"" PARENT_SCOPE)
+    set_property (CACHE _${_PYTHON_PREFIX}_COMPILER PROPERTY VALUE "${_PYTHON_PREFIX}_COMPILER-NOTFOUND")
+  endif()
+endfunction()
+
+
+function (_PYTHON_VALIDATE_LIBRARY)
+  if (NOT _${_PYTHON_PREFIX}_LIBRARY_RELEASE)
+    unset (_${_PYTHON_PREFIX}_LIBRARY_DEBUG)
+    return()
+  endif()
+
+  cmake_parse_arguments (PARSE_ARGV 0 _PVL "EXACT;CHECK_EXISTS" "" "")
+  if (_PVL_UNPARSED_ARGUMENTS)
+    set (expected_version ${_PVL_UNPARSED_ARGUMENTS})
+  else()
+    unset (expected_version)
+  endif()
+
+  if (_PVL_CHECK_EXISTS AND NOT EXISTS "${_${_PYTHON_PREFIX}_LIBRARY_RELEASE}")
+    # library does not exist anymore
+    set (_${_PYTHON_PREFIX}_Development_REASON_FAILURE "Cannot find the library \"${_${_PYTHON_PREFIX}_LIBRARY_RELEASE}\"" PARENT_SCOPE)
+    set_property (CACHE _${_PYTHON_PREFIX}_LIBRARY_RELEASE PROPERTY VALUE "${_PYTHON_PREFIX}_LIBRARY_RELEASE-NOTFOUND")
+    if (WIN32)
+      set_property (CACHE _${_PYTHON_PREFIX}_LIBRARY_DEBUG PROPERTY VALUE "${_PYTHON_PREFIX}_LIBRARY_DEBUG-NOTFOUND")
+    endif()
+    set_property (CACHE _${_PYTHON_PREFIX}_INCLUDE_DIR PROPERTY VALUE "${_PYTHON_PREFIX}_INCLUDE_DIR-NOTFOUND")
+    return()
+  endif()
+
+  # retrieve version and abi from library name
+  _python_get_version (LIBRARY PREFIX lib_)
+
+  if (DEFINED _${_PYTHON_PREFIX}_FIND_ABI AND NOT lib_ABI IN_LIST _${_PYTHON_PREFIX}_ABIFLAGS)
+    # incompatible ABI
+    set (_${_PYTHON_PREFIX}_Development_REASON_FAILURE "Wrong ABI for the library \"${_${_PYTHON_PREFIX}_LIBRARY_RELEASE}\"" PARENT_SCOPE)
+    set_property (CACHE _${_PYTHON_PREFIX}_LIBRARY_RELEASE PROPERTY VALUE "${_PYTHON_PREFIX}_LIBRARY_RELEASE-NOTFOUND")
+  else()
+    if (expected_version)
+      # library have only major.minor information
+      string (REGEX MATCH "[0-9](\\.[0-9]+)?" version "${expected_version}")
+      if ((_PVL_EXACT AND NOT lib_VERSION VERSION_EQUAL version) OR (lib_VERSION VERSION_LESS version))
+        # library has wrong version
+        set (_${_PYTHON_PREFIX}_Development_REASON_FAILURE "Wrong version for the library \"${_${_PYTHON_PREFIX}_LIBRARY_RELEASE}\"" PARENT_SCOPE)
+        set_property (CACHE _${_PYTHON_PREFIX}_LIBRARY_RELEASE PROPERTY VALUE "${_PYTHON_PREFIX}_LIBRARY_RELEASE-NOTFOUND")
+      endif()
+    else()
+      if (NOT lib_VERSION_MAJOR VERSION_EQUAL _${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR)
+        # library has wrong major version
+        set (_${_PYTHON_PREFIX}_Development_REASON_FAILURE "Wrong major version for the library \"${_${_PYTHON_PREFIX}_LIBRARY_RELEASE}\"" PARENT_SCOPE)
+        set_property (CACHE _${_PYTHON_PREFIX}_LIBRARY_RELEASE PROPERTY VALUE "${_PYTHON_PREFIX}_LIBRARY_RELEASE-NOTFOUND")
+      endif()
+    endif()
+  endif()
+
+  if (NOT _${_PYTHON_PREFIX}_LIBRARY_RELEASE)
+    if (WIN32)
+      set_property (CACHE _${_PYTHON_PREFIX}_LIBRARY_DEBUG PROPERTY VALUE "${_PYTHON_PREFIX}_LIBRARY_DEBUG-NOTFOUND")
+    endif()
+    unset (_${_PYTHON_PREFIX}_RUNTIME_LIBRARY_RELEASE CACHE)
+    unset (_${_PYTHON_PREFIX}_RUNTIME_LIBRARY_DEBUG CACHE)
+    set_property (CACHE _${_PYTHON_PREFIX}_INCLUDE_DIR PROPERTY VALUE "${_PYTHON_PREFIX}_INCLUDE_DIR-NOTFOUND")
+  endif()
+endfunction()
+
+
+function (_PYTHON_VALIDATE_INCLUDE_DIR)
+  if (NOT _${_PYTHON_PREFIX}_INCLUDE_DIR)
+    return()
+  endif()
+
+  cmake_parse_arguments (PARSE_ARGV 0 _PVID "EXACT;CHECK_EXISTS" "" "")
+  if (_PVID_UNPARSED_ARGUMENTS)
+    set (expected_version ${_PVID_UNPARSED_ARGUMENTS})
+  else()
+    unset (expected_version)
+  endif()
+
+  if (_PVID_CHECK_EXISTS AND NOT EXISTS "${_${_PYTHON_PREFIX}_INCLUDE_DIR}")
+    # include file does not exist anymore
+    set (_${_PYTHON_PREFIX}_Development_REASON_FAILURE "Cannot find the directory \"${_${_PYTHON_PREFIX}_INCLUDE_DIR}\"" PARENT_SCOPE)
+    set_property (CACHE _${_PYTHON_PREFIX}_INCLUDE_DIR PROPERTY VALUE "${_PYTHON_PREFIX}_INCLUDE_DIR-NOTFOUND")
+    return()
+  endif()
+
+  # retrieve version from header file
+  _python_get_version (INCLUDE PREFIX inc_)
+
+  if (DEFINED _${_PYTHON_PREFIX}_FIND_ABI AND NOT inc_ABI IN_LIST _${_PYTHON_PREFIX}_ABIFLAGS)
+    # incompatible ABI
+    set (_${_PYTHON_PREFIX}_Development_REASON_FAILURE "Wrong ABI for the directory \"${_${_PYTHON_PREFIX}_INCLUDE_DIR}\"" PARENT_SCOPE)
+    set_property (CACHE _${_PYTHON_PREFIX}_INCLUDE_DIR PROPERTY VALUE "${_PYTHON_PREFIX}_INCLUDE_DIR-NOTFOUND")
+  else()
+    if (expected_version)
+      if ((_PVID_EXACT AND NOT inc_VERSION VERSION_EQUAL expected_version) OR (inc_VERSION VERSION_LESS expected_version))
+        # include dir has wrong version
+        set (_${_PYTHON_PREFIX}_Development_REASON_FAILURE "Wrong version for the directory \"${_${_PYTHON_PREFIX}_INCLUDE_DIR}\"" PARENT_SCOPE)
+        set_property (CACHE _${_PYTHON_PREFIX}_INCLUDE_DIR PROPERTY VALUE "${_PYTHON_PREFIX}_INCLUDE_DIR-NOTFOUND")
+      endif()
+    else()
+      if (NOT inc_VERSION_MAJOR VERSION_EQUAL _${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR)
+        # include dir has wrong major version
+        set (_${_PYTHON_PREFIX}_Development_REASON_FAILURE "Wrong major version for the directory \"${_${_PYTHON_PREFIX}_INCLUDE_DIR}\"" PARENT_SCOPE)
+        set_property (CACHE _${_PYTHON_PREFIX}_INCLUDE_DIR PROPERTY VALUE "${_PYTHON_PREFIX}_INCLUDE_DIR-NOTFOUND")
+      endif()
+    endif()
+  endif()
+endfunction()
+
+
+function (_PYTHON_FIND_RUNTIME_LIBRARY _PYTHON_LIB)
+  string (REPLACE "_RUNTIME" "" _PYTHON_LIB "${_PYTHON_LIB}")
+  # look at runtime part on systems supporting it
+  if (CMAKE_SYSTEM_NAME STREQUAL "Windows" OR
+      (CMAKE_SYSTEM_NAME MATCHES "MSYS|CYGWIN"
+        AND ${_PYTHON_LIB} MATCHES "${CMAKE_IMPORT_LIBRARY_SUFFIX}$"))
+    set (CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_SHARED_LIBRARY_SUFFIX})
+    # MSYS has a special syntax for runtime libraries
+    if (CMAKE_SYSTEM_NAME MATCHES "MSYS")
+      list (APPEND CMAKE_FIND_LIBRARY_PREFIXES "msys-")
+    endif()
+    find_library (${ARGV})
+  endif()
+endfunction()
+
+
+function (_PYTHON_SET_LIBRARY_DIRS _PYTHON_SLD_RESULT)
+  unset (_PYTHON_DIRS)
+  set (_PYTHON_LIBS ${ARGN})
+  foreach (_PYTHON_LIB IN LISTS _PYTHON_LIBS)
+    if (${_PYTHON_LIB})
+      get_filename_component (_PYTHON_DIR "${${_PYTHON_LIB}}" DIRECTORY)
+      list (APPEND _PYTHON_DIRS "${_PYTHON_DIR}")
+    endif()
+  endforeach()
+  list (REMOVE_DUPLICATES _PYTHON_DIRS)
+  set (${_PYTHON_SLD_RESULT} ${_PYTHON_DIRS} PARENT_SCOPE)
+endfunction()
+
+
+function (_PYTHON_SET_DEVELOPMENT_MODULE_FOUND module)
+  if ("Development.${module}" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS)
+    string(TOUPPER "${module}" id)
+    set (module_found TRUE)
+
+    if ("LIBRARY" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_${id}_ARTIFACTS
+        AND NOT _${_PYTHON_PREFIX}_LIBRARY_RELEASE)
+      set (module_found FALSE)
+    endif()
+    if ("INCLUDE_DIR" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_${id}_ARTIFACTS
+        AND NOT _${_PYTHON_PREFIX}_INCLUDE_DIR)
+      set (module_found FALSE)
+    endif()
+
+    set (${_PYTHON_PREFIX}_Development.${module}_FOUND ${module_found} PARENT_SCOPE)
+  endif()
+endfunction()
+
+
+# If major version is specified, it must be the same as internal major version
+if (DEFINED ${_PYTHON_PREFIX}_FIND_VERSION_MAJOR
+    AND NOT ${_PYTHON_PREFIX}_FIND_VERSION_MAJOR VERSION_EQUAL _${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR)
+  _python_display_failure ("Could NOT find ${_PYTHON_PREFIX}: Wrong major version specified is \"${${_PYTHON_PREFIX}_FIND_VERSION_MAJOR}\", but expected major version is \"${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR}\"")
+endif()
+
+
+# handle components
+if (NOT ${_PYTHON_PREFIX}_FIND_COMPONENTS)
+  set (${_PYTHON_PREFIX}_FIND_COMPONENTS Interpreter)
+  set (${_PYTHON_PREFIX}_FIND_REQUIRED_Interpreter TRUE)
+endif()
+if ("NumPy" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS)
+  list (APPEND ${_PYTHON_PREFIX}_FIND_COMPONENTS "Interpreter" "Development.Module")
+endif()
+if ("Development" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS)
+  list (APPEND ${_PYTHON_PREFIX}_FIND_COMPONENTS "Development.Module" "Development.Embed")
+endif()
+list (REMOVE_DUPLICATES ${_PYTHON_PREFIX}_FIND_COMPONENTS)
+foreach (_${_PYTHON_PREFIX}_COMPONENT IN ITEMS Interpreter Compiler Development Development.Module Development.Embed NumPy)
+  set (${_PYTHON_PREFIX}_${_${_PYTHON_PREFIX}_COMPONENT}_FOUND FALSE)
+endforeach()
+if (${_PYTHON_PREFIX}_FIND_REQUIRED_Development)
+  set (${_PYTHON_PREFIX}_FIND_REQUIRED_Development.Module TRUE)
+  set (${_PYTHON_PREFIX}_FIND_REQUIRED_Development.Embed TRUE)
+endif()
+
+unset (_${_PYTHON_PREFIX}_FIND_DEVELOPMENT_ARTIFACTS)
+unset (_${_PYTHON_PREFIX}_FIND_DEVELOPMENT_MODULE_ARTIFACTS)
+unset (_${_PYTHON_PREFIX}_FIND_DEVELOPMENT_EMBED_ARTIFACTS)
+if ("Development.Module" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS)
+  if (CMAKE_SYSTEM_NAME MATCHES "^(Windows.*|CYGWIN|MSYS)$")
+    list (APPEND _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_MODULE_ARTIFACTS "LIBRARY")
+  endif()
+  list (APPEND _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_MODULE_ARTIFACTS "INCLUDE_DIR")
+endif()
+if ("Development.Embed" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS)
+  list (APPEND _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_EMBED_ARTIFACTS "LIBRARY" "INCLUDE_DIR")
+endif()
+set (_${_PYTHON_PREFIX}_FIND_DEVELOPMENT_ARTIFACTS ${_${_PYTHON_PREFIX}_FIND_DEVELOPMENT_MODULE_ARTIFACTS} ${_${_PYTHON_PREFIX}_FIND_DEVELOPMENT_EMBED_ARTIFACTS})
+list (REMOVE_DUPLICATES _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_ARTIFACTS)
+
+# Set versions to search
+## default: search any version
+set (_${_PYTHON_PREFIX}_FIND_VERSIONS ${_${_PYTHON_PREFIX}_VERSIONS})
+unset (_${_PYTHON_PREFIX}_FIND_VERSION_EXACT)
+
+if (${_PYTHON_PREFIX}_FIND_VERSION_COUNT)
+  if (${_PYTHON_PREFIX}_FIND_VERSION_EXACT)
+    set (_${_PYTHON_PREFIX}_FIND_VERSION_EXACT "EXACT")
+    set (_${_PYTHON_PREFIX}_FIND_VERSIONS ${${_PYTHON_PREFIX}_FIND_VERSION_MAJOR}.${${_PYTHON_PREFIX}_FIND_VERSION_MINOR})
+  else()
+    unset (_${_PYTHON_PREFIX}_FIND_VERSIONS)
+    # add all compatible versions
+    foreach (_${_PYTHON_PREFIX}_VERSION IN LISTS _${_PYTHON_PREFIX}_VERSIONS)
+      if (_${_PYTHON_PREFIX}_VERSION VERSION_GREATER_EQUAL "${${_PYTHON_PREFIX}_FIND_VERSION_MAJOR}.${${_PYTHON_PREFIX}_FIND_VERSION_MINOR}")
+        list (APPEND _${_PYTHON_PREFIX}_FIND_VERSIONS ${_${_PYTHON_PREFIX}_VERSION})
+      endif()
+    endforeach()
+  endif()
+endif()
+
+# Set ABIs to search
+## default: search any ABI
+if (_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR VERSION_LESS "3")
+  # ABI not supported
+  unset (_${_PYTHON_PREFIX}_FIND_ABI)
+  set (_${_PYTHON_PREFIX}_ABIFLAGS "")
+else()
+  unset (_${_PYTHON_PREFIX}_FIND_ABI)
+  unset (_${_PYTHON_PREFIX}_ABIFLAGS)
+  if (DEFINED ${_PYTHON_PREFIX}_FIND_ABI)
+    # normalization
+    string (TOUPPER "${${_PYTHON_PREFIX}_FIND_ABI}" _${_PYTHON_PREFIX}_FIND_ABI)
+    list (TRANSFORM _${_PYTHON_PREFIX}_FIND_ABI REPLACE "^(TRUE|Y(ES)?|1)$" "ON")
+    list (TRANSFORM _${_PYTHON_PREFIX}_FIND_ABI REPLACE "^(FALSE|N(O)?|0)$" "OFF")
+    if (NOT _${_PYTHON_PREFIX}_FIND_ABI MATCHES "^(ON|OFF|ANY);(ON|OFF|ANY);(ON|OFF|ANY)$")
+      message (AUTHOR_WARNING "Find${_PYTHON_PREFIX}: ${${_PYTHON_PREFIX}_FIND_ABI}: invalid value for '${_PYTHON_PREFIX}_FIND_ABI'. Ignore it")
+      unset (_${_PYTHON_PREFIX}_FIND_ABI)
+    endif()
+    _python_get_abiflags (_${_PYTHON_PREFIX}_ABIFLAGS)
+  endif()
+endif()
+unset (${_PYTHON_PREFIX}_SOABI)
+
+# Define lookup strategy
+if (_${_PYTHON_PREFIX}_LOOKUP_POLICY STREQUAL "NEW")
+  set (_${_PYTHON_PREFIX}_FIND_STRATEGY "LOCATION")
+else()
+  set (_${_PYTHON_PREFIX}_FIND_STRATEGY "VERSION")
+endif()
+if (DEFINED ${_PYTHON_PREFIX}_FIND_STRATEGY)
+  if (NOT ${_PYTHON_PREFIX}_FIND_STRATEGY MATCHES "^(VERSION|LOCATION)$")
+    message (AUTHOR_WARNING "Find${_PYTHON_PREFIX}: ${${_PYTHON_PREFIX}_FIND_STRATEGY}: invalid value for '${_PYTHON_PREFIX}_FIND_STRATEGY'. 'VERSION' or 'LOCATION' expected.")
+    set (_${_PYTHON_PREFIX}_FIND_STRATEGY "VERSION")
+  else()
+    set (_${_PYTHON_PREFIX}_FIND_STRATEGY "${${_PYTHON_PREFIX}_FIND_STRATEGY}")
+  endif()
+endif()
+
+# Python and Anaconda distributions: define which architectures can be used
+if (CMAKE_SIZEOF_VOID_P)
+  # In this case, search only for 64bit or 32bit
+  math (EXPR _${_PYTHON_PREFIX}_ARCH "${CMAKE_SIZEOF_VOID_P} * 8")
+  set (_${_PYTHON_PREFIX}_ARCH2 ${_${_PYTHON_PREFIX}_ARCH})
+else()
+  # architecture unknown, search for both 64bit and 32bit
+  set (_${_PYTHON_PREFIX}_ARCH 64)
+  set (_${_PYTHON_PREFIX}_ARCH2 32)
+endif()
+
+# IronPython support
+unset (_${_PYTHON_PREFIX}_IRON_PYTHON_INTERPRETER_NAMES)
+unset (_${_PYTHON_PREFIX}_IRON_PYTHON_COMPILER_NAMES)
+unset (_${_PYTHON_PREFIX}_IRON_PYTHON_COMPILER_ARCH_FLAGS)
+if (CMAKE_SIZEOF_VOID_P)
+  if (_${_PYTHON_PREFIX}_ARCH EQUAL "32")
+    set (_${_PYTHON_PREFIX}_IRON_PYTHON_COMPILER_ARCH_FLAGS "/platform:x86")
+  else()
+    set (_${_PYTHON_PREFIX}_IRON_PYTHON_COMPILER_ARCH_FLAGS "/platform:x64")
+  endif()
+endif()
+if (NOT CMAKE_SYSTEM_NAME STREQUAL "Linux")
+  # Do not use wrapper script on Linux because it is buggy: -c interpreter option cannot be used
+  list (APPEND _${_PYTHON_PREFIX}_IRON_PYTHON_INTERPRETER_NAMES "ipy${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR}" "ipy64" "ipy32" "ipy")
+  list (APPEND _${_PYTHON_PREFIX}_IRON_PYTHON_COMPILER_NAMES "ipyc")
+endif()
+list (APPEND _${_PYTHON_PREFIX}_IRON_PYTHON_INTERPRETER_NAMES "ipy.exe")
+list (APPEND _${_PYTHON_PREFIX}_IRON_PYTHON_COMPILER_NAMES "ipyc.exe")
+set (_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES net45 net40 bin)
+
+# PyPy support
+if (_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR EQUAL "3")
+  set (_${_PYTHON_PREFIX}_PYPY_NAMES pypy3)
+  set (_${_PYTHON_PREFIX}_PYPY_LIB_NAMES pypy3-c)
+  if (WIN32)
+    # special name for runtime part
+    list (APPEND _${_PYTHON_PREFIX}_PYPY_LIB_NAMES libpypy3-c)
+  endif()
+  set (_${_PYTHON_PREFIX}_PYPY_INCLUDE_PATH_SUFFIXES lib/pypy3)
+else()
+  set (_${_PYTHON_PREFIX}_PYPY_NAMES pypy)
+  set (_${_PYTHON_PREFIX}_PYPY_LIB_NAMES pypy-c)
+  if (WIN32)
+    # special name for runtime part
+    list (APPEND _${_PYTHON_PREFIX}_PYPY_LIB_NAMES libpypy-c)
+  endif()
+  set (_${_PYTHON_PREFIX}_PYPY_INCLUDE_PATH_SUFFIXES lib/pypy)
+endif()
+set (_${_PYTHON_PREFIX}_PYPY_EXECUTABLE_PATH_SUFFIXES bin)
+set (_${_PYTHON_PREFIX}_PYPY_LIBRARY_PATH_SUFFIXES lib libs bin)
+list (APPEND _${_PYTHON_PREFIX}_PYPY_INCLUDE_PATH_SUFFIXES include)
+
+# Python Implementations handling
+unset (_${_PYTHON_PREFIX}_FIND_IMPLEMENTATIONS)
+if (DEFINED ${_PYTHON_PREFIX}_FIND_IMPLEMENTATIONS)
+  foreach (_${_PYTHON_PREFIX}_IMPLEMENTATION IN LISTS ${_PYTHON_PREFIX}_FIND_IMPLEMENTATIONS)
+    if (NOT _${_PYTHON_PREFIX}_IMPLEMENTATION MATCHES "^(CPython|IronPython|PyPy)$")
+      message (AUTHOR_WARNING "Find${_PYTHON_PREFIX}: ${_${_PYTHON_PREFIX}_IMPLEMENTATION}: invalid value for '${_PYTHON_PREFIX}_FIND_IMPLEMENTATIONS'. 'CPython', 'IronPython' or 'PyPy' expected. Value will be ignored.")
+    else()
+      list (APPEND _${_PYTHON_PREFIX}_FIND_IMPLEMENTATIONS ${_${_PYTHON_PREFIX}_IMPLEMENTATION})
+    endif()
+  endforeach()
+else()
+  if (WIN32)
+    set (_${_PYTHON_PREFIX}_FIND_IMPLEMENTATIONS CPython IronPython)
+  else()
+    set (_${_PYTHON_PREFIX}_FIND_IMPLEMENTATIONS CPython)
+  endif()
+endif()
+
+# compute list of names for header file
+unset (_${_PYTHON_PREFIX}_INCLUDE_NAMES)
+foreach (_${_PYTHON_PREFIX}_IMPLEMENTATION IN LISTS _${_PYTHON_PREFIX}_FIND_IMPLEMENTATIONS)
+  if (_${_PYTHON_PREFIX}_IMPLEMENTATION STREQUAL "CPython")
+    list (APPEND _${_PYTHON_PREFIX}_INCLUDE_NAMES "Python.h")
+  elseif (_${_PYTHON_PREFIX}_IMPLEMENTATION STREQUAL "PyPy")
+    list (APPEND _${_PYTHON_PREFIX}_INCLUDE_NAMES "PyPy.h")
+  endif()
+endforeach()
+
+
+# Apple frameworks handling
+_python_find_frameworks ()
+
+set (_${_PYTHON_PREFIX}_FIND_FRAMEWORK "FIRST")
+
+if (DEFINED ${_PYTHON_PREFIX}_FIND_FRAMEWORK)
+  if (NOT ${_PYTHON_PREFIX}_FIND_FRAMEWORK MATCHES "^(FIRST|LAST|NEVER)$")
+    message (AUTHOR_WARNING "Find${_PYTHON_PREFIX}: ${${_PYTHON_PREFIX}_FIND_FRAMEWORK}: invalid value for '${_PYTHON_PREFIX}_FIND_FRAMEWORK'. 'FIRST', 'LAST' or 'NEVER' expected. 'FIRST' will be used instead.")
+  else()
+    set (_${_PYTHON_PREFIX}_FIND_FRAMEWORK ${${_PYTHON_PREFIX}_FIND_FRAMEWORK})
+  endif()
+elseif (DEFINED CMAKE_FIND_FRAMEWORK)
+  if (CMAKE_FIND_FRAMEWORK STREQUAL "ONLY")
+    message (AUTHOR_WARNING "Find${_PYTHON_PREFIX}: CMAKE_FIND_FRAMEWORK: 'ONLY' value is not supported. 'FIRST' will be used instead.")
+  elseif (NOT CMAKE_FIND_FRAMEWORK MATCHES "^(FIRST|LAST|NEVER)$")
+    message (AUTHOR_WARNING "Find${_PYTHON_PREFIX}: ${CMAKE_FIND_FRAMEWORK}: invalid value for 'CMAKE_FIND_FRAMEWORK'. 'FIRST', 'LAST' or 'NEVER' expected. 'FIRST' will be used instead.")
+  else()
+    set (_${_PYTHON_PREFIX}_FIND_FRAMEWORK ${CMAKE_FIND_FRAMEWORK})
+  endif()
+endif()
+
+# Save CMAKE_FIND_APPBUNDLE
+if (DEFINED CMAKE_FIND_APPBUNDLE)
+  set (_${_PYTHON_PREFIX}_CMAKE_FIND_APPBUNDLE ${CMAKE_FIND_APPBUNDLE})
+else()
+  unset (_${_PYTHON_PREFIX}_CMAKE_FIND_APPBUNDLE)
+endif()
+# To avoid app bundle lookup
+set (CMAKE_FIND_APPBUNDLE "NEVER")
+
+# Save CMAKE_FIND_FRAMEWORK
+if (DEFINED CMAKE_FIND_FRAMEWORK)
+  set (_${_PYTHON_PREFIX}_CMAKE_FIND_FRAMEWORK ${CMAKE_FIND_FRAMEWORK})
+else()
+  unset (_${_PYTHON_PREFIX}_CMAKE_FIND_FRAMEWORK)
+endif()
+# To avoid framework lookup
+set (CMAKE_FIND_FRAMEWORK "NEVER")
+
+# Windows Registry handling
+if (DEFINED ${_PYTHON_PREFIX}_FIND_REGISTRY)
+  if (NOT ${_PYTHON_PREFIX}_FIND_REGISTRY MATCHES "^(FIRST|LAST|NEVER)$")
+    message (AUTHOR_WARNING "Find${_PYTHON_PREFIX}: ${${_PYTHON_PREFIX}_FIND_REGISTRY}: invalid value for '${_PYTHON_PREFIX}_FIND_REGISTRY'. 'FIRST', 'LAST' or 'NEVER' expected. 'FIRST' will be used instead.")
+    set (_${_PYTHON_PREFIX}_FIND_REGISTRY "FIRST")
+  else()
+    set (_${_PYTHON_PREFIX}_FIND_REGISTRY ${${_PYTHON_PREFIX}_FIND_REGISTRY})
+  endif()
+else()
+  set (_${_PYTHON_PREFIX}_FIND_REGISTRY "FIRST")
+endif()
+
+# virtual environments recognition
+if (DEFINED ENV{VIRTUAL_ENV} OR DEFINED ENV{CONDA_PREFIX})
+  if (DEFINED ${_PYTHON_PREFIX}_FIND_VIRTUALENV)
+    if (NOT ${_PYTHON_PREFIX}_FIND_VIRTUALENV MATCHES "^(FIRST|ONLY|STANDARD)$")
+      message (AUTHOR_WARNING "Find${_PYTHON_PREFIX}: ${${_PYTHON_PREFIX}_FIND_VIRTUALENV}: invalid value for '${_PYTHON_PREFIX}_FIND_VIRTUALENV'. 'FIRST', 'ONLY' or 'STANDARD' expected. 'FIRST' will be used instead.")
+      set (_${_PYTHON_PREFIX}_FIND_VIRTUALENV "FIRST")
+    else()
+      set (_${_PYTHON_PREFIX}_FIND_VIRTUALENV ${${_PYTHON_PREFIX}_FIND_VIRTUALENV})
+    endif()
+  else()
+    set (_${_PYTHON_PREFIX}_FIND_VIRTUALENV FIRST)
+  endif()
+else()
+  set (_${_PYTHON_PREFIX}_FIND_VIRTUALENV STANDARD)
+endif()
+
+
+# Compute search signature
+# This signature will be used to check validity of cached variables on new search
+set (_${_PYTHON_PREFIX}_SIGNATURE "${${_PYTHON_PREFIX}_ROOT_DIR}:${_${_PYTHON_PREFIX}_FIND_IMPLEMENTATIONS}:${_${_PYTHON_PREFIX}_FIND_STRATEGY}:${${_PYTHON_PREFIX}_FIND_VIRTUALENV}")
+if (NOT WIN32)
+  string (APPEND _${_PYTHON_PREFIX}_SIGNATURE ":${${_PYTHON_PREFIX}_USE_STATIC_LIBS}:")
+endif()
+if (CMAKE_HOST_APPLE)
+  string (APPEND _${_PYTHON_PREFIX}_SIGNATURE ":${_${_PYTHON_PREFIX}_FIND_FRAMEWORK}")
+endif()
+if (CMAKE_HOST_WIN32)
+  string (APPEND _${_PYTHON_PREFIX}_SIGNATURE ":${_${_PYTHON_PREFIX}_FIND_REGISTRY}")
+endif()
+
+function (_PYTHON_CHECK_DEVELOPMENT_SIGNATURE module)
+  if ("Development.${module}" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS)
+    string (TOUPPER "${module}" id)
+    set (signature "${_${_PYTHON_PREFIX}_SIGNATURE}:")
+    if ("LIBRARY" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_${id}_ARTIFACTS)
+      list (APPEND signature "${_${_PYTHON_PREFIX}_LIBRARY_RELEASE}:")
+    endif()
+    if ("INCLUDE_DIR" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_${id}_ARTIFACTS)
+      list (APPEND signature "${_${_PYTHON_PREFIX}_INCLUDE_DIR}:")
+    endif()
+    string (MD5 signature "${signature}")
+    if (signature STREQUAL _${_PYTHON_PREFIX}_DEVELOPMENT_${id}_SIGNATURE)
+      if ("LIBRARY" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_${id}_ARTIFACTS)
+        _python_validate_library (${${_PYTHON_PREFIX}_FIND_VERSION}
+                                  ${_${_PYTHON_PREFIX}_FIND_VERSION_EXACT}
+                                  CHECK_EXISTS)
+      endif()
+      if ("INCLUDE_DIR" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_${id}_ARTIFACTS)
+        _python_validate_include_dir (${${_PYTHON_PREFIX}_FIND_VERSION}
+                                      ${_${_PYTHON_PREFIX}_FIND_VERSION_EXACT}
+                                      CHECK_EXISTS)
+      endif()
+    else()
+      if ("LIBRARY" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_${id}_ARTIFACTS)
+        unset (_${_PYTHON_PREFIX}_LIBRARY_RELEASE CACHE)
+        unset (_${_PYTHON_PREFIX}_LIBRARY_DEBUG CACHE)
+      endif()
+      if ("INCLUDE_DIR" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_${id}_ARTIFACTS)
+        unset (_${_PYTHON_PREFIX}_INCLUDE_DIR CACHE)
+      endif()
+    endif()
+    if (("LIBRARY" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_${id}_ARTIFACTS
+          AND NOT _${_PYTHON_PREFIX}_LIBRARY_RELEASE)
+        OR ("INCLUDE_DIR" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_${id}_ARTIFACTS
+          AND NOT _${_PYTHON_PREFIX}_INCLUDE_DIR))
+      unset (_${_PYTHON_PREFIX}_CONFIG CACHE)
+      unset (_${_PYTHON_PREFIX}_DEVELOPMENT_${id}_SIGNATURE CACHE)
+    endif()
+  endif()
+endfunction()
+
+function (_PYTHON_COMPUTE_DEVELOPMENT_SIGNATURE module)
+  string (TOUPPER "${module}" id)
+  if (${_PYTHON_PREFIX}_Development.${module}_FOUND)
+    set (signature "${_${_PYTHON_PREFIX}_SIGNATURE}:")
+    if ("LIBRARY" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_${id}_ARTIFACTS)
+      list (APPEND signature "${_${_PYTHON_PREFIX}_LIBRARY_RELEASE}:")
+    endif()
+    if ("INCLUDE_DIR" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_${id}_ARTIFACTS)
+      list (APPEND signature "${_${_PYTHON_PREFIX}_INCLUDE_DIR}:")
+    endif()
+    string (MD5 signature "${signature}")
+    set (_${_PYTHON_PREFIX}_DEVELOPMENT_${id}_SIGNATURE "${signature}" CACHE INTERNAL "")
+  else()
+    unset (_${_PYTHON_PREFIX}_DEVELOPMENT_${id}_SIGNATURE CACHE)
+  endif()
+endfunction()
+
+
+unset (_${_PYTHON_PREFIX}_REQUIRED_VARS)
+unset (_${_PYTHON_PREFIX}_CACHED_VARS)
+unset (_${_PYTHON_PREFIX}_Interpreter_REASON_FAILURE)
+unset (_${_PYTHON_PREFIX}_Compiler_REASON_FAILURE)
+unset (_${_PYTHON_PREFIX}_Development_REASON_FAILURE)
+unset (_${_PYTHON_PREFIX}_NumPy_REASON_FAILURE)
+
+
+# preamble
+## For IronPython on platforms other than Windows, search for the .Net interpreter
+if ("IronPython" IN_LIST _${_PYTHON_PREFIX}_FIND_IMPLEMENTATIONS
+    AND NOT WIN32)
+  find_program (${_PYTHON_PREFIX}_DOTNET_LAUNCHER
+                NAMES "mono")
+endif()
+
+
+# first step, search for the interpreter
+if ("Interpreter" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS)
+  list (APPEND _${_PYTHON_PREFIX}_CACHED_VARS _${_PYTHON_PREFIX}_EXECUTABLE
+                                              _${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES)
+  if (${_PYTHON_PREFIX}_FIND_REQUIRED_Interpreter)
+    list (APPEND _${_PYTHON_PREFIX}_REQUIRED_VARS ${_PYTHON_PREFIX}_EXECUTABLE)
+  endif()
+
+  if (DEFINED ${_PYTHON_PREFIX}_EXECUTABLE
+      AND IS_ABSOLUTE "${${_PYTHON_PREFIX}_EXECUTABLE}")
+    if (NOT ${_PYTHON_PREFIX}_EXECUTABLE STREQUAL _${_PYTHON_PREFIX}_EXECUTABLE)
+      # invalidate cache properties
+      unset (_${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES CACHE)
+    endif()
+    set (_${_PYTHON_PREFIX}_EXECUTABLE "${${_PYTHON_PREFIX}_EXECUTABLE}" CACHE INTERNAL "")
+  elseif (DEFINED _${_PYTHON_PREFIX}_EXECUTABLE)
+    # compute interpreter signature and check validity of definition
+    string (MD5 __${_PYTHON_PREFIX}_INTERPRETER_SIGNATURE "${_${_PYTHON_PREFIX}_SIGNATURE}:${_${_PYTHON_PREFIX}_EXECUTABLE}")
+    if (__${_PYTHON_PREFIX}_INTERPRETER_SIGNATURE STREQUAL _${_PYTHON_PREFIX}_INTERPRETER_SIGNATURE)
+      # check version validity
+      if (${_PYTHON_PREFIX}_FIND_VERSION_EXACT)
+        _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION} EXACT CHECK_EXISTS)
+      else()
+        _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION} CHECK_EXISTS)
+      endif()
+    else()
+      unset (_${_PYTHON_PREFIX}_EXECUTABLE CACHE)
+    endif()
+    if (NOT _${_PYTHON_PREFIX}_EXECUTABLE)
+      unset (_${_PYTHON_PREFIX}_INTERPRETER_SIGNATURE CACHE)
+      unset (_${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES CACHE)
+    endif()
+  endif()
+
+  if (NOT _${_PYTHON_PREFIX}_EXECUTABLE)
+    set (_${_PYTHON_PREFIX}_HINTS "${${_PYTHON_PREFIX}_ROOT_DIR}" ENV ${_PYTHON_PREFIX}_ROOT_DIR)
+
+    if (_${_PYTHON_PREFIX}_FIND_STRATEGY STREQUAL "LOCATION")
+      # build all executable names
+      _python_get_names (_${_PYTHON_PREFIX}_NAMES VERSION ${_${_PYTHON_PREFIX}_FIND_VERSIONS} POSIX INTERPRETER)
+      _python_get_path_suffixes (_${_PYTHON_PREFIX}_PATH_SUFFIXES VERSION ${_${_PYTHON_PREFIX}_FIND_VERSIONS} INTERPRETER)
+
+      # Framework Paths
+      _python_get_frameworks (_${_PYTHON_PREFIX}_FRAMEWORK_PATHS VERSION ${_${_PYTHON_PREFIX}_FIND_VERSIONS})
+      # Registry Paths
+      _python_get_registries (_${_PYTHON_PREFIX}_REGISTRY_PATHS VERSION ${_${_PYTHON_PREFIX}_FIND_VERSIONS})
+
+      while (TRUE)
+        # Virtual environments handling
+        if (_${_PYTHON_PREFIX}_FIND_VIRTUALENV MATCHES "^(FIRST|ONLY)$")
+          find_program (_${_PYTHON_PREFIX}_EXECUTABLE
+                        NAMES ${_${_PYTHON_PREFIX}_NAMES}
+                        NAMES_PER_DIR
+                        HINTS ${_${_PYTHON_PREFIX}_HINTS}
+                        PATHS ENV VIRTUAL_ENV ENV CONDA_PREFIX
+                        PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+                        NO_CMAKE_PATH
+                        NO_CMAKE_ENVIRONMENT_PATH
+                        NO_SYSTEM_ENVIRONMENT_PATH
+                        NO_CMAKE_SYSTEM_PATH)
+
+          _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION} ${_${_PYTHON_PREFIX}_FIND_VERSION_EXACT})
+          if (_${_PYTHON_PREFIX}_EXECUTABLE)
+            break()
+          endif()
+          if (_${_PYTHON_PREFIX}_FIND_VIRTUALENV STREQUAL "ONLY")
+            break()
+          endif()
+        endif()
+
+        # Apple frameworks handling
+        if (CMAKE_HOST_APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "FIRST")
+          find_program (_${_PYTHON_PREFIX}_EXECUTABLE
+                        NAMES ${_${_PYTHON_PREFIX}_NAMES}
+                        NAMES_PER_DIR
+                        HINTS ${_${_PYTHON_PREFIX}_HINTS}
+                        PATHS ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
+                        PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+                        NO_CMAKE_PATH
+                        NO_CMAKE_ENVIRONMENT_PATH
+                        NO_SYSTEM_ENVIRONMENT_PATH
+                        NO_CMAKE_SYSTEM_PATH)
+          _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION} ${_${_PYTHON_PREFIX}_FIND_VERSION_EXACT})
+          if (_${_PYTHON_PREFIX}_EXECUTABLE)
+            break()
+          endif()
+        endif()
+        # Windows registry
+        if (CMAKE_HOST_WIN32 AND _${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "FIRST")
+          find_program (_${_PYTHON_PREFIX}_EXECUTABLE
+                        NAMES ${_${_PYTHON_PREFIX}_NAMES}
+                        NAMES_PER_DIR
+                        HINTS ${_${_PYTHON_PREFIX}_HINTS}
+                        PATHS ${_${_PYTHON_PREFIX}_REGISTRY_PATHS}
+                        PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+                        NO_SYSTEM_ENVIRONMENT_PATH
+                        NO_CMAKE_SYSTEM_PATH)
+          _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION} ${_${_PYTHON_PREFIX}_FIND_VERSION_EXACT})
+          if (_${_PYTHON_PREFIX}_EXECUTABLE)
+            break()
+          endif()
+        endif()
+
+        # try using HINTS
+        find_program (_${_PYTHON_PREFIX}_EXECUTABLE
+                      NAMES ${_${_PYTHON_PREFIX}_NAMES}
+                      NAMES_PER_DIR
+                      HINTS ${_${_PYTHON_PREFIX}_HINTS}
+                      PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+                      NO_SYSTEM_ENVIRONMENT_PATH
+                      NO_CMAKE_SYSTEM_PATH)
+        _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION} ${_${_PYTHON_PREFIX}_FIND_VERSION_EXACT})
+        if (_${_PYTHON_PREFIX}_EXECUTABLE)
+          break()
+        endif()
+        # try using standard paths
+        find_program (_${_PYTHON_PREFIX}_EXECUTABLE
+                      NAMES ${_${_PYTHON_PREFIX}_NAMES}
+                      NAMES_PER_DIR
+                      PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES})
+        _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION} ${_${_PYTHON_PREFIX}_FIND_VERSION_EXACT})
+        if (_${_PYTHON_PREFIX}_EXECUTABLE)
+          break()
+        endif()
+
+        # Apple frameworks handling
+        if (CMAKE_HOST_APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "LAST")
+          find_program (_${_PYTHON_PREFIX}_EXECUTABLE
+                        NAMES ${_${_PYTHON_PREFIX}_NAMES}
+                        NAMES_PER_DIR
+                        PATHS ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
+                        PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+                        NO_DEFAULT_PATH)
+          _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION} ${_${_PYTHON_PREFIX}_FIND_VERSION_EXACT})
+          if (_${_PYTHON_PREFIX}_EXECUTABLE)
+            break()
+          endif()
+        endif()
+        # Windows registry
+        if (CMAKE_HOST_WIN32 AND _${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "LAST")
+          find_program (_${_PYTHON_PREFIX}_EXECUTABLE
+                        NAMES ${_${_PYTHON_PREFIX}_NAMES}
+                        NAMES_PER_DIR
+                        PATHS ${_${_PYTHON_PREFIX}_REGISTRY_PATHS}
+                        PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+                        NO_DEFAULT_PATH)
+          _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION} ${_${_PYTHON_PREFIX}_FIND_VERSION_EXACT})
+          if (_${_PYTHON_PREFIX}_EXECUTABLE)
+            break()
+          endif()
+        endif()
+
+        break()
+      endwhile()
+    else()
+      # look-up for various versions and locations
+      foreach (_${_PYTHON_PREFIX}_VERSION IN LISTS _${_PYTHON_PREFIX}_FIND_VERSIONS)
+        _python_get_names (_${_PYTHON_PREFIX}_NAMES VERSION ${_${_PYTHON_PREFIX}_VERSION} POSIX INTERPRETER)
+        _python_get_path_suffixes (_${_PYTHON_PREFIX}_PATH_SUFFIXES VERSION ${_${_PYTHON_PREFIX}_VERSION} INTERPRETER)
+
+        _python_get_frameworks (_${_PYTHON_PREFIX}_FRAMEWORK_PATHS VERSION ${_${_PYTHON_PREFIX}_VERSION})
+        _python_get_registries (_${_PYTHON_PREFIX}_REGISTRY_PATHS VERSION ${_${_PYTHON_PREFIX}_VERSION})
+
+        # Virtual environments handling
+        if (_${_PYTHON_PREFIX}_FIND_VIRTUALENV MATCHES "^(FIRST|ONLY)$")
+          find_program (_${_PYTHON_PREFIX}_EXECUTABLE
+                        NAMES ${_${_PYTHON_PREFIX}_NAMES}
+                        NAMES_PER_DIR
+                        HINTS ${_${_PYTHON_PREFIX}_HINTS}
+                        PATHS ENV VIRTUAL_ENV ENV CONDA_PREFIX
+                        PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+                        NO_CMAKE_PATH
+                        NO_CMAKE_ENVIRONMENT_PATH
+                        NO_SYSTEM_ENVIRONMENT_PATH
+                        NO_CMAKE_SYSTEM_PATH)
+          _python_validate_interpreter (${_${_PYTHON_PREFIX}_VERSION} EXACT)
+          if (_${_PYTHON_PREFIX}_EXECUTABLE)
+            break()
+          endif()
+          if (_${_PYTHON_PREFIX}_FIND_VIRTUALENV STREQUAL "ONLY")
+            continue()
+          endif()
+        endif()
+
+        # Apple frameworks handling
+        if (CMAKE_HOST_APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "FIRST")
+          find_program (_${_PYTHON_PREFIX}_EXECUTABLE
+                        NAMES ${_${_PYTHON_PREFIX}_NAMES}
+                        NAMES_PER_DIR
+                        HINTS ${_${_PYTHON_PREFIX}_HINTS}
+                        PATHS ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
+                        PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+                        NO_CMAKE_PATH
+                        NO_CMAKE_ENVIRONMENT_PATH
+                        NO_SYSTEM_ENVIRONMENT_PATH
+                        NO_CMAKE_SYSTEM_PATH)
+        endif()
+
+        # Windows registry
+        if (CMAKE_HOST_WIN32 AND _${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "FIRST")
+          find_program (_${_PYTHON_PREFIX}_EXECUTABLE
+                        NAMES ${_${_PYTHON_PREFIX}_NAMES}
+                        NAMES_PER_DIR
+                        HINTS ${_${_PYTHON_PREFIX}_HINTS}
+                        PATHS ${_${_PYTHON_PREFIX}_REGISTRY_PATHS}
+                        PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+                        NO_SYSTEM_ENVIRONMENT_PATH
+                        NO_CMAKE_SYSTEM_PATH)
+        endif()
+
+        _python_validate_interpreter (${_${_PYTHON_PREFIX}_VERSION} EXACT)
+        if (_${_PYTHON_PREFIX}_EXECUTABLE)
+          break()
+        endif()
+
+        # try using HINTS
+        find_program (_${_PYTHON_PREFIX}_EXECUTABLE
+                      NAMES ${_${_PYTHON_PREFIX}_NAMES}
+                      NAMES_PER_DIR
+                      HINTS ${_${_PYTHON_PREFIX}_HINTS}
+                      PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+                      NO_SYSTEM_ENVIRONMENT_PATH
+                      NO_CMAKE_SYSTEM_PATH)
+        _python_validate_interpreter (${_${_PYTHON_PREFIX}_VERSION} EXACT)
+        if (_${_PYTHON_PREFIX}_EXECUTABLE)
+          break()
+        endif()
+        # try using standard paths.
+        # NAMES_PER_DIR is not defined on purpose to have a chance to find
+        # expected version.
+        # For example, typical systems have 'python' for version 2.* and 'python3'
+        # for version 3.*. So looking for names per dir will find, potentially,
+        # systematically 'python' (i.e. version 2) even if version 3 is searched.
+        find_program (_${_PYTHON_PREFIX}_EXECUTABLE
+                      NAMES ${_${_PYTHON_PREFIX}_NAMES}
+                      PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES})
+        _python_validate_interpreter (${_${_PYTHON_PREFIX}_VERSION} EXACT)
+        if (_${_PYTHON_PREFIX}_EXECUTABLE)
+          break()
+        endif()
+
+        # Apple frameworks handling
+        if (CMAKE_HOST_APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "LAST")
+          find_program (_${_PYTHON_PREFIX}_EXECUTABLE
+                        NAMES ${_${_PYTHON_PREFIX}_NAMES}
+                        NAMES_PER_DIR
+                        PATHS ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
+                        PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+                        NO_DEFAULT_PATH)
+        endif()
+
+        # Windows registry
+        if (CMAKE_HOST_WIN32 AND _${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "LAST")
+          find_program (_${_PYTHON_PREFIX}_EXECUTABLE
+                        NAMES ${_${_PYTHON_PREFIX}_NAMES}
+                        NAMES_PER_DIR
+                        PATHS ${_${_PYTHON_PREFIX}_REGISTRY_PATHS}
+                        PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+                        NO_DEFAULT_PATH)
+        endif()
+
+        _python_validate_interpreter (${_${_PYTHON_PREFIX}_VERSION} EXACT)
+        if (_${_PYTHON_PREFIX}_EXECUTABLE)
+          break()
+        endif()
+      endforeach()
+
+      if (NOT _${_PYTHON_PREFIX}_EXECUTABLE AND
+          NOT _${_PYTHON_PREFIX}_FIND_VIRTUALENV STREQUAL "ONLY")
+        # No specific version found. Retry with generic names and standard paths.
+        # NAMES_PER_DIR is not defined on purpose to have a chance to find
+        # expected version.
+        # For example, typical systems have 'python' for version 2.* and 'python3'
+        # for version 3.*. So looking for names per dir will find, potentially,
+        # systematically 'python' (i.e. version 2) even if version 3 is searched.
+        _python_get_names (_${_PYTHON_PREFIX}_NAMES POSIX INTERPRETER)
+        find_program (_${_PYTHON_PREFIX}_EXECUTABLE
+                      NAMES ${_${_PYTHON_PREFIX}_NAMES})
+        _python_validate_interpreter ()
+      endif()
+    endif()
+  endif()
+
+  set (${_PYTHON_PREFIX}_EXECUTABLE "${_${_PYTHON_PREFIX}_EXECUTABLE}")
+  _python_get_launcher (_${_PYTHON_PREFIX}_INTERPRETER_LAUNCHER INTERPRETER)
+
+  # retrieve exact version of executable found
+  if (_${_PYTHON_PREFIX}_EXECUTABLE)
+    execute_process (COMMAND ${_${_PYTHON_PREFIX}_INTERPRETER_LAUNCHER} "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c
+                             "import sys; sys.stdout.write('.'.join([str(x) for x in sys.version_info[:3]]))"
+                     RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
+                     OUTPUT_VARIABLE ${_PYTHON_PREFIX}_VERSION
+                     ERROR_QUIET
+                     OUTPUT_STRIP_TRAILING_WHITESPACE)
+    if (NOT _${_PYTHON_PREFIX}_RESULT)
+      set (_${_PYTHON_PREFIX}_EXECUTABLE_USABLE TRUE)
+    else()
+      # Interpreter is not usable
+      set (_${_PYTHON_PREFIX}_EXECUTABLE_USABLE FALSE)
+      unset (${_PYTHON_PREFIX}_VERSION)
+      set (_${_PYTHON_PREFIX}_Interpreter_REASON_FAILURE "Cannot run the interpreter \"${_${_PYTHON_PREFIX}_EXECUTABLE}\"")
+    endif()
+  endif()
+
+  if (_${_PYTHON_PREFIX}_EXECUTABLE AND _${_PYTHON_PREFIX}_EXECUTABLE_USABLE)
+    if (_${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES)
+      set (${_PYTHON_PREFIX}_Interpreter_FOUND TRUE)
+
+      list (GET _${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES 0 ${_PYTHON_PREFIX}_INTERPRETER_ID)
+
+      list (GET _${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES 1 ${_PYTHON_PREFIX}_VERSION_MAJOR)
+      list (GET _${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES 2 ${_PYTHON_PREFIX}_VERSION_MINOR)
+      list (GET _${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES 3 ${_PYTHON_PREFIX}_VERSION_PATCH)
+
+      list (GET _${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES 4 _${_PYTHON_PREFIX}_ARCH)
+      set (_${_PYTHON_PREFIX}_ARCH2 ${_${_PYTHON_PREFIX}_ARCH})
+
+      list (GET _${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES 5 _${_PYTHON_PREFIX}_ABIFLAGS)
+      list (GET _${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES 6 ${_PYTHON_PREFIX}_SOABI)
+
+      list (GET _${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES 7 ${_PYTHON_PREFIX}_STDLIB)
+      list (GET _${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES 8 ${_PYTHON_PREFIX}_STDARCH)
+      list (GET _${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES 9 ${_PYTHON_PREFIX}_SITELIB)
+      list (GET _${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES 10 ${_PYTHON_PREFIX}_SITEARCH)
+    else()
+      string (REGEX MATCHALL "[0-9]+" _${_PYTHON_PREFIX}_VERSIONS "${${_PYTHON_PREFIX}_VERSION}")
+      list (GET _${_PYTHON_PREFIX}_VERSIONS 0 ${_PYTHON_PREFIX}_VERSION_MAJOR)
+      list (GET _${_PYTHON_PREFIX}_VERSIONS 1 ${_PYTHON_PREFIX}_VERSION_MINOR)
+      list (GET _${_PYTHON_PREFIX}_VERSIONS 2 ${_PYTHON_PREFIX}_VERSION_PATCH)
+
+      if (${_PYTHON_PREFIX}_VERSION_MAJOR VERSION_EQUAL _${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR)
+        set (${_PYTHON_PREFIX}_Interpreter_FOUND TRUE)
+
+        # Use interpreter version and ABI for future searches to ensure consistency
+        set (_${_PYTHON_PREFIX}_FIND_VERSIONS ${${_PYTHON_PREFIX}_VERSION_MAJOR}.${${_PYTHON_PREFIX}_VERSION_MINOR})
+        execute_process (COMMAND ${_${_PYTHON_PREFIX}_INTERPRETR_LAUNCHER} "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c
+                                 "import sys; sys.stdout.write(sys.abiflags)"
+                         RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
+                         OUTPUT_VARIABLE _${_PYTHON_PREFIX}_ABIFLAGS
+                         ERROR_QUIET
+                         OUTPUT_STRIP_TRAILING_WHITESPACE)
+        if (_${_PYTHON_PREFIX}_RESULT)
+          # assunme ABI is not supported
+          set (_${_PYTHON_PREFIX}_ABIFLAGS "")
+        endif()
+      endif()
+
+      if (${_PYTHON_PREFIX}_Interpreter_FOUND)
+        unset (_${_PYTHON_PREFIX}_Interpreter_REASON_FAILURE)
+
+        # compute and save interpreter signature
+        string (MD5 __${_PYTHON_PREFIX}_INTERPRETER_SIGNATURE "${_${_PYTHON_PREFIX}_SIGNATURE}:${_${_PYTHON_PREFIX}_EXECUTABLE}")
+        set (_${_PYTHON_PREFIX}_INTERPRETER_SIGNATURE "${__${_PYTHON_PREFIX}_INTERPRETER_SIGNATURE}" CACHE INTERNAL "")
+
+        if (NOT CMAKE_SIZEOF_VOID_P)
+          # determine interpreter architecture
+          execute_process (COMMAND ${_${_PYTHON_PREFIX}_INTERPRETER_LAUNCHER} "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c
+                                   "import sys; sys.stdout.write(str(sys.maxsize > 2**32))"
+                           RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
+                           OUTPUT_VARIABLE ${_PYTHON_PREFIX}_IS64BIT
+                           ERROR_VARIABLE ${_PYTHON_PREFIX}_IS64BIT)
+          if (NOT _${_PYTHON_PREFIX}_RESULT)
+            if (${_PYTHON_PREFIX}_IS64BIT)
+              set (_${_PYTHON_PREFIX}_ARCH 64)
+              set (_${_PYTHON_PREFIX}_ARCH2 64)
+            else()
+              set (_${_PYTHON_PREFIX}_ARCH 32)
+              set (_${_PYTHON_PREFIX}_ARCH2 32)
+            endif()
+          endif()
+        endif()
+
+        # retrieve interpreter identity
+        execute_process (COMMAND ${_${_PYTHON_PREFIX}_INTERPRETER_LAUNCHER} "${_${_PYTHON_PREFIX}_EXECUTABLE}" -V
+                         RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
+                         OUTPUT_VARIABLE ${_PYTHON_PREFIX}_INTERPRETER_ID
+                         ERROR_VARIABLE ${_PYTHON_PREFIX}_INTERPRETER_ID)
+        if (NOT _${_PYTHON_PREFIX}_RESULT)
+          if (${_PYTHON_PREFIX}_INTERPRETER_ID MATCHES "Anaconda")
+            set (${_PYTHON_PREFIX}_INTERPRETER_ID "Anaconda")
+          elseif (${_PYTHON_PREFIX}_INTERPRETER_ID MATCHES "Enthought")
+            set (${_PYTHON_PREFIX}_INTERPRETER_ID "Canopy")
+          elseif (${_PYTHON_PREFIX}_INTERPRETER_ID MATCHES "PyPy ([0-9.]+)")
+            set (${_PYTHON_PREFIX}_INTERPRETER_ID "PyPy")
+            set  (${_PYTHON_PREFIX}_PyPy_VERSION "${CMAKE_MATCH_1}")
+          else()
+            string (REGEX REPLACE "^([^ ]+).*" "\\1" ${_PYTHON_PREFIX}_INTERPRETER_ID "${${_PYTHON_PREFIX}_INTERPRETER_ID}")
+            if (${_PYTHON_PREFIX}_INTERPRETER_ID STREQUAL "Python")
+              # try to get a more precise ID
+              execute_process (COMMAND ${_${_PYTHON_PREFIX}_INTERPRETER_LAUNCHER} "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c
+                                       "import sys; sys.stdout.write(sys.copyright)"
+                               RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
+                               OUTPUT_VARIABLE ${_PYTHON_PREFIX}_COPYRIGHT
+                               ERROR_QUIET)
+              if (${_PYTHON_PREFIX}_COPYRIGHT MATCHES "ActiveState")
+                set (${_PYTHON_PREFIX}_INTERPRETER_ID "ActivePython")
+              endif()
+            endif()
+          endif()
+        else()
+          set (${_PYTHON_PREFIX}_INTERPRETER_ID Python)
+        endif()
+
+        # retrieve various package installation directories
+        execute_process (COMMAND ${_${_PYTHON_PREFIX}_INTERPRETER_LAUNCHER} "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c
+                                 "import sys\ntry:\n   from distutils import sysconfig\n   sys.stdout.write(';'.join([sysconfig.get_python_lib(plat_specific=False,standard_lib=True),sysconfig.get_python_lib(plat_specific=True,standard_lib=True),sysconfig.get_python_lib(plat_specific=False,standard_lib=False),sysconfig.get_python_lib(plat_specific=True,standard_lib=False)]))\nexcept Exception:\n   import sysconfig\n   sys.stdout.write(';'.join([sysconfig.get_path('stdlib'),sysconfig.get_path('platstdlib'),sysconfig.get_path('purelib'),sysconfig.get_path('platlib')]))"
+                         RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
+                         OUTPUT_VARIABLE _${_PYTHON_PREFIX}_LIBPATHS
+                         ERROR_QUIET)
+        if (NOT _${_PYTHON_PREFIX}_RESULT)
+          list (GET _${_PYTHON_PREFIX}_LIBPATHS 0 ${_PYTHON_PREFIX}_STDLIB)
+          list (GET _${_PYTHON_PREFIX}_LIBPATHS 1 ${_PYTHON_PREFIX}_STDARCH)
+          list (GET _${_PYTHON_PREFIX}_LIBPATHS 2 ${_PYTHON_PREFIX}_SITELIB)
+          list (GET _${_PYTHON_PREFIX}_LIBPATHS 3 ${_PYTHON_PREFIX}_SITEARCH)
+        else()
+          unset (${_PYTHON_PREFIX}_STDLIB)
+          unset (${_PYTHON_PREFIX}_STDARCH)
+          unset (${_PYTHON_PREFIX}_SITELIB)
+          unset (${_PYTHON_PREFIX}_SITEARCH)
+        endif()
+
+        if (_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR VERSION_GREATER_EQUAL "3")
+          _python_get_config_var (${_PYTHON_PREFIX}_SOABI SOABI)
+        endif()
+
+        # store properties in the cache to speed-up future searches
+        set (_${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES
+          "${${_PYTHON_PREFIX}_INTERPRETER_ID};${${_PYTHON_PREFIX}_VERSION_MAJOR};${${_PYTHON_PREFIX}_VERSION_MINOR};${${_PYTHON_PREFIX}_VERSION_PATCH};${_${_PYTHON_PREFIX}_ARCH};${_${_PYTHON_PREFIX}_ABIFLAGS};${${_PYTHON_PREFIX}_SOABI};${${_PYTHON_PREFIX}_STDLIB};${${_PYTHON_PREFIX}_STDARCH};${${_PYTHON_PREFIX}_SITELIB};${${_PYTHON_PREFIX}_SITEARCH}" CACHE INTERNAL "${_PYTHON_PREFIX} Properties")
+      else()
+        unset (_${_PYTHON_PREFIX}_INTERPRETER_SIGNATURE CACHE)
+        unset (${_PYTHON_PREFIX}_INTERPRETER_ID)
+      endif()
+    endif()
+  endif()
+
+  if (${_PYTHON_PREFIX}_ARTIFACTS_INTERACTIVE)
+    set (${_PYTHON_PREFIX}_EXECUTABLE "${_${_PYTHON_PREFIX}_EXECUTABLE}" CACHE FILEPATH "${_PYTHON_PREFIX} Interpreter")
+  endif()
+
+  _python_mark_as_internal (_${_PYTHON_PREFIX}_EXECUTABLE
+                            _${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES
+                            _${_PYTHON_PREFIX}_INTERPRETER_SIGNATURE)
+endif()
+
+
+# second step, search for compiler (IronPython)
+if ("Compiler" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS)
+  list (APPEND _${_PYTHON_PREFIX}_CACHED_VARS _${_PYTHON_PREFIX}_COMPILER)
+  if (${_PYTHON_PREFIX}_FIND_REQUIRED_Compiler)
+    list (APPEND _${_PYTHON_PREFIX}_REQUIRED_VARS ${_PYTHON_PREFIX}_COMPILER)
+  endif()
+
+  if (NOT "IronPython" IN_LIST _${_PYTHON_PREFIX}_FIND_IMPLEMENTATIONS)
+    unset (_${_PYTHON_PREFIX}_COMPILER CACHE)
+    unset (_${_PYTHON_PREFIX}_COMPILER_SIGNATURE CACHE)
+  elseif (DEFINED ${_PYTHON_PREFIX}_COMPILER
+      AND IS_ABSOLUTE "${${_PYTHON_PREFIX}_COMPILER}")
+    set (_${_PYTHON_PREFIX}_COMPILER "${${_PYTHON_PREFIX}_COMPILER}" CACHE INTERNAL "")
+  elseif (DEFINED _${_PYTHON_PREFIX}_COMPILER)
+    # compute compiler signature and check validity of definition
+    string (MD5 __${_PYTHON_PREFIX}_COMPILER_SIGNATURE "${_${_PYTHON_PREFIX}_SIGNATURE}:${_${_PYTHON_PREFIX}_COMPILER}")
+    if (__${_PYTHON_PREFIX}_COMPILER_SIGNATURE STREQUAL _${_PYTHON_PREFIX}_COMPILER_SIGNATURE)
+      # check version validity
+      if (${_PYTHON_PREFIX}_FIND_VERSION_EXACT)
+        _python_validate_compiler (${${_PYTHON_PREFIX}_FIND_VERSION} EXACT CHECK_EXISTS)
+      else()
+        _python_validate_compiler (${${_PYTHON_PREFIX}_FIND_VERSION} CHECK_EXISTS)
+      endif()
+    else()
+      unset (_${_PYTHON_PREFIX}_COMPILER CACHE)
+      unset (_${_PYTHON_PREFIX}_COMPILER_SIGNATURE CACHE)
+    endif()
+  endif()
+
+  if ("IronPython" IN_LIST _${_PYTHON_PREFIX}_FIND_IMPLEMENTATIONS
+      AND NOT _${_PYTHON_PREFIX}_COMPILER)
+    # IronPython specific artifacts
+    # If IronPython interpreter is found, use its path
+    unset (_${_PYTHON_PREFIX}_IRON_ROOT)
+    if (${_PYTHON_PREFIX}_Interpreter_FOUND AND ${_PYTHON_PREFIX}_INTERPRETER_ID STREQUAL "IronPython")
+      get_filename_component (_${_PYTHON_PREFIX}_IRON_ROOT "${${_PYTHON_PREFIX}_EXECUTABLE}" DIRECTORY)
+    endif()
+
+    if (_${_PYTHON_PREFIX}_FIND_STRATEGY STREQUAL "LOCATION")
+      _python_get_names (_${_PYTHON_PREFIX}_COMPILER_NAMES
+                         IMPLEMENTATIONS IronPython
+                         VERSION ${_${_PYTHON_PREFIX}_FIND_VERSIONS}
+                         COMPILER)
+
+      _python_get_path_suffixes (_${_PYTHON_PREFIX}_PATH_SUFFIXES
+                                 IMPLEMENTATIONS IronPython
+                                 VERSION ${_${_PYTHON_PREFIX}_FIND_VERSIONS}
+                                 COMPILER)
+
+      _python_get_frameworks (_${_PYTHON_PREFIX}_FRAMEWORK_PATHS
+                              IMPLEMENTATIONS IronPython
+                              VERSION ${_${_PYTHON_PREFIX}_FIND_VERSIONS})
+      _python_get_registries (_${_PYTHON_PREFIX}_REGISTRY_PATHS
+                              IMPLEMENTATIONS IronPython
+                              VERSION ${_${_PYTHON_PREFIX}_FIND_VERSIONS})
+
+      while (TRUE)
+        # Apple frameworks handling
+        if (CMAKE_HOST_APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "FIRST")
+          find_program (_${_PYTHON_PREFIX}_COMPILER
+                        NAMES ${_${_PYTHON_PREFIX}_COMPILER_NAMES}
+                        NAMES_PER_DIR
+                        HINTS ${_${_PYTHON_PREFIX}_IRON_ROOT} ${_${_PYTHON_PREFIX}_HINTS}
+                        PATHS ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
+                        PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+                        NO_CMAKE_PATH
+                        NO_CMAKE_ENVIRONMENT_PATH
+                        NO_SYSTEM_ENVIRONMENT_PATH
+                        NO_CMAKE_SYSTEM_PATH)
+          _python_validate_compiler (${${_PYTHON_PREFIX}_FIND_VERSION} ${_${_PYTHON_PREFIX}_FIND_VERSION_EXACT})
+          if (_${_PYTHON_PREFIX}_COMPILER)
+            break()
+          endif()
+        endif()
+        # Windows registry
+        if (CMAKE_HOST_WIN32 AND _${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "FIRST")
+          find_program (_${_PYTHON_PREFIX}_COMPILER
+                        NAMES ${_${_PYTHON_PREFIX}_COMPILER_NAMES}
+                        NAMES_PER_DIR
+                        HINTS ${_${_PYTHON_PREFIX}_IRON_ROOT} ${_${_PYTHON_PREFIX}_HINTS}
+                        PATHS ${_${_PYTHON_PREFIX}_REGISTRY_PATHS}
+                        PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+                        NO_SYSTEM_ENVIRONMENT_PATH
+                        NO_CMAKE_SYSTEM_PATH)
+          _python_validate_compiler (${${_PYTHON_PREFIX}_FIND_VERSION} ${_${_PYTHON_PREFIX}_FIND_VERSION_EXACT})
+          if (_${_PYTHON_PREFIX}_COMPILER)
+            break()
+          endif()
+        endif()
+
+        # try using HINTS
+        find_program (_${_PYTHON_PREFIX}_COMPILER
+                      NAMES ${_${_PYTHON_PREFIX}_COMPILER_NAMES}
+                      NAMES_PER_DIR
+                      HINTS ${_${_PYTHON_PREFIX}_IRON_ROOT} ${_${_PYTHON_PREFIX}_HINTS}
+                      PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+                      NO_SYSTEM_ENVIRONMENT_PATH
+                      NO_CMAKE_SYSTEM_PATH)
+        _python_validate_compiler (${${_PYTHON_PREFIX}_FIND_VERSION} ${_${_PYTHON_PREFIX}_FIND_VERSION_EXACT})
+        if (_${_PYTHON_PREFIX}_COMPILER)
+          break()
+        endif()
+
+        # try using standard paths
+        find_program (_${_PYTHON_PREFIX}_COMPILER
+                      NAMES ${_${_PYTHON_PREFIX}_COMPILER_NAMES}
+                      NAMES_PER_DIR
+                      PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES})
+        _python_validate_compiler (${${_PYTHON_PREFIX}_FIND_VERSION} ${_${_PYTHON_PREFIX}_FIND_VERSION_EXACT})
+        if (_${_PYTHON_PREFIX}_COMPILER)
+          break()
+        endif()
+
+        # Apple frameworks handling
+        if (CMAKE_HOST_APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "LAST")
+          find_program (_${_PYTHON_PREFIX}_COMPILER
+                        NAMES ${_${_PYTHON_PREFIX}_COMPILER_NAMES}
+                        NAMES_PER_DIR
+                        PATHS ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
+                        PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+                        NO_DEFAULT_PATH)
+          _python_validate_compiler (${${_PYTHON_PREFIX}_FIND_VERSION} ${_${_PYTHON_PREFIX}_FIND_VERSION_EXACT})
+          if (_${_PYTHON_PREFIX}_COMPILER)
+            break()
+          endif()
+        endif()
+        # Windows registry
+        if (CMAKE_HOST_WIN32 AND _${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "LAST")
+          find_program (_${_PYTHON_PREFIX}_COMPILER
+                        NAMES ${_${_PYTHON_PREFIX}_COMPILER_NAMES}
+                        NAMES_PER_DIR
+                        PATHS ${_${_PYTHON_PREFIX}_REGISTRY_PATHS}
+                        PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+                        NO_DEFAULT_PATH)
+          if (_${_PYTHON_PREFIX}_COMPILER)
+            break()
+          endif()
+        endif()
+
+        break()
+      endwhile()
+    else()
+      # try using root dir and registry
+      foreach (_${_PYTHON_PREFIX}_VERSION IN LISTS _${_PYTHON_PREFIX}_FIND_VERSIONS)
+        _python_get_names (_${_PYTHON_PREFIX}_COMPILER_NAMES
+                           IMPLEMENTATIONS IronPython
+                           VERSION ${_${_PYTHON_PREFIX}_FIND_VERSIONS}
+                           COMPILER)
+
+        _python_get_path_suffixes (_${_PYTHON_PREFIX}_PATH_SUFFIXES
+                                   IMPLEMENTATIONS IronPython
+                                   VERSION ${_${_PYTHON_PREFIX}_FIND_VERSION}
+                                   COMPILER)
+
+        _python_get_frameworks (_${_PYTHON_PREFIX}_FRAMEWORK_PATHS
+                                IMPLEMENTATIONS IronPython
+                                VERSION ${_${_PYTHON_PREFIX}_VERSION})
+        _python_get_registries (_${_PYTHON_PREFIX}_REGISTRY_PATHS
+                                IMPLEMENTATIONS IronPython
+                                VERSION ${_${_PYTHON_PREFIX}_VERSION})
+
+        # Apple frameworks handling
+        if (CMAKE_HOST_APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "FIRST")
+          find_program (_${_PYTHON_PREFIX}_COMPILER
+                        NAMES ${_${_PYTHON_PREFIX}_COMPILER_NAMES}
+                        NAMES_PER_DIR
+                        HINTS ${_${_PYTHON_PREFIX}_IRON_ROOT} ${_${_PYTHON_PREFIX}_HINTS}
+                        PATHS ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
+                        PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+                        NO_CMAKE_PATH
+                        NO_CMAKE_ENVIRONMENT_PATH
+                        NO_SYSTEM_ENVIRONMENT_PATH
+                        NO_CMAKE_SYSTEM_PATH)
+          _python_validate_compiler (${_${_PYTHON_PREFIX}_VERSION} EXACT)
+          if (_${_PYTHON_PREFIX}_COMPILER)
+            break()
+          endif()
+        endif()
+        # Windows registry
+        if (CMAKE_HOST_WIN32 AND _${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "FIRST")
+          find_program (_${_PYTHON_PREFIX}_COMPILER
+                        NAMES ${_${_PYTHON_PREFIX}_COMPILER_NAMES}
+                        NAMES_PER_DIR
+                        HINTS ${_${_PYTHON_PREFIX}_IRON_ROOT} ${_${_PYTHON_PREFIX}_HINTS}
+                        PATHS ${_${_PYTHON_PREFIX}_REGISTRY_PATHS}
+                        PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+                        NO_SYSTEM_ENVIRONMENT_PATH
+                        NO_CMAKE_SYSTEM_PATH)
+          _python_validate_compiler (${_${_PYTHON_PREFIX}_VERSION} EXACT)
+          if (_${_PYTHON_PREFIX}_COMPILER)
+            break()
+          endif()
+        endif()
+
+        # try using HINTS
+        find_program (_${_PYTHON_PREFIX}_COMPILER
+                      NAMES ${_${_PYTHON_PREFIX}_COMPILER_NAMES}
+                      NAMES_PER_DIR
+                      HINTS ${_${_PYTHON_PREFIX}_IRON_ROOT} ${_${_PYTHON_PREFIX}_HINTS}
+                      PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+                      NO_SYSTEM_ENVIRONMENT_PATH
+                      NO_CMAKE_SYSTEM_PATH)
+        _python_validate_compiler (${_${_PYTHON_PREFIX}_VERSION} EXACT)
+        if (_${_PYTHON_PREFIX}_COMPILER)
+          break()
+        endif()
+
+        # Apple frameworks handling
+        if (CMAKE_HOST_APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "LAST")
+          find_program (_${_PYTHON_PREFIX}_COMPILER
+                        NAMES ${_${_PYTHON_PREFIX}_COMPILER_NAMES}
+                        NAMES_PER_DIR
+                        PATHS ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
+                        PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+                        NO_DEFAULT_PATH)
+          _python_validate_compiler (${_${_PYTHON_PREFIX}_VERSION} EXACT)
+          if (_${_PYTHON_PREFIX}_COMPILER)
+            break()
+          endif()
+        endif()
+        # Windows registry
+        if (CMAKE_HOST_WIN32 AND _${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "LAST")
+          find_program (_${_PYTHON_PREFIX}_COMPILER
+                        NAMES ${_${_PYTHON_PREFIX}_COMPILER_NAMES}
+                        NAMES_PER_DIR
+                        PATHS ${_${_PYTHON_PREFIX}_REGISTRY_PATHS}
+                        PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+                        NO_DEFAULT_PATH)
+          _python_validate_compiler (${_${_PYTHON_PREFIX}_VERSION} EXACT)
+          if (_${_PYTHON_PREFIX}_COMPILER)
+            break()
+          endif()
+        endif()
+      endforeach()
+
+      # no specific version found, re-try in standard paths
+      _python_get_names (_${_PYTHON_PREFIX}_COMPILER_NAMES
+                         IMPLEMENTATIONS IronPython
+                         VERSION ${_${_PYTHON_PREFIX}_FIND_VERSIONS}
+                         COMPILER)
+      _python_get_path_suffixes (_${_PYTHON_PREFIX}_PATH_SUFFIXES
+                                 IMPLEMENTATIONS IronPython
+                                 VERSION ${_${_PYTHON_PREFIX}_FIND_VERSIONS}
+                                 COMPILER)
+      find_program (_${_PYTHON_PREFIX}_COMPILER
+                    NAMES ${_${_PYTHON_PREFIX}_COMPILER_NAMES}
+                    HINTS ${_${_PYTHON_PREFIX}_IRON_ROOT} ${_${_PYTHON_PREFIX}_HINTS}
+                    PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES})
+    endif()
+  endif()
+
+  set (${_PYTHON_PREFIX}_COMPILER "${_${_PYTHON_PREFIX}_COMPILER}")
+
+  if (_${_PYTHON_PREFIX}_COMPILER)
+    # retrieve python environment version from compiler
+    _python_get_launcher (_${_PYTHON_PREFIX}_COMPILER_LAUNCHER COMPILER)
+    set (_${_PYTHON_PREFIX}_VERSION_DIR "${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/PythonCompilerVersion.dir")
+    file (WRITE "${_${_PYTHON_PREFIX}_VERSION_DIR}/version.py" "import sys; sys.stdout.write('.'.join([str(x) for x in sys.version_info[:3]]))\n")
+    execute_process (COMMAND ${_${_PYTHON_PREFIX}_COMPILER_LAUNCHER} "${_${_PYTHON_PREFIX}_COMPILER}"
+                             ${_${_PYTHON_PREFIX}_IRON_PYTHON_COMPILER_ARCH_FLAGS}
+                             /target:exe /embed "${_${_PYTHON_PREFIX}_VERSION_DIR}/version.py"
+                     WORKING_DIRECTORY "${_${_PYTHON_PREFIX}_VERSION_DIR}"
+                     OUTPUT_QUIET
+                     ERROR_QUIET)
+    get_filename_component (_${_PYTHON_PREFIX}_IR_DIR "${_${_PYTHON_PREFIX}_COMPILER}" DIRECTORY)
+    execute_process (COMMAND "${CMAKE_COMMAND}" -E env "MONO_PATH=${_${_PYTHON_PREFIX}_IR_DIR}"
+                             ${${_PYTHON_PREFIX}_DOTNET_LAUNCHER} "${_${_PYTHON_PREFIX}_VERSION_DIR}/version.exe"
+                     WORKING_DIRECTORY "${_${_PYTHON_PREFIX}_VERSION_DIR}"
+                     RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
+                     OUTPUT_VARIABLE _${_PYTHON_PREFIX}_VERSION
+                     ERROR_QUIET)
+    if (NOT _${_PYTHON_PREFIX}_RESULT)
+      set (_${_PYTHON_PREFIX}_COMPILER_USABLE TRUE)
+      string (REGEX MATCHALL "[0-9]+" _${_PYTHON_PREFIX}_VERSIONS "${_${_PYTHON_PREFIX}_VERSION}")
+      list (GET _${_PYTHON_PREFIX}_VERSIONS 0 _${_PYTHON_PREFIX}_VERSION_MAJOR)
+      list (GET _${_PYTHON_PREFIX}_VERSIONS 1 _${_PYTHON_PREFIX}_VERSION_MINOR)
+      list (GET _${_PYTHON_PREFIX}_VERSIONS 2 _${_PYTHON_PREFIX}_VERSION_PATCH)
+
+      if (NOT ${_PYTHON_PREFIX}_Interpreter_FOUND)
+        # set public version information
+        set (${_PYTHON_PREFIX}_VERSION ${_${_PYTHON_PREFIX}_VERSION})
+        set (${_PYTHON_PREFIX}_VERSION_MAJOR ${_${_PYTHON_PREFIX}_VERSION_MAJOR})
+        set (${_PYTHON_PREFIX}_VERSION_MINOR ${_${_PYTHON_PREFIX}_VERSION_MINOR})
+        set (${_PYTHON_PREFIX}_VERSION_PATCH ${_${_PYTHON_PREFIX}_VERSION_PATCH})
+      endif()
+    else()
+      # compiler not usable
+      set (_${_PYTHON_PREFIX}_COMPILER_USABLE FALSE)
+      set (_${_PYTHON_PREFIX}_Compiler_REASON_FAILURE "Cannot run the compiler \"${_${_PYTHON_PREFIX}_COMPILER}\"")
+    endif()
+    file (REMOVE_RECURSE "${_${_PYTHON_PREFIX}_VERSION_DIR}")
+  endif()
+
+  if (_${_PYTHON_PREFIX}_COMPILER AND _${_PYTHON_PREFIX}_COMPILER_USABLE)
+    if (${_PYTHON_PREFIX}_Interpreter_FOUND)
+      # Compiler must be compatible with interpreter
+      if ("${_${_PYTHON_PREFIX}_VERSION_MAJOR}.${_${_PYTHON_PREFIX}_VERSION_MINOR}" VERSION_EQUAL "${${_PYTHON_PREFIX}_VERSION_MAJOR}.${${_PYTHON_PREFIX}_VERSION_MINOR}")
+        set (${_PYTHON_PREFIX}_Compiler_FOUND TRUE)
+      endif()
+    elseif (${_PYTHON_PREFIX}_VERSION_MAJOR VERSION_EQUAL _${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR)
+      set (${_PYTHON_PREFIX}_Compiler_FOUND TRUE)
+      # Use compiler version for future searches to ensure consistency
+      set (_${_PYTHON_PREFIX}_FIND_VERSIONS ${${_PYTHON_PREFIX}_VERSION_MAJOR}.${${_PYTHON_PREFIX}_VERSION_MINOR})
+    endif()
+  endif()
+
+  if (${_PYTHON_PREFIX}_Compiler_FOUND)
+    unset (_${_PYTHON_PREFIX}_Compiler_REASON_FAILURE)
+
+    # compute and save compiler signature
+    string (MD5 __${_PYTHON_PREFIX}_COMPILER_SIGNATURE "${_${_PYTHON_PREFIX}_SIGNATURE}:${_${_PYTHON_PREFIX}_COMPILER}")
+    set (_${_PYTHON_PREFIX}_COMPILER_SIGNATURE "${__${_PYTHON_PREFIX}_COMPILER_SIGNATURE}" CACHE INTERNAL "")
+
+    set (${_PYTHON_PREFIX}_COMPILER_ID IronPython)
+  else()
+    unset (_${_PYTHON_PREFIX}_COMPILER_SIGNATURE CACHE)
+    unset (${_PYTHON_PREFIX}_COMPILER_ID)
+  endif()
+
+  if (${_PYTHON_PREFIX}_ARTIFACTS_INTERACTIVE)
+    set (${_PYTHON_PREFIX}_COMPILER "${_${_PYTHON_PREFIX}_COMPILER}" CACHE FILEPATH "${_PYTHON_PREFIX} Compiler")
+  endif()
+
+  _python_mark_as_internal (_${_PYTHON_PREFIX}_COMPILER
+                            _${_PYTHON_PREFIX}_COMPILER_SIGNATURE)
+endif()
+
+# third step, search for the development artifacts
+if (${_PYTHON_PREFIX}_FIND_REQUIRED_Development.Module)
+  if ("LIBRARY" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_MODULE_ARTIFACTS)
+    list (APPEND _${_PYTHON_PREFIX}_REQUIRED_VARS ${_PYTHON_PREFIX}_LIBRARIES)
+  endif()
+  if ("INCLUDE_DIR" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_MODULE_ARTIFACTS)
+    list (APPEND _${_PYTHON_PREFIX}_REQUIRED_VARS ${_PYTHON_PREFIX}_INCLUDE_DIRS)
+  endif()
+endif()
+if (${_PYTHON_PREFIX}_FIND_REQUIRED_Development.Embed)
+  if ("LIBRARY" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_EMBED_ARTIFACTS)
+    list (APPEND _${_PYTHON_PREFIX}_REQUIRED_VARS ${_PYTHON_PREFIX}_LIBRARIES)
+  endif()
+  if ("INCLUDE_DIR" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_EMBED_ARTIFACTS)
+    list (APPEND _${_PYTHON_PREFIX}_REQUIRED_VARS ${_PYTHON_PREFIX}_INCLUDE_DIRS)
+  endif()
+endif()
+list (REMOVE_DUPLICATES _${_PYTHON_PREFIX}_REQUIRED_VARS)
+## Development environment is not compatible with IronPython interpreter
+if (("Development.Module" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS
+      OR "Development.Embed" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS)
+    AND ((${_PYTHON_PREFIX}_Interpreter_FOUND
+        AND NOT ${_PYTHON_PREFIX}_INTERPRETER_ID STREQUAL "IronPython")
+      OR NOT ${_PYTHON_PREFIX}_Interpreter_FOUND))
+  if (${_PYTHON_PREFIX}_Interpreter_FOUND)
+    # reduce possible implementations to the interpreter one
+    if (${_PYTHON_PREFIX}_INTERPRETER_ID STREQUAL "PyPy")
+      set (_${_PYTHON_PREFIX}_FIND_IMPLEMENTATIONS "PyPy")
+    else()
+      set (_${_PYTHON_PREFIX}_FIND_IMPLEMENTATIONS "CPython")
+    endif()
+  else()
+    list (REMOVE_ITEM _${_PYTHON_PREFIX}_FIND_IMPLEMENTATIONS "IronPython")
+  endif()
+  if ("LIBRARY" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_ARTIFACTS)
+  list (APPEND _${_PYTHON_PREFIX}_CACHED_VARS _${_PYTHON_PREFIX}_LIBRARY_RELEASE
+                                              _${_PYTHON_PREFIX}_RUNTIME_LIBRARY_RELEASE
+                                              _${_PYTHON_PREFIX}_LIBRARY_DEBUG
+                                              _${_PYTHON_PREFIX}_RUNTIME_LIBRARY_DEBUG)
+  endif()
+  if ("INCLUDE_DIR" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_ARTIFACTS)
+    list (APPEND _${_PYTHON_PREFIX}_CACHED_VARS _${_PYTHON_PREFIX}_INCLUDE_DIR)
+  endif()
+
+  _python_check_development_signature (Module)
+  _python_check_development_signature (Embed)
+
+  if (DEFINED ${_PYTHON_PREFIX}_LIBRARY
+      AND IS_ABSOLUTE "${${_PYTHON_PREFIX}_LIBRARY}")
+    set (_${_PYTHON_PREFIX}_LIBRARY_RELEASE "${${_PYTHON_PREFIX}_LIBRARY}" CACHE INTERNAL "")
+    unset (_${_PYTHON_PREFIX}_LIBRARY_DEBUG CACHE)
+    unset (_${_PYTHON_PREFIX}_INCLUDE_DIR CACHE)
+  endif()
+  if (DEFINED ${_PYTHON_PREFIX}_INCLUDE_DIR
+      AND IS_ABSOLUTE "${${_PYTHON_PREFIX}_INCLUDE_DIR}")
+    set (_${_PYTHON_PREFIX}_INCLUDE_DIR "${${_PYTHON_PREFIX}_INCLUDE_DIR}" CACHE INTERNAL "")
+  endif()
+
+  # Support preference of static libs by adjusting CMAKE_FIND_LIBRARY_SUFFIXES
+  unset (_${_PYTHON_PREFIX}_CMAKE_FIND_LIBRARY_SUFFIXES)
+  if (DEFINED ${_PYTHON_PREFIX}_USE_STATIC_LIBS AND NOT WIN32)
+    set(_${_PYTHON_PREFIX}_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
+    if(${_PYTHON_PREFIX}_USE_STATIC_LIBS)
+      set (CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_STATIC_LIBRARY_SUFFIX})
+    else()
+      list (REMOVE_ITEM CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_STATIC_LIBRARY_SUFFIX})
+    endif()
+  endif()
+
+  if (NOT _${_PYTHON_PREFIX}_LIBRARY_RELEASE OR NOT _${_PYTHON_PREFIX}_INCLUDE_DIR)
+    # if python interpreter is found, use it to look-up for artifacts
+    # to ensure consistency between interpreter and development environments.
+    # If not, try to locate a compatible config tool
+    if ((NOT ${_PYTHON_PREFIX}_Interpreter_FOUND OR CMAKE_CROSSCOMPILING)
+        AND "CPython" IN_LIST _${_PYTHON_PREFIX}_FIND_IMPLEMENTATIONS)
+      set (_${_PYTHON_PREFIX}_HINTS "${${_PYTHON_PREFIX}_ROOT_DIR}" ENV ${_PYTHON_PREFIX}_ROOT_DIR)
+      unset (_${_PYTHON_PREFIX}_VIRTUALENV_PATHS)
+      if (_${_PYTHON_PREFIX}_FIND_VIRTUALENV MATCHES "^(FIRST|ONLY)$")
+        set (_${_PYTHON_PREFIX}_VIRTUALENV_PATHS ENV VIRTUAL_ENV ENV CONDA_PREFIX)
+      endif()
+
+      if (_${_PYTHON_PREFIX}_FIND_STRATEGY STREQUAL "LOCATION")
+        _python_get_names (_${_PYTHON_PREFIX}_CONFIG_NAMES VERSION ${_${_PYTHON_PREFIX}_FIND_VERSIONS} POSIX CONFIG)
+          # Framework Paths
+        _python_get_frameworks (_${_PYTHON_PREFIX}_FRAMEWORK_PATHS VERSION ${_${_PYTHON_PREFIX}_FIND_VERSIONS})
+
+        # Apple frameworks handling
+        if (CMAKE_HOST_APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "FIRST")
+          find_program (_${_PYTHON_PREFIX}_CONFIG
+                        NAMES ${_${_PYTHON_PREFIX}_CONFIG_NAMES}
+                        NAMES_PER_DIR
+                        HINTS ${_${_PYTHON_PREFIX}_HINTS}
+                        PATHS ${_${_PYTHON_PREFIX}_VIRTUALENV_PATHS}
+                              ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
+                        PATH_SUFFIXES bin
+                        NO_CMAKE_PATH
+                        NO_CMAKE_ENVIRONMENT_PATH
+                        NO_SYSTEM_ENVIRONMENT_PATH
+                        NO_CMAKE_SYSTEM_PATH)
+        endif()
+
+        find_program (_${_PYTHON_PREFIX}_CONFIG
+                      NAMES ${_${_PYTHON_PREFIX}_CONFIG_NAMES}
+                      NAMES_PER_DIR
+                      HINTS ${_${_PYTHON_PREFIX}_HINTS}
+                      PATHS ${_${_PYTHON_PREFIX}_VIRTUALENV_PATHS}
+                      PATH_SUFFIXES bin)
+
+        # Apple frameworks handling
+        if (CMAKE_HOST_APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "LAST")
+          find_program (_${_PYTHON_PREFIX}_CONFIG
+                        NAMES ${_${_PYTHON_PREFIX}_CONFIG_NAMES}
+                        NAMES_PER_DIR
+                        PATHS ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
+                        PATH_SUFFIXES bin
+                        NO_DEFAULT_PATH)
+        endif()
+
+        if (_${_PYTHON_PREFIX}_CONFIG)
+          execute_process (COMMAND "${_${_PYTHON_PREFIX}_CONFIG}" --help
+                           RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
+                           OUTPUT_VARIABLE __${_PYTHON_PREFIX}_HELP
+                           ERROR_QUIET
+                           OUTPUT_STRIP_TRAILING_WHITESPACE)
+          if (_${_PYTHON_PREFIX}_RESULT)
+            # assume config tool is not usable
+            unset (_${_PYTHON_PREFIX}_CONFIG CACHE)
+          endif()
+        endif()
+
+        if (_${_PYTHON_PREFIX}_CONFIG)
+          execute_process (COMMAND "${_${_PYTHON_PREFIX}_CONFIG}" --abiflags
+                           RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
+                           OUTPUT_VARIABLE __${_PYTHON_PREFIX}_ABIFLAGS
+                           ERROR_QUIET
+                           OUTPUT_STRIP_TRAILING_WHITESPACE)
+          if (_${_PYTHON_PREFIX}_RESULT)
+            # assume ABI is not supported
+            set (__${_PYTHON_PREFIX}_ABIFLAGS "")
+          endif()
+          if (DEFINED _${_PYTHON_PREFIX}_FIND_ABI AND NOT __${_PYTHON_PREFIX}_ABIFLAGS IN_LIST _${_PYTHON_PREFIX}_ABIFLAGS)
+            # Wrong ABI
+            unset (_${_PYTHON_PREFIX}_CONFIG CACHE)
+          endif()
+        endif()
+
+        if (_${_PYTHON_PREFIX}_CONFIG AND DEFINED CMAKE_LIBRARY_ARCHITECTURE)
+          # check that config tool match library architecture
+          execute_process (COMMAND "${_${_PYTHON_PREFIX}_CONFIG}" --configdir
+                           RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
+                           OUTPUT_VARIABLE _${_PYTHON_PREFIX}_CONFIGDIR
+                           ERROR_QUIET
+                           OUTPUT_STRIP_TRAILING_WHITESPACE)
+          if (_${_PYTHON_PREFIX}_RESULT)
+            unset (_${_PYTHON_PREFIX}_CONFIG CACHE)
+          else()
+            string(FIND "${_${_PYTHON_PREFIX}_CONFIGDIR}" "${CMAKE_LIBRARY_ARCHITECTURE}" _${_PYTHON_PREFIX}_RESULT)
+            if (_${_PYTHON_PREFIX}_RESULT EQUAL -1)
+              unset (_${_PYTHON_PREFIX}_CONFIG CACHE)
+            endif()
+          endif()
+        endif()
+      else()
+        foreach (_${_PYTHON_PREFIX}_VERSION IN LISTS _${_PYTHON_PREFIX}_FIND_VERSIONS)
+          # try to use pythonX.Y-config tool
+          _python_get_names (_${_PYTHON_PREFIX}_CONFIG_NAMES VERSION ${_${_PYTHON_PREFIX}_VERSION} POSIX CONFIG)
+
+          # Framework Paths
+          _python_get_frameworks (_${_PYTHON_PREFIX}_FRAMEWORK_PATHS VERSION ${_${_PYTHON_PREFIX}_VERSION})
+
+          # Apple frameworks handling
+          if (CMAKE_HOST_APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "FIRST")
+            find_program (_${_PYTHON_PREFIX}_CONFIG
+                          NAMES ${_${_PYTHON_PREFIX}_CONFIG_NAMES}
+                          NAMES_PER_DIR
+                          HINTS ${_${_PYTHON_PREFIX}_HINTS}
+                          PATHS ${_${_PYTHON_PREFIX}_VIRTUALENV_PATHS}
+                                ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
+                          PATH_SUFFIXES bin
+                          NO_CMAKE_PATH
+                          NO_CMAKE_ENVIRONMENT_PATH
+                          NO_SYSTEM_ENVIRONMENT_PATH
+                          NO_CMAKE_SYSTEM_PATH)
+          endif()
+
+          find_program (_${_PYTHON_PREFIX}_CONFIG
+                        NAMES ${_${_PYTHON_PREFIX}_CONFIG_NAMES}
+                        NAMES_PER_DIR
+                        HINTS ${_${_PYTHON_PREFIX}_HINTS}
+                        PATHS ${_${_PYTHON_PREFIX}_VIRTUALENV_PATHS}
+                        PATH_SUFFIXES bin)
+
+          # Apple frameworks handling
+          if (CMAKE_HOST_APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "LAST")
+            find_program (_${_PYTHON_PREFIX}_CONFIG
+                          NAMES ${_${_PYTHON_PREFIX}_CONFIG_NAMES}
+                          NAMES_PER_DIR
+                          PATHS ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
+                          PATH_SUFFIXES bin
+                          NO_DEFAULT_PATH)
+          endif()
+
+          unset (_${_PYTHON_PREFIX}_CONFIG_NAMES)
+
+          if (_${_PYTHON_PREFIX}_CONFIG)
+            execute_process (COMMAND "${_${_PYTHON_PREFIX}_CONFIG}" --help
+                             RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
+                             OUTPUT_VARIABLE __${_PYTHON_PREFIX}_HELP
+                             ERROR_QUIET
+                             OUTPUT_STRIP_TRAILING_WHITESPACE)
+            if (_${_PYTHON_PREFIX}_RESULT)
+              # assume config tool is not usable
+              unset (_${_PYTHON_PREFIX}_CONFIG CACHE)
+            endif()
+          endif()
+
+          if (NOT _${_PYTHON_PREFIX}_CONFIG)
+            continue()
+          endif()
+
+          execute_process (COMMAND "${_${_PYTHON_PREFIX}_CONFIG}" --abiflags
+                           RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
+                           OUTPUT_VARIABLE __${_PYTHON_PREFIX}_ABIFLAGS
+                           ERROR_QUIET
+                           OUTPUT_STRIP_TRAILING_WHITESPACE)
+          if (_${_PYTHON_PREFIX}_RESULT)
+            # assume ABI is not supported
+            set (__${_PYTHON_PREFIX}_ABIFLAGS "")
+          endif()
+          if (DEFINED _${_PYTHON_PREFIX}_FIND_ABI AND NOT __${_PYTHON_PREFIX}_ABIFLAGS IN_LIST _${_PYTHON_PREFIX}_ABIFLAGS)
+            # Wrong ABI
+            unset (_${_PYTHON_PREFIX}_CONFIG CACHE)
+            continue()
+          endif()
+
+          if (_${_PYTHON_PREFIX}_CONFIG AND DEFINED CMAKE_LIBRARY_ARCHITECTURE)
+            # check that config tool match library architecture
+            execute_process (COMMAND "${_${_PYTHON_PREFIX}_CONFIG}" --configdir
+                             RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
+                             OUTPUT_VARIABLE _${_PYTHON_PREFIX}_CONFIGDIR
+                             ERROR_QUIET
+                             OUTPUT_STRIP_TRAILING_WHITESPACE)
+            if (_${_PYTHON_PREFIX}_RESULT)
+              unset (_${_PYTHON_PREFIX}_CONFIG CACHE)
+              continue()
+            endif()
+            string (FIND "${_${_PYTHON_PREFIX}_CONFIGDIR}" "${CMAKE_LIBRARY_ARCHITECTURE}" _${_PYTHON_PREFIX}_RESULT)
+            if (_${_PYTHON_PREFIX}_RESULT EQUAL -1)
+              unset (_${_PYTHON_PREFIX}_CONFIG CACHE)
+              continue()
+            endif()
+          endif()
+
+          if (_${_PYTHON_PREFIX}_CONFIG)
+            break()
+          endif()
+        endforeach()
+      endif()
+    endif()
+  endif()
+
+  if ("LIBRARY" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_ARTIFACTS)
+    if (NOT _${_PYTHON_PREFIX}_LIBRARY_RELEASE)
+      if ((${_PYTHON_PREFIX}_Interpreter_FOUND AND NOT CMAKE_CROSSCOMPILING) OR _${_PYTHON_PREFIX}_CONFIG)
+        # retrieve root install directory
+        _python_get_config_var (_${_PYTHON_PREFIX}_PREFIX PREFIX)
+
+        # enforce current ABI
+        _python_get_config_var (_${_PYTHON_PREFIX}_ABIFLAGS ABIFLAGS)
+
+        set (_${_PYTHON_PREFIX}_HINTS "${_${_PYTHON_PREFIX}_PREFIX}")
+
+        # retrieve library
+        ## compute some paths and artifact names
+        if (_${_PYTHON_PREFIX}_CONFIG)
+          string (REGEX REPLACE "^.+python([0-9.]+)[a-z]*-config" "\\1" _${_PYTHON_PREFIX}_VERSION "${_${_PYTHON_PREFIX}_CONFIG}")
+        else()
+          set (_${_PYTHON_PREFIX}_VERSION "${${_PYTHON_PREFIX}_VERSION_MAJOR}.${${_PYTHON_PREFIX}_VERSION_MINOR}")
+        endif()
+        _python_get_path_suffixes (_${_PYTHON_PREFIX}_PATH_SUFFIXES VERSION ${_${_PYTHON_PREFIX}_VERSION} LIBRARY)
+        _python_get_names (_${_PYTHON_PREFIX}_LIB_NAMES VERSION ${_${_PYTHON_PREFIX}_VERSION} WIN32 POSIX LIBRARY)
+
+        _python_get_config_var (_${_PYTHON_PREFIX}_CONFIGDIR CONFIGDIR)
+        list (APPEND _${_PYTHON_PREFIX}_HINTS "${_${_PYTHON_PREFIX}_CONFIGDIR}")
+
+        list (APPEND _${_PYTHON_PREFIX}_HINTS "${${_PYTHON_PREFIX}_ROOT_DIR}" ENV ${_PYTHON_PREFIX}_ROOT_DIR)
+
+        find_library (_${_PYTHON_PREFIX}_LIBRARY_RELEASE
+                      NAMES ${_${_PYTHON_PREFIX}_LIB_NAMES}
+                      NAMES_PER_DIR
+                      HINTS ${_${_PYTHON_PREFIX}_HINTS}
+                      PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+                      NO_SYSTEM_ENVIRONMENT_PATH
+                      NO_CMAKE_SYSTEM_PATH)
+      endif()
+
+      # Rely on HINTS and standard paths if interpreter or config tool failed to locate artifacts
+      if (NOT _${_PYTHON_PREFIX}_LIBRARY_RELEASE)
+        set (_${_PYTHON_PREFIX}_HINTS "${${_PYTHON_PREFIX}_ROOT_DIR}" ENV ${_PYTHON_PREFIX}_ROOT_DIR)
+
+        unset (_${_PYTHON_PREFIX}_VIRTUALENV_PATHS)
+        if (_${_PYTHON_PREFIX}_FIND_VIRTUALENV MATCHES "^(FIRST|ONLY)$")
+          set (_${_PYTHON_PREFIX}_VIRTUALENV_PATHS ENV VIRTUAL_ENV ENV CONDA_PREFIX)
+        endif()
+
+        if (_${_PYTHON_PREFIX}_FIND_STRATEGY STREQUAL "LOCATION")
+          # library names
+          _python_get_names (_${_PYTHON_PREFIX}_LIB_NAMES VERSION ${_${_PYTHON_PREFIX}_FIND_VERSIONS} WIN32 POSIX LIBRARY)
+          _python_get_names (_${_PYTHON_PREFIX}_LIB_NAMES_DEBUG VERSION ${_${_PYTHON_PREFIX}_FIND_VERSIONS} WIN32 DEBUG)
+          # Paths suffixes
+          _python_get_path_suffixes (_${_PYTHON_PREFIX}_PATH_SUFFIXES VERSION ${_${_PYTHON_PREFIX}_FIND_VERSIONS} LIBRARY)
+
+          # Framework Paths
+          _python_get_frameworks (_${_PYTHON_PREFIX}_FRAMEWORK_PATHS VERSION ${_${_PYTHON_PREFIX}_LIB_FIND_VERSIONS})
+          # Registry Paths
+          _python_get_registries (_${_PYTHON_PREFIX}_REGISTRY_PATHS VERSION ${_${_PYTHON_PREFIX}_FIND_VERSIONS} )
+
+          if (APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "FIRST")
+            find_library (_${_PYTHON_PREFIX}_LIBRARY_RELEASE
+                          NAMES ${_${_PYTHON_PREFIX}_LIB_NAMES}
+                          NAMES_PER_DIR
+                          HINTS ${_${_PYTHON_PREFIX}_HINTS}
+                          PATHS ${_${_PYTHON_PREFIX}_VIRTUALENV_PATHS}
+                                ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
+                          PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+                          NO_CMAKE_PATH
+                          NO_CMAKE_ENVIRONMENT_PATH
+                          NO_SYSTEM_ENVIRONMENT_PATH
+                          NO_CMAKE_SYSTEM_PATH)
+          endif()
+
+          if (WIN32 AND _${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "FIRST")
+            find_library (_${_PYTHON_PREFIX}_LIBRARY_RELEASE
+                          NAMES ${_${_PYTHON_PREFIX}_LIB_NAMES}
+                          NAMES_PER_DIR
+                          HINTS ${_${_PYTHON_PREFIX}_HINTS}
+                          PATHS ${_${_PYTHON_PREFIX}_VIRTUALENV_PATHS}
+                                ${_${_PYTHON_PREFIX}_REGISTRY_PATHS}
+                          PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+                          NO_SYSTEM_ENVIRONMENT_PATH
+                          NO_CMAKE_SYSTEM_PATH)
+          endif()
+
+          # search in HINTS locations
+          find_library (_${_PYTHON_PREFIX}_LIBRARY_RELEASE
+                        NAMES ${_${_PYTHON_PREFIX}_LIB_NAMES}
+                        NAMES_PER_DIR
+                        HINTS ${_${_PYTHON_PREFIX}_HINTS}
+                        PATHS ${_${_PYTHON_PREFIX}_VIRTUALENV_PATHS}
+                        PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+                        NO_SYSTEM_ENVIRONMENT_PATH
+                        NO_CMAKE_SYSTEM_PATH)
+
+          if (APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "LAST")
+            set (__${_PYTHON_PREFIX}_FRAMEWORK_PATHS ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS})
+          else()
+            unset (__${_PYTHON_PREFIX}_FRAMEWORK_PATHS)
+          endif()
+
+          if (WIN32 AND _${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "LAST")
+            set (__${_PYTHON_PREFIX}_REGISTRY_PATHS ${_${_PYTHON_PREFIX}_REGISTRY_PATHS})
+          else()
+            unset (__${_PYTHON_PREFIX}_REGISTRY_PATHS)
+          endif()
+
+          # search in all default paths
+          find_library (_${_PYTHON_PREFIX}_LIBRARY_RELEASE
+                        NAMES ${_${_PYTHON_PREFIX}_LIB_NAMES}
+                        NAMES_PER_DIR
+                        PATHS ${__${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
+                              ${__${_PYTHON_PREFIX}_REGISTRY_PATHS}
+                        PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES})
+        else()
+          foreach (_${_PYTHON_PREFIX}_LIB_VERSION IN LISTS _${_PYTHON_PREFIX}_FIND_VERSIONS)
+            _python_get_names (_${_PYTHON_PREFIX}_LIB_NAMES VERSION ${_${_PYTHON_PREFIX}_LIB_VERSION} WIN32 POSIX LIBRARY)
+            _python_get_names (_${_PYTHON_PREFIX}_LIB_NAMES_DEBUG VERSION ${_${_PYTHON_PREFIX}_LIB_VERSION} WIN32 DEBUG)
+
+            _python_get_frameworks (_${_PYTHON_PREFIX}_FRAMEWORK_PATHS VERSION ${_${_PYTHON_PREFIX}_LIB_VERSION})
+            _python_get_registries (_${_PYTHON_PREFIX}_REGISTRY_PATHS VERSION ${_${_PYTHON_PREFIX}_LIB_VERSION})
+
+            _python_get_path_suffixes (_${_PYTHON_PREFIX}_PATH_SUFFIXES VERSION ${_${_PYTHON_PREFIX}_LIB_VERSION} LIBRARY)
+
+            if (APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "FIRST")
+              find_library (_${_PYTHON_PREFIX}_LIBRARY_RELEASE
+                            NAMES ${_${_PYTHON_PREFIX}_LIB_NAMES}
+                            NAMES_PER_DIR
+                            HINTS ${_${_PYTHON_PREFIX}_HINTS}
+                            PATHS ${_${_PYTHON_PREFIX}_VIRTUALENV_PATHS}
+                                  ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
+                            PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+                            NO_CMAKE_PATH
+                            NO_CMAKE_ENVIRONMENT_PATH
+                            NO_SYSTEM_ENVIRONMENT_PATH
+                            NO_CMAKE_SYSTEM_PATH)
+            endif()
+
+            if (WIN32 AND _${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "FIRST")
+              find_library (_${_PYTHON_PREFIX}_LIBRARY_RELEASE
+                            NAMES ${_${_PYTHON_PREFIX}_LIB_NAMES}
+                            NAMES_PER_DIR
+                            HINTS ${_${_PYTHON_PREFIX}_HINTS}
+                            PATHS ${_${_PYTHON_PREFIX}_VIRTUALENV_PATHS}
+                                  ${_${_PYTHON_PREFIX}_REGISTRY_PATHS}
+                            PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+                            NO_SYSTEM_ENVIRONMENT_PATH
+                            NO_CMAKE_SYSTEM_PATH)
+            endif()
+
+            # search in HINTS locations
+            find_library (_${_PYTHON_PREFIX}_LIBRARY_RELEASE
+                          NAMES ${_${_PYTHON_PREFIX}_LIB_NAMES}
+                          NAMES_PER_DIR
+                          HINTS ${_${_PYTHON_PREFIX}_HINTS}
+                          PATHS ${_${_PYTHON_PREFIX}_VIRTUALENV_PATHS}
+                          PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+                          NO_SYSTEM_ENVIRONMENT_PATH
+                          NO_CMAKE_SYSTEM_PATH)
+
+            if (APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "LAST")
+              set (__${_PYTHON_PREFIX}_FRAMEWORK_PATHS ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS})
+            else()
+              unset (__${_PYTHON_PREFIX}_FRAMEWORK_PATHS)
+            endif()
+
+            if (WIN32 AND _${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "LAST")
+              set (__${_PYTHON_PREFIX}_REGISTRY_PATHS ${_${_PYTHON_PREFIX}_REGISTRY_PATHS})
+            else()
+              unset (__${_PYTHON_PREFIX}_REGISTRY_PATHS)
+            endif()
+
+            # search in all default paths
+            find_library (_${_PYTHON_PREFIX}_LIBRARY_RELEASE
+                          NAMES ${_${_PYTHON_PREFIX}_LIB_NAMES}
+                          NAMES_PER_DIR
+                          PATHS ${__${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
+                                ${__${_PYTHON_PREFIX}_REGISTRY_PATHS}
+                          PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES})
+
+            if (_${_PYTHON_PREFIX}_LIBRARY_RELEASE)
+              break()
+            endif()
+          endforeach()
+        endif()
+      endif()
+    endif()
+
+    # finalize library version information
+    _python_get_version (LIBRARY PREFIX _${_PYTHON_PREFIX}_)
+    if (_${_PYTHON_PREFIX}_VERSION EQUAL "${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR}")
+      # not able to extract full version from library name
+      if (${_PYTHON_PREFIX}_Interpreter_FOUND)
+        # update from interpreter
+        set (_${_PYTHON_PREFIX}_VERSION ${${_PYTHON_PREFIX}_VERSION})
+        set (_${_PYTHON_PREFIX}_VERSION_MAJOR ${${_PYTHON_PREFIX}_VERSION_MAJOR})
+        set (_${_PYTHON_PREFIX}_VERSION_MINOR ${${_PYTHON_PREFIX}_VERSION_MINOR})
+        set (_${_PYTHON_PREFIX}_VERSION_PATCH ${${_PYTHON_PREFIX}_VERSION_PATCH})
+      endif()
+    endif()
+
+    set (${_PYTHON_PREFIX}_LIBRARY_RELEASE "${_${_PYTHON_PREFIX}_LIBRARY_RELEASE}")
+
+    if (_${_PYTHON_PREFIX}_LIBRARY_RELEASE AND NOT EXISTS "${_${_PYTHON_PREFIX}_LIBRARY_RELEASE}")
+      set (_${_PYTHON_PREFIX}_Development_REASON_FAILURE "Cannot find the library \"${_${_PYTHON_PREFIX}_LIBRARY_RELEASE}\"")
+      set_property (CACHE _${_PYTHON_PREFIX}_LIBRARY_RELEASE PROPERTY VALUE "${_PYTHON_PREFIX}_LIBRARY_RELEASE-NOTFOUND")
+    endif()
+
+    set (_${_PYTHON_PREFIX}_HINTS "${${_PYTHON_PREFIX}_ROOT_DIR}" ENV ${_PYTHON_PREFIX}_ROOT_DIR)
+
+    if (WIN32 AND _${_PYTHON_PREFIX}_LIBRARY_RELEASE)
+      # search for debug library
+      # use release library location as a hint
+      _python_get_names (_${_PYTHON_PREFIX}_LIB_NAMES_DEBUG VERSION ${_${_PYTHON_PREFIX}_VERSION} WIN32 DEBUG)
+      get_filename_component (_${_PYTHON_PREFIX}_PATH "${_${_PYTHON_PREFIX}_LIBRARY_RELEASE}" DIRECTORY)
+      find_library (_${_PYTHON_PREFIX}_LIBRARY_DEBUG
+                    NAMES ${_${_PYTHON_PREFIX}_LIB_NAMES_DEBUG}
+                    NAMES_PER_DIR
+                    HINTS "${_${_PYTHON_PREFIX}_PATH}" ${_${_PYTHON_PREFIX}_HINTS}
+                    NO_DEFAULT_PATH)
+      # second try including CMAKE variables to catch-up non conventional layouts
+      find_library (_${_PYTHON_PREFIX}_LIBRARY_DEBUG
+                    NAMES ${_${_PYTHON_PREFIX}_LIB_NAMES_DEBUG}
+                    NAMES_PER_DIR
+                    NO_SYSTEM_ENVIRONMENT_PATH
+                    NO_CMAKE_SYSTEM_PATH)
+    endif()
+
+    # retrieve runtime libraries
+    if (_${_PYTHON_PREFIX}_LIBRARY_RELEASE)
+      _python_get_names (_${_PYTHON_PREFIX}_LIB_NAMES VERSION ${_${_PYTHON_PREFIX}_VERSION} WIN32 POSIX LIBRARY)
+      get_filename_component (_${_PYTHON_PREFIX}_PATH "${_${_PYTHON_PREFIX}_LIBRARY_RELEASE}" DIRECTORY)
+      get_filename_component (_${_PYTHON_PREFIX}_PATH2 "${_${_PYTHON_PREFIX}_PATH}" DIRECTORY)
+      _python_find_runtime_library (_${_PYTHON_PREFIX}_RUNTIME_LIBRARY_RELEASE
+                                    NAMES ${_${_PYTHON_PREFIX}_LIB_NAMES}
+                                    NAMES_PER_DIR
+                                    HINTS "${_${_PYTHON_PREFIX}_PATH}"
+                                          "${_${_PYTHON_PREFIX}_PATH2}" ${_${_PYTHON_PREFIX}_HINTS}
+                                    PATH_SUFFIXES bin)
+    endif()
+    if (_${_PYTHON_PREFIX}_LIBRARY_DEBUG)
+      _python_get_names (_${_PYTHON_PREFIX}_LIB_NAMES_DEBUG VERSION ${_${_PYTHON_PREFIX}_VERSION} WIN32 DEBUG)
+      get_filename_component (_${_PYTHON_PREFIX}_PATH "${_${_PYTHON_PREFIX}_LIBRARY_DEBUG}" DIRECTORY)
+      get_filename_component (_${_PYTHON_PREFIX}_PATH2 "${_${_PYTHON_PREFIX}_PATH}" DIRECTORY)
+      _python_find_runtime_library (_${_PYTHON_PREFIX}_RUNTIME_LIBRARY_DEBUG
+                                    NAMES ${_${_PYTHON_PREFIX}_LIB_NAMES_DEBUG}
+                                    NAMES_PER_DIR
+                                    HINTS "${_${_PYTHON_PREFIX}_PATH}"
+                                          "${_${_PYTHON_PREFIX}_PATH2}" ${_${_PYTHON_PREFIX}_HINTS}
+                                    PATH_SUFFIXES bin)
+    endif()
+  endif()
+
+  if ("INCLUDE_DIR" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_ARTIFACTS)
+    while (NOT _${_PYTHON_PREFIX}_INCLUDE_DIR)
+      if ("LIBRARY" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_ARTIFACTS
+          AND NOT _${_PYTHON_PREFIX}_LIBRARY_RELEASE)
+        # Don't search for include dir if no library was founded
+        break()
+      endif()
+
+      if ((${_PYTHON_PREFIX}_Interpreter_FOUND AND NOT CMAKE_CROSSCOMPILING) OR _${_PYTHON_PREFIX}_CONFIG)
+        _python_get_config_var (_${_PYTHON_PREFIX}_INCLUDE_DIRS INCLUDES)
+
+        find_path (_${_PYTHON_PREFIX}_INCLUDE_DIR
+                   NAMES ${_${_PYTHON_PREFIX}_INCLUDE_NAMES}
+                   HINTS ${_${_PYTHON_PREFIX}_INCLUDE_DIRS}
+                   NO_SYSTEM_ENVIRONMENT_PATH
+                   NO_CMAKE_SYSTEM_PATH)
+      endif()
+
+      # Rely on HINTS and standard paths if interpreter or config tool failed to locate artifacts
+      if (NOT _${_PYTHON_PREFIX}_INCLUDE_DIR)
+        unset (_${_PYTHON_PREFIX}_VIRTUALENV_PATHS)
+        if (_${_PYTHON_PREFIX}_FIND_VIRTUALENV MATCHES "^(FIRST|ONLY)$")
+          set (_${_PYTHON_PREFIX}_VIRTUALENV_PATHS ENV VIRTUAL_ENV ENV CONDA_PREFIX)
+        endif()
+        unset (_${_PYTHON_PREFIX}_INCLUDE_HINTS)
+
+        if (_${_PYTHON_PREFIX}_LIBRARY_RELEASE)
+          # Use the library's install prefix as a hint
+          if (_${_PYTHON_PREFIX}_LIBRARY_RELEASE MATCHES "^(.+/Frameworks/Python.framework/Versions/[0-9.]+)")
+            list (APPEND _${_PYTHON_PREFIX}_INCLUDE_HINTS "${CMAKE_MATCH_1}")
+          elseif (_${_PYTHON_PREFIX}_LIBRARY_RELEASE MATCHES "^(.+)/lib(64|32)?/python[0-9.]+/config")
+            list (APPEND _${_PYTHON_PREFIX}_INCLUDE_HINTS "${CMAKE_MATCH_1}")
+          elseif (DEFINED CMAKE_LIBRARY_ARCHITECTURE AND ${_${_PYTHON_PREFIX}_LIBRARY_RELEASE} MATCHES "^(.+)/lib/${CMAKE_LIBRARY_ARCHITECTURE}")
+            list (APPEND _${_PYTHON_PREFIX}_INCLUDE_HINTS "${CMAKE_MATCH_1}")
+          else()
+            # assume library is in a directory under root
+            get_filename_component (_${_PYTHON_PREFIX}_PREFIX "${_${_PYTHON_PREFIX}_LIBRARY_RELEASE}" DIRECTORY)
+            get_filename_component (_${_PYTHON_PREFIX}_PREFIX "${_${_PYTHON_PREFIX}_PREFIX}" DIRECTORY)
+            list (APPEND _${_PYTHON_PREFIX}_INCLUDE_HINTS "${_${_PYTHON_PREFIX}_PREFIX}")
+          endif()
+        endif()
+
+        _python_get_frameworks (_${_PYTHON_PREFIX}_FRAMEWORK_PATHS VERSION ${_${_PYTHON_PREFIX}_VERSION})
+        _python_get_registries (_${_PYTHON_PREFIX}_REGISTRY_PATHS VERSION ${_${_PYTHON_PREFIX}_VERSION})
+        _python_get_path_suffixes (_${_PYTHON_PREFIX}_PATH_SUFFIXES VERSION ${_${_PYTHON_PREFIX}_VERSION} INCLUDE)
+
+        if (APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "FIRST")
+          find_path (_${_PYTHON_PREFIX}_INCLUDE_DIR
+                     NAMES ${_${_PYTHON_PREFIX}_INCLUDE_NAMES}
+                     HINTS ${_${_PYTHON_PREFIX}_INCLUDE_HINTS} ${_${_PYTHON_PREFIX}_HINTS}
+                     PATHS ${_${_PYTHON_PREFIX}_VIRTUALENV_PATHS}
+                           ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
+                     PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+                     NO_CMAKE_PATH
+                     NO_CMAKE_ENVIRONMENT_PATH
+                     NO_SYSTEM_ENVIRONMENT_PATH
+                     NO_CMAKE_SYSTEM_PATH)
+        endif()
+
+        if (WIN32 AND _${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "FIRST")
+          find_path (_${_PYTHON_PREFIX}_INCLUDE_DIR
+                     NAMES ${_${_PYTHON_PREFIX}_INCLUDE_NAMES}
+                     HINTS ${_${_PYTHON_PREFIX}_INCLUDE_HINTS} ${_${_PYTHON_PREFIX}_HINTS}
+                     PATHS ${_${_PYTHON_PREFIX}_VIRTUALENV_PATHS}
+                           ${_${_PYTHON_PREFIX}_REGISTRY_PATHS}
+                     PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+                     NO_SYSTEM_ENVIRONMENT_PATH
+                     NO_CMAKE_SYSTEM_PATH)
+        endif()
+
+        if (APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "LAST")
+          set (__${_PYTHON_PREFIX}_FRAMEWORK_PATHS ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS})
+        else()
+          unset (__${_PYTHON_PREFIX}_FRAMEWORK_PATHS)
+        endif()
+
+        if (WIN32 AND _${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "LAST")
+          set (__${_PYTHON_PREFIX}_REGISTRY_PATHS ${_${_PYTHON_PREFIX}_REGISTRY_PATHS})
+        else()
+          unset (__${_PYTHON_PREFIX}_REGISTRY_PATHS)
+        endif()
+
+        find_path (_${_PYTHON_PREFIX}_INCLUDE_DIR
+                   NAMES ${_${_PYTHON_PREFIX}_INCLUDE_NAMES}
+                   HINTS ${_${_PYTHON_PREFIX}_INCLUDE_HINTS} ${_${_PYTHON_PREFIX}_HINTS}
+                   PATHS ${_${_PYTHON_PREFIX}_VIRTUALENV_PATHS}
+                         ${__${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
+                         ${__${_PYTHON_PREFIX}_REGISTRY_PATHS}
+                   PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+                   NO_SYSTEM_ENVIRONMENT_PATH
+                   NO_CMAKE_SYSTEM_PATH)
+      endif()
+
+      # search header file in standard locations
+      find_path (_${_PYTHON_PREFIX}_INCLUDE_DIR
+                 NAMES ${_${_PYTHON_PREFIX}_INCLUDE_NAMES})
+
+      break()
+    endwhile()
+
+    set (${_PYTHON_PREFIX}_INCLUDE_DIRS "${_${_PYTHON_PREFIX}_INCLUDE_DIR}")
+
+    if (_${_PYTHON_PREFIX}_INCLUDE_DIR AND NOT EXISTS "${_${_PYTHON_PREFIX}_INCLUDE_DIR}")
+      set (_${_PYTHON_PREFIX}_Development_REASON_FAILURE "Cannot find the directory \"${_${_PYTHON_PREFIX}_INCLUDE_DIR}\"")
+      set_property (CACHE _${_PYTHON_PREFIX}_INCLUDE_DIR PROPERTY VALUE "${_PYTHON_PREFIX}_INCLUDE_DIR-NOTFOUND")
+    endif()
+
+    if (_${_PYTHON_PREFIX}_INCLUDE_DIR)
+      # retrieve version from header file
+      _python_get_version (INCLUDE PREFIX _${_PYTHON_PREFIX}_INC_)
+
+      if (_${_PYTHON_PREFIX}_LIBRARY_RELEASE)
+        if ("${_${_PYTHON_PREFIX}_INC_VERSION_MAJOR}.${_${_PYTHON_PREFIX}_INC_VERSION_MINOR}"
+            VERSION_EQUAL _${_PYTHON_PREFIX}_VERSION)
+          # update versioning
+          set (_${_PYTHON_PREFIX}_VERSION ${_${_PYTHON_PREFIX}_INC_VERSION})
+          set (_${_PYTHON_PREFIX}_VERSION_PATCH ${_${_PYTHON_PREFIX}_INC_VERSION_PATCH})
+        endif()
+      else()
+        set (_${_PYTHON_PREFIX}_VERSION ${_${_PYTHON_PREFIX}_INC_VERSION})
+        set (_${_PYTHON_PREFIX}_VERSION_MAJOR ${_${_PYTHON_PREFIX}_INC_VERSION_MAJOR})
+        set (_${_PYTHON_PREFIX}_VERSION_MINOR ${_${_PYTHON_PREFIX}_INC_VERSION_MINOR})
+        set (_${_PYTHON_PREFIX}_VERSION_PATCH ${_${_PYTHON_PREFIX}_INC_VERSION_PATCH})
+      endif()
+    endif()
+  endif()
+
+  if (NOT ${_PYTHON_PREFIX}_Interpreter_FOUND AND NOT ${_PYTHON_PREFIX}_Compiler_FOUND)
+    # set public version information
+    set (${_PYTHON_PREFIX}_VERSION ${_${_PYTHON_PREFIX}_VERSION})
+    set (${_PYTHON_PREFIX}_VERSION_MAJOR ${_${_PYTHON_PREFIX}_VERSION_MAJOR})
+    set (${_PYTHON_PREFIX}_VERSION_MINOR ${_${_PYTHON_PREFIX}_VERSION_MINOR})
+    set (${_PYTHON_PREFIX}_VERSION_PATCH ${_${_PYTHON_PREFIX}_VERSION_PATCH})
+  endif()
+
+  # define public variables
+  if ("LIBRARY" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_ARTIFACTS)
+    set (${_PYTHON_PREFIX}_LIBRARY_DEBUG "${_${_PYTHON_PREFIX}_LIBRARY_DEBUG}")
+    _python_select_library_configurations (${_PYTHON_PREFIX})
+
+    set (${_PYTHON_PREFIX}_RUNTIME_LIBRARY_RELEASE "${_${_PYTHON_PREFIX}_RUNTIME_LIBRARY_RELEASE}")
+    set (${_PYTHON_PREFIX}_RUNTIME_LIBRARY_DEBUG "${_${_PYTHON_PREFIX}_RUNTIME_LIBRARY_DEBUG}")
+
+    if (_${_PYTHON_PREFIX}_RUNTIME_LIBRARY_RELEASE)
+      set (${_PYTHON_PREFIX}_RUNTIME_LIBRARY "${_${_PYTHON_PREFIX}_RUNTIME_LIBRARY_RELEASE}")
+    elseif (_${_PYTHON_PREFIX}_RUNTIME_LIBRARY_DEBUG)
+      set (${_PYTHON_PREFIX}_RUNTIME_LIBRARY "${_${_PYTHON_PREFIX}_RUNTIME_LIBRARY_DEBUG}")
+    else()
+      set (${_PYTHON_PREFIX}_RUNTIME_LIBRARY "${_PYTHON_PREFIX}_RUNTIME_LIBRARY-NOTFOUND")
+    endif()
+
+    _python_set_library_dirs (${_PYTHON_PREFIX}_LIBRARY_DIRS
+                              _${_PYTHON_PREFIX}_LIBRARY_RELEASE
+                              _${_PYTHON_PREFIX}_LIBRARY_DEBUG)
+    if (UNIX)
+      if (_${_PYTHON_PREFIX}_LIBRARY_RELEASE MATCHES "${CMAKE_SHARED_LIBRARY_SUFFIX}$")
+        set (${_PYTHON_PREFIX}_RUNTIME_LIBRARY_DIRS ${${_PYTHON_PREFIX}_LIBRARY_DIRS})
+      endif()
+    else()
+      _python_set_library_dirs (${_PYTHON_PREFIX}_RUNTIME_LIBRARY_DIRS
+                                _${_PYTHON_PREFIX}_RUNTIME_LIBRARY_RELEASE
+                                _${_PYTHON_PREFIX}_RUNTIME_LIBRARY_DEBUG)
+    endif()
+  endif()
+
+  if (_${_PYTHON_PREFIX}_LIBRARY_RELEASE OR _${_PYTHON_PREFIX}_INCLUDE_DIR)
+    if (${_PYTHON_PREFIX}_Interpreter_FOUND OR ${_PYTHON_PREFIX}_Compiler_FOUND)
+      # development environment must be compatible with interpreter/compiler
+      if ("${_${_PYTHON_PREFIX}_VERSION_MAJOR}.${_${_PYTHON_PREFIX}_VERSION_MINOR}" VERSION_EQUAL "${${_PYTHON_PREFIX}_VERSION_MAJOR}.${${_PYTHON_PREFIX}_VERSION_MINOR}"
+          AND "${_${_PYTHON_PREFIX}_INC_VERSION_MAJOR}.${_${_PYTHON_PREFIX}_INC_VERSION_MINOR}" VERSION_EQUAL "${_${_PYTHON_PREFIX}_VERSION_MAJOR}.${_${_PYTHON_PREFIX}_VERSION_MINOR}")
+        _python_set_development_module_found (Module)
+        _python_set_development_module_found (Embed)
+      endif()
+    elseif (${_PYTHON_PREFIX}_VERSION_MAJOR VERSION_EQUAL _${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR
+        AND "${_${_PYTHON_PREFIX}_INC_VERSION_MAJOR}.${_${_PYTHON_PREFIX}_INC_VERSION_MINOR}" VERSION_EQUAL "${_${_PYTHON_PREFIX}_VERSION_MAJOR}.${_${_PYTHON_PREFIX}_VERSION_MINOR}")
+      _python_set_development_module_found (Module)
+      _python_set_development_module_found (Embed)
+    endif()
+    if (DEFINED _${_PYTHON_PREFIX}_FIND_ABI AND
+        (NOT _${_PYTHON_PREFIX}_ABI IN_LIST _${_PYTHON_PREFIX}_ABIFLAGS
+          OR NOT _${_PYTHON_PREFIX}_INC_ABI IN_LIST _${_PYTHON_PREFIX}_ABIFLAGS))
+      set (${_PYTHON_PREFIX}_Development.Module_FOUND FALSE)
+      set (${_PYTHON_PREFIX}_Development.Embed_FOUND FALSE)
+    endif()
+  endif()
+
+  if (( ${_PYTHON_PREFIX}_Development.Module_FOUND
+        AND ${_PYTHON_PREFIX}_Development.Embed_FOUND)
+      OR (NOT "Development.Module" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS
+        AND ${_PYTHON_PREFIX}_Development.Embed_FOUND)
+      OR (NOT "Development.Embed" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS
+        AND ${_PYTHON_PREFIX}_Development.Module_FOUND))
+    unset (_${_PYTHON_PREFIX}_Development_REASON_FAILURE)
+  endif()
+
+  if ("Development" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS
+      AND ${_PYTHON_PREFIX}_Development.Module_FOUND
+      AND ${_PYTHON_PREFIX}_Development.Embed_FOUND)
+    set (${_PYTHON_PREFIX}_Development_FOUND TRUE)
+  endif()
+
+  if ((${_PYTHON_PREFIX}_Development.Module_FOUND
+      OR ${_PYTHON_PREFIX}_Development.Embed_FOUND)
+    AND EXISTS "${_${_PYTHON_PREFIX}_INCLUDE_DIR}/PyPy.h")
+  # retrieve PyPy version
+  file (STRINGS "${_${_PYTHON_PREFIX}_INCLUDE_DIR}/patchlevel.h" ${_PYTHON_PREFIX}_PyPy_VERSION
+                REGEX "^#define[ \t]+PYPY_VERSION[ \t]+\"[^\"]+\"")
+  string (REGEX REPLACE "^#define[ \t]+PYPY_VERSION[ \t]+\"([^\"]+)\".*" "\\1"
+                ${_PYTHON_PREFIX}_PyPy_VERSION "${${_PYTHON_PREFIX}_PyPy_VERSION}")
+  endif()
+
+  if (_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR VERSION_GREATER_EQUAL "3"
+      AND NOT DEFINED ${_PYTHON_PREFIX}_SOABI)
+    _python_get_config_var (${_PYTHON_PREFIX}_SOABI SOABI)
+  endif()
+
+  _python_compute_development_signature (Module)
+  _python_compute_development_signature (Embed)
+
+  # Restore the original find library ordering
+  if (DEFINED _${_PYTHON_PREFIX}_CMAKE_FIND_LIBRARY_SUFFIXES)
+    set (CMAKE_FIND_LIBRARY_SUFFIXES ${_${_PYTHON_PREFIX}_CMAKE_FIND_LIBRARY_SUFFIXES})
+  endif()
+
+  if (${_PYTHON_PREFIX}_ARTIFACTS_INTERACTIVE)
+    if ("LIBRARY" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_ARTIFACTS)
+      set (${_PYTHON_PREFIX}_LIBRARY "${_${_PYTHON_PREFIX}_LIBRARY_RELEASE}" CACHE FILEPATH "${_PYTHON_PREFIX} Library")
+    endif()
+    if ("INCLUDE_DIR" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_ARTIFACTS)
+      set (${_PYTHON_PREFIX}_INCLUDE_DIR "${_${_PYTHON_PREFIX}_INCLUDE_DIR}" CACHE FILEPATH "${_PYTHON_PREFIX} Include Directory")
+    endif()
+  endif()
+
+  _python_mark_as_internal (_${_PYTHON_PREFIX}_LIBRARY_RELEASE
+                            _${_PYTHON_PREFIX}_LIBRARY_DEBUG
+                            _${_PYTHON_PREFIX}_RUNTIME_LIBRARY_RELEASE
+                            _${_PYTHON_PREFIX}_RUNTIME_LIBRARY_DEBUG
+                            _${_PYTHON_PREFIX}_INCLUDE_DIR
+                            _${_PYTHON_PREFIX}_CONFIG
+                            _${_PYTHON_PREFIX}_DEVELOPMENT_MODULE_SIGNATURE
+                            _${_PYTHON_PREFIX}_DEVELOPMENT_EMBED_SIGNATURE)
+endif()
+
+if (${_PYTHON_PREFIX}_FIND_REQUIRED_NumPy)
+  list (APPEND _${_PYTHON_PREFIX}_REQUIRED_VARS ${_PYTHON_PREFIX}_NumPy_INCLUDE_DIRS)
+endif()
+if ("NumPy" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS AND ${_PYTHON_PREFIX}_Interpreter_FOUND)
+  list (APPEND _${_PYTHON_PREFIX}_CACHED_VARS _${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR)
+
+  if (DEFINED ${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR
+      AND IS_ABSOLUTE "${${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR}")
+    set (_${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR "${${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR}" CACHE INTERNAL "")
+  elseif (DEFINED _${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR)
+    # compute numpy signature. Depends on interpreter and development signatures
+    string (MD5 __${_PYTHON_PREFIX}_NUMPY_SIGNATURE "${_${_PYTHON_PREFIX}_INTERPRETER_SIGNATURE}:${_${_PYTHON_PREFIX}_DEVELOPMENT_MODULE_SIGNATURE}:${_${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR}")
+    if (NOT __${_PYTHON_PREFIX}_NUMPY_SIGNATURE STREQUAL _${_PYTHON_PREFIX}_NUMPY_SIGNATURE
+        OR NOT EXISTS "${_${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR}")
+      unset (_${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR CACHE)
+      unset (_${_PYTHON_PREFIX}_NUMPY_SIGNATURE CACHE)
+    endif()
+  endif()
+
+  if (NOT _${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR)
+    execute_process(COMMAND ${${_PYTHON_PREFIX}_INTERPRETER_LAUNCHER} "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c
+                            "import sys\ntry: import numpy; sys.stdout.write(numpy.get_include())\nexcept:pass\n"
+                    RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
+                    OUTPUT_VARIABLE _${_PYTHON_PREFIX}_NumPy_PATH
+                    ERROR_QUIET
+                    OUTPUT_STRIP_TRAILING_WHITESPACE)
+
+    if (NOT _${_PYTHON_PREFIX}_RESULT)
+      find_path (_${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR
+                 NAMES "numpy/arrayobject.h" "numpy/numpyconfig.h"
+                 HINTS "${_${_PYTHON_PREFIX}_NumPy_PATH}"
+                 NO_DEFAULT_PATH)
+    endif()
+  endif()
+
+  set (${_PYTHON_PREFIX}_NumPy_INCLUDE_DIRS "${_${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR}")
+
+  if(_${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR AND NOT EXISTS "${_${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR}")
+    set (_${_PYTHON_PREFIX}_NumPy_REASON_FAILURE "Cannot find the directory \"${_${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR}\"")
+    set_property (CACHE _${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR PROPERTY VALUE "${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR-NOTFOUND")
+  endif()
+
+  if (_${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR)
+    execute_process (COMMAND ${${_PYTHON_PREFIX}_INTERPRETER_LAUNCHER} "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c
+                             "import sys\ntry: import numpy; sys.stdout.write(numpy.__version__)\nexcept:pass\n"
+                     RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
+                     OUTPUT_VARIABLE _${_PYTHON_PREFIX}_NumPy_VERSION)
+    if (NOT _${_PYTHON_PREFIX}_RESULT)
+      set (${_PYTHON_PREFIX}_NumPy_VERSION "${_${_PYTHON_PREFIX}_NumPy_VERSION}")
+    else()
+      unset (${_PYTHON_PREFIX}_NumPy_VERSION)
+    endif()
+
+    # final step: set NumPy founded only if Development.Module component is founded as well
+    set(${_PYTHON_PREFIX}_NumPy_FOUND ${${_PYTHON_PREFIX}_Development.Module_FOUND})
+  else()
+    set (${_PYTHON_PREFIX}_NumPy_FOUND FALSE)
+  endif()
+
+  if (${_PYTHON_PREFIX}_NumPy_FOUND)
+    unset (_${_PYTHON_PREFIX}_NumPy_REASON_FAILURE)
+
+    # compute and save numpy signature
+    string (MD5 __${_PYTHON_PREFIX}_NUMPY_SIGNATURE "${_${_PYTHON_PREFIX}_INTERPRETER_SIGNATURE}:${_${_PYTHON_PREFIX}_DEVELOPMENT_MODULE_SIGNATURE}:${${_PYTHON_PREFIX}_NumPyINCLUDE_DIR}")
+    set (_${_PYTHON_PREFIX}_NUMPY_SIGNATURE "${__${_PYTHON_PREFIX}_NUMPY_SIGNATURE}" CACHE INTERNAL "")
+  else()
+    unset (_${_PYTHON_PREFIX}_NUMPY_SIGNATURE CACHE)
+  endif()
+
+  if (${_PYTHON_PREFIX}_ARTIFACTS_INTERACTIVE)
+    set (${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR "${_${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR}" CACHE FILEPATH "${_PYTHON_PREFIX} NumPy Include Directory")
+  endif()
+
+  _python_mark_as_internal (_${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR
+                            _${_PYTHON_PREFIX}_NUMPY_SIGNATURE)
+endif()
+
+# final validation
+if (${_PYTHON_PREFIX}_VERSION_MAJOR AND
+    NOT ${_PYTHON_PREFIX}_VERSION_MAJOR VERSION_EQUAL _${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR)
+  _python_display_failure ("Could NOT find ${_PYTHON_PREFIX}: Found unsuitable major version \"${${_PYTHON_PREFIX}_VERSION_MAJOR}\", but required major version is exact version \"${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR}\"")
+endif()
+
+unset (_${_PYTHON_PREFIX}_REASON_FAILURE)
+foreach (_${_PYTHON_PREFIX}_COMPONENT IN ITEMS Interpreter Compiler Development NumPy)
+  if (_${_PYTHON_PREFIX}_${_${_PYTHON_PREFIX}_COMPONENT}_REASON_FAILURE)
+    string (APPEND _${_PYTHON_PREFIX}_REASON_FAILURE "\n        ${_${_PYTHON_PREFIX}_COMPONENT}: ${_${_PYTHON_PREFIX}_${_${_PYTHON_PREFIX}_COMPONENT}_REASON_FAILURE}")
+    unset (_${_PYTHON_PREFIX}_${_${_PYTHON_PREFIX}_COMPONENT}_REASON_FAILURE)
+  endif()
+endforeach()
+
+include (${CMAKE_CURRENT_LIST_DIR}/../FindPackageHandleStandardArgs.cmake)
+find_package_handle_standard_args (${_PYTHON_PREFIX}
+                                   REQUIRED_VARS ${_${_PYTHON_PREFIX}_REQUIRED_VARS}
+                                   VERSION_VAR ${_PYTHON_PREFIX}_VERSION
+                                   HANDLE_COMPONENTS
+                                   REASON_FAILURE_MESSAGE "${_${_PYTHON_PREFIX}_REASON_FAILURE}")
+
+# Create imported targets and helper functions
+if(_${_PYTHON_PREFIX}_CMAKE_ROLE STREQUAL "PROJECT")
+  if ("Interpreter" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS
+      AND ${_PYTHON_PREFIX}_Interpreter_FOUND
+      AND NOT TARGET ${_PYTHON_PREFIX}::Interpreter)
+    add_executable (${_PYTHON_PREFIX}::Interpreter IMPORTED)
+    set_property (TARGET ${_PYTHON_PREFIX}::Interpreter
+                  PROPERTY IMPORTED_LOCATION "${${_PYTHON_PREFIX}_EXECUTABLE}")
+  endif()
+
+  if ("Compiler" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS
+      AND ${_PYTHON_PREFIX}_Compiler_FOUND
+      AND NOT TARGET ${_PYTHON_PREFIX}::Compiler)
+    add_executable (${_PYTHON_PREFIX}::Compiler IMPORTED)
+    set_property (TARGET ${_PYTHON_PREFIX}::Compiler
+                  PROPERTY IMPORTED_LOCATION "${${_PYTHON_PREFIX}_COMPILER}")
+  endif()
+
+  if (("Development.Module" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS
+        AND ${_PYTHON_PREFIX}_Development.Module_FOUND)
+      OR ("Development.Embed" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS
+        AND ${_PYTHON_PREFIX}_Development.Embed_FOUND))
+
+    macro (__PYTHON_IMPORT_LIBRARY __name)
+      if (${_PYTHON_PREFIX}_LIBRARY_RELEASE MATCHES "${CMAKE_SHARED_LIBRARY_SUFFIX}$"
+          OR ${_PYTHON_PREFIX}_RUNTIME_LIBRARY_RELEASE)
+        set (_${_PYTHON_PREFIX}_LIBRARY_TYPE SHARED)
+      else()
+        set (_${_PYTHON_PREFIX}_LIBRARY_TYPE STATIC)
+      endif()
+
+      if (NOT TARGET ${__name})
+        add_library (${__name} ${_${_PYTHON_PREFIX}_LIBRARY_TYPE} IMPORTED)
+      endif()
+
+      set_property (TARGET ${__name}
+                    PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${${_PYTHON_PREFIX}_INCLUDE_DIRS}")
+
+      if (${_PYTHON_PREFIX}_LIBRARY_RELEASE AND ${_PYTHON_PREFIX}_RUNTIME_LIBRARY_RELEASE)
+        # System manage shared libraries in two parts: import and runtime
+        if (${_PYTHON_PREFIX}_LIBRARY_RELEASE AND ${_PYTHON_PREFIX}_LIBRARY_DEBUG)
+          set_property (TARGET ${__name} PROPERTY IMPORTED_CONFIGURATIONS RELEASE DEBUG)
+          set_target_properties (${__name}
+                                 PROPERTIES IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C"
+                                            IMPORTED_IMPLIB_RELEASE "${${_PYTHON_PREFIX}_LIBRARY_RELEASE}"
+                                            IMPORTED_LOCATION_RELEASE "${${_PYTHON_PREFIX}_RUNTIME_LIBRARY_RELEASE}")
+          set_target_properties (${__name}
+                                 PROPERTIES IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "C"
+                                            IMPORTED_IMPLIB_DEBUG "${${_PYTHON_PREFIX}_LIBRARY_DEBUG}"
+                                            IMPORTED_LOCATION_DEBUG "${${_PYTHON_PREFIX}_RUNTIME_LIBRARY_DEBUG}")
+        else()
+          set_target_properties (${__name}
+                                 PROPERTIES IMPORTED_LINK_INTERFACE_LANGUAGES "C"
+                                            IMPORTED_IMPLIB "${${_PYTHON_PREFIX}_LIBRARIES}"
+                                            IMPORTED_LOCATION "${${_PYTHON_PREFIX}_RUNTIME_LIBRARY_RELEASE}")
+        endif()
+      else()
+        if (${_PYTHON_PREFIX}_LIBRARY_RELEASE AND ${_PYTHON_PREFIX}_LIBRARY_DEBUG)
+          set_property (TARGET ${__name} PROPERTY IMPORTED_CONFIGURATIONS RELEASE DEBUG)
+          set_target_properties (${__name}
+                                 PROPERTIES IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C"
+                                            IMPORTED_LOCATION_RELEASE "${${_PYTHON_PREFIX}_LIBRARY_RELEASE}")
+          set_target_properties (${__name}
+                                 PROPERTIES IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "C"
+                                            IMPORTED_LOCATION_DEBUG "${${_PYTHON_PREFIX}_LIBRARY_DEBUG}")
+        else()
+          set_target_properties (${__name}
+                                 PROPERTIES IMPORTED_LINK_INTERFACE_LANGUAGES "C"
+                                            IMPORTED_LOCATION "${${_PYTHON_PREFIX}_LIBRARY_RELEASE}")
+        endif()
+      endif()
+
+      if (_${_PYTHON_PREFIX}_LIBRARY_TYPE STREQUAL "STATIC")
+        # extend link information with dependent libraries
+        _python_get_config_var (_${_PYTHON_PREFIX}_LINK_LIBRARIES LIBS)
+        if (_${_PYTHON_PREFIX}_LINK_LIBRARIES)
+          set_property (TARGET ${__name}
+                        PROPERTY INTERFACE_LINK_LIBRARIES ${_${_PYTHON_PREFIX}_LINK_LIBRARIES})
+        endif()
+      endif()
+    endmacro()
+
+    if (${_PYTHON_PREFIX}_Development.Embed_FOUND)
+      __python_import_library (${_PYTHON_PREFIX}::Python)
+    endif()
+
+    if (${_PYTHON_PREFIX}_Development.Module_FOUND)
+      if ("LIBRARY" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_MODULE_ARTIFACTS)
+        # On Windows/CYGWIN/MSYS, Python::Module is the same as Python::Python
+        # but ALIAS cannot be used because the imported library is not GLOBAL.
+        __python_import_library (${_PYTHON_PREFIX}::Module)
+      else()
+        if (NOT TARGET ${_PYTHON_PREFIX}::Module)
+          add_library (${_PYTHON_PREFIX}::Module INTERFACE IMPORTED)
+        endif()
+        set_property (TARGET ${_PYTHON_PREFIX}::Module
+                      PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${${_PYTHON_PREFIX}_INCLUDE_DIRS}")
+
+        # When available, enforce shared library generation with undefined symbols
+        if (APPLE)
+          set_property (TARGET ${_PYTHON_PREFIX}::Module
+                        PROPERTY INTERFACE_LINK_OPTIONS "LINKER:-undefined,dynamic_lookup")
+        endif()
+        if (CMAKE_SYSTEM_NAME STREQUAL "SunOS")
+          set_property (TARGET ${_PYTHON_PREFIX}::Module
+                        PROPERTY INTERFACE_LINK_OPTIONS "LINKER:-z,nodefs")
+        endif()
+        if (CMAKE_SYSTEM_NAME STREQUAL "AIX")
+          set_property (TARGET ${_PYTHON_PREFIX}::Module
+                        PROPERTY INTERFACE_LINK_OPTIONS "LINKER:-b,erok")
+        endif()
+      endif()
+    endif()
+
+    #
+    # PYTHON_ADD_LIBRARY (<name> [STATIC|SHARED|MODULE] src1 src2 ... srcN)
+    # It is used to build modules for python.
+    #
+    function (__${_PYTHON_PREFIX}_ADD_LIBRARY prefix name)
+      cmake_parse_arguments (PARSE_ARGV 2 PYTHON_ADD_LIBRARY "STATIC;SHARED;MODULE;WITH_SOABI" "" "")
+
+      if (prefix STREQUAL "Python2" AND PYTHON_ADD_LIBRARY_WITH_SOABI)
+        message (AUTHOR_WARNING "FindPython2: Option `WITH_SOABI` is not supported for Python2 and will be ignored.")
+        unset (PYTHON_ADD_LIBRARY_WITH_SOABI)
+      endif()
+
+      if (PYTHON_ADD_LIBRARY_STATIC)
+        set (type STATIC)
+      elseif (PYTHON_ADD_LIBRARY_SHARED)
+        set (type SHARED)
+      else()
+        set (type MODULE)
+      endif()
+
+      if (type STREQUAL "MODULE" AND NOT TARGET ${prefix}::Module)
+        message (SEND_ERROR "${prefix}_ADD_LIBRARY: dependent target '${prefix}::Module' is not defined.\n   Did you miss to request COMPONENT 'Development.Module'?")
+        return()
+      endif()
+      if (NOT type STREQUAL "MODULE" AND NOT TARGET ${prefix}::Python)
+        message (SEND_ERROR "${prefix}_ADD_LIBRARY: dependent target '${prefix}::Python' is not defined.\n   Did you miss to request COMPONENT 'Development.Embed'?")
+        return()
+      endif()
+
+      add_library (${name} ${type} ${PYTHON_ADD_LIBRARY_UNPARSED_ARGUMENTS})
+
+      get_property (type TARGET ${name} PROPERTY TYPE)
+
+      if (type STREQUAL "MODULE_LIBRARY")
+        target_link_libraries (${name} PRIVATE ${prefix}::Module)
+        # customize library name to follow module name rules
+        set_property (TARGET ${name} PROPERTY PREFIX "")
+        if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
+          set_property (TARGET ${name} PROPERTY SUFFIX ".pyd")
+        endif()
+
+        if (PYTHON_ADD_LIBRARY_WITH_SOABI AND ${prefix}_SOABI)
+          get_property (suffix TARGET ${name} PROPERTY SUFFIX)
+          if (NOT suffix)
+            set (suffix "${CMAKE_SHARED_MODULE_SUFFIX}")
+          endif()
+          set_property (TARGET ${name} PROPERTY SUFFIX ".${${prefix}_SOABI}${suffix}")
+        endif()
+      else()
+        if (PYTHON_ADD_LIBRARY_WITH_SOABI)
+          message (AUTHOR_WARNING "Find${prefix}: Option `WITH_SOABI` is only supported for `MODULE` library type.")
+        endif()
+        target_link_libraries (${name} PRIVATE ${prefix}::Python)
+      endif()
+    endfunction()
+  endif()
+
+  if ("NumPy" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS AND ${_PYTHON_PREFIX}_NumPy_FOUND
+      AND NOT TARGET ${_PYTHON_PREFIX}::NumPy AND TARGET ${_PYTHON_PREFIX}::Module)
+    add_library (${_PYTHON_PREFIX}::NumPy INTERFACE IMPORTED)
+    set_property (TARGET ${_PYTHON_PREFIX}::NumPy
+                  PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${${_PYTHON_PREFIX}_NumPy_INCLUDE_DIRS}")
+    target_link_libraries (${_PYTHON_PREFIX}::NumPy INTERFACE ${_PYTHON_PREFIX}::Module)
+  endif()
+endif()
+
+# final clean-up
+
+# Restore CMAKE_FIND_APPBUNDLE
+if (DEFINED _${_PYTHON_PREFIX}_CMAKE_FIND_APPBUNDLE)
+  set (CMAKE_FIND_APPBUNDLE ${_${_PYTHON_PREFIX}_CMAKE_FIND_APPBUNDLE})
+  unset (_${_PYTHON_PREFIX}_CMAKE_FIND_APPBUNDLE)
+else()
+  unset (CMAKE_FIND_APPBUNDLE)
+endif()
+# Restore CMAKE_FIND_FRAMEWORK
+if (DEFINED _${_PYTHON_PREFIX}_CMAKE_FIND_FRAMEWORK)
+  set (CMAKE_FIND_FRAMEWORK ${_${_PYTHON_PREFIX}_CMAKE_FIND_FRAMEWORK})
+  unset (_${_PYTHON_PREFIX}_CMAKE_FIND_FRAMEWORK)
+else()
+  unset (CMAKE_FIND_FRAMEWORK)
+endif()
diff --git a/share/cmake-3.17/Modules/FindPython2.cmake b/share/cmake-3.18/Modules/FindPython2.cmake
similarity index 65%
rename from share/cmake-3.17/Modules/FindPython2.cmake
rename to share/cmake-3.18/Modules/FindPython2.cmake
index af8ad39..84c0c73 100644
--- a/share/cmake-3.17/Modules/FindPython2.cmake
+++ b/share/cmake-3.18/Modules/FindPython2.cmake
@@ -13,13 +13,24 @@
 * ``Interpreter``: search for Python 2 interpreter
 * ``Compiler``: search for Python 2 compiler. Only offered by IronPython.
 * ``Development``: search for development artifacts (include directories and
-  libraries)
+  libraries). This component includes two sub-components which can be specified
+  independently:
+
+  * ``Development.Module``: search for artifacts for Python 2 module
+    developments.
+  * ``Development.Embed``: search for artifacts for Python 2 embedding
+    developments.
+
 * ``NumPy``: search for NumPy include directories.
 
 If no ``COMPONENTS`` are specified, ``Interpreter`` is assumed.
 
+If component ``Development`` is specified, it implies sub-components
+``Development.Module`` and ``Development.Embed``.
+
 To ensure consistent versions between components ``Interpreter``, ``Compiler``,
-``Development`` and ``NumPy``, specify all components at the same time::
+``Development`` (or one of its sub-components) and ``NumPy``, specify all
+components at the same time::
 
   find_package (Python2 COMPONENTS Interpreter Development)
 
@@ -31,10 +42,11 @@
 
 .. note::
 
-  If components ``Interpreter`` and ``Development`` are both specified, this
-  module search only for interpreter with same platform architecture as the one
-  defined by ``CMake`` configuration. This contraint does not apply if only
-  ``Interpreter`` component is specified.
+  If components ``Interpreter`` and ``Development`` (or one of its
+  sub-components) are both specified, this module search only for interpreter
+  with same platform architecture as the one defined by ``CMake``
+  configuration. This contraint does not apply if only ``Interpreter``
+  component is specified.
 
 Imported Targets
 ^^^^^^^^^^^^^^^^
@@ -46,12 +58,12 @@
   Python 2 interpreter. Target defined if component ``Interpreter`` is found.
 ``Python2::Compiler``
   Python 2 compiler. Target defined if component ``Compiler`` is found.
-``Python2::Python``
-  Python 2 library for Python embedding. Target defined if component
-  ``Development`` is found.
 ``Python2::Module``
   Python 2 library for Python module. Target defined if component
-  ``Development`` is found.
+  ``Development.Module`` is found.
+``Python2::Python``
+  Python 2 library for Python embedding. Target defined if component
+  ``Development.Embed`` is found.
 ``Python2::NumPy``
   NumPy library for Python 2. Target defined if component ``NumPy`` is found.
 
@@ -74,26 +86,31 @@
     * Anaconda
     * Canopy
     * IronPython
+    * PyPy
 ``Python2_STDLIB``
   Standard platform independent installation directory.
 
   Information returned by
-  ``distutils.sysconfig.get_python_lib(plat_specific=False,standard_lib=True)``.
+  ``distutils.sysconfig.get_python_lib(plat_specific=False,standard_lib=True)``
+  or else ``sysconfig.get_path('stdlib')``.
 ``Python2_STDARCH``
   Standard platform dependent installation directory.
 
   Information returned by
-  ``distutils.sysconfig.get_python_lib(plat_specific=True,standard_lib=True)``.
+  ``distutils.sysconfig.get_python_lib(plat_specific=True,standard_lib=True)``
+  or else ``sysconfig.get_path('platstdlib')``.
 ``Python2_SITELIB``
   Third-party platform independent installation directory.
 
   Information returned by
-  ``distutils.sysconfig.get_python_lib(plat_specific=False,standard_lib=False)``.
+  ``distutils.sysconfig.get_python_lib(plat_specific=False,standard_lib=False)``
+  or else ``sysconfig.get_path('purelib')``.
 ``Python2_SITEARCH``
   Third-party platform dependent installation directory.
 
   Information returned by
-  ``distutils.sysconfig.get_python_lib(plat_specific=True,standard_lib=False)``.
+  ``distutils.sysconfig.get_python_lib(plat_specific=True,standard_lib=False)``
+  or else ``sysconfig.get_path('platlib')``.
 ``Python2_Compiler_FOUND``
   System has the Python 2 compiler.
 ``Python2_COMPILER``
@@ -101,8 +118,14 @@
 ``Python2_COMPILER_ID``
   A short string unique to the compiler. Possible values include:
     * IronPython
+``Python2_DOTNET_LAUNCHER``
+  The ``.Net`` interpreter. Only used by ``IronPython`` implementation.
 ``Python2_Development_FOUND``
   System has the Python 2 development artifacts.
+``Python2_Development.Module_FOUND``
+  System has the Python 2 development artifacts for Python module.
+``Python2_Development.Embed_FOUND``
+  System has the Python 2 development artifacts for Python embedding.
 ``Python2_INCLUDE_DIRS``
   The Python 2 include directories.
 ``Python2_LIBRARIES``
@@ -119,6 +142,8 @@
   Python 2 minor version.
 ``Python2_VERSION_PATCH``
   Python 2 patch version.
+``Python2_PyPy_VERSION``
+  Python 2 PyPy version.
 ``Python2_NumPy_FOUND``
   System has the NumPy.
 ``Python2_NumPy_INCLUDE_DIRS``
@@ -140,8 +165,7 @@
 
 ``Python2_FIND_STRATEGY``
   This variable defines how lookup will be done.
-  The ``Python2_FIND_STRATEGY`` variable can be set to empty or one of the
-  following:
+  The ``Python2_FIND_STRATEGY`` variable can be set to one of the following:
 
   * ``VERSION``: Try to find the most recent version in all specified
     locations.
@@ -154,8 +178,7 @@
 ``Python2_FIND_REGISTRY``
   On Windows the ``Python2_FIND_REGISTRY`` variable determine the order
   of preference between registry and environment variables.
-  the ``Python2_FIND_REGISTRY`` variable can be set to empty or one of the
-  following:
+  the ``Python2_FIND_REGISTRY`` variable can be set to one of the following:
 
   * ``FIRST``: Try to use registry before environment variables.
     This is the default.
@@ -165,8 +188,8 @@
 ``Python2_FIND_FRAMEWORK``
   On macOS the ``Python2_FIND_FRAMEWORK`` variable determine the order of
   preference between Apple-style and unix-style package components.
-  This variable can be set to empty or take same values as
-  :variable:`CMAKE_FIND_FRAMEWORK` variable.
+  This variable can take same values as :variable:`CMAKE_FIND_FRAMEWORK`
+  variable.
 
   .. note::
 
@@ -180,16 +203,17 @@
   ``virtualenv`` or ``conda``. It is meaningful only when a virtual environment
   is active (i.e. the ``activate`` script has been evaluated). In this case, it
   takes precedence over ``Python2_FIND_REGISTRY`` and ``CMAKE_FIND_FRAMEWORK``
-  variables.  The ``Python2_FIND_VIRTUALENV`` variable can be set to empty or
-  one of the following:
+  variables.  The ``Python2_FIND_VIRTUALENV`` variable can be set to one of the
+  following:
 
   * ``FIRST``: The virtual environment is used before any other standard
     paths to look-up for the interpreter. This is the default.
   * ``ONLY``: Only the virtual environment is used to look-up for the
     interpreter.
   * ``STANDARD``: The virtual environment is not used to look-up for the
-    interpreter. In this case, variable ``Python2_FIND_REGISTRY`` (Windows)
-    or ``CMAKE_FIND_FRAMEWORK`` (macOS) can be set with value ``LAST`` or
+    interpreter but environment variable ``PATH`` is always considered.
+    In this case, variable ``Python2_FIND_REGISTRY`` (Windows) or
+    ``CMAKE_FIND_FRAMEWORK`` (macOS) can be set with value ``LAST`` or
     ``NEVER`` to select preferably the interpreter from the virtual
     environment.
 
@@ -199,6 +223,39 @@
     recommended to also include the component ``Interpreter`` to get expected
     result.
 
+``Python2_FIND_IMPLEMENTATIONS``
+  This variable defines, in an ordered list, the different implementations
+  which will be searched. The ``Python2_FIND_IMPLEMENTATIONS`` variable can
+  hold the following values:
+
+  * ``CPython``: this is the standard implementation. Various products, like
+    ``Anaconda`` or ``ActivePython``, rely on this implementation.
+  * ``IronPython``: This implementation use the ``CSharp`` language for
+    ``.NET Framework`` on top of the `Dynamic Language Runtime` (``DLR``).
+    See `IronPython <http://ironpython.net>`_.
+  * ``PyPy``: This implementation use ``RPython`` language and
+    ``RPython translation toolchain`` to produce the python interpreter.
+    See `PyPy <https://www.pypy.org>`_.
+
+  The default value is:
+
+  * Windows platform: ``CPython``, ``IronPython``
+  * Other platforms: ``CPython``
+
+  .. note::
+
+    This hint has the lowest priority of all hints, so even if, for example,
+    you specify ``IronPython`` first and ``CPython`` in second, a python
+    product based on ``CPython`` can be selected because, for example with
+    ``Python2_FIND_STRATEGY=LOCATION``, each location will be search first for
+    ``IronPython`` and second for ``CPython``.
+
+  .. note::
+
+    When ``IronPython`` is specified, on platforms other than ``Windows``, the
+    ``.Net`` interpreter (i.e. ``mono`` command) is expected to be available
+    through the ``PATH`` variable.
+
 Artifacts Specification
 ^^^^^^^^^^^^^^^^^^^^^^^
 
@@ -211,6 +268,9 @@
 ``Python2_COMPILER``
   The path to the compiler.
 
+``Python2_DOTNET_LAUNCHER``
+  The ``.Net`` interpreter. Only used by ``IronPython`` implementation.
+
 ``Python2_LIBRARY``
   The path to the library. It will be used to compute the
   variables ``Python2_LIBRARIES``, ``Python2_LIBRAY_DIRS`` and
@@ -237,6 +297,22 @@
   If more than one artifact is specified, it is the user's responsability to
   ensure the consistency of the various artifacts.
 
+By default, this module supports multiple calls in different directories of a
+project with different version/component requirements while providing correct
+and consistent results for each call. To support this behavior, ``CMake`` cache
+is not used in the traditional way which can be problematic for interactive
+specification. So, to enable also interactive specification, module behavior
+can be controled with the following variable:
+
+``Python2_ARTIFACTS_INTERACTIVE``
+  Selects the behavior of the module. This is a boolean variable:
+
+  * If set to ``TRUE``: Create CMake cache entries for the above artifact
+    specification variables so that users can edit them interactively.
+    This disables support for multiple version/component requirements.
+  * If set to ``FALSE`` or undefined: Enable multiple version/component
+    requirements.
+
 Commands
 ^^^^^^^^
 
diff --git a/share/cmake-3.17/Modules/FindPython3.cmake b/share/cmake-3.18/Modules/FindPython3.cmake
similarity index 68%
rename from share/cmake-3.17/Modules/FindPython3.cmake
rename to share/cmake-3.18/Modules/FindPython3.cmake
index 66f4f75..f142c07 100644
--- a/share/cmake-3.17/Modules/FindPython3.cmake
+++ b/share/cmake-3.18/Modules/FindPython3.cmake
@@ -13,13 +13,24 @@
 * ``Interpreter``: search for Python 3 interpreter
 * ``Compiler``: search for Python 3 compiler. Only offered by IronPython.
 * ``Development``: search for development artifacts (include directories and
-  libraries)
+  libraries). This component includes two sub-components which can be specified
+  independently:
+
+  * ``Development.Module``: search for artifacts for Python 3 module
+    developments.
+  * ``Development.Embed``: search for artifacts for Python 3 embedding
+    developments.
+
 * ``NumPy``: search for NumPy include directories.
 
 If no ``COMPONENTS`` are specified, ``Interpreter`` is assumed.
 
+If component ``Development`` is specified, it implies sub-components
+``Development.Module`` and ``Development.Embed``.
+
 To ensure consistent versions between components ``Interpreter``, ``Compiler``,
-``Development`` and ``NumPy``, specify all components at the same time::
+``Development`` (or one of its sub-components) and ``NumPy``, specify all
+components at the same time::
 
   find_package (Python3 COMPONENTS Interpreter Development)
 
@@ -31,10 +42,11 @@
 
 .. note::
 
-  If components ``Interpreter`` and ``Development`` are both specified, this
-  module search only for interpreter with same platform architecture as the one
-  defined by ``CMake`` configuration. This contraint does not apply if only
-  ``Interpreter`` component is specified.
+  If components ``Interpreter`` and ``Development`` (or one of its
+  sub-components) are both specified, this module search only for interpreter
+  with same platform architecture as the one defined by ``CMake``
+  configuration. This contraint does not apply if only ``Interpreter``
+  component is specified.
 
 Imported Targets
 ^^^^^^^^^^^^^^^^
@@ -46,12 +58,12 @@
   Python 3 interpreter. Target defined if component ``Interpreter`` is found.
 ``Python3::Compiler``
   Python 3 compiler. Target defined if component ``Compiler`` is found.
-``Python3::Python``
-  Python 3 library for Python embedding. Target defined if component
-  ``Development`` is found.
 ``Python3::Module``
   Python 3 library for Python module. Target defined if component
-  ``Development`` is found.
+  ``Development.Module`` is found.
+``Python3::Python``
+  Python 3 library for Python embedding. Target defined if component
+  ``Development.Embed`` is found.
 ``Python3::NumPy``
   NumPy library for Python 3. Target defined if component ``NumPy`` is found.
 
@@ -74,33 +86,40 @@
     * Anaconda
     * Canopy
     * IronPython
+    * PyPy
 ``Python3_STDLIB``
   Standard platform independent installation directory.
 
   Information returned by
-  ``distutils.sysconfig.get_python_lib(plat_specific=False,standard_lib=True)``.
+  ``distutils.sysconfig.get_python_lib(plat_specific=False,standard_lib=True)``
+  or else ``sysconfig.get_path('stdlib')``.
 ``Python3_STDARCH``
   Standard platform dependent installation directory.
 
   Information returned by
-  ``distutils.sysconfig.get_python_lib(plat_specific=True,standard_lib=True)``.
+  ``distutils.sysconfig.get_python_lib(plat_specific=True,standard_lib=True)``
+  or else ``sysconfig.get_path('platstdlib')``.
 ``Python3_SITELIB``
   Third-party platform independent installation directory.
 
   Information returned by
-  ``distutils.sysconfig.get_python_lib(plat_specific=False,standard_lib=False)``.
+  ``distutils.sysconfig.get_python_lib(plat_specific=False,standard_lib=False)``
+  or else ``sysconfig.get_path('purelib')``.
 ``Python3_SITEARCH``
   Third-party platform dependent installation directory.
 
   Information returned by
-  ``distutils.sysconfig.get_python_lib(plat_specific=True,standard_lib=False)``.
+  ``distutils.sysconfig.get_python_lib(plat_specific=True,standard_lib=False)``
+  or else ``sysconfig.get_path('platlib')``.
 ``Python3_SOABI``
   Extension suffix for modules.
 
   Information returned by
-  ``distutils.sysconfig.get_config_flag('SOABI')`` or computed from
-  ``distutils.sysconfig.get_config_flag('EXT_SUFFIX')`` or
-  ``python3-config --extension-suffix``.
+  ``distutils.sysconfig.get_config_var('SOABI')`` or computed from
+  ``distutils.sysconfig.get_config_var('EXT_SUFFIX')`` or
+  ``python3-config --extension-suffix``. If package ``distutils.sysconfig`` is
+  not available, ``sysconfig.get_config_var('SOABI')`` or
+  ``sysconfig.get_config_var('EXT_SUFFIX')`` are used.
 ``Python3_Compiler_FOUND``
   System has the Python 3 compiler.
 ``Python3_COMPILER``
@@ -108,8 +127,14 @@
 ``Python3_COMPILER_ID``
   A short string unique to the compiler. Possible values include:
     * IronPython
+``Python3_DOTNET_LAUNCHER``
+  The ``.Net`` interpreter. Only used by ``IronPython`` implementation.
 ``Python3_Development_FOUND``
   System has the Python 3 development artifacts.
+``Python3_Development.Module_FOUND``
+  System has the Python 3 development artifacts for Python module.
+``Python3_Development.Embed_FOUND``
+  System has the Python 3 development artifacts for Python embedding.
 ``Python3_INCLUDE_DIRS``
   The Python 3 include directories.
 ``Python3_LIBRARIES``
@@ -126,6 +151,8 @@
   Python 3 minor version.
 ``Python3_VERSION_PATCH``
   Python 3 patch version.
+``Python3_PyPy_VERSION``
+  Python 3 PyPy version.
 ``Python3_NumPy_FOUND``
   System has the NumPy.
 ``Python3_NumPy_INCLUDE_DIRS``
@@ -188,8 +215,7 @@
 
 ``Python3_FIND_STRATEGY``
   This variable defines how lookup will be done.
-  The ``Python3_FIND_STRATEGY`` variable can be set to empty or one of the
-  following:
+  The ``Python3_FIND_STRATEGY`` variable can be set to one of the following:
 
   * ``VERSION``: Try to find the most recent version in all specified
     locations.
@@ -202,8 +228,7 @@
 ``Python3_FIND_REGISTRY``
   On Windows the ``Python3_FIND_REGISTRY`` variable determine the order
   of preference between registry and environment variables.
-  The ``Python3_FIND_REGISTRY`` variable can be set to empty or one of the
-  following:
+  The ``Python3_FIND_REGISTRY`` variable can be set to one of the following:
 
   * ``FIRST``: Try to use registry before environment variables.
     This is the default.
@@ -213,8 +238,8 @@
 ``Python3_FIND_FRAMEWORK``
   On macOS the ``Python3_FIND_FRAMEWORK`` variable determine the order of
   preference between Apple-style and unix-style package components.
-  This variable can be set to empty or take same values as
-  :variable:`CMAKE_FIND_FRAMEWORK` variable.
+  This variable can take same values as :variable:`CMAKE_FIND_FRAMEWORK`
+  variable.
 
   .. note::
 
@@ -228,16 +253,17 @@
   ``virtualenv`` or ``conda``. It is meaningful only when a virtual environment
   is active (i.e. the ``activate`` script has been evaluated). In this case, it
   takes precedence over ``Python3_FIND_REGISTRY`` and ``CMAKE_FIND_FRAMEWORK``
-  variables.  The ``Python3_FIND_VIRTUALENV`` variable can be set to empty or
-  one of the following:
+  variables.  The ``Python3_FIND_VIRTUALENV`` variable can be set to one of the
+  following:
 
   * ``FIRST``: The virtual environment is used before any other standard
     paths to look-up for the interpreter. This is the default.
   * ``ONLY``: Only the virtual environment is used to look-up for the
     interpreter.
   * ``STANDARD``: The virtual environment is not used to look-up for the
-    interpreter. In this case, variable ``Python3_FIND_REGISTRY`` (Windows)
-    or ``CMAKE_FIND_FRAMEWORK`` (macOS) can be set with value ``LAST`` or
+    interpreter but environment variable ``PATH`` is always considered.
+    In this case, variable ``Python3_FIND_REGISTRY`` (Windows) or
+    ``CMAKE_FIND_FRAMEWORK`` (macOS) can be set with value ``LAST`` or
     ``NEVER`` to select preferably the interpreter from the virtual
     environment.
 
@@ -247,6 +273,39 @@
     recommended to also include the component ``Interpreter`` to get expected
     result.
 
+``Python3_FIND_IMPLEMENTATIONS``
+  This variable defines, in an ordered list, the different implementations
+  which will be searched. The ``Python3_FIND_IMPLEMENTATIONS`` variable can
+  hold the following values:
+
+  * ``CPython``: this is the standard implementation. Various products, like
+    ``Anaconda`` or ``ActivePython``, rely on this implementation.
+  * ``IronPython``: This implementation use the ``CSharp`` language for
+    ``.NET Framework`` on top of the `Dynamic Language Runtime` (``DLR``).
+    See `IronPython <http://ironpython.net>`_.
+  * ``PyPy``: This implementation use ``RPython`` language and
+    ``RPython translation toolchain`` to produce the python interpreter.
+    See `PyPy <https://www.pypy.org>`_.
+
+  The default value is:
+
+  * Windows platform: ``CPython``, ``IronPython``
+  * Other platforms: ``CPython``
+
+  .. note::
+
+    This hint has the lowest priority of all hints, so even if, for example,
+    you specify ``IronPython`` first and ``CPython`` in second, a python
+    product based on ``CPython`` can be selected because, for example with
+    ``Python3_FIND_STRATEGY=LOCATION``, each location will be search first for
+    ``IronPython`` and second for ``CPython``.
+
+  .. note::
+
+    When ``IronPython`` is specified, on platforms other than ``Windows``, the
+    ``.Net`` interpreter (i.e. ``mono`` command) is expected to be available
+    through the ``PATH`` variable.
+
 Artifacts Specification
 ^^^^^^^^^^^^^^^^^^^^^^^
 
@@ -259,6 +318,9 @@
 ``Python3_COMPILER``
   The path to the compiler.
 
+``Python3_DOTNET_LAUNCHER``
+  The ``.Net`` interpreter. Only used by ``IronPython`` implementation.
+
 ``Python3_LIBRARY``
   The path to the library. It will be used to compute the
   variables ``Python3_LIBRARIES``, ``Python3_LIBRAY_DIRS`` and
@@ -285,6 +347,22 @@
   If more than one artifact is specified, it is the user's responsability to
   ensure the consistency of the various artifacts.
 
+By default, this module supports multiple calls in different directories of a
+project with different version/component requirements while providing correct
+and consistent results for each call. To support this behavior, ``CMake`` cache
+is not used in the traditional way which can be problematic for interactive
+specification. So, to enable also interactive specification, module behavior
+can be controled with the following variable:
+
+``Python3_ARTIFACTS_INTERACTIVE``
+  Selects the behavior of the module. This is a boolean variable:
+
+  * If set to ``TRUE``: Create CMake cache entries for the above artifact
+    specification variables so that users can edit them interactively.
+    This disables support for multiple version/component requirements.
+  * If set to ``FALSE`` or undefined: Enable multiple version/component
+    requirements.
+
 Commands
 ^^^^^^^^
 
diff --git a/share/cmake-3.17/Modules/FindPythonInterp.cmake b/share/cmake-3.18/Modules/FindPythonInterp.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindPythonInterp.cmake
rename to share/cmake-3.18/Modules/FindPythonInterp.cmake
diff --git a/share/cmake-3.17/Modules/FindPythonLibs.cmake b/share/cmake-3.18/Modules/FindPythonLibs.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindPythonLibs.cmake
rename to share/cmake-3.18/Modules/FindPythonLibs.cmake
diff --git a/share/cmake-3.17/Modules/FindQt.cmake b/share/cmake-3.18/Modules/FindQt.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindQt.cmake
rename to share/cmake-3.18/Modules/FindQt.cmake
diff --git a/share/cmake-3.17/Modules/FindQt3.cmake b/share/cmake-3.18/Modules/FindQt3.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindQt3.cmake
rename to share/cmake-3.18/Modules/FindQt3.cmake
diff --git a/share/cmake-3.17/Modules/FindQt4.cmake b/share/cmake-3.18/Modules/FindQt4.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindQt4.cmake
rename to share/cmake-3.18/Modules/FindQt4.cmake
diff --git a/share/cmake-3.17/Modules/FindQuickTime.cmake b/share/cmake-3.18/Modules/FindQuickTime.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindQuickTime.cmake
rename to share/cmake-3.18/Modules/FindQuickTime.cmake
diff --git a/share/cmake-3.17/Modules/FindRTI.cmake b/share/cmake-3.18/Modules/FindRTI.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindRTI.cmake
rename to share/cmake-3.18/Modules/FindRTI.cmake
diff --git a/share/cmake-3.18/Modules/FindRuby.cmake b/share/cmake-3.18/Modules/FindRuby.cmake
new file mode 100644
index 0000000..1bdee60
--- /dev/null
+++ b/share/cmake-3.18/Modules/FindRuby.cmake
@@ -0,0 +1,512 @@
+# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindRuby
+--------
+
+Find Ruby
+
+This module finds if Ruby is installed and determines where the
+include files and libraries are.  Ruby 1.8 through 2.7 are
+supported.
+
+The minimum required version of Ruby can be specified using the
+standard syntax, e.g.
+
+.. code-block:: cmake
+
+  find_package(Ruby 2.5.1 EXACT REQUIRED)
+  # OR
+  find_package(Ruby 2.4)
+
+It also determines what the name of the library is.
+
+Virtual environments such as RVM are handled as well, by passing
+the argument ``Ruby_FIND_VIRTUALENV``
+
+Result Variables
+^^^^^^^^^^^^^^^^
+
+This module will set the following variables in your project:
+
+``Ruby_FOUND``
+  set to true if ruby was found successfully
+``Ruby_EXECUTABLE``
+  full path to the ruby binary
+``Ruby_INCLUDE_DIRS``
+  include dirs to be used when using the ruby library
+``Ruby_LIBRARIES``
+  libraries needed to use ruby from C.
+``Ruby_VERSION``
+  the version of ruby which was found, e.g. "1.8.7"
+``Ruby_VERSION_MAJOR``
+  Ruby major version.
+``Ruby_VERSION_MINOR``
+  Ruby minor version.
+``Ruby_VERSION_PATCH``
+  Ruby patch version.
+
+
+Also:
+
+``Ruby_INCLUDE_PATH``
+  same as Ruby_INCLUDE_DIRS, only provided for compatibility reasons, don't use it
+
+Hints
+^^^^^
+
+``Ruby_ROOT_DIR``
+  Define the root directory of a Ruby installation.
+
+``Ruby_FIND_VIRTUALENV``
+  This variable defines the handling of virtual environments managed by
+  ``rvm``. It is meaningful only when a virtual environment
+  is active (i.e. the ``rvm`` script has been evaluated or at least the
+  ``MY_RUBY_HOME`` environment variable is set).
+  The ``Ruby_FIND_VIRTUALENV`` variable can be set to empty or
+  one of the following:
+
+  * ``FIRST``: The virtual environment is used before any other standard
+    paths to look-up for the interpreter. This is the default.
+  * ``ONLY``: Only the virtual environment is used to look-up for the
+    interpreter.
+  * ``STANDARD``: The virtual environment is not used to look-up for the
+    interpreter (assuming it isn't still in the PATH...)
+
+#]=======================================================================]
+
+# Backwards compatibility
+# Define camel case versions of input variables
+foreach(UPPER
+    RUBY_EXECUTABLE
+    RUBY_LIBRARY
+    RUBY_INCLUDE_DIR
+    RUBY_CONFIG_INCLUDE_DIR
+    )
+    if (DEFINED ${UPPER})
+      string(REPLACE "RUBY_" "Ruby_" Camel ${UPPER})
+        if (NOT DEFINED ${Camel})
+            set(${Camel} ${${UPPER}})
+        endif()
+    endif()
+endforeach()
+
+#   Ruby_ARCHDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"archdir"@:>@)'`
+#   Ruby_SITEARCHDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"sitearchdir"@:>@)'`
+#   Ruby_SITEDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"sitelibdir"@:>@)'`
+#   Ruby_LIBDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"libdir"@:>@)'`
+#   Ruby_LIBRUBYARG=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"LIBRUBYARG_SHARED"@:>@)'`
+
+# uncomment the following line to get debug output for this file
+# set(_Ruby_DEBUG_OUTPUT TRUE)
+
+# Determine the list of possible names of the ruby executable depending
+# on which version of ruby is required
+set(_Ruby_POSSIBLE_EXECUTABLE_NAMES ruby)
+
+# If not specified, allow everything as far back as 1.8.0
+if(NOT DEFINED Ruby_FIND_VERSION_MAJOR)
+  set(Ruby_FIND_VERSION "1.8.0")
+  set(Ruby_FIND_VERSION_MAJOR 1)
+  set(Ruby_FIND_VERSION_MINOR 8)
+  set(Ruby_FIND_VERSION_PATCH 0)
+endif()
+
+if(_Ruby_DEBUG_OUTPUT)
+  message("Ruby_FIND_VERSION=${Ruby_FIND_VERSION}")
+  message("Ruby_FIND_VERSION_MAJOR=${Ruby_FIND_VERSION_MAJOR}")
+  message("Ruby_FIND_VERSION_MINOR=${Ruby_FIND_VERSION_MINOR}")
+  message("Ruby_FIND_VERSION_PATCH=${Ruby_FIND_VERSION_PATCH}")
+endif()
+
+set(Ruby_FIND_VERSION_SHORT_NODOT "${Ruby_FIND_VERSION_MAJOR}${Ruby_FIND_VERSION_MINOR}")
+
+# Set name of possible executables, ignoring the minor
+# Eg:
+# 2.1.1 => from ruby27 to ruby21 included
+# 2.1   => from ruby27 to ruby21 included
+# 2     => from ruby26 to ruby20 included
+# empty => from ruby27 to ruby18 included
+if(NOT Ruby_FIND_VERSION_EXACT)
+
+  foreach(_ruby_version RANGE 27 18 -1)
+    string(SUBSTRING "${_ruby_version}" 0 1 _ruby_major_version)
+    string(SUBSTRING "${_ruby_version}" 1 1 _ruby_minor_version)
+
+    if(NOT "${_ruby_major_version}${_ruby_minor_version}" VERSION_LESS ${Ruby_FIND_VERSION_SHORT_NODOT})
+      # Append both rubyX.Y and rubyXY (eg: ruby2.7 ruby27)
+      list(APPEND _Ruby_POSSIBLE_EXECUTABLE_NAMES ruby${_ruby_major_version}.${_ruby_minor_version} ruby${_ruby_major_version}${_ruby_minor_version})
+    else()
+      break()
+    endif()
+
+  endforeach()
+
+  list(REMOVE_DUPLICATES _Ruby_POSSIBLE_EXECUTABLE_NAMES)
+endif()
+
+# virtual environments handling (eg RVM)
+if (DEFINED ENV{MY_RUBY_HOME})
+  if(_Ruby_DEBUG_OUTPUT)
+    message("My ruby home is defined: $ENV{MY_RUBY_HOME}")
+  endif()
+
+  if (DEFINED Ruby_FIND_VIRTUALENV)
+    if (NOT Ruby_FIND_VIRTUALENV MATCHES "^(FIRST|ONLY|STANDARD)$")
+      message (AUTHOR_WARNING "FindRuby: ${Ruby_FIND_VIRTUALENV}: invalid value for 'Ruby_FIND_VIRTUALENV'. 'FIRST', 'ONLY' or 'STANDARD' expected. 'FIRST' will be used instead.")
+      set (_Ruby_FIND_VIRTUALENV "FIRST")
+    else()
+      set (_Ruby_FIND_VIRTUALENV ${Ruby_FIND_VIRTUALENV})
+    endif()
+  else()
+    set (_Ruby_FIND_VIRTUALENV FIRST)
+  endif()
+else()
+  if (DEFINED Ruby_FIND_VIRTUALENV)
+    message("Environment variable MY_RUBY_HOME isn't set, defaulting back to Ruby_FIND_VIRTUALENV=STANDARD")
+  endif()
+  set (_Ruby_FIND_VIRTUALENV STANDARD)
+endif()
+
+if(_Ruby_DEBUG_OUTPUT)
+  message("_Ruby_POSSIBLE_EXECUTABLE_NAMES=${_Ruby_POSSIBLE_EXECUTABLE_NAMES}")
+  message("_Ruby_FIND_VIRTUALENV=${_Ruby_FIND_VIRTUALENV}")
+endif()
+
+function (_RUBY_VALIDATE_INTERPRETER)
+  if (NOT Ruby_EXECUTABLE)
+    return()
+  endif()
+
+  cmake_parse_arguments (PARSE_ARGV 0 _RVI "EXACT;CHECK_EXISTS" "" "")
+  if (_RVI_UNPARSED_ARGUMENTS)
+    set (expected_version ${_RVI_UNPARSED_ARGUMENTS})
+  else()
+    unset (expected_version)
+  endif()
+
+  if (_RVI_CHECK_EXISTS AND NOT EXISTS "${Ruby_EXECUTABLE}")
+    # interpreter does not exist anymore
+    set (_Ruby_Interpreter_REASON_FAILURE "Cannot find the interpreter \"${Ruby_EXECUTABLE}\"")
+    set_property (CACHE Ruby_EXECUTABLE PROPERTY VALUE "Ruby_EXECUTABLE-NOTFOUND")
+    return()
+  endif()
+
+  # Check the version it returns
+  # executable found must have a specific version
+  execute_process (COMMAND "${Ruby_EXECUTABLE}" -e "puts RUBY_VERSION"
+                   RESULT_VARIABLE result
+                   OUTPUT_VARIABLE version
+                   ERROR_QUIET
+                   OUTPUT_STRIP_TRAILING_WHITESPACE)
+  if (result OR (_RVI_EXACT AND NOT version VERSION_EQUAL expected_version) OR (version VERSION_LESS expected_version))
+    # interpreter not usable or has wrong major version
+    if (result)
+      set (_Ruby_Interpreter_REASON_FAILURE "Cannot use the interpreter \"${Ruby_EXECUTABLE}\"")
+    else()
+      set (_Ruby_Interpreter_REASON_FAILURE "Wrong major version for the interpreter \"${Ruby_EXECUTABLE}\"")
+    endif()
+    set_property (CACHE Ruby_EXECUTABLE PROPERTY VALUE "Ruby_EXECUTABLE-NOTFOUND")
+    return()
+  endif()
+
+endfunction()
+
+while(1)
+  # Virtual environments handling
+  if(_Ruby_FIND_VIRTUALENV MATCHES "^(FIRST|ONLY)$")
+    if(_Ruby_DEBUG_OUTPUT)
+      message("Inside Matches")
+    endif()
+    find_program (Ruby_EXECUTABLE
+                  NAMES ${_Ruby_POSSIBLE_EXECUTABLE_NAMES}
+                  NAMES_PER_DIR
+                  PATHS ENV MY_RUBY_HOME
+                  PATH_SUFFIXES bin Scripts
+                  NO_CMAKE_PATH
+                  NO_CMAKE_ENVIRONMENT_PATH
+                  NO_SYSTEM_ENVIRONMENT_PATH
+                  NO_CMAKE_SYSTEM_PATH)
+
+    if(_Ruby_DEBUG_OUTPUT)
+      message("Ruby_EXECUTABLE=${Ruby_EXECUTABLE}")
+    endif()
+
+    _RUBY_VALIDATE_INTERPRETER (${Ruby_FIND_VERSION}})
+    if(Ruby_EXECUTABLE)
+      break()
+    endif()
+    if(NOT _Ruby_FIND_VIRTUALENV STREQUAL "ONLY")
+      break()
+    endif()
+  elseif(_Ruby_DEBUG_OUTPUT)
+    message("_Ruby_FIND_VIRTUALENV doesn't match: ${_Ruby_FIND_VIRTUALENV}")
+  endif()
+
+  # try using standard paths
+  find_program (Ruby_EXECUTABLE
+                NAMES ${_Ruby_POSSIBLE_EXECUTABLE_NAMES}
+                NAMES_PER_DIR)
+  _RUBY_VALIDATE_INTERPRETER (${Ruby_FIND_VERSION})
+  if (Ruby_EXECUTABLE)
+    break()
+  endif()
+
+  break()
+endwhile()
+
+if(Ruby_EXECUTABLE AND NOT Ruby_VERSION_MAJOR)
+  function(_RUBY_CONFIG_VAR RBVAR OUTVAR)
+    execute_process(COMMAND ${Ruby_EXECUTABLE} -r rbconfig -e "print RbConfig::CONFIG['${RBVAR}']"
+      RESULT_VARIABLE _Ruby_SUCCESS
+      OUTPUT_VARIABLE _Ruby_OUTPUT
+      ERROR_QUIET)
+    if(_Ruby_SUCCESS OR _Ruby_OUTPUT STREQUAL "")
+      execute_process(COMMAND ${Ruby_EXECUTABLE} -r rbconfig -e "print Config::CONFIG['${RBVAR}']"
+        RESULT_VARIABLE _Ruby_SUCCESS
+        OUTPUT_VARIABLE _Ruby_OUTPUT
+        ERROR_QUIET)
+    endif()
+    set(${OUTVAR} "${_Ruby_OUTPUT}" PARENT_SCOPE)
+  endfunction()
+
+
+  # query the ruby version
+  _RUBY_CONFIG_VAR("MAJOR" Ruby_VERSION_MAJOR)
+  _RUBY_CONFIG_VAR("MINOR" Ruby_VERSION_MINOR)
+  _RUBY_CONFIG_VAR("TEENY" Ruby_VERSION_PATCH)
+
+  # query the different directories
+  _RUBY_CONFIG_VAR("archdir" Ruby_ARCH_DIR)
+  _RUBY_CONFIG_VAR("arch" Ruby_ARCH)
+  _RUBY_CONFIG_VAR("rubyhdrdir" Ruby_HDR_DIR)
+  _RUBY_CONFIG_VAR("rubyarchhdrdir" Ruby_ARCHHDR_DIR)
+  _RUBY_CONFIG_VAR("libdir" Ruby_POSSIBLE_LIB_DIR)
+  _RUBY_CONFIG_VAR("rubylibdir" Ruby_RUBY_LIB_DIR)
+
+  # site_ruby
+  _RUBY_CONFIG_VAR("sitearchdir" Ruby_SITEARCH_DIR)
+  _RUBY_CONFIG_VAR("sitelibdir" Ruby_SITELIB_DIR)
+
+  # vendor_ruby available ?
+  execute_process(COMMAND ${Ruby_EXECUTABLE} -r vendor-specific -e "print 'true'"
+    OUTPUT_VARIABLE Ruby_HAS_VENDOR_RUBY  ERROR_QUIET)
+
+  if(Ruby_HAS_VENDOR_RUBY)
+    _RUBY_CONFIG_VAR("vendorlibdir" Ruby_VENDORLIB_DIR)
+    _RUBY_CONFIG_VAR("vendorarchdir" Ruby_VENDORARCH_DIR)
+  endif()
+
+  # save the results in the cache so we don't have to run ruby the next time again
+  set(Ruby_VERSION_MAJOR    ${Ruby_VERSION_MAJOR}    CACHE PATH "The Ruby major version" FORCE)
+  set(Ruby_VERSION_MINOR    ${Ruby_VERSION_MINOR}    CACHE PATH "The Ruby minor version" FORCE)
+  set(Ruby_VERSION_PATCH    ${Ruby_VERSION_PATCH}    CACHE PATH "The Ruby patch version" FORCE)
+  set(Ruby_ARCH_DIR         ${Ruby_ARCH_DIR}         CACHE PATH "The Ruby arch dir" FORCE)
+  set(Ruby_HDR_DIR          ${Ruby_HDR_DIR}          CACHE PATH "The Ruby header dir (1.9+)" FORCE)
+  set(Ruby_ARCHHDR_DIR      ${Ruby_ARCHHDR_DIR}      CACHE PATH "The Ruby arch header dir (2.0+)" FORCE)
+  set(Ruby_POSSIBLE_LIB_DIR ${Ruby_POSSIBLE_LIB_DIR} CACHE PATH "The Ruby lib dir" FORCE)
+  set(Ruby_RUBY_LIB_DIR     ${Ruby_RUBY_LIB_DIR}     CACHE PATH "The Ruby ruby-lib dir" FORCE)
+  set(Ruby_SITEARCH_DIR     ${Ruby_SITEARCH_DIR}     CACHE PATH "The Ruby site arch dir" FORCE)
+  set(Ruby_SITELIB_DIR      ${Ruby_SITELIB_DIR}      CACHE PATH "The Ruby site lib dir" FORCE)
+  set(Ruby_HAS_VENDOR_RUBY  ${Ruby_HAS_VENDOR_RUBY}  CACHE BOOL "Vendor Ruby is available" FORCE)
+  set(Ruby_VENDORARCH_DIR   ${Ruby_VENDORARCH_DIR}   CACHE PATH "The Ruby vendor arch dir" FORCE)
+  set(Ruby_VENDORLIB_DIR    ${Ruby_VENDORLIB_DIR}    CACHE PATH "The Ruby vendor lib dir" FORCE)
+
+  mark_as_advanced(
+    Ruby_ARCH_DIR
+    Ruby_ARCH
+    Ruby_HDR_DIR
+    Ruby_ARCHHDR_DIR
+    Ruby_POSSIBLE_LIB_DIR
+    Ruby_RUBY_LIB_DIR
+    Ruby_SITEARCH_DIR
+    Ruby_SITELIB_DIR
+    Ruby_HAS_VENDOR_RUBY
+    Ruby_VENDORARCH_DIR
+    Ruby_VENDORLIB_DIR
+    Ruby_VERSION_MAJOR
+    Ruby_VERSION_MINOR
+    Ruby_VERSION_PATCH
+    )
+endif()
+
+# In case Ruby_EXECUTABLE could not be executed (e.g. cross compiling)
+# try to detect which version we found. This is not too good.
+if(Ruby_EXECUTABLE AND NOT Ruby_VERSION_MAJOR)
+  # by default assume 1.8.0
+  set(Ruby_VERSION_MAJOR 1)
+  set(Ruby_VERSION_MINOR 8)
+  set(Ruby_VERSION_PATCH 0)
+  # check whether we found 1.9.x
+  if(${Ruby_EXECUTABLE} MATCHES "ruby1\\.?9")
+    set(Ruby_VERSION_MAJOR 1)
+    set(Ruby_VERSION_MINOR 9)
+  endif()
+  # check whether we found 2.0.x
+  if(${Ruby_EXECUTABLE} MATCHES "ruby2\\.?0")
+    set(Ruby_VERSION_MAJOR 2)
+    set(Ruby_VERSION_MINOR 0)
+  endif()
+  # check whether we found 2.1.x
+  if(${Ruby_EXECUTABLE} MATCHES "ruby2\\.?1")
+    set(Ruby_VERSION_MAJOR 2)
+    set(Ruby_VERSION_MINOR 1)
+  endif()
+  # check whether we found 2.2.x
+  if(${Ruby_EXECUTABLE} MATCHES "ruby2\\.?2")
+    set(Ruby_VERSION_MAJOR 2)
+    set(Ruby_VERSION_MINOR 2)
+  endif()
+  # check whether we found 2.3.x
+  if(${Ruby_EXECUTABLE} MATCHES "ruby2\\.?3")
+    set(Ruby_VERSION_MAJOR 2)
+    set(Ruby_VERSION_MINOR 3)
+  endif()
+  # check whether we found 2.4.x
+  if(${Ruby_EXECUTABLE} MATCHES "ruby2\\.?4")
+    set(Ruby_VERSION_MAJOR 2)
+    set(Ruby_VERSION_MINOR 4)
+  endif()
+  # check whether we found 2.5.x
+  if(${Ruby_EXECUTABLE} MATCHES "ruby2\\.?5")
+    set(Ruby_VERSION_MAJOR 2)
+    set(Ruby_VERSION_MINOR 5)
+  endif()
+  # check whether we found 2.6.x
+  if(${Ruby_EXECUTABLE} MATCHES "ruby2\\.?6")
+    set(Ruby_VERSION_MAJOR 2)
+    set(Ruby_VERSION_MINOR 6)
+  endif()
+  # check whether we found 2.7.x
+  if(${Ruby_EXECUTABLE} MATCHES "ruby2\\.?7")
+    set(Ruby_VERSION_MAJOR 2)
+    set(Ruby_VERSION_MINOR 7)
+  endif()
+endif()
+
+if(Ruby_VERSION_MAJOR)
+  set(Ruby_VERSION "${Ruby_VERSION_MAJOR}.${Ruby_VERSION_MINOR}.${Ruby_VERSION_PATCH}")
+  set(_Ruby_VERSION_SHORT "${Ruby_VERSION_MAJOR}.${Ruby_VERSION_MINOR}")
+  set(_Ruby_VERSION_SHORT_NODOT "${Ruby_VERSION_MAJOR}${Ruby_VERSION_MINOR}")
+  set(_Ruby_NODOT_VERSION "${Ruby_VERSION_MAJOR}${Ruby_VERSION_MINOR}${Ruby_VERSION_PATCH}")
+endif()
+
+# FIXME: Currently we require both the interpreter and development components to be found
+# in order to use either.  See issue #20474.
+find_path(Ruby_INCLUDE_DIR
+  NAMES ruby.h
+  HINTS
+    ${Ruby_HDR_DIR}
+    ${Ruby_ARCH_DIR}
+    /usr/lib/ruby/${_Ruby_VERSION_SHORT}/i586-linux-gnu/
+)
+
+set(Ruby_INCLUDE_DIRS ${Ruby_INCLUDE_DIR})
+
+# if ruby > 1.8 is required or if ruby > 1.8 was found, search for the config.h dir
+if( Ruby_FIND_VERSION VERSION_GREATER_EQUAL "1.9"  OR  Ruby_VERSION VERSION_GREATER_EQUAL "1.9"  OR  Ruby_HDR_DIR)
+  find_path(Ruby_CONFIG_INCLUDE_DIR
+    NAMES ruby/config.h  config.h
+    HINTS
+      ${Ruby_HDR_DIR}/${Ruby_ARCH}
+      ${Ruby_ARCH_DIR}
+      ${Ruby_ARCHHDR_DIR}
+  )
+
+  set(Ruby_INCLUDE_DIRS ${Ruby_INCLUDE_DIRS} ${Ruby_CONFIG_INCLUDE_DIR} )
+endif()
+
+
+# Determine the list of possible names for the ruby library
+set(_Ruby_POSSIBLE_LIB_NAMES ruby ruby-static ruby${_Ruby_VERSION_SHORT} ruby${_Ruby_VERSION_SHORT_NODOT} ruby-${_Ruby_VERSION_SHORT} ruby-${Ruby_VERSION})
+
+if(WIN32)
+  if(MSVC_TOOLSET_VERSION)
+    set(_Ruby_MSVC_RUNTIME "${MSVC_TOOLSET_VERSION}")
+  else()
+    set(_Ruby_MSVC_RUNTIME "")
+  endif()
+
+  set(_Ruby_ARCH_PREFIX "")
+  if(CMAKE_SIZEOF_VOID_P EQUAL 8)
+    set(_Ruby_ARCH_PREFIX "x64-")
+  endif()
+
+  list(APPEND _Ruby_POSSIBLE_LIB_NAMES
+             "${_Ruby_ARCH_PREFIX}msvcr${_Ruby_MSVC_RUNTIME}-ruby${_Ruby_NODOT_VERSION}"
+             "${_Ruby_ARCH_PREFIX}msvcr${_Ruby_MSVC_RUNTIME}-ruby${_Ruby_NODOT_VERSION}-static"
+             "${_Ruby_ARCH_PREFIX}msvcrt-ruby${_Ruby_NODOT_VERSION}"
+             "${_Ruby_ARCH_PREFIX}msvcrt-ruby${_Ruby_NODOT_VERSION}-static" )
+endif()
+
+find_library(Ruby_LIBRARY NAMES ${_Ruby_POSSIBLE_LIB_NAMES} HINTS ${Ruby_POSSIBLE_LIB_DIR} )
+
+set(_Ruby_REQUIRED_VARS Ruby_EXECUTABLE Ruby_INCLUDE_DIR Ruby_LIBRARY)
+if(_Ruby_VERSION_SHORT_NODOT GREATER 18)
+  list(APPEND _Ruby_REQUIRED_VARS Ruby_CONFIG_INCLUDE_DIR)
+endif()
+
+if(_Ruby_DEBUG_OUTPUT)
+  message(STATUS "--------FindRuby.cmake debug------------")
+  message(STATUS "_Ruby_POSSIBLE_EXECUTABLE_NAMES: ${_Ruby_POSSIBLE_EXECUTABLE_NAMES}")
+  message(STATUS "_Ruby_POSSIBLE_LIB_NAMES: ${_Ruby_POSSIBLE_LIB_NAMES}")
+  message(STATUS "Ruby_ARCH_DIR: ${Ruby_ARCH_DIR}")
+  message(STATUS "Ruby_HDR_DIR: ${Ruby_HDR_DIR}")
+  message(STATUS "Ruby_POSSIBLE_LIB_DIR: ${Ruby_POSSIBLE_LIB_DIR}")
+  message(STATUS "Found Ruby_VERSION: \"${Ruby_VERSION}\" , short: \"${_Ruby_VERSION_SHORT}\", nodot: \"${_Ruby_VERSION_SHORT_NODOT}\"")
+  message(STATUS "_Ruby_REQUIRED_VARS: ${_Ruby_REQUIRED_VARS}")
+  message(STATUS "Ruby_EXECUTABLE: ${Ruby_EXECUTABLE}")
+  message(STATUS "Ruby_LIBRARY: ${Ruby_LIBRARY}")
+  message(STATUS "Ruby_INCLUDE_DIR: ${Ruby_INCLUDE_DIR}")
+  message(STATUS "Ruby_CONFIG_INCLUDE_DIR: ${Ruby_CONFIG_INCLUDE_DIR}")
+  message(STATUS "--------------------")
+endif()
+
+include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(Ruby  REQUIRED_VARS  ${_Ruby_REQUIRED_VARS}
+                                        VERSION_VAR Ruby_VERSION )
+
+if(Ruby_FOUND)
+  set(Ruby_LIBRARIES ${Ruby_LIBRARY})
+endif()
+
+mark_as_advanced(
+  Ruby_EXECUTABLE
+  Ruby_LIBRARY
+  Ruby_INCLUDE_DIR
+  Ruby_CONFIG_INCLUDE_DIR
+  )
+
+# Set some variables for compatibility with previous version of this file (no need to provide a CamelCase version of that...)
+set(RUBY_POSSIBLE_LIB_PATH ${Ruby_POSSIBLE_LIB_DIR})
+set(RUBY_RUBY_LIB_PATH ${Ruby_RUBY_LIB_DIR})
+set(RUBY_INCLUDE_PATH ${Ruby_INCLUDE_DIRS})
+
+# Backwards compatibility
+# Define upper case versions of output variables
+foreach(Camel
+    Ruby_EXECUTABLE
+    Ruby_INCLUDE_DIRS
+    Ruby_LIBRARY
+    Ruby_VERSION
+    Ruby_VERSION_MAJOR
+    Ruby_VERSION_MINOR
+    Ruby_VERSION_PATCH
+    Ruby_INCLUDE_PATH
+
+    Ruby_ARCH_DIR
+    Ruby_ARCH
+    Ruby_HDR_DIR
+    Ruby_ARCHHDR_DIR
+    Ruby_POSSIBLE_LIB_DIR
+    Ruby_RUBY_LIB_DIR
+    Ruby_SITEARCH_DIR
+    Ruby_SITELIB_DIR
+    Ruby_HAS_VENDOR_RUBY
+    Ruby_VENDORARCH_DIR
+
+    )
+    string(TOUPPER ${Camel} UPPER)
+    set(${UPPER} ${${Camel}})
+endforeach()
diff --git a/share/cmake-3.17/Modules/FindSDL.cmake b/share/cmake-3.18/Modules/FindSDL.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindSDL.cmake
rename to share/cmake-3.18/Modules/FindSDL.cmake
diff --git a/share/cmake-3.17/Modules/FindSDL_image.cmake b/share/cmake-3.18/Modules/FindSDL_image.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindSDL_image.cmake
rename to share/cmake-3.18/Modules/FindSDL_image.cmake
diff --git a/share/cmake-3.17/Modules/FindSDL_mixer.cmake b/share/cmake-3.18/Modules/FindSDL_mixer.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindSDL_mixer.cmake
rename to share/cmake-3.18/Modules/FindSDL_mixer.cmake
diff --git a/share/cmake-3.17/Modules/FindSDL_net.cmake b/share/cmake-3.18/Modules/FindSDL_net.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindSDL_net.cmake
rename to share/cmake-3.18/Modules/FindSDL_net.cmake
diff --git a/share/cmake-3.17/Modules/FindSDL_sound.cmake b/share/cmake-3.18/Modules/FindSDL_sound.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindSDL_sound.cmake
rename to share/cmake-3.18/Modules/FindSDL_sound.cmake
diff --git a/share/cmake-3.17/Modules/FindSDL_ttf.cmake b/share/cmake-3.18/Modules/FindSDL_ttf.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindSDL_ttf.cmake
rename to share/cmake-3.18/Modules/FindSDL_ttf.cmake
diff --git a/share/cmake-3.17/Modules/FindSQLite3.cmake b/share/cmake-3.18/Modules/FindSQLite3.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindSQLite3.cmake
rename to share/cmake-3.18/Modules/FindSQLite3.cmake
diff --git a/share/cmake-3.18/Modules/FindSWIG.cmake b/share/cmake-3.18/Modules/FindSWIG.cmake
new file mode 100644
index 0000000..2fded49
--- /dev/null
+++ b/share/cmake-3.18/Modules/FindSWIG.cmake
@@ -0,0 +1,110 @@
+# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+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 ``find_package``,
+it will also determine supported target languages.  The module sents the
+following variables:
+
+``SWIG_FOUND``
+  Whether SWIG and any required components were found on the system.
+``SWIG_EXECUTABLE``
+  Path to the SWIG executable.
+``SWIG_DIR``
+  Path to the installed SWIG ``Lib`` directory (result of ``swig -swiglib``).
+``SWIG_VERSION``
+  SWIG executable version (result of ``swig -version``).
+``SWIG_<lang>_FOUND``
+  If ``COMPONENTS`` or ``OPTIONAL_COMPONENTS`` are requested, each available
+  target language ``<lang>`` (lowercase) will be set to TRUE.
+
+Any ``COMPONENTS`` given to ``find_package`` should be the names of supported
+target languages as provided to the LANGUAGE argument of ``swig_add_library``,
+such as ``python`` or ``perl5``. Language names *must* be lowercase.
+
+All information is collected from the ``SWIG_EXECUTABLE``, so the version
+to be found can be changed from the command line by means of setting
+``SWIG_EXECUTABLE``.
+
+Example usage requiring SWIG 4.0 or higher and Python language support, with
+optional Fortran support:
+
+.. code-block:: cmake
+
+   find_package(SWIG 4.0 COMPONENTS python OPTIONAL_COMPONENTS fortran)
+   if(SWIG_FOUND)
+     message("SWIG found: ${SWIG_EXECUTABLE}")
+     if(NOT SWIG_fortran_FOUND)
+       message(WARNING "SWIG Fortran bindings cannot be generated")
+     endif()
+   endif()
+
+.. _`SWIG`: http://swig.org
+
+#]=======================================================================]
+
+find_program(SWIG_EXECUTABLE NAMES swig4.0 swig3.0 swig2.0 swig)
+
+if(SWIG_EXECUTABLE)
+  execute_process(COMMAND ${SWIG_EXECUTABLE} -swiglib
+    OUTPUT_VARIABLE SWIG_swiglib_output
+    ERROR_VARIABLE SWIG_swiglib_error
+    RESULT_VARIABLE SWIG_swiglib_result)
+
+  if(SWIG_swiglib_result)
+    if(SWIG_FIND_REQUIRED)
+      message(SEND_ERROR "Command \"${SWIG_EXECUTABLE} -swiglib\" failed with output:\n${SWIG_swiglib_error}")
+    else()
+      message(STATUS "Command \"${SWIG_EXECUTABLE} -swiglib\" failed with output:\n${SWIG_swiglib_error}")
+    endif()
+  else()
+    string(REGEX REPLACE "[\n\r]+" ";" SWIG_swiglib_output ${SWIG_swiglib_output})
+    find_path(SWIG_DIR swig.swg PATHS ${SWIG_swiglib_output} NO_CMAKE_FIND_ROOT_PATH)
+    if(SWIG_DIR)
+      set(SWIG_USE_FILE ${CMAKE_CURRENT_LIST_DIR}/UseSWIG.cmake)
+      execute_process(COMMAND ${SWIG_EXECUTABLE} -version
+        OUTPUT_VARIABLE SWIG_version_output
+        ERROR_VARIABLE SWIG_version_output
+        RESULT_VARIABLE SWIG_version_result)
+      if(SWIG_version_result)
+        message(SEND_ERROR "Command \"${SWIG_EXECUTABLE} -version\" failed with output:\n${SWIG_version_output}")
+      else()
+        string(REGEX REPLACE ".*SWIG Version[^0-9.]*\([0-9.]+\).*" "\\1"
+          SWIG_version_output "${SWIG_version_output}")
+        set(SWIG_VERSION ${SWIG_version_output} CACHE STRING "Swig version" FORCE)
+      endif()
+    endif()
+  endif()
+
+  if(SWIG_FIND_COMPONENTS)
+    execute_process(COMMAND ${SWIG_EXECUTABLE} -help
+      OUTPUT_VARIABLE SWIG_swighelp_output
+      ERROR_VARIABLE SWIG_swighelp_error
+      RESULT_VARIABLE SWIG_swighelp_result)
+    if(SWIG_swighelp_result)
+      message(SEND_ERROR "Command \"${SWIG_EXECUTABLE} -help\" failed with output:\n${SWIG_swiglib_error}")
+    else()
+      string(REPLACE "\n" ";" SWIG_swighelp_output "${SWIG_swighelp_output}")
+      foreach(SWIG_line IN LISTS SWIG_swighelp_output)
+        if(SWIG_line MATCHES "-([A-Za-z0-9_]+) +- *Generate.*wrappers")
+          set(SWIG_${CMAKE_MATCH_1}_FOUND TRUE)
+        endif()
+      endforeach()
+    endif()
+  endif()
+endif()
+
+include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
+find_package_handle_standard_args(
+  SWIG HANDLE_COMPONENTS
+  REQUIRED_VARS SWIG_EXECUTABLE SWIG_DIR
+  VERSION_VAR SWIG_VERSION)
+
+mark_as_advanced(SWIG_DIR SWIG_VERSION SWIG_EXECUTABLE)
diff --git a/share/cmake-3.17/Modules/FindSelfPackers.cmake b/share/cmake-3.18/Modules/FindSelfPackers.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindSelfPackers.cmake
rename to share/cmake-3.18/Modules/FindSelfPackers.cmake
diff --git a/share/cmake-3.17/Modules/FindSquish.cmake b/share/cmake-3.18/Modules/FindSquish.cmake
similarity index 82%
rename from share/cmake-3.17/Modules/FindSquish.cmake
rename to share/cmake-3.18/Modules/FindSquish.cmake
index 7d49505..91d1410 100644
--- a/share/cmake-3.17/Modules/FindSquish.cmake
+++ b/share/cmake-3.18/Modules/FindSquish.cmake
@@ -9,8 +9,7 @@
 
 
 
-This module can be used to find Squish.  Currently Squish versions 3
-and 4 are supported.
+This module can be used to find Squish.
 
 ::
 
@@ -39,12 +38,12 @@
 
 
 
-It provides the function squish_v4_add_test() for adding a squish test
-to cmake using Squish 4.x:
+It provides the function squish_add_test() for adding a squish test
+to cmake using Squish >= 4.x:
 
 ::
 
-   squish_v4_add_test(cmakeTestName
+   squish_add_test(cmakeTestName
      AUT targetName SUITE suiteName TEST squishTestName
      [SETTINGSGROUP group] [PRE_COMMAND command] [POST_COMMAND command] )
 
@@ -66,8 +65,7 @@
   the name of the squish test, i.e. the name of the subdirectory
   of the test inside the suite directory.
 ``SETTINGSGROUP group``
-  if specified, the given settings group will be used for executing the test.
-  If not specified, the groupname will be "CTest_<username>"
+  deprecated, this argument will be ignored.
 ``PRE_COMMAND command``
   if specified, the given command will be executed before starting the squish test.
 ``POST_COMMAND command``
@@ -78,13 +76,12 @@
 ::
 
    enable_testing()
-   find_package(Squish 4.0)
+   find_package(Squish 6.5)
    if (SQUISH_FOUND)
-      squish_v4_add_test(myTestName
+      squish_add_test(myTestName
         AUT myApp
         SUITE ${CMAKE_SOURCE_DIR}/tests/mySuite
         TEST someSquishTest
-        SETTINGSGROUP myGroup
         )
    endif ()
 
@@ -105,19 +102,12 @@
 ::
 
   enable_testing()
-  find_package(Squish)
+  find_package(Squish 3.0)
   if (SQUISH_FOUND)
     squish_v3_add_test(myTestName myApplication testCase envVars testWrapper)
   endif ()
 
 
-
-macro SQUISH_ADD_TEST(testName applicationUnderTest testCase envVars
-testWrapper)
-
-::
-
-   This is deprecated. Use SQUISH_V3_ADD_TEST() if you are using Squish 3.x instead.
 #]=======================================================================]
 
 set(SQUISH_INSTALL_DIR_STRING "Directory containing the bin, doc, and lib directories for Squish; this should be the root of the installation directory.")
@@ -137,7 +127,8 @@
   string(REPLACE "//" "/" SQUISH_INSTALL_DIR_SEARCH "${SQUISH_INSTALL_DIR_SEARCH}")
 
   # Look for an installation
-  find_path(SQUISH_INSTALL_DIR bin/squishrunner
+  find_path(SQUISH_INSTALL_DIR
+    NAMES bin/squishrunner bin/squishrunner.exe
     HINTS
     # Look for an environment variable SQUISH_INSTALL_DIR.
       ENV SQUISH_INSTALL_DIR
@@ -169,9 +160,9 @@
 
 
 set(SQUISH_VERSION)
-set(SQUISH_VERSION_MAJOR )
-set(SQUISH_VERSION_MINOR )
-set(SQUISH_VERSION_PATCH )
+set(SQUISH_VERSION_MAJOR)
+set(SQUISH_VERSION_MINOR)
+set(SQUISH_VERSION_PATCH)
 
 # record if executables are set
 if(SQUISH_CLIENT_EXECUTABLE)
@@ -203,8 +194,8 @@
 
 set(_SQUISH_MODULE_DIR "${CMAKE_CURRENT_LIST_DIR}")
 
-macro(SQUISH_V3_ADD_TEST testName testAUT testCase envVars testWraper)
-  if("${SQUISH_VERSION_MAJOR}" STREQUAL "4")
+macro(squish_v3_add_test testName testAUT testCase envVars testWraper)
+  if("${SQUISH_VERSION_MAJOR}" STRGREATER "3")
     message(STATUS "Using squish_v3_add_test(), but SQUISH_VERSION_MAJOR is ${SQUISH_VERSION_MAJOR}.\nThis may not work.")
   endif()
 
@@ -227,16 +218,9 @@
 endmacro()
 
 
-macro(SQUISH_ADD_TEST)
-  message(STATUS "Using squish_add_test() is deprecated, use squish_v3_add_test() instead.")
-  squish_v3_add_test(${ARGV})
-endmacro()
-
-
-function(SQUISH_V4_ADD_TEST testName)
-
-  if(NOT "${SQUISH_VERSION_MAJOR}" STREQUAL "4")
-    message(STATUS "Using squish_v4_add_test(), but SQUISH_VERSION_MAJOR is ${SQUISH_VERSION_MAJOR}.\nThis may not work.")
+function(squish_v4_add_test testName)
+  if(NOT "${SQUISH_VERSION_MAJOR}" STRGREATER "3")
+    message(STATUS "Using squish_add_test(), but SQUISH_VERSION_MAJOR is ${SQUISH_VERSION_MAJOR}.\nThis may not work.")
   endif()
 
   set(oneValueArgs AUT SUITE TEST SETTINGSGROUP PRE_COMMAND POST_COMMAND)
@@ -259,10 +243,6 @@
     message(FATAL_ERROR "Required argument TEST not given for SQUISH_ADD_TEST()")
   endif()
 
-  get_target_property(testAUTLocation ${_SQUISH_AUT} LOCATION)
-  get_filename_component(testAUTDir ${testAUTLocation} PATH)
-  get_filename_component(testAUTName ${testAUTLocation} NAME)
-
   get_filename_component(absTestSuite "${_SQUISH_SUITE}" ABSOLUTE)
   if(NOT EXISTS "${absTestSuite}")
     message(FATAL_ERROR "Could not find squish test suite ${_SQUISH_SUITE} (checked ${absTestSuite})")
@@ -273,15 +253,15 @@
     message(FATAL_ERROR "Could not find squish testcase ${_SQUISH_TEST} (checked ${absTestCase})")
   endif()
 
-  if(NOT _SQUISH_SETTINGSGROUP)
-    set(_SQUISH_SETTINGSGROUP "CTest_$ENV{LOGNAME}")
+  if(_SQUISH_SETTINGSGROUP)
+    message("SETTINGSGROUP is deprecated and will be ignored.")
   endif()
 
-  add_test(${testName}
-    ${CMAKE_COMMAND} -V -VV
+  add_test(NAME ${testName}
+    COMMAND ${CMAKE_COMMAND} -V -VV
     "-Dsquish_version:STRING=4"
-    "-Dsquish_aut:STRING=${testAUTName}"
-    "-Dsquish_aut_dir:STRING=${testAUTDir}"
+    "-Dsquish_aut:STRING=$<TARGET_FILE_BASE_NAME:${_SQUISH_AUT}>"
+    "-Dsquish_aut_dir:STRING=$<TARGET_FILE_DIR:${_SQUISH_AUT}>"
     "-Dsquish_server_executable:STRING=${SQUISH_SERVER_EXECUTABLE}"
     "-Dsquish_client_executable:STRING=${SQUISH_CLIENT_EXECUTABLE}"
     "-Dsquish_libqtdir:STRING=${QT_LIBRARY_DIR}"
@@ -290,7 +270,6 @@
     "-Dsquish_env_vars:STRING=${envVars}"
     "-Dsquish_wrapper:STRING=${testWraper}"
     "-Dsquish_module_dir:STRING=${_SQUISH_MODULE_DIR}"
-    "-Dsquish_settingsgroup:STRING=${_SQUISH_SETTINGSGROUP}"
     "-Dsquish_pre_command:STRING=${_SQUISH_PRE_COMMAND}"
     "-Dsquish_post_command:STRING=${_SQUISH_POST_COMMAND}"
     -P "${_SQUISH_MODULE_DIR}/SquishTestScript.cmake"
@@ -299,3 +278,11 @@
     PROPERTIES FAIL_REGULAR_EXPRESSION "FAIL;FAILED;ERROR;FATAL"
     )
 endfunction()
+
+macro(squish_add_test)
+  if("${SQUISH_VERSION_MAJOR}" STRGREATER "3")
+    squish_v4_add_test(${ARGV})
+  else()
+    squish_v3_add_test(${ARGV})
+  endif()
+endmacro()
diff --git a/share/cmake-3.17/Modules/FindSubversion.cmake b/share/cmake-3.18/Modules/FindSubversion.cmake
similarity index 91%
rename from share/cmake-3.17/Modules/FindSubversion.cmake
rename to share/cmake-3.18/Modules/FindSubversion.cmake
index ce280e2..07cb770 100644
--- a/share/cmake-3.17/Modules/FindSubversion.cmake
+++ b/share/cmake-3.18/Modules/FindSubversion.cmake
@@ -79,13 +79,22 @@
 
   execute_process(COMMAND ${Subversion_SVN_EXECUTABLE} --version
     OUTPUT_VARIABLE Subversion_VERSION_SVN
+    ERROR_VARIABLE _Subversion_VERSION_STDERR
+    RESULT_VARIABLE _Subversion_VERSION_RESULT
     OUTPUT_STRIP_TRAILING_WHITESPACE)
 
   # restore the previous LC_ALL
   set(ENV{LC_ALL} ${_Subversion_SAVED_LC_ALL})
 
-  string(REGEX REPLACE "^(.*\n)?svn, version ([.0-9]+).*"
-    "\\2" Subversion_VERSION_SVN "${Subversion_VERSION_SVN}")
+  if(_Subversion_VERSION_RESULT EQUAL 0)
+    string(REGEX REPLACE "^(.*\n)?svn, version ([.0-9]+).*"
+      "\\2" Subversion_VERSION_SVN "${Subversion_VERSION_SVN}")
+  else()
+    unset(Subversion_VERSION_SVN)
+    if(_Subversion_VERSION_STDERR MATCHES "svn: error: The subversion command line tools are no longer provided by Xcode")
+      set(Subversion_SVN_EXECUTABLE Subversion_SVN_EXECUTABLE-NOTFOUND)
+    endif()
+  endif()
 
   macro(Subversion_WC_INFO dir prefix)
 
diff --git a/share/cmake-3.17/Modules/FindTCL.cmake b/share/cmake-3.18/Modules/FindTCL.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindTCL.cmake
rename to share/cmake-3.18/Modules/FindTCL.cmake
diff --git a/share/cmake-3.17/Modules/FindTIFF.cmake b/share/cmake-3.18/Modules/FindTIFF.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindTIFF.cmake
rename to share/cmake-3.18/Modules/FindTIFF.cmake
diff --git a/share/cmake-3.17/Modules/FindTclStub.cmake b/share/cmake-3.18/Modules/FindTclStub.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindTclStub.cmake
rename to share/cmake-3.18/Modules/FindTclStub.cmake
diff --git a/share/cmake-3.17/Modules/FindTclsh.cmake b/share/cmake-3.18/Modules/FindTclsh.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindTclsh.cmake
rename to share/cmake-3.18/Modules/FindTclsh.cmake
diff --git a/share/cmake-3.17/Modules/FindThreads.cmake b/share/cmake-3.18/Modules/FindThreads.cmake
similarity index 98%
rename from share/cmake-3.17/Modules/FindThreads.cmake
rename to share/cmake-3.18/Modules/FindThreads.cmake
index f97e5c8..ee49867 100644
--- a/share/cmake-3.17/Modules/FindThreads.cmake
+++ b/share/cmake-3.18/Modules/FindThreads.cmake
@@ -238,8 +238,8 @@
 
   if(THREADS_HAVE_PTHREAD_ARG)
     set_property(TARGET Threads::Threads
-                 PROPERTY INTERFACE_COMPILE_OPTIONS "$<$<COMPILE_LANGUAGE:CUDA>:SHELL:-Xcompiler -pthread>"
-                                                    "$<$<NOT:$<COMPILE_LANGUAGE:CUDA>>:-pthread>")
+                 PROPERTY INTERFACE_COMPILE_OPTIONS "$<$<COMPILE_LANG_AND_ID:CUDA,NVIDIA>:SHELL:-Xcompiler -pthread>"
+                                                    "$<$<NOT:$<COMPILE_LANG_AND_ID:CUDA,NVIDIA>>:-pthread>")
   endif()
 
   if(CMAKE_THREAD_LIBS_INIT)
diff --git a/share/cmake-3.17/Modules/FindUnixCommands.cmake b/share/cmake-3.18/Modules/FindUnixCommands.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindUnixCommands.cmake
rename to share/cmake-3.18/Modules/FindUnixCommands.cmake
diff --git a/share/cmake-3.17/Modules/FindVulkan.cmake b/share/cmake-3.18/Modules/FindVulkan.cmake
similarity index 79%
rename from share/cmake-3.17/Modules/FindVulkan.cmake
rename to share/cmake-3.18/Modules/FindVulkan.cmake
index 55da55f..4b999b6 100644
--- a/share/cmake-3.17/Modules/FindVulkan.cmake
+++ b/share/cmake-3.18/Modules/FindVulkan.cmake
@@ -28,40 +28,46 @@
   Vulkan_INCLUDE_DIR    - the Vulkan include directory
   Vulkan_LIBRARY        - the path to the Vulkan library
 
+Hints
+^^^^^
+
+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
+``setup-env.sh`` script of the Vulkan SDK directory into the shell
+environment.
+
 #]=======================================================================]
 
 if(WIN32)
   find_path(Vulkan_INCLUDE_DIR
     NAMES vulkan/vulkan.h
-    PATHS
+    HINTS
       "$ENV{VULKAN_SDK}/Include"
     )
 
   if(CMAKE_SIZEOF_VOID_P EQUAL 8)
     find_library(Vulkan_LIBRARY
       NAMES vulkan-1
-      PATHS
+      HINTS
         "$ENV{VULKAN_SDK}/Lib"
         "$ENV{VULKAN_SDK}/Bin"
-        )
+      )
   elseif(CMAKE_SIZEOF_VOID_P EQUAL 4)
     find_library(Vulkan_LIBRARY
       NAMES vulkan-1
-      PATHS
+      HINTS
         "$ENV{VULKAN_SDK}/Lib32"
         "$ENV{VULKAN_SDK}/Bin32"
-        NO_SYSTEM_ENVIRONMENT_PATH
-        )
+      )
   endif()
 else()
-    find_path(Vulkan_INCLUDE_DIR
-      NAMES vulkan/vulkan.h
-      PATHS
-        "$ENV{VULKAN_SDK}/include")
-    find_library(Vulkan_LIBRARY
-      NAMES vulkan
-      PATHS
-        "$ENV{VULKAN_SDK}/lib")
+  find_path(Vulkan_INCLUDE_DIR
+    NAMES vulkan/vulkan.h
+    HINTS "$ENV{VULKAN_SDK}/include")
+  find_library(Vulkan_LIBRARY
+    NAMES vulkan
+    HINTS "$ENV{VULKAN_SDK}/lib")
 endif()
 
 set(Vulkan_LIBRARIES ${Vulkan_LIBRARY})
diff --git a/share/cmake-3.17/Modules/FindWget.cmake b/share/cmake-3.18/Modules/FindWget.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindWget.cmake
rename to share/cmake-3.18/Modules/FindWget.cmake
diff --git a/share/cmake-3.17/Modules/FindWish.cmake b/share/cmake-3.18/Modules/FindWish.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindWish.cmake
rename to share/cmake-3.18/Modules/FindWish.cmake
diff --git a/share/cmake-3.17/Modules/FindX11.cmake b/share/cmake-3.18/Modules/FindX11.cmake
similarity index 87%
rename from share/cmake-3.17/Modules/FindX11.cmake
rename to share/cmake-3.18/Modules/FindX11.cmake
index b28dd12..aa83575 100644
--- a/share/cmake-3.17/Modules/FindX11.cmake
+++ b/share/cmake-3.18/Modules/FindX11.cmake
@@ -25,6 +25,10 @@
   X11_Xaccessrules_INCLUDE_PATH,
   X11_Xaccessstr_INCLUDE_PATH,                       X11_Xaccess_FOUND
   X11_Xau_INCLUDE_PATH,          X11_Xau_LIB,        X11_Xau_FOUND,        X11::Xau
+  X11_xcb_INCLUDE_PATH,          X11_xcb_LIB,        X11_xcb_FOUND,        X11::xcb
+  X11_X11_xcb_INCLUDE_PATH,      X11_X11_xcb_LIB,    X11_X11_xcb_FOUND,    X11::X11_xcb
+  X11_xcb_icccm_INCLUDE_PATH,    X11_xcb_icccm_LIB,  X11_xcb_icccm_FOUND,  X11::xcb_icccm
+  X11_xcb_xkb_INCLUDE_PATH,      X11_xcb_xkb_LIB,    X11_xcb_xkb_FOUND,    X11::xcb_xkb
   X11_Xcomposite_INCLUDE_PATH,   X11_Xcomposite_LIB, X11_Xcomposite_FOUND, X11::Xcomposite
   X11_Xcursor_INCLUDE_PATH,      X11_Xcursor_LIB,    X11_Xcursor_FOUND,    X11::Xcursor
   X11_Xdamage_INCLUDE_PATH,      X11_Xdamage_LIB,    X11_Xdamage_FOUND,    X11::Xdamage
@@ -38,6 +42,8 @@
   X11_Xinerama_INCLUDE_PATH,     X11_Xinerama_LIB,   X11_Xinerama_FOUND,   X11::Xinerama
   X11_Xkb_INCLUDE_PATH,
   X11_Xkblib_INCLUDE_PATH,                           X11_Xkb_FOUND,        X11::Xkb
+  X11_xkbcommon_INCLUDE_PATH,    X11_xkbcommon_LIB,  X11_xkbcommon_FOUND,  X11::xkbcommon
+  X11_xkbcommon_X11_INCLUDE_PATH,X11_xkbcommon_X11_LIB,X11_xkbcommon_X11_FOUND,X11::xkbcommon_X11
   X11_xkbfile_INCLUDE_PATH,      X11_xkbfile_LIB,    X11_xkbfile_FOUND,    X11::xkbfile
   X11_Xmu_INCLUDE_PATH,          X11_Xmu_LIB,        X11_Xmu_FOUND,        X11::Xmu
   X11_Xpm_INCLUDE_PATH,          X11_Xpm_LIB,        X11_Xpm_FOUND,        X11::Xpm
@@ -94,6 +100,9 @@
   find_path(X11_Xaccessrules_INCLUDE_PATH X11/extensions/XKBrules.h  ${X11_INC_SEARCH_PATH})
   find_path(X11_Xaccessstr_INCLUDE_PATH X11/extensions/XKBstr.h      ${X11_INC_SEARCH_PATH})
   find_path(X11_Xau_INCLUDE_PATH X11/Xauth.h                         ${X11_INC_SEARCH_PATH})
+  find_path(X11_xcb_INCLUDE_PATH xcb/xcb.h                           ${X11_INC_SEARCH_PATH})
+  find_path(X11_X11_xcb_INCLUDE_PATH X11/Xlib-xcb.h                  ${X11_INC_SEARCH_PATH})
+  find_path(X11_xcb_icccm_INCLUDE_PATH xcb/xcb_icccm.h               ${X11_INC_SEARCH_PATH})
   find_path(X11_Xcomposite_INCLUDE_PATH X11/extensions/Xcomposite.h  ${X11_INC_SEARCH_PATH})
   find_path(X11_Xcursor_INCLUDE_PATH X11/Xcursor/Xcursor.h           ${X11_INC_SEARCH_PATH})
   find_path(X11_Xdamage_INCLUDE_PATH X11/extensions/Xdamage.h        ${X11_INC_SEARCH_PATH})
@@ -107,6 +116,8 @@
   find_path(X11_Xi_INCLUDE_PATH X11/extensions/XInput.h              ${X11_INC_SEARCH_PATH})
   find_path(X11_Xinerama_INCLUDE_PATH X11/extensions/Xinerama.h      ${X11_INC_SEARCH_PATH})
   find_path(X11_Xkb_INCLUDE_PATH X11/extensions/XKB.h                ${X11_INC_SEARCH_PATH})
+  find_path(X11_xkbcommon_INCLUDE_PATH xkbcommon/xkbcommon.h         ${X11_INC_SEARCH_PATH})
+  find_path(X11_xkbcommon_X11_INCLUDE_PATH xkbcommon/xkbcommon-x11.h ${X11_INC_SEARCH_PATH})
   find_path(X11_Xkblib_INCLUDE_PATH X11/XKBlib.h                     ${X11_INC_SEARCH_PATH})
   find_path(X11_xkbfile_INCLUDE_PATH X11/extensions/XKBfile.h        ${X11_INC_SEARCH_PATH})
   find_path(X11_Xmu_INCLUDE_PATH X11/Xmu/Xmu.h                       ${X11_INC_SEARCH_PATH})
@@ -137,6 +148,10 @@
   find_library(X11_ICE_LIB ICE               ${X11_LIB_SEARCH_PATH})
   find_library(X11_SM_LIB SM                 ${X11_LIB_SEARCH_PATH})
   find_library(X11_Xau_LIB Xau               ${X11_LIB_SEARCH_PATH})
+  find_library(X11_xcb_LIB xcb               ${X11_LIB_SEARCH_PATH})
+  find_library(X11_X11_xcb_LIB X11-xcb       ${X11_LIB_SEARCH_PATH})
+  find_library(X11_xcb_icccm_LIB xcb-icccm   ${X11_LIB_SEARCH_PATH})
+  find_library(X11_xcb_xkb_LIB xcb-xkb       ${X11_LIB_SEARCH_PATH})
   find_library(X11_Xcomposite_LIB Xcomposite ${X11_LIB_SEARCH_PATH})
   find_library(X11_Xcursor_LIB Xcursor       ${X11_LIB_SEARCH_PATH})
   find_library(X11_Xdamage_LIB Xdamage       ${X11_LIB_SEARCH_PATH})
@@ -146,6 +161,8 @@
   find_library(X11_Xft_LIB Xft               ${X11_LIB_SEARCH_PATH})
   find_library(X11_Xi_LIB Xi                 ${X11_LIB_SEARCH_PATH})
   find_library(X11_Xinerama_LIB Xinerama     ${X11_LIB_SEARCH_PATH})
+  find_library(X11_xkbcommon_LIB xkbcommon   ${X11_LIB_SEARCH_PATH})
+  find_library(X11_xkbcommon_X11_LIB xkbcommon-x11   ${X11_LIB_SEARCH_PATH})
   find_library(X11_xkbfile_LIB xkbfile       ${X11_LIB_SEARCH_PATH})
   find_library(X11_Xmu_LIB Xmu               ${X11_LIB_SEARCH_PATH})
   find_library(X11_Xpm_LIB Xpm               ${X11_LIB_SEARCH_PATH})
@@ -221,6 +238,22 @@
     set(X11_Xau_FOUND TRUE)
   endif ()
 
+  if (X11_xcb_LIB AND X11_xcb_INCLUDE_PATH)
+    set(X11_xcb_FOUND TRUE)
+  endif ()
+
+  if (X11_X11_xcb_LIB AND X11_X11_xcb_INCLUDE_PATH)
+    set(X11_X11_xcb_FOUND TRUE)
+  endif ()
+
+  if (X11_xcb_icccm_LIB AND X11_xcb_icccm_INCLUDE_PATH)
+    set(X11_xcb_icccm_FOUND TRUE)
+  endif ()
+
+  if (X11_xcb_xkb_LIB)
+    set(X11_xcb_xkb_FOUND TRUE)
+  endif ()
+
   if (X11_Xdmcp_INCLUDE_PATH AND X11_Xdmcp_LIB)
       set(X11_Xdmcp_FOUND TRUE)
       list(APPEND X11_INCLUDE_DIR ${X11_Xdmcp_INCLUDE_PATH})
@@ -326,6 +359,14 @@
      list(APPEND X11_INCLUDE_DIR ${X11_Xkb_INCLUDE_PATH} )
   endif ()
 
+  if (X11_xkbcommon_INCLUDE_PATH AND X11_xkbcommon_LIB)
+     set(X11_xkbcommon_FOUND TRUE)
+  endif ()
+
+  if (X11_xkbcommon_X11_INCLUDE_PATH AND X11_xkbcommon_X11_LIB)
+     set(X11_xkbcommon_X11_FOUND TRUE)
+  endif ()
+
   if (X11_xkbfile_INCLUDE_PATH AND X11_xkbfile_LIB AND X11_Xlib_INCLUDE_PATH)
      set(X11_xkbfile_FOUND TRUE)
      # Backwards compatibility.
@@ -478,6 +519,35 @@
       INTERFACE_INCLUDE_DIRECTORIES "${X11_Xau_INCLUDE_PATH}")
   endif ()
 
+  if (X11_xcb_FOUND AND NOT TARGET X11::xcb)
+    add_library(X11::xcb UNKNOWN IMPORTED)
+    set_target_properties(X11::xcb PROPERTIES
+      IMPORTED_LOCATION "${X11_xcb_LIB}"
+      INTERFACE_INCLUDE_DIRECTORIES "${X11_xcb_INCLUDE_PATH}")
+  endif ()
+
+  if (X11_X11_xcb_FOUND AND NOT TARGET X11::X11_xcb)
+    add_library(X11::X11_xcb UNKNOWN IMPORTED)
+    set_target_properties(X11::X11_xcb PROPERTIES
+      IMPORTED_LOCATION "${X11_X11_xcb_LIB}"
+      INTERFACE_INCLUDE_DIRECTORIES "${X11_X11_xcb_INCLUDE_PATH}"
+      INTERFACE_LINK_LIBRARIES "X11::xcb;X11::X11")
+  endif ()
+
+  if (X11_xcb_icccm_FOUND AND NOT TARGET X11::xcb_icccm)
+    add_library(X11::xcb_icccm UNKNOWN IMPORTED)
+    set_target_properties(X11::xcb_icccm PROPERTIES
+      IMPORTED_LOCATION "${X11_xcb_icccm_LIB}"
+      INTERFACE_LINK_LIBRARIES "X11::xcb")
+  endif ()
+
+  if (X11_xcb_xkb_FOUND AND NOT TARGET X11::xcb_xkb)
+    add_library(X11::xcb_xkb UNKNOWN IMPORTED)
+    set_target_properties(X11::xcb_xkb PROPERTIES
+      IMPORTED_LOCATION "${X11_xcb_xkb_LIB}"
+      INTERFACE_LINK_LIBRARIES "X11::xcb")
+  endif ()
+
   if (X11_Xcomposite_FOUND AND NOT TARGET X11::Xcomposite)
     add_library(X11::Xcomposite UNKNOWN IMPORTED)
     set_target_properties(X11::Xcomposite PROPERTIES
@@ -572,6 +642,21 @@
       INTERFACE_LINK_LIBRARIES "X11::X11")
   endif ()
 
+  if (X11_xkbcommon_FOUND AND NOT TARGET X11::xkbcommon)
+    add_library(X11::xkbcommon UNKNOWN IMPORTED)
+    set_target_properties(X11::xkbcommon PROPERTIES
+      IMPORTED_LOCATION "${X11_xkbcommon_LIB}"
+      INTERFACE_INCLUDE_DIRECTORIES "${X11_xkbcommon_INCLUDE_PATH}")
+  endif ()
+
+  if (X11_xkbcommon_X11_FOUND AND NOT TARGET X11::xkbcommon_X11)
+    add_library(X11::xkbcommon_X11 UNKNOWN IMPORTED)
+    set_target_properties(X11::xkbcommon_X11 PROPERTIES
+      IMPORTED_LOCATION "${X11_xkbcommon_X11_LIB}"
+      INTERFACE_INCLUDE_DIRECTORIES "${X11_xkbcommon_X11_INCLUDE_PATH}"
+      INTERFACE_LINK_LIBRARIES "X11::X11;X11::xkbcommon")
+  endif ()
+
   if (X11_xkbfile_FOUND AND NOT TARGET X11::xkbfile)
     add_library(X11::xkbfile UNKNOWN IMPORTED)
     set_target_properties(X11::xkbfile PROPERTIES
@@ -668,6 +753,11 @@
     X11_Xext_LIB
     X11_Xau_LIB
     X11_Xau_INCLUDE_PATH
+    X11_xcb_LIB
+    X11_xcb_INCLUDE_PATH
+    X11_xcb_xkb_LIB
+    X11_X11_xcb_LIB
+    X11_X11_xcb_INCLUDE_PATH
     X11_Xlib_INCLUDE_PATH
     X11_Xutil_INCLUDE_PATH
     X11_Xcomposite_INCLUDE_PATH
@@ -704,6 +794,10 @@
     X11_Xdmcp_INCLUDE_PATH
     X11_Xkb_INCLUDE_PATH
     X11_Xkblib_INCLUDE_PATH
+    X11_xkbcommon_INCLUDE_PATH
+    X11_xkbcommon_LIB
+    X11_xkbcommon_X11_INCLUDE_PATH
+    X11_xkbcommon_X11_LIB
     X11_xkbfile_INCLUDE_PATH
     X11_xkbfile_LIB
     X11_Xmu_INCLUDE_PATH
diff --git a/share/cmake-3.17/Modules/FindXCTest.cmake b/share/cmake-3.18/Modules/FindXCTest.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindXCTest.cmake
rename to share/cmake-3.18/Modules/FindXCTest.cmake
diff --git a/share/cmake-3.17/Modules/FindXMLRPC.cmake b/share/cmake-3.18/Modules/FindXMLRPC.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindXMLRPC.cmake
rename to share/cmake-3.18/Modules/FindXMLRPC.cmake
diff --git a/share/cmake-3.17/Modules/FindXalanC.cmake b/share/cmake-3.18/Modules/FindXalanC.cmake
similarity index 97%
rename from share/cmake-3.17/Modules/FindXalanC.cmake
rename to share/cmake-3.18/Modules/FindXalanC.cmake
index 3adaa44..54783e3 100644
--- a/share/cmake-3.17/Modules/FindXalanC.cmake
+++ b/share/cmake-3.18/Modules/FindXalanC.cmake
@@ -47,9 +47,9 @@
 function(_XalanC_GET_VERSION  version_hdr)
     file(STRINGS ${version_hdr} _contents REGEX "^[ \t]*#define XALAN_VERSION_.*")
     if(_contents)
-        string(REGEX REPLACE "[^*]*#define XALAN_VERSION_MAJOR[ \t]+([0-9]+).*" "\\1" XalanC_MAJOR "${_contents}")
-        string(REGEX REPLACE "[^*]*#define XALAN_VERSION_MINOR[ \t]+([0-9]+).*" "\\1" XalanC_MINOR "${_contents}")
-        string(REGEX REPLACE "[^*]*#define XALAN_VERSION_REVISION[ \t]+([0-9]+).*" "\\1" XalanC_PATCH "${_contents}")
+        string(REGEX REPLACE "[^*]*#define XALAN_VERSION_MAJOR[ \t(]+([0-9]+).*" "\\1" XalanC_MAJOR "${_contents}")
+        string(REGEX REPLACE "[^*]*#define XALAN_VERSION_MINOR[ \t(]+([0-9]+).*" "\\1" XalanC_MINOR "${_contents}")
+        string(REGEX REPLACE "[^*]*#define XALAN_VERSION_REVISION[ \t(]+([0-9]+).*" "\\1" XalanC_PATCH "${_contents}")
 
         if(NOT XalanC_MAJOR MATCHES "^[0-9]+$")
             message(FATAL_ERROR "Version parsing failed for XALAN_VERSION_MAJOR!")
diff --git a/share/cmake-3.17/Modules/FindXercesC.cmake b/share/cmake-3.18/Modules/FindXercesC.cmake
similarity index 93%
rename from share/cmake-3.17/Modules/FindXercesC.cmake
rename to share/cmake-3.18/Modules/FindXercesC.cmake
index 47bfd62..db78b61 100644
--- a/share/cmake-3.17/Modules/FindXercesC.cmake
+++ b/share/cmake-3.18/Modules/FindXercesC.cmake
@@ -81,10 +81,14 @@
 if(NOT XercesC_LIBRARY)
   # Find all XercesC libraries
   find_library(XercesC_LIBRARY_RELEASE
-               NAMES "xerces-c" "xerces-c_${XercesC_VERSION_MAJOR}"
+               NAMES "xerces-c"
+                     "xerces-c_${XercesC_VERSION_MAJOR}"
+                     "xerces-c-${XercesC_VERSION_MAJOR}.${XercesC_VERSION_MINOR}"
                DOC "Xerces-C++ libraries (release)")
   find_library(XercesC_LIBRARY_DEBUG
-               NAMES "xerces-cd" "xerces-c_${XercesC_VERSION_MAJOR}D" "xerces-c_${XercesC_VERSION_MAJOR}_${XercesC_VERSION_MINOR}D"
+               NAMES "xerces-cd"
+                     "xerces-c_${XercesC_VERSION_MAJOR}D"
+                     "xerces-c_${XercesC_VERSION_MAJOR}_${XercesC_VERSION_MINOR}D"
                DOC "Xerces-C++ libraries (debug)")
   include(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake)
   select_library_configurations(XercesC)
diff --git a/share/cmake-3.17/Modules/FindZLIB.cmake b/share/cmake-3.18/Modules/FindZLIB.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindZLIB.cmake
rename to share/cmake-3.18/Modules/FindZLIB.cmake
diff --git a/share/cmake-3.17/Modules/Findosg.cmake b/share/cmake-3.18/Modules/Findosg.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Findosg.cmake
rename to share/cmake-3.18/Modules/Findosg.cmake
diff --git a/share/cmake-3.17/Modules/FindosgAnimation.cmake b/share/cmake-3.18/Modules/FindosgAnimation.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindosgAnimation.cmake
rename to share/cmake-3.18/Modules/FindosgAnimation.cmake
diff --git a/share/cmake-3.17/Modules/FindosgDB.cmake b/share/cmake-3.18/Modules/FindosgDB.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindosgDB.cmake
rename to share/cmake-3.18/Modules/FindosgDB.cmake
diff --git a/share/cmake-3.17/Modules/FindosgFX.cmake b/share/cmake-3.18/Modules/FindosgFX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindosgFX.cmake
rename to share/cmake-3.18/Modules/FindosgFX.cmake
diff --git a/share/cmake-3.17/Modules/FindosgGA.cmake b/share/cmake-3.18/Modules/FindosgGA.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindosgGA.cmake
rename to share/cmake-3.18/Modules/FindosgGA.cmake
diff --git a/share/cmake-3.17/Modules/FindosgIntrospection.cmake b/share/cmake-3.18/Modules/FindosgIntrospection.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindosgIntrospection.cmake
rename to share/cmake-3.18/Modules/FindosgIntrospection.cmake
diff --git a/share/cmake-3.17/Modules/FindosgManipulator.cmake b/share/cmake-3.18/Modules/FindosgManipulator.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindosgManipulator.cmake
rename to share/cmake-3.18/Modules/FindosgManipulator.cmake
diff --git a/share/cmake-3.17/Modules/FindosgParticle.cmake b/share/cmake-3.18/Modules/FindosgParticle.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindosgParticle.cmake
rename to share/cmake-3.18/Modules/FindosgParticle.cmake
diff --git a/share/cmake-3.17/Modules/FindosgPresentation.cmake b/share/cmake-3.18/Modules/FindosgPresentation.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindosgPresentation.cmake
rename to share/cmake-3.18/Modules/FindosgPresentation.cmake
diff --git a/share/cmake-3.17/Modules/FindosgProducer.cmake b/share/cmake-3.18/Modules/FindosgProducer.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindosgProducer.cmake
rename to share/cmake-3.18/Modules/FindosgProducer.cmake
diff --git a/share/cmake-3.17/Modules/FindosgQt.cmake b/share/cmake-3.18/Modules/FindosgQt.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindosgQt.cmake
rename to share/cmake-3.18/Modules/FindosgQt.cmake
diff --git a/share/cmake-3.17/Modules/FindosgShadow.cmake b/share/cmake-3.18/Modules/FindosgShadow.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindosgShadow.cmake
rename to share/cmake-3.18/Modules/FindosgShadow.cmake
diff --git a/share/cmake-3.17/Modules/FindosgSim.cmake b/share/cmake-3.18/Modules/FindosgSim.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindosgSim.cmake
rename to share/cmake-3.18/Modules/FindosgSim.cmake
diff --git a/share/cmake-3.17/Modules/FindosgTerrain.cmake b/share/cmake-3.18/Modules/FindosgTerrain.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindosgTerrain.cmake
rename to share/cmake-3.18/Modules/FindosgTerrain.cmake
diff --git a/share/cmake-3.17/Modules/FindosgText.cmake b/share/cmake-3.18/Modules/FindosgText.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindosgText.cmake
rename to share/cmake-3.18/Modules/FindosgText.cmake
diff --git a/share/cmake-3.17/Modules/FindosgUtil.cmake b/share/cmake-3.18/Modules/FindosgUtil.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindosgUtil.cmake
rename to share/cmake-3.18/Modules/FindosgUtil.cmake
diff --git a/share/cmake-3.17/Modules/FindosgViewer.cmake b/share/cmake-3.18/Modules/FindosgViewer.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindosgViewer.cmake
rename to share/cmake-3.18/Modules/FindosgViewer.cmake
diff --git a/share/cmake-3.17/Modules/FindosgVolume.cmake b/share/cmake-3.18/Modules/FindosgVolume.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindosgVolume.cmake
rename to share/cmake-3.18/Modules/FindosgVolume.cmake
diff --git a/share/cmake-3.17/Modules/FindosgWidget.cmake b/share/cmake-3.18/Modules/FindosgWidget.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindosgWidget.cmake
rename to share/cmake-3.18/Modules/FindosgWidget.cmake
diff --git a/share/cmake-3.17/Modules/Findosg_functions.cmake b/share/cmake-3.18/Modules/Findosg_functions.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Findosg_functions.cmake
rename to share/cmake-3.18/Modules/Findosg_functions.cmake
diff --git a/share/cmake-3.17/Modules/FindwxWidgets.cmake b/share/cmake-3.18/Modules/FindwxWidgets.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindwxWidgets.cmake
rename to share/cmake-3.18/Modules/FindwxWidgets.cmake
diff --git a/share/cmake-3.17/Modules/FindwxWindows.cmake b/share/cmake-3.18/Modules/FindwxWindows.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FindwxWindows.cmake
rename to share/cmake-3.18/Modules/FindwxWindows.cmake
diff --git a/share/cmake-3.17/Modules/FortranCInterface.cmake b/share/cmake-3.18/Modules/FortranCInterface.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/FortranCInterface.cmake
rename to share/cmake-3.18/Modules/FortranCInterface.cmake
diff --git a/share/cmake-3.17/Modules/FortranCInterface/CMakeLists.txt b/share/cmake-3.18/Modules/FortranCInterface/CMakeLists.txt
similarity index 96%
rename from share/cmake-3.17/Modules/FortranCInterface/CMakeLists.txt
rename to share/cmake-3.18/Modules/FortranCInterface/CMakeLists.txt
index 381080b..13e4498 100644
--- a/share/cmake-3.17/Modules/FortranCInterface/CMakeLists.txt
+++ b/share/cmake-3.18/Modules/FortranCInterface/CMakeLists.txt
@@ -101,3 +101,7 @@
 # Require symbols through Fortran.
 add_executable(FortranCInterface main.F call_sub.f ${call_mod})
 target_link_libraries(FortranCInterface PUBLIC symbols)
+
+file(GENERATE OUTPUT exe-$<CONFIG>.cmake CONTENT [[
+set(FortranCInterface_EXE "$<TARGET_FILE:FortranCInterface>")
+]])
diff --git a/share/cmake-3.17/Modules/FortranCInterface/Detect.cmake b/share/cmake-3.18/Modules/FortranCInterface/Detect.cmake
similarity index 94%
rename from share/cmake-3.17/Modules/FortranCInterface/Detect.cmake
rename to share/cmake-3.18/Modules/FortranCInterface/Detect.cmake
index 33de6c6..c75067b 100644
--- a/share/cmake-3.17/Modules/FortranCInterface/Detect.cmake
+++ b/share/cmake-3.18/Modules/FortranCInterface/Detect.cmake
@@ -43,17 +43,11 @@
 unset(FortranCInterface_COMPILED CACHE)
 
 # Locate the sample project executable.
+set(FortranCInterface_EXE)
 if(FortranCInterface_COMPILED)
-  find_program(FortranCInterface_EXE
-    NAMES FortranCInterface${CMAKE_EXECUTABLE_SUFFIX}
-    PATHS ${FortranCInterface_BINARY_DIR} ${FortranCInterface_BINARY_DIR}/Release
-    NO_DEFAULT_PATH
-    )
-  set(FortranCInterface_EXE ${FortranCInterface_EXE})
-  unset(FortranCInterface_EXE CACHE)
+  include(${FortranCInterface_BINARY_DIR}/exe-Release.cmake OPTIONAL)
 else()
   set(_result "Failed to compile")
-  set(FortranCInterface_EXE)
   file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
     "Fortran/C interface test project failed with the following output:\n"
     "${FortranCInterface_OUTPUT}\n")
diff --git a/share/cmake-3.17/Modules/FortranCInterface/Input.cmake.in b/share/cmake-3.18/Modules/FortranCInterface/Input.cmake.in
similarity index 100%
rename from share/cmake-3.17/Modules/FortranCInterface/Input.cmake.in
rename to share/cmake-3.18/Modules/FortranCInterface/Input.cmake.in
diff --git a/share/cmake-3.17/Modules/FortranCInterface/MYMODULE.c b/share/cmake-3.18/Modules/FortranCInterface/MYMODULE.c
similarity index 100%
rename from share/cmake-3.17/Modules/FortranCInterface/MYMODULE.c
rename to share/cmake-3.18/Modules/FortranCInterface/MYMODULE.c
diff --git a/share/cmake-3.17/Modules/FortranCInterface/MY_MODULE.c b/share/cmake-3.18/Modules/FortranCInterface/MY_MODULE.c
similarity index 100%
rename from share/cmake-3.17/Modules/FortranCInterface/MY_MODULE.c
rename to share/cmake-3.18/Modules/FortranCInterface/MY_MODULE.c
diff --git a/share/cmake-3.17/Modules/FortranCInterface/Macro.h.in b/share/cmake-3.18/Modules/FortranCInterface/Macro.h.in
similarity index 100%
rename from share/cmake-3.17/Modules/FortranCInterface/Macro.h.in
rename to share/cmake-3.18/Modules/FortranCInterface/Macro.h.in
diff --git a/share/cmake-3.17/Modules/FortranCInterface/Output.cmake.in b/share/cmake-3.18/Modules/FortranCInterface/Output.cmake.in
similarity index 100%
rename from share/cmake-3.17/Modules/FortranCInterface/Output.cmake.in
rename to share/cmake-3.18/Modules/FortranCInterface/Output.cmake.in
diff --git a/share/cmake-3.17/Modules/FortranCInterface/Verify/CMakeLists.txt b/share/cmake-3.18/Modules/FortranCInterface/Verify/CMakeLists.txt
similarity index 100%
rename from share/cmake-3.17/Modules/FortranCInterface/Verify/CMakeLists.txt
rename to share/cmake-3.18/Modules/FortranCInterface/Verify/CMakeLists.txt
diff --git a/share/cmake-3.17/Modules/FortranCInterface/Verify/VerifyC.c b/share/cmake-3.18/Modules/FortranCInterface/Verify/VerifyC.c
similarity index 100%
rename from share/cmake-3.17/Modules/FortranCInterface/Verify/VerifyC.c
rename to share/cmake-3.18/Modules/FortranCInterface/Verify/VerifyC.c
diff --git a/share/cmake-3.17/Modules/FortranCInterface/Verify/VerifyCXX.cxx b/share/cmake-3.18/Modules/FortranCInterface/Verify/VerifyCXX.cxx
similarity index 100%
rename from share/cmake-3.17/Modules/FortranCInterface/Verify/VerifyCXX.cxx
rename to share/cmake-3.18/Modules/FortranCInterface/Verify/VerifyCXX.cxx
diff --git a/share/cmake-3.17/Modules/FortranCInterface/Verify/VerifyFortran.f b/share/cmake-3.18/Modules/FortranCInterface/Verify/VerifyFortran.f
similarity index 100%
rename from share/cmake-3.17/Modules/FortranCInterface/Verify/VerifyFortran.f
rename to share/cmake-3.18/Modules/FortranCInterface/Verify/VerifyFortran.f
diff --git a/share/cmake-3.17/Modules/FortranCInterface/Verify/main.c b/share/cmake-3.18/Modules/FortranCInterface/Verify/main.c
similarity index 100%
rename from share/cmake-3.17/Modules/FortranCInterface/Verify/main.c
rename to share/cmake-3.18/Modules/FortranCInterface/Verify/main.c
diff --git a/share/cmake-3.17/Modules/FortranCInterface/call_mod.f90 b/share/cmake-3.18/Modules/FortranCInterface/call_mod.f90
similarity index 100%
rename from share/cmake-3.17/Modules/FortranCInterface/call_mod.f90
rename to share/cmake-3.18/Modules/FortranCInterface/call_mod.f90
diff --git a/share/cmake-3.17/Modules/FortranCInterface/call_sub.f b/share/cmake-3.18/Modules/FortranCInterface/call_sub.f
similarity index 100%
rename from share/cmake-3.17/Modules/FortranCInterface/call_sub.f
rename to share/cmake-3.18/Modules/FortranCInterface/call_sub.f
diff --git a/share/cmake-3.17/Modules/FortranCInterface/main.F b/share/cmake-3.18/Modules/FortranCInterface/main.F
similarity index 100%
rename from share/cmake-3.17/Modules/FortranCInterface/main.F
rename to share/cmake-3.18/Modules/FortranCInterface/main.F
diff --git a/share/cmake-3.17/Modules/FortranCInterface/my_module.f90 b/share/cmake-3.18/Modules/FortranCInterface/my_module.f90
similarity index 100%
rename from share/cmake-3.17/Modules/FortranCInterface/my_module.f90
rename to share/cmake-3.18/Modules/FortranCInterface/my_module.f90
diff --git a/share/cmake-3.17/Modules/FortranCInterface/my_module_.c b/share/cmake-3.18/Modules/FortranCInterface/my_module_.c
similarity index 100%
rename from share/cmake-3.17/Modules/FortranCInterface/my_module_.c
rename to share/cmake-3.18/Modules/FortranCInterface/my_module_.c
diff --git a/share/cmake-3.17/Modules/FortranCInterface/my_sub.f b/share/cmake-3.18/Modules/FortranCInterface/my_sub.f
similarity index 100%
rename from share/cmake-3.17/Modules/FortranCInterface/my_sub.f
rename to share/cmake-3.18/Modules/FortranCInterface/my_sub.f
diff --git a/share/cmake-3.17/Modules/FortranCInterface/mymodule.f90 b/share/cmake-3.18/Modules/FortranCInterface/mymodule.f90
similarity index 100%
rename from share/cmake-3.17/Modules/FortranCInterface/mymodule.f90
rename to share/cmake-3.18/Modules/FortranCInterface/mymodule.f90
diff --git a/share/cmake-3.17/Modules/FortranCInterface/mymodule_.c b/share/cmake-3.18/Modules/FortranCInterface/mymodule_.c
similarity index 100%
rename from share/cmake-3.17/Modules/FortranCInterface/mymodule_.c
rename to share/cmake-3.18/Modules/FortranCInterface/mymodule_.c
diff --git a/share/cmake-3.17/Modules/FortranCInterface/mysub.f b/share/cmake-3.18/Modules/FortranCInterface/mysub.f
similarity index 100%
rename from share/cmake-3.17/Modules/FortranCInterface/mysub.f
rename to share/cmake-3.18/Modules/FortranCInterface/mysub.f
diff --git a/share/cmake-3.17/Modules/FortranCInterface/symbol.c.in b/share/cmake-3.18/Modules/FortranCInterface/symbol.c.in
similarity index 100%
rename from share/cmake-3.17/Modules/FortranCInterface/symbol.c.in
rename to share/cmake-3.18/Modules/FortranCInterface/symbol.c.in
diff --git a/share/cmake-3.17/Modules/GNUInstallDirs.cmake b/share/cmake-3.18/Modules/GNUInstallDirs.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/GNUInstallDirs.cmake
rename to share/cmake-3.18/Modules/GNUInstallDirs.cmake
diff --git a/share/cmake-3.17/Modules/GenerateExportHeader.cmake b/share/cmake-3.18/Modules/GenerateExportHeader.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/GenerateExportHeader.cmake
rename to share/cmake-3.18/Modules/GenerateExportHeader.cmake
diff --git a/share/cmake-3.17/Modules/GetPrerequisites.cmake b/share/cmake-3.18/Modules/GetPrerequisites.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/GetPrerequisites.cmake
rename to share/cmake-3.18/Modules/GetPrerequisites.cmake
diff --git a/share/cmake-3.17/Modules/GoogleTest.cmake b/share/cmake-3.18/Modules/GoogleTest.cmake
similarity index 73%
rename from share/cmake-3.17/Modules/GoogleTest.cmake
rename to share/cmake-3.18/Modules/GoogleTest.cmake
index a5bb863..b210a77 100644
--- a/share/cmake-3.17/Modules/GoogleTest.cmake
+++ b/share/cmake-3.18/Modules/GoogleTest.cmake
@@ -151,9 +151,11 @@
                          [PROPERTIES name1 value1...]
                          [TEST_LIST var]
                          [DISCOVERY_TIMEOUT seconds]
+                         [XML_OUTPUT_DIR dir]
+                         [DISCOVERY_MODE <POST_BUILD|PRE_TEST>]
     )
 
-  ``gtest_discover_tests`` sets up a post-build command on the test executable
+  ``gtest_discover_tests()`` sets up a post-build command on the test executable
   that generates the list of tests by parsing the output from running the test
   with the ``--gtest_list_tests`` argument.  Compared to the source parsing
   approach of :command:`gtest_add_tests`, this ensures that the full list of
@@ -210,7 +212,7 @@
 
   ``PROPERTIES name1 value1...``
     Specifies additional properties to be set on all tests discovered by this
-    invocation of ``gtest_discover_tests``.
+    invocation of ``gtest_discover_tests()``.
 
   ``TEST_LIST var``
     Make the list of tests available in the variable ``var``, rather than the
@@ -236,6 +238,29 @@
       problem.  The ambiguous behavior of the ``TIMEOUT`` keyword in 3.10.1
       and 3.10.2 has not been preserved.
 
+  ``XML_OUTPUT_DIR dir``
+    If specified, the parameter is passed along with ``--gtest_output=xml:``
+    to test executable. The actual file name is the same as the test target,
+    including prefix and suffix. This should be used instead of
+    ``EXTRA_ARGS --gtest_output=xml`` to avoid race conditions writing the
+    XML result output when using parallel test execution.
+
+  ``DISCOVERY_MODE``
+    Provides greater control over when ``gtest_discover_tests()`` performs test
+    discovery. By default, ``POST_BUILD`` sets up a post-build command
+    to perform test discovery at build time. In certain scenarios, like
+    cross-compiling, this ``POST_BUILD`` behavior is not desirable.
+    By contrast, ``PRE_TEST`` delays test discovery until just prior to test
+    execution. This way test discovery occurs in the target environment
+    where the test has a better chance at finding appropriate runtime
+    dependencies.
+
+    ``DISCOVERY_MODE`` defaults to the value of the
+    ``CMAKE_GTEST_DISCOVER_TESTS_DISCOVERY_MODE`` variable if it is not
+    passed when calling ``gtest_discover_tests()``. This provides a mechanism
+    for globally selecting a preferred test discovery behavior without having
+    to modify each call site.
+
 #]=======================================================================]
 
 # Save project's policies
@@ -368,11 +393,12 @@
 endfunction()
 
 #------------------------------------------------------------------------------
+
 function(gtest_discover_tests TARGET)
   cmake_parse_arguments(
     ""
     "NO_PRETTY_TYPES;NO_PRETTY_VALUES"
-    "TEST_PREFIX;TEST_SUFFIX;WORKING_DIRECTORY;TEST_LIST;DISCOVERY_TIMEOUT"
+    "TEST_PREFIX;TEST_SUFFIX;WORKING_DIRECTORY;TEST_LIST;DISCOVERY_TIMEOUT;XML_OUTPUT_DIR;DISCOVERY_MODE"
     "EXTRA_ARGS;PROPERTIES"
     ${ARGN}
   )
@@ -386,6 +412,12 @@
   if(NOT _DISCOVERY_TIMEOUT)
     set(_DISCOVERY_TIMEOUT 5)
   endif()
+  if(NOT _DISCOVERY_MODE)
+    if(NOT CMAKE_GTEST_DISCOVER_TESTS_DISCOVERY_MODE)
+      set(CMAKE_GTEST_DISCOVER_TESTS_DISCOVERY_MODE "POST_BUILD")
+    endif()
+    set(_DISCOVERY_MODE ${CMAKE_GTEST_DISCOVER_TESTS_DISCOVERY_MODE})
+  endif()
 
   get_property(
     has_counter
@@ -417,34 +449,86 @@
     TARGET ${TARGET}
     PROPERTY CROSSCOMPILING_EMULATOR
   )
-  add_custom_command(
-    TARGET ${TARGET} POST_BUILD
-    BYPRODUCTS "${ctest_tests_file}"
-    COMMAND "${CMAKE_COMMAND}"
-            -D "TEST_TARGET=${TARGET}"
-            -D "TEST_EXECUTABLE=$<TARGET_FILE:${TARGET}>"
-            -D "TEST_EXECUTOR=${crosscompiling_emulator}"
-            -D "TEST_WORKING_DIR=${_WORKING_DIRECTORY}"
-            -D "TEST_EXTRA_ARGS=${_EXTRA_ARGS}"
-            -D "TEST_PROPERTIES=${_PROPERTIES}"
-            -D "TEST_PREFIX=${_TEST_PREFIX}"
-            -D "TEST_SUFFIX=${_TEST_SUFFIX}"
-            -D "NO_PRETTY_TYPES=${_NO_PRETTY_TYPES}"
-            -D "NO_PRETTY_VALUES=${_NO_PRETTY_VALUES}"
-            -D "TEST_LIST=${_TEST_LIST}"
-            -D "CTEST_FILE=${ctest_tests_file}"
-            -D "TEST_DISCOVERY_TIMEOUT=${_DISCOVERY_TIMEOUT}"
-            -P "${_GOOGLETEST_DISCOVER_TESTS_SCRIPT}"
-    VERBATIM
-  )
 
-  file(WRITE "${ctest_include_file}"
-    "if(EXISTS \"${ctest_tests_file}\")\n"
-    "  include(\"${ctest_tests_file}\")\n"
-    "else()\n"
-    "  add_test(${TARGET}_NOT_BUILT ${TARGET}_NOT_BUILT)\n"
-    "endif()\n"
-  )
+  if(_DISCOVERY_MODE STREQUAL "POST_BUILD")
+    add_custom_command(
+      TARGET ${TARGET} POST_BUILD
+      BYPRODUCTS "${ctest_tests_file}"
+      COMMAND "${CMAKE_COMMAND}"
+              -D "TEST_TARGET=${TARGET}"
+              -D "TEST_EXECUTABLE=$<TARGET_FILE:${TARGET}>"
+              -D "TEST_EXECUTOR=${crosscompiling_emulator}"
+              -D "TEST_WORKING_DIR=${_WORKING_DIRECTORY}"
+              -D "TEST_EXTRA_ARGS=${_EXTRA_ARGS}"
+              -D "TEST_PROPERTIES=${_PROPERTIES}"
+              -D "TEST_PREFIX=${_TEST_PREFIX}"
+              -D "TEST_SUFFIX=${_TEST_SUFFIX}"
+              -D "NO_PRETTY_TYPES=${_NO_PRETTY_TYPES}"
+              -D "NO_PRETTY_VALUES=${_NO_PRETTY_VALUES}"
+              -D "TEST_LIST=${_TEST_LIST}"
+              -D "CTEST_FILE=${ctest_tests_file}"
+              -D "TEST_DISCOVERY_TIMEOUT=${_DISCOVERY_TIMEOUT}"
+              -D "TEST_XML_OUTPUT_DIR=${_XML_OUTPUT_DIR}"
+              -P "${_GOOGLETEST_DISCOVER_TESTS_SCRIPT}"
+      VERBATIM
+    )
+
+    file(WRITE "${ctest_include_file}"
+      "if(EXISTS \"${ctest_tests_file}\")\n"
+      "  include(\"${ctest_tests_file}\")\n"
+      "else()\n"
+      "  add_test(${TARGET}_NOT_BUILT ${TARGET}_NOT_BUILT)\n"
+      "endif()\n"
+    )
+  elseif(_DISCOVERY_MODE STREQUAL "PRE_TEST")
+
+    get_property(GENERATOR_IS_MULTI_CONFIG GLOBAL
+        PROPERTY GENERATOR_IS_MULTI_CONFIG
+    )
+
+    if(GENERATOR_IS_MULTI_CONFIG)
+      set(ctest_tests_file "${ctest_file_base}_tests-$<CONFIG>.cmake")
+    endif()
+
+    string(CONCAT ctest_include_content
+      "if(EXISTS \"$<TARGET_FILE:${TARGET}>\")"                                    "\n"
+      "  if(\"$<TARGET_FILE:${TARGET}>\" IS_NEWER_THAN \"${ctest_tests_file}\")"   "\n"
+      "    include(GoogleTestAddTests)"                                            "\n"
+      "    gtest_discover_tests_impl("                                             "\n"
+      "      TEST_EXECUTABLE"        " [==[" "$<TARGET_FILE:${TARGET}>"   "]==]"   "\n"
+      "      TEST_EXECUTOR"          " [==[" "${crosscompiling_emulator}" "]==]"   "\n"
+      "      TEST_WORKING_DIR"       " [==[" "${_WORKING_DIRECTORY}"      "]==]"   "\n"
+      "      TEST_EXTRA_ARGS"        " [==[" "${_EXTRA_ARGS}"             "]==]"   "\n"
+      "      TEST_PROPERTIES"        " [==[" "${_PROPERTIES}"             "]==]"   "\n"
+      "      TEST_PREFIX"            " [==[" "${_TEST_PREFIX}"            "]==]"   "\n"
+      "      TEST_SUFFIX"            " [==[" "${_TEST_SUFFIX}"            "]==]"   "\n"
+      "      NO_PRETTY_TYPES"        " [==[" "${_NO_PRETTY_TYPES}"        "]==]"   "\n"
+      "      NO_PRETTY_VALUES"       " [==[" "${_NO_PRETTY_VALUES}"       "]==]"   "\n"
+      "      TEST_LIST"              " [==[" "${_TEST_LIST}"              "]==]"   "\n"
+      "      CTEST_FILE"             " [==[" "${ctest_tests_file}"        "]==]"   "\n"
+      "      TEST_DISCOVERY_TIMEOUT" " [==[" "${_DISCOVERY_TIMEOUT}"      "]==]"   "\n"
+      "      TEST_XML_OUTPUT_DIR"    " [==[" "${_XML_OUTPUT_DIR}"         "]==]"   "\n"
+      "    )"                                                                      "\n"
+      "  endif()"                                                                  "\n"
+      "  include(\"${ctest_tests_file}\")"                                         "\n"
+      "else()"                                                                     "\n"
+      "  add_test(${TARGET}_NOT_BUILT ${TARGET}_NOT_BUILT)"                        "\n"
+      "endif()"                                                                    "\n"
+    )
+
+    if(GENERATOR_IS_MULTI_CONFIG)
+      foreach(_config ${CMAKE_CONFIGURATION_TYPES})
+        file(GENERATE OUTPUT "${ctest_file_base}_include-${_config}.cmake" CONTENT "${ctest_include_content}" CONDITION $<CONFIG:${_config}>)
+      endforeach()
+      file(WRITE "${ctest_include_file}" "include(\"${ctest_file_base}_include-\${CTEST_CONFIGURATION_TYPE}.cmake\")")
+    else()
+      file(GENERATE OUTPUT "${ctest_file_base}_include.cmake" CONTENT "${ctest_include_content}")
+      file(WRITE "${ctest_include_file}" "include(\"${ctest_file_base}_include.cmake\")")
+    endif()
+
+  else()
+    message(FATAL_ERROR "Unknown DISCOVERY_MODE: ${_DISCOVERY_MODE}")
+  endif()
 
   # Add discovered tests to directory TEST_INCLUDE_FILES
   set_property(DIRECTORY
diff --git a/share/cmake-3.18/Modules/GoogleTestAddTests.cmake b/share/cmake-3.18/Modules/GoogleTestAddTests.cmake
new file mode 100644
index 0000000..5d098d9
--- /dev/null
+++ b/share/cmake-3.18/Modules/GoogleTestAddTests.cmake
@@ -0,0 +1,188 @@
+# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+cmake_minimum_required(VERSION ${CMAKE_VERSION})
+
+# Overwrite possibly existing ${_CTEST_FILE} with empty file
+set(flush_tests_MODE WRITE)
+
+# Flushes script to ${_CTEST_FILE}
+macro(flush_script)
+  file(${flush_tests_MODE} "${_CTEST_FILE}" "${script}")
+  set(flush_tests_MODE APPEND)
+
+  set(script "")
+endmacro()
+
+# Flushes tests_buffer to tests
+macro(flush_tests_buffer)
+  list(APPEND tests "${tests_buffer}")
+  set(tests_buffer "")
+endmacro()
+
+macro(add_command NAME)
+  set(_args "")
+  foreach(_arg ${ARGN})
+    if(_arg MATCHES "[^-./:a-zA-Z0-9_]")
+      string(APPEND _args " [==[${_arg}]==]")
+    else()
+      string(APPEND _args " ${_arg}")
+    endif()
+  endforeach()
+  string(APPEND script "${NAME}(${_args})\n")
+  string(LENGTH "${script}" _script_len)
+  if(${_script_len} GREATER "50000")
+    flush_script()
+  endif()
+  # Unsets macro local variables to prevent leakage outside of this macro.
+  unset(_args)
+  unset(_script_len)
+endmacro()
+
+function(gtest_discover_tests_impl)
+
+  cmake_parse_arguments(
+    ""
+    ""
+    "NO_PRETTY_TYPES;NO_PRETTY_VALUES;TEST_EXECUTABLE;TEST_EXECUTOR;TEST_WORKING_DIR;TEST_PREFIX;TEST_SUFFIX;TEST_LIST;CTEST_FILE;TEST_DISCOVERY_TIMEOUT;TEST_XML_OUTPUT_DIR"
+    "TEST_EXTRA_ARGS;TEST_PROPERTIES"
+    ${ARGN}
+  )
+
+  set(prefix "${_TEST_PREFIX}")
+  set(suffix "${_TEST_SUFFIX}")
+  set(extra_args ${_TEST_EXTRA_ARGS})
+  set(properties ${_TEST_PROPERTIES})
+  set(script)
+  set(suite)
+  set(tests)
+  set(tests_buffer)
+
+  # Run test executable to get list of available tests
+  if(NOT EXISTS "${_TEST_EXECUTABLE}")
+    message(FATAL_ERROR
+      "Specified test executable does not exist.\n"
+      "  Path: '${_TEST_EXECUTABLE}'"
+    )
+  endif()
+  execute_process(
+    COMMAND ${_TEST_EXECUTOR} "${_TEST_EXECUTABLE}" --gtest_list_tests
+    WORKING_DIRECTORY "${_TEST_WORKING_DIR}"
+    TIMEOUT ${_TEST_DISCOVERY_TIMEOUT}
+    OUTPUT_VARIABLE output
+    RESULT_VARIABLE result
+  )
+  if(NOT ${result} EQUAL 0)
+    string(REPLACE "\n" "\n    " output "${output}")
+    message(FATAL_ERROR
+      "Error running test executable.\n"
+      "  Path: '${_TEST_EXECUTABLE}'\n"
+      "  Result: ${result}\n"
+      "  Output:\n"
+      "    ${output}\n"
+    )
+  endif()
+
+  # Preserve semicolon in test-parameters
+  string(REPLACE [[;]] [[\;]] output "${output}")
+  string(REPLACE "\n" ";" output "${output}")
+
+  # Parse output
+  foreach(line ${output})
+    # Skip header
+    if(NOT line MATCHES "gtest_main\\.cc")
+      # Do we have a module name or a test name?
+      if(NOT line MATCHES "^  ")
+        # Module; remove trailing '.' to get just the name...
+        string(REGEX REPLACE "\\.( *#.*)?" "" suite "${line}")
+        if(line MATCHES "#" AND NOT _NO_PRETTY_TYPES)
+          string(REGEX REPLACE "/[0-9]\\.+ +#.*= +" "/" pretty_suite "${line}")
+        else()
+          set(pretty_suite "${suite}")
+        endif()
+        string(REGEX REPLACE "^DISABLED_" "" pretty_suite "${pretty_suite}")
+      else()
+        # Test name; strip spaces and comments to get just the name...
+        string(REGEX REPLACE " +" "" test "${line}")
+        if(test MATCHES "#" AND NOT _NO_PRETTY_VALUES)
+          string(REGEX REPLACE "/[0-9]+#GetParam..=" "/" pretty_test "${test}")
+        else()
+          string(REGEX REPLACE "#.*" "" pretty_test "${test}")
+        endif()
+        string(REGEX REPLACE "^DISABLED_" "" pretty_test "${pretty_test}")
+        string(REGEX REPLACE "#.*" "" test "${test}")
+        if(NOT "${_TEST_XML_OUTPUT_DIR}" STREQUAL "")
+          set(TEST_XML_OUTPUT_PARAM "--gtest_output=xml:${_TEST_XML_OUTPUT_DIR}/${prefix}${suite}.${test}${suffix}.xml")
+        else()
+          unset(TEST_XML_OUTPUT_PARAM)
+        endif()
+
+        # sanitize test name for further processing downstream
+        set(testname "${prefix}${pretty_suite}.${pretty_test}${suffix}")
+        # escape \
+        string(REPLACE [[\]] [[\\]] testname "${testname}")
+        # escape ;
+        string(REPLACE [[;]] [[\;]] testname "${testname}")
+        # escape $
+        string(REPLACE [[$]] [[\$]] testname "${testname}")
+
+        # ...and add to script
+        add_command(add_test
+          "${testname}"
+          ${_TEST_EXECUTOR}
+          "${_TEST_EXECUTABLE}"
+          "--gtest_filter=${suite}.${test}"
+          "--gtest_also_run_disabled_tests"
+          ${TEST_XML_OUTPUT_PARAM}
+          ${extra_args}
+        )
+        if(suite MATCHES "^DISABLED" OR test MATCHES "^DISABLED")
+          add_command(set_tests_properties
+            "${testname}"
+            PROPERTIES DISABLED TRUE
+          )
+        endif()
+        add_command(set_tests_properties
+          "${testname}"
+          PROPERTIES
+          WORKING_DIRECTORY "${_TEST_WORKING_DIR}"
+          SKIP_REGULAR_EXPRESSION "\\\\[  SKIPPED \\\\]"
+          ${properties}
+        )
+        list(APPEND tests_buffer "${testname}")
+        list(LENGTH tests_buffer tests_buffer_length)
+        if(${tests_buffer_length} GREATER "250")
+          flush_tests_buffer()
+        endif()
+      endif()
+    endif()
+  endforeach()
+
+
+  # Create a list of all discovered tests, which users may use to e.g. set
+  # properties on the tests
+  flush_tests_buffer()
+  add_command(set ${_TEST_LIST} ${tests})
+
+  # Write CTest script
+  flush_script()
+
+endfunction()
+
+if(CMAKE_SCRIPT_MODE_FILE)
+  gtest_discover_tests_impl(
+    NO_PRETTY_TYPES ${NO_PRETTY_TYPES}
+    NO_PRETTY_VALUES ${NO_PRETTY_VALUES}
+    TEST_EXECUTABLE ${TEST_EXECUTABLE}
+    TEST_EXECUTOR ${TEST_EXECUTOR}
+    TEST_WORKING_DIR ${TEST_WORKING_DIR}
+    TEST_PREFIX ${TEST_PREFIX}
+    TEST_SUFFIX ${TEST_SUFFIX}
+    TEST_LIST ${TEST_LIST}
+    CTEST_FILE ${CTEST_FILE}
+    TEST_DISCOVERY_TIMEOUT ${TEST_DISCOVERY_TIMEOUT}
+    TEST_XML_OUTPUT_DIR ${TEST_XML_OUTPUT_DIR}
+    TEST_EXTRA_ARGS ${TEST_EXTRA_ARGS}
+    TEST_PROPERTIES ${TEST_PROPERTIES}
+  )
+endif()
diff --git a/share/cmake-3.17/Modules/ITKCompatibility.cmake b/share/cmake-3.18/Modules/ITKCompatibility.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/ITKCompatibility.cmake
rename to share/cmake-3.18/Modules/ITKCompatibility.cmake
diff --git a/share/cmake-3.17/Modules/InstallRequiredSystemLibraries.cmake b/share/cmake-3.18/Modules/InstallRequiredSystemLibraries.cmake
similarity index 99%
rename from share/cmake-3.17/Modules/InstallRequiredSystemLibraries.cmake
rename to share/cmake-3.18/Modules/InstallRequiredSystemLibraries.cmake
index 04687b9..caca697 100644
--- a/share/cmake-3.17/Modules/InstallRequiredSystemLibraries.cmake
+++ b/share/cmake-3.18/Modules/InstallRequiredSystemLibraries.cmake
@@ -69,7 +69,7 @@
       if(CMAKE_SIZEOF_VOID_P EQUAL 8)
         set(_Intel_archdir intel64)
       else()
-        set(_Intel_archdir x86)
+        set(_Intel_archdir ia32)
       endif()
       set(_Intel_compiler_ver ${CMAKE_${LANG}_COMPILER_VERSION})
       if(WIN32)
diff --git a/share/cmake-3.17/Modules/IntelVSImplicitPath/CMakeLists.txt b/share/cmake-3.18/Modules/IntelVSImplicitPath/CMakeLists.txt
similarity index 100%
rename from share/cmake-3.17/Modules/IntelVSImplicitPath/CMakeLists.txt
rename to share/cmake-3.18/Modules/IntelVSImplicitPath/CMakeLists.txt
diff --git a/share/cmake-3.17/Modules/IntelVSImplicitPath/detect.cmake b/share/cmake-3.18/Modules/IntelVSImplicitPath/detect.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/IntelVSImplicitPath/detect.cmake
rename to share/cmake-3.18/Modules/IntelVSImplicitPath/detect.cmake
diff --git a/share/cmake-3.17/Modules/IntelVSImplicitPath/hello.f b/share/cmake-3.18/Modules/IntelVSImplicitPath/hello.f
similarity index 100%
rename from share/cmake-3.17/Modules/IntelVSImplicitPath/hello.f
rename to share/cmake-3.18/Modules/IntelVSImplicitPath/hello.f
diff --git a/share/cmake-3.17/Modules/Internal/CMakeCheckCompilerFlag.cmake b/share/cmake-3.18/Modules/Internal/CMakeCheckCompilerFlag.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Internal/CMakeCheckCompilerFlag.cmake
rename to share/cmake-3.18/Modules/Internal/CMakeCheckCompilerFlag.cmake
diff --git a/share/cmake-3.17/Modules/Internal/CPack/CPack.DS_Store.in b/share/cmake-3.18/Modules/Internal/CPack/CPack.DS_Store.in
similarity index 100%
rename from share/cmake-3.17/Modules/Internal/CPack/CPack.DS_Store.in
rename to share/cmake-3.18/Modules/Internal/CPack/CPack.DS_Store.in
Binary files differ
diff --git a/share/cmake-3.17/Modules/Internal/CPack/CPack.Description.plist.in b/share/cmake-3.18/Modules/Internal/CPack/CPack.Description.plist.in
similarity index 100%
rename from share/cmake-3.17/Modules/Internal/CPack/CPack.Description.plist.in
rename to share/cmake-3.18/Modules/Internal/CPack/CPack.Description.plist.in
diff --git a/share/cmake-3.17/Modules/Internal/CPack/CPack.Info.plist.in b/share/cmake-3.18/Modules/Internal/CPack/CPack.Info.plist.in
similarity index 100%
rename from share/cmake-3.17/Modules/Internal/CPack/CPack.Info.plist.in
rename to share/cmake-3.18/Modules/Internal/CPack/CPack.Info.plist.in
diff --git a/share/cmake-3.17/Modules/Internal/CPack/CPack.NuGet.nuspec.in b/share/cmake-3.18/Modules/Internal/CPack/CPack.NuGet.nuspec.in
similarity index 100%
rename from share/cmake-3.17/Modules/Internal/CPack/CPack.NuGet.nuspec.in
rename to share/cmake-3.18/Modules/Internal/CPack/CPack.NuGet.nuspec.in
diff --git a/share/cmake-3.17/Modules/Internal/CPack/CPack.OSXScriptLauncher.in b/share/cmake-3.18/Modules/Internal/CPack/CPack.OSXScriptLauncher.in
similarity index 100%
rename from share/cmake-3.17/Modules/Internal/CPack/CPack.OSXScriptLauncher.in
rename to share/cmake-3.18/Modules/Internal/CPack/CPack.OSXScriptLauncher.in
Binary files differ
diff --git a/share/cmake-3.17/Modules/Internal/CPack/CPack.OSXScriptLauncher.rsrc.in b/share/cmake-3.18/Modules/Internal/CPack/CPack.OSXScriptLauncher.rsrc.in
similarity index 100%
rename from share/cmake-3.17/Modules/Internal/CPack/CPack.OSXScriptLauncher.rsrc.in
rename to share/cmake-3.18/Modules/Internal/CPack/CPack.OSXScriptLauncher.rsrc.in
Binary files differ
diff --git a/share/cmake-3.17/Modules/Internal/CPack/CPack.OSXX11.Info.plist.in b/share/cmake-3.18/Modules/Internal/CPack/CPack.OSXX11.Info.plist.in
similarity index 100%
rename from share/cmake-3.17/Modules/Internal/CPack/CPack.OSXX11.Info.plist.in
rename to share/cmake-3.18/Modules/Internal/CPack/CPack.OSXX11.Info.plist.in
diff --git a/share/cmake-3.17/Modules/Internal/CPack/CPack.OSXX11.main.scpt.in b/share/cmake-3.18/Modules/Internal/CPack/CPack.OSXX11.main.scpt.in
similarity index 100%
rename from share/cmake-3.17/Modules/Internal/CPack/CPack.OSXX11.main.scpt.in
rename to share/cmake-3.18/Modules/Internal/CPack/CPack.OSXX11.main.scpt.in
Binary files differ
diff --git a/share/cmake-3.17/Modules/Internal/CPack/CPack.RuntimeScript.in b/share/cmake-3.18/Modules/Internal/CPack/CPack.RuntimeScript.in
similarity index 100%
rename from share/cmake-3.17/Modules/Internal/CPack/CPack.RuntimeScript.in
rename to share/cmake-3.18/Modules/Internal/CPack/CPack.RuntimeScript.in
diff --git a/share/cmake-3.17/Modules/Internal/CPack/CPack.STGZ_Header.sh.in b/share/cmake-3.18/Modules/Internal/CPack/CPack.STGZ_Header.sh.in
similarity index 100%
rename from share/cmake-3.17/Modules/Internal/CPack/CPack.STGZ_Header.sh.in
rename to share/cmake-3.18/Modules/Internal/CPack/CPack.STGZ_Header.sh.in
diff --git a/share/cmake-3.17/Modules/Internal/CPack/CPack.VolumeIcon.icns.in b/share/cmake-3.18/Modules/Internal/CPack/CPack.VolumeIcon.icns.in
similarity index 100%
rename from share/cmake-3.17/Modules/Internal/CPack/CPack.VolumeIcon.icns.in
rename to share/cmake-3.18/Modules/Internal/CPack/CPack.VolumeIcon.icns.in
Binary files differ
diff --git a/share/cmake-3.17/Modules/Internal/CPack/CPack.background.png.in b/share/cmake-3.18/Modules/Internal/CPack/CPack.background.png.in
similarity index 100%
rename from share/cmake-3.17/Modules/Internal/CPack/CPack.background.png.in
rename to share/cmake-3.18/Modules/Internal/CPack/CPack.background.png.in
Binary files differ
diff --git a/share/cmake-3.17/Modules/Internal/CPack/CPack.distribution.dist.in b/share/cmake-3.18/Modules/Internal/CPack/CPack.distribution.dist.in
similarity index 100%
rename from share/cmake-3.17/Modules/Internal/CPack/CPack.distribution.dist.in
rename to share/cmake-3.18/Modules/Internal/CPack/CPack.distribution.dist.in
diff --git a/share/cmake-3.17/Modules/Internal/CPack/CPackDeb.cmake b/share/cmake-3.18/Modules/Internal/CPack/CPackDeb.cmake
similarity index 98%
rename from share/cmake-3.17/Modules/Internal/CPack/CPackDeb.cmake
rename to share/cmake-3.18/Modules/Internal/CPack/CPackDeb.cmake
index 14bb104..db35e3a 100644
--- a/share/cmake-3.17/Modules/Internal/CPack/CPackDeb.cmake
+++ b/share/cmake-3.18/Modules/Internal/CPack/CPackDeb.cmake
@@ -83,6 +83,16 @@
   string(REPLACE "\n" ";" _lines "${_text}")
   list(POP_FRONT _lines _summary)
 
+  # If the description ends with a newline (e.g. typically if it was read
+  # from a file) the last line will be empty. We drop it here, otherwise
+  # it would be replaced by a `.` which would lead to the package violating
+  # the extended-description-contains-empty-paragraph debian policy
+  list(POP_BACK _lines _last_line)
+  string(STRIP "${_last_line}" _last_line_strip)
+  if(_last_line_strip)
+    list(APPEND _lines "${_last_line_strip}")
+  endif()
+
   # Check if reformatting required
   cpack_deb_check_description("${_summary}" "${_lines}" _result)
   if(_result)
diff --git a/share/cmake-3.17/Modules/Internal/CPack/CPackExternal.cmake b/share/cmake-3.18/Modules/Internal/CPack/CPackExternal.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Internal/CPack/CPackExternal.cmake
rename to share/cmake-3.18/Modules/Internal/CPack/CPackExternal.cmake
diff --git a/share/cmake-3.17/Modules/Internal/CPack/CPackFreeBSD.cmake b/share/cmake-3.18/Modules/Internal/CPack/CPackFreeBSD.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Internal/CPack/CPackFreeBSD.cmake
rename to share/cmake-3.18/Modules/Internal/CPack/CPackFreeBSD.cmake
diff --git a/share/cmake-3.17/Modules/Internal/CPack/CPackNuGet.cmake b/share/cmake-3.18/Modules/Internal/CPack/CPackNuGet.cmake
similarity index 95%
rename from share/cmake-3.17/Modules/Internal/CPack/CPackNuGet.cmake
rename to share/cmake-3.18/Modules/Internal/CPack/CPackNuGet.cmake
index 1f4bcfd..20eed2e 100644
--- a/share/cmake-3.17/Modules/Internal/CPack/CPackNuGet.cmake
+++ b/share/cmake-3.18/Modules/Internal/CPack/CPackNuGet.cmake
@@ -287,7 +287,11 @@
     execute_process(
         COMMAND "${NUGET_EXECUTABLE}" pack ${CPACK_NUGET_PACK_ADDITIONAL_OPTIONS}
         WORKING_DIRECTORY "${CPACK_TEMPORARY_DIRECTORY}"
+        RESULT_VARIABLE _nuget_result
       )
+    if(NOT _nuget_result EQUAL 0)
+        message(FATAL_ERROR "Nuget pack failed")
+    endif()
 
 elseif(CPACK_NUGET_ALL_IN_ONE)
     # This variable `CPACK_NUGET_ALL_IN_ONE` set by C++ code:
@@ -300,7 +304,11 @@
     execute_process(
         COMMAND "${NUGET_EXECUTABLE}" pack ${CPACK_NUGET_PACK_ADDITIONAL_OPTIONS}
         WORKING_DIRECTORY "${CPACK_TEMPORARY_DIRECTORY}"
+        RESULT_VARIABLE _nuget_result
       )
+    if(NOT _nuget_result EQUAL 0)
+        message(FATAL_ERROR "Nuget pack failed")
+    endif()
 
 else()
     # Is there any grouped component?
@@ -322,7 +330,11 @@
             execute_process(
                 COMMAND "${NUGET_EXECUTABLE}" pack ${CPACK_NUGET_PACK_ADDITIONAL_OPTIONS}
                 WORKING_DIRECTORY "${CPACK_TEMPORARY_DIRECTORY}"
+                RESULT_VARIABLE _nuget_result
               )
+            if(NOT _nuget_result EQUAL 0)
+                message(FATAL_ERROR "Nuget pack failed")
+            endif()
         endforeach()
     endif()
     # Is there any single component package needed?
@@ -341,7 +353,11 @@
             execute_process(
                 COMMAND "${NUGET_EXECUTABLE}" pack ${CPACK_NUGET_PACK_ADDITIONAL_OPTIONS}
                 WORKING_DIRECTORY "${CPACK_TEMPORARY_DIRECTORY}"
+                RESULT_VARIABLE _nuget_result
               )
+            if(NOT _nuget_result EQUAL 0)
+                message(FATAL_ERROR "Nuget pack failed")
+            endif()
         endforeach()
     endif()
 endif()
diff --git a/share/cmake-3.17/Modules/Internal/CPack/CPackRPM.cmake b/share/cmake-3.18/Modules/Internal/CPack/CPackRPM.cmake
similarity index 98%
rename from share/cmake-3.17/Modules/Internal/CPack/CPackRPM.cmake
rename to share/cmake-3.18/Modules/Internal/CPack/CPackRPM.cmake
index 3485e7d..08bbc68 100644
--- a/share/cmake-3.17/Modules/Internal/CPack/CPackRPM.cmake
+++ b/share/cmake-3.18/Modules/Internal/CPack/CPackRPM.cmake
@@ -1099,16 +1099,18 @@
 
   # CPACK_RPM_POST_INSTALL_SCRIPT_FILE (or CPACK_RPM_<COMPONENT>_POST_INSTALL_SCRIPT_FILE)
   # CPACK_RPM_POST_UNINSTALL_SCRIPT_FILE (or CPACK_RPM_<COMPONENT>_POST_UNINSTALL_SCRIPT_FILE)
-  # May be used to embed a post (un)installation script in the spec file.
+  # CPACK_RPM_POST_TRANS_SCRIPT_FILE (or CPACK_RPM_<COMPONENT>_POST_TRANS_SCRIPT_FILE)
+  # May be used to embed a post installation/uninstallation/transaction script in the spec file.
   # The referred script file(s) will be read and directly
-  # put after the %post or %postun section
+  # put after the %post or %postun or %posttrans section
   # ----------------------------------------------------------------
   # CPACK_RPM_PRE_INSTALL_SCRIPT_FILE (or CPACK_RPM_<COMPONENT>_PRE_INSTALL_SCRIPT_FILE)
   # CPACK_RPM_PRE_UNINSTALL_SCRIPT_FILE (or CPACK_RPM_<COMPONENT>_PRE_UNINSTALL_SCRIPT_FILE)
-  # May be used to embed a pre (un)installation script in the spec file.
+  # CPACK_RPM_PRE_TRANS_SCRIPT_FILE (or CPACK_RPM_<COMPONENT>_PRE_TRANS_SCRIPT_FILE)
+  # May be used to embed a pre installation/uninstallation/transaction script in the spec file.
   # The referred script file(s) will be read and directly
-  # put after the %pre or %preun section
-  foreach(RPM_SCRIPT_FILE_TYPE_ "INSTALL" "UNINSTALL")
+  # put after the %pre or %preun or %pretrans section
+  foreach(RPM_SCRIPT_FILE_TYPE_ "INSTALL" "UNINSTALL" "TRANS")
     foreach(RPM_SCRIPT_FILE_TIME_ "PRE" "POST")
       set("CPACK_RPM_${RPM_SCRIPT_FILE_TIME_}_${RPM_SCRIPT_FILE_TYPE_}_READ_FILE"
         "${CPACK_RPM_${RPM_SCRIPT_FILE_TIME_}_${RPM_SCRIPT_FILE_TYPE_}_SCRIPT_FILE}")
@@ -1727,12 +1729,18 @@
 \@RPM_SYMLINK_POSTINSTALL\@
 \@CPACK_RPM_SPEC_POSTINSTALL\@
 
+%posttrans
+\@CPACK_RPM_SPEC_POSTTRANS\@
+
 %postun
 \@CPACK_RPM_SPEC_POSTUNINSTALL\@
 
 %pre
 \@CPACK_RPM_SPEC_PREINSTALL\@
 
+%pretrans
+\@CPACK_RPM_SPEC_PRETRANS\@
+
 %preun
 \@CPACK_RPM_SPEC_PREUNINSTALL\@
 
diff --git a/share/cmake-3.17/Modules/Internal/CPack/CPackWIX.cmake b/share/cmake-3.18/Modules/Internal/CPack/CPackWIX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Internal/CPack/CPackWIX.cmake
rename to share/cmake-3.18/Modules/Internal/CPack/CPackWIX.cmake
diff --git a/share/cmake-3.17/Modules/Internal/CPack/CPackZIP.cmake b/share/cmake-3.18/Modules/Internal/CPack/CPackZIP.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Internal/CPack/CPackZIP.cmake
rename to share/cmake-3.18/Modules/Internal/CPack/CPackZIP.cmake
diff --git a/share/cmake-3.17/Modules/Internal/CPack/NSIS.InstallOptions.ini.in b/share/cmake-3.18/Modules/Internal/CPack/NSIS.InstallOptions.ini.in
similarity index 100%
rename from share/cmake-3.17/Modules/Internal/CPack/NSIS.InstallOptions.ini.in
rename to share/cmake-3.18/Modules/Internal/CPack/NSIS.InstallOptions.ini.in
diff --git a/share/cmake-3.17/Modules/Internal/CPack/NSIS.template.in b/share/cmake-3.18/Modules/Internal/CPack/NSIS.template.in
similarity index 99%
rename from share/cmake-3.17/Modules/Internal/CPack/NSIS.template.in
rename to share/cmake-3.18/Modules/Internal/CPack/NSIS.template.in
index 660bfa3..6009ce0 100644
--- a/share/cmake-3.17/Modules/Internal/CPack/NSIS.template.in
+++ b/share/cmake-3.18/Modules/Internal/CPack/NSIS.template.in
@@ -41,6 +41,7 @@
   RequestExecutionLevel admin
 
 @CPACK_NSIS_DEFINES@
+@CPACK_NSIS_MANIFEST_DPI_AWARE_CODE@
 
   !include Sections.nsh
 
diff --git a/share/cmake-3.17/Modules/Internal/CPack/WIX.template.in b/share/cmake-3.18/Modules/Internal/CPack/WIX.template.in
similarity index 100%
rename from share/cmake-3.17/Modules/Internal/CPack/WIX.template.in
rename to share/cmake-3.18/Modules/Internal/CPack/WIX.template.in
diff --git a/share/cmake-3.17/Modules/Internal/FeatureTesting.cmake b/share/cmake-3.18/Modules/Internal/FeatureTesting.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Internal/FeatureTesting.cmake
rename to share/cmake-3.18/Modules/Internal/FeatureTesting.cmake
diff --git a/share/cmake-3.17/Modules/KDE3Macros.cmake b/share/cmake-3.18/Modules/KDE3Macros.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/KDE3Macros.cmake
rename to share/cmake-3.18/Modules/KDE3Macros.cmake
diff --git a/share/cmake-3.17/Modules/MacOSXBundleInfo.plist.in b/share/cmake-3.18/Modules/MacOSXBundleInfo.plist.in
similarity index 100%
rename from share/cmake-3.17/Modules/MacOSXBundleInfo.plist.in
rename to share/cmake-3.18/Modules/MacOSXBundleInfo.plist.in
diff --git a/share/cmake-3.17/Modules/MacOSXFrameworkInfo.plist.in b/share/cmake-3.18/Modules/MacOSXFrameworkInfo.plist.in
similarity index 100%
rename from share/cmake-3.17/Modules/MacOSXFrameworkInfo.plist.in
rename to share/cmake-3.18/Modules/MacOSXFrameworkInfo.plist.in
diff --git a/share/cmake-3.17/Modules/MacroAddFileDependencies.cmake b/share/cmake-3.18/Modules/MacroAddFileDependencies.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/MacroAddFileDependencies.cmake
rename to share/cmake-3.18/Modules/MacroAddFileDependencies.cmake
diff --git a/share/cmake-3.17/Modules/MatlabTestsRedirect.cmake b/share/cmake-3.18/Modules/MatlabTestsRedirect.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/MatlabTestsRedirect.cmake
rename to share/cmake-3.18/Modules/MatlabTestsRedirect.cmake
diff --git a/share/cmake-3.17/Modules/Platform/AIX-Clang-C.cmake b/share/cmake-3.18/Modules/Platform/AIX-Clang-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/AIX-Clang-C.cmake
rename to share/cmake-3.18/Modules/Platform/AIX-Clang-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/AIX-Clang-CXX.cmake b/share/cmake-3.18/Modules/Platform/AIX-Clang-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/AIX-Clang-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/AIX-Clang-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/AIX-GNU-ASM.cmake b/share/cmake-3.18/Modules/Platform/AIX-GNU-ASM.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/AIX-GNU-ASM.cmake
rename to share/cmake-3.18/Modules/Platform/AIX-GNU-ASM.cmake
diff --git a/share/cmake-3.17/Modules/Platform/AIX-GNU-C.cmake b/share/cmake-3.18/Modules/Platform/AIX-GNU-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/AIX-GNU-C.cmake
rename to share/cmake-3.18/Modules/Platform/AIX-GNU-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/AIX-GNU-CXX.cmake b/share/cmake-3.18/Modules/Platform/AIX-GNU-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/AIX-GNU-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/AIX-GNU-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/AIX-GNU-Fortran.cmake b/share/cmake-3.18/Modules/Platform/AIX-GNU-Fortran.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/AIX-GNU-Fortran.cmake
rename to share/cmake-3.18/Modules/Platform/AIX-GNU-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/AIX-GNU.cmake b/share/cmake-3.18/Modules/Platform/AIX-GNU.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/AIX-GNU.cmake
rename to share/cmake-3.18/Modules/Platform/AIX-GNU.cmake
diff --git a/share/cmake-3.17/Modules/Platform/AIX-VisualAge-C.cmake b/share/cmake-3.18/Modules/Platform/AIX-VisualAge-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/AIX-VisualAge-C.cmake
rename to share/cmake-3.18/Modules/Platform/AIX-VisualAge-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/AIX-VisualAge-CXX.cmake b/share/cmake-3.18/Modules/Platform/AIX-VisualAge-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/AIX-VisualAge-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/AIX-VisualAge-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/AIX-VisualAge-Fortran.cmake b/share/cmake-3.18/Modules/Platform/AIX-VisualAge-Fortran.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/AIX-VisualAge-Fortran.cmake
rename to share/cmake-3.18/Modules/Platform/AIX-VisualAge-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/AIX-XL-ASM.cmake b/share/cmake-3.18/Modules/Platform/AIX-XL-ASM.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/AIX-XL-ASM.cmake
rename to share/cmake-3.18/Modules/Platform/AIX-XL-ASM.cmake
diff --git a/share/cmake-3.17/Modules/Platform/AIX-XL-C.cmake b/share/cmake-3.18/Modules/Platform/AIX-XL-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/AIX-XL-C.cmake
rename to share/cmake-3.18/Modules/Platform/AIX-XL-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/AIX-XL-CXX.cmake b/share/cmake-3.18/Modules/Platform/AIX-XL-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/AIX-XL-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/AIX-XL-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/AIX-XL-Fortran.cmake b/share/cmake-3.18/Modules/Platform/AIX-XL-Fortran.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/AIX-XL-Fortran.cmake
rename to share/cmake-3.18/Modules/Platform/AIX-XL-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/AIX-XL.cmake b/share/cmake-3.18/Modules/Platform/AIX-XL.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/AIX-XL.cmake
rename to share/cmake-3.18/Modules/Platform/AIX-XL.cmake
diff --git a/share/cmake-3.17/Modules/Platform/AIX-XLClang-C.cmake b/share/cmake-3.18/Modules/Platform/AIX-XLClang-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/AIX-XLClang-C.cmake
rename to share/cmake-3.18/Modules/Platform/AIX-XLClang-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/AIX-XLClang-CXX.cmake b/share/cmake-3.18/Modules/Platform/AIX-XLClang-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/AIX-XLClang-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/AIX-XLClang-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/AIX-XLClang.cmake b/share/cmake-3.18/Modules/Platform/AIX-XLClang.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/AIX-XLClang.cmake
rename to share/cmake-3.18/Modules/Platform/AIX-XLClang.cmake
diff --git a/share/cmake-3.17/Modules/Platform/AIX.cmake b/share/cmake-3.18/Modules/Platform/AIX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/AIX.cmake
rename to share/cmake-3.18/Modules/Platform/AIX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/AIX/ExportImportList b/share/cmake-3.18/Modules/Platform/AIX/ExportImportList
old mode 100644
new mode 100755
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/AIX/ExportImportList
rename to share/cmake-3.18/Modules/Platform/AIX/ExportImportList
diff --git a/share/cmake-3.17/Modules/Platform/ARTOS-GNU-C.cmake b/share/cmake-3.18/Modules/Platform/ARTOS-GNU-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/ARTOS-GNU-C.cmake
rename to share/cmake-3.18/Modules/Platform/ARTOS-GNU-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/ARTOS.cmake b/share/cmake-3.18/Modules/Platform/ARTOS.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/ARTOS.cmake
rename to share/cmake-3.18/Modules/Platform/ARTOS.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android-Clang-ASM.cmake b/share/cmake-3.18/Modules/Platform/Android-Clang-ASM.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Android-Clang-ASM.cmake
rename to share/cmake-3.18/Modules/Platform/Android-Clang-ASM.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android-Clang-C.cmake b/share/cmake-3.18/Modules/Platform/Android-Clang-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Android-Clang-C.cmake
rename to share/cmake-3.18/Modules/Platform/Android-Clang-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android-Clang-CXX.cmake b/share/cmake-3.18/Modules/Platform/Android-Clang-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Android-Clang-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/Android-Clang-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android-Clang.cmake b/share/cmake-3.18/Modules/Platform/Android-Clang.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Android-Clang.cmake
rename to share/cmake-3.18/Modules/Platform/Android-Clang.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android-Common.cmake b/share/cmake-3.18/Modules/Platform/Android-Common.cmake
similarity index 98%
rename from share/cmake-3.17/Modules/Platform/Android-Common.cmake
rename to share/cmake-3.18/Modules/Platform/Android-Common.cmake
index 1affcd0..581fde4 100644
--- a/share/cmake-3.17/Modules/Platform/Android-Common.cmake
+++ b/share/cmake-3.18/Modules/Platform/Android-Common.cmake
@@ -73,7 +73,7 @@
       macro(__android_stl lang)
         # FIXME: Add a way to add project-wide language-specific compile-only flags.
         set(CMAKE_CXX_COMPILE_OBJECT
-          "<CMAKE_CXX_COMPILER>  <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT> -c <SOURCE> -nostdinc++")
+          "<CMAKE_CXX_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT> -c <SOURCE> -nostdinc++")
         string(APPEND CMAKE_${lang}_STANDARD_LIBRARIES " -nostdlib++")
       endmacro()
     else()
diff --git a/share/cmake-3.17/Modules/Platform/Android-Determine-C.cmake b/share/cmake-3.18/Modules/Platform/Android-Determine-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Android-Determine-C.cmake
rename to share/cmake-3.18/Modules/Platform/Android-Determine-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android-Determine-CXX.cmake b/share/cmake-3.18/Modules/Platform/Android-Determine-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Android-Determine-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/Android-Determine-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android-Determine.cmake b/share/cmake-3.18/Modules/Platform/Android-Determine.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Android-Determine.cmake
rename to share/cmake-3.18/Modules/Platform/Android-Determine.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android-GNU-C.cmake b/share/cmake-3.18/Modules/Platform/Android-GNU-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Android-GNU-C.cmake
rename to share/cmake-3.18/Modules/Platform/Android-GNU-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android-GNU-CXX.cmake b/share/cmake-3.18/Modules/Platform/Android-GNU-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Android-GNU-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/Android-GNU-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android-GNU.cmake b/share/cmake-3.18/Modules/Platform/Android-GNU.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Android-GNU.cmake
rename to share/cmake-3.18/Modules/Platform/Android-GNU.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android-Initialize.cmake b/share/cmake-3.18/Modules/Platform/Android-Initialize.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Android-Initialize.cmake
rename to share/cmake-3.18/Modules/Platform/Android-Initialize.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android.cmake b/share/cmake-3.18/Modules/Platform/Android.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Android.cmake
rename to share/cmake-3.18/Modules/Platform/Android.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/Determine-Compiler-NDK.cmake b/share/cmake-3.18/Modules/Platform/Android/Determine-Compiler-NDK.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Android/Determine-Compiler-NDK.cmake
rename to share/cmake-3.18/Modules/Platform/Android/Determine-Compiler-NDK.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/Determine-Compiler-Standalone.cmake b/share/cmake-3.18/Modules/Platform/Android/Determine-Compiler-Standalone.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Android/Determine-Compiler-Standalone.cmake
rename to share/cmake-3.18/Modules/Platform/Android/Determine-Compiler-Standalone.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/Determine-Compiler.cmake b/share/cmake-3.18/Modules/Platform/Android/Determine-Compiler.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Android/Determine-Compiler.cmake
rename to share/cmake-3.18/Modules/Platform/Android/Determine-Compiler.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/abi-arm64-v8a-Clang.cmake b/share/cmake-3.18/Modules/Platform/Android/abi-arm64-v8a-Clang.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Android/abi-arm64-v8a-Clang.cmake
rename to share/cmake-3.18/Modules/Platform/Android/abi-arm64-v8a-Clang.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/abi-arm64-v8a-GNU.cmake b/share/cmake-3.18/Modules/Platform/Android/abi-arm64-v8a-GNU.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Android/abi-arm64-v8a-GNU.cmake
rename to share/cmake-3.18/Modules/Platform/Android/abi-arm64-v8a-GNU.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/abi-armeabi-Clang.cmake b/share/cmake-3.18/Modules/Platform/Android/abi-armeabi-Clang.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Android/abi-armeabi-Clang.cmake
rename to share/cmake-3.18/Modules/Platform/Android/abi-armeabi-Clang.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/abi-armeabi-GNU.cmake b/share/cmake-3.18/Modules/Platform/Android/abi-armeabi-GNU.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Android/abi-armeabi-GNU.cmake
rename to share/cmake-3.18/Modules/Platform/Android/abi-armeabi-GNU.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/abi-armeabi-v6-Clang.cmake b/share/cmake-3.18/Modules/Platform/Android/abi-armeabi-v6-Clang.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Android/abi-armeabi-v6-Clang.cmake
rename to share/cmake-3.18/Modules/Platform/Android/abi-armeabi-v6-Clang.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/abi-armeabi-v6-GNU.cmake b/share/cmake-3.18/Modules/Platform/Android/abi-armeabi-v6-GNU.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Android/abi-armeabi-v6-GNU.cmake
rename to share/cmake-3.18/Modules/Platform/Android/abi-armeabi-v6-GNU.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/abi-armeabi-v7a-Clang.cmake b/share/cmake-3.18/Modules/Platform/Android/abi-armeabi-v7a-Clang.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Android/abi-armeabi-v7a-Clang.cmake
rename to share/cmake-3.18/Modules/Platform/Android/abi-armeabi-v7a-Clang.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/abi-armeabi-v7a-GNU.cmake b/share/cmake-3.18/Modules/Platform/Android/abi-armeabi-v7a-GNU.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Android/abi-armeabi-v7a-GNU.cmake
rename to share/cmake-3.18/Modules/Platform/Android/abi-armeabi-v7a-GNU.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/abi-common-Clang.cmake b/share/cmake-3.18/Modules/Platform/Android/abi-common-Clang.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Android/abi-common-Clang.cmake
rename to share/cmake-3.18/Modules/Platform/Android/abi-common-Clang.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/abi-common-GNU.cmake b/share/cmake-3.18/Modules/Platform/Android/abi-common-GNU.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Android/abi-common-GNU.cmake
rename to share/cmake-3.18/Modules/Platform/Android/abi-common-GNU.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/abi-common.cmake b/share/cmake-3.18/Modules/Platform/Android/abi-common.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Android/abi-common.cmake
rename to share/cmake-3.18/Modules/Platform/Android/abi-common.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/abi-mips-Clang.cmake b/share/cmake-3.18/Modules/Platform/Android/abi-mips-Clang.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Android/abi-mips-Clang.cmake
rename to share/cmake-3.18/Modules/Platform/Android/abi-mips-Clang.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/abi-mips-GNU.cmake b/share/cmake-3.18/Modules/Platform/Android/abi-mips-GNU.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Android/abi-mips-GNU.cmake
rename to share/cmake-3.18/Modules/Platform/Android/abi-mips-GNU.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/abi-mips64-Clang.cmake b/share/cmake-3.18/Modules/Platform/Android/abi-mips64-Clang.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Android/abi-mips64-Clang.cmake
rename to share/cmake-3.18/Modules/Platform/Android/abi-mips64-Clang.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/abi-mips64-GNU.cmake b/share/cmake-3.18/Modules/Platform/Android/abi-mips64-GNU.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Android/abi-mips64-GNU.cmake
rename to share/cmake-3.18/Modules/Platform/Android/abi-mips64-GNU.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/abi-x86-Clang.cmake b/share/cmake-3.18/Modules/Platform/Android/abi-x86-Clang.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Android/abi-x86-Clang.cmake
rename to share/cmake-3.18/Modules/Platform/Android/abi-x86-Clang.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/abi-x86-GNU.cmake b/share/cmake-3.18/Modules/Platform/Android/abi-x86-GNU.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Android/abi-x86-GNU.cmake
rename to share/cmake-3.18/Modules/Platform/Android/abi-x86-GNU.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/abi-x86_64-Clang.cmake b/share/cmake-3.18/Modules/Platform/Android/abi-x86_64-Clang.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Android/abi-x86_64-Clang.cmake
rename to share/cmake-3.18/Modules/Platform/Android/abi-x86_64-Clang.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/abi-x86_64-GNU.cmake b/share/cmake-3.18/Modules/Platform/Android/abi-x86_64-GNU.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Android/abi-x86_64-GNU.cmake
rename to share/cmake-3.18/Modules/Platform/Android/abi-x86_64-GNU.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/ndk-stl-c++.cmake b/share/cmake-3.18/Modules/Platform/Android/ndk-stl-c++.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Android/ndk-stl-c++.cmake
rename to share/cmake-3.18/Modules/Platform/Android/ndk-stl-c++.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/ndk-stl-c++_shared.cmake b/share/cmake-3.18/Modules/Platform/Android/ndk-stl-c++_shared.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Android/ndk-stl-c++_shared.cmake
rename to share/cmake-3.18/Modules/Platform/Android/ndk-stl-c++_shared.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/ndk-stl-c++_static.cmake b/share/cmake-3.18/Modules/Platform/Android/ndk-stl-c++_static.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Android/ndk-stl-c++_static.cmake
rename to share/cmake-3.18/Modules/Platform/Android/ndk-stl-c++_static.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/ndk-stl-gabi++.cmake b/share/cmake-3.18/Modules/Platform/Android/ndk-stl-gabi++.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Android/ndk-stl-gabi++.cmake
rename to share/cmake-3.18/Modules/Platform/Android/ndk-stl-gabi++.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/ndk-stl-gabi++_shared.cmake b/share/cmake-3.18/Modules/Platform/Android/ndk-stl-gabi++_shared.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Android/ndk-stl-gabi++_shared.cmake
rename to share/cmake-3.18/Modules/Platform/Android/ndk-stl-gabi++_shared.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/ndk-stl-gabi++_static.cmake b/share/cmake-3.18/Modules/Platform/Android/ndk-stl-gabi++_static.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Android/ndk-stl-gabi++_static.cmake
rename to share/cmake-3.18/Modules/Platform/Android/ndk-stl-gabi++_static.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/ndk-stl-gnustl.cmake b/share/cmake-3.18/Modules/Platform/Android/ndk-stl-gnustl.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Android/ndk-stl-gnustl.cmake
rename to share/cmake-3.18/Modules/Platform/Android/ndk-stl-gnustl.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/ndk-stl-gnustl_shared.cmake b/share/cmake-3.18/Modules/Platform/Android/ndk-stl-gnustl_shared.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Android/ndk-stl-gnustl_shared.cmake
rename to share/cmake-3.18/Modules/Platform/Android/ndk-stl-gnustl_shared.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/ndk-stl-gnustl_static.cmake b/share/cmake-3.18/Modules/Platform/Android/ndk-stl-gnustl_static.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Android/ndk-stl-gnustl_static.cmake
rename to share/cmake-3.18/Modules/Platform/Android/ndk-stl-gnustl_static.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/ndk-stl-none.cmake b/share/cmake-3.18/Modules/Platform/Android/ndk-stl-none.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Android/ndk-stl-none.cmake
rename to share/cmake-3.18/Modules/Platform/Android/ndk-stl-none.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/ndk-stl-stlport.cmake b/share/cmake-3.18/Modules/Platform/Android/ndk-stl-stlport.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Android/ndk-stl-stlport.cmake
rename to share/cmake-3.18/Modules/Platform/Android/ndk-stl-stlport.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/ndk-stl-stlport_shared.cmake b/share/cmake-3.18/Modules/Platform/Android/ndk-stl-stlport_shared.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Android/ndk-stl-stlport_shared.cmake
rename to share/cmake-3.18/Modules/Platform/Android/ndk-stl-stlport_shared.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/ndk-stl-stlport_static.cmake b/share/cmake-3.18/Modules/Platform/Android/ndk-stl-stlport_static.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Android/ndk-stl-stlport_static.cmake
rename to share/cmake-3.18/Modules/Platform/Android/ndk-stl-stlport_static.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/ndk-stl-system.cmake b/share/cmake-3.18/Modules/Platform/Android/ndk-stl-system.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Android/ndk-stl-system.cmake
rename to share/cmake-3.18/Modules/Platform/Android/ndk-stl-system.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-Absoft-Fortran.cmake b/share/cmake-3.18/Modules/Platform/Apple-Absoft-Fortran.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Apple-Absoft-Fortran.cmake
rename to share/cmake-3.18/Modules/Platform/Apple-Absoft-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-Apple-Swift.cmake b/share/cmake-3.18/Modules/Platform/Apple-Apple-Swift.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Apple-Apple-Swift.cmake
rename to share/cmake-3.18/Modules/Platform/Apple-Apple-Swift.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-AppleClang-C.cmake b/share/cmake-3.18/Modules/Platform/Apple-AppleClang-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Apple-AppleClang-C.cmake
rename to share/cmake-3.18/Modules/Platform/Apple-AppleClang-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-AppleClang-CXX.cmake b/share/cmake-3.18/Modules/Platform/Apple-AppleClang-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Apple-AppleClang-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/Apple-AppleClang-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-AppleClang-OBJC.cmake b/share/cmake-3.18/Modules/Platform/Apple-AppleClang-OBJC.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Apple-AppleClang-OBJC.cmake
rename to share/cmake-3.18/Modules/Platform/Apple-AppleClang-OBJC.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-AppleClang-OBJCXX.cmake b/share/cmake-3.18/Modules/Platform/Apple-AppleClang-OBJCXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Apple-AppleClang-OBJCXX.cmake
rename to share/cmake-3.18/Modules/Platform/Apple-AppleClang-OBJCXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-Clang-ASM.cmake b/share/cmake-3.18/Modules/Platform/Apple-Clang-ASM.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Apple-Clang-ASM.cmake
rename to share/cmake-3.18/Modules/Platform/Apple-Clang-ASM.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-Clang-C.cmake b/share/cmake-3.18/Modules/Platform/Apple-Clang-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Apple-Clang-C.cmake
rename to share/cmake-3.18/Modules/Platform/Apple-Clang-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-Clang-CXX.cmake b/share/cmake-3.18/Modules/Platform/Apple-Clang-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Apple-Clang-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/Apple-Clang-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-Clang-OBJC.cmake b/share/cmake-3.18/Modules/Platform/Apple-Clang-OBJC.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Apple-Clang-OBJC.cmake
rename to share/cmake-3.18/Modules/Platform/Apple-Clang-OBJC.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-Clang-OBJCXX.cmake b/share/cmake-3.18/Modules/Platform/Apple-Clang-OBJCXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Apple-Clang-OBJCXX.cmake
rename to share/cmake-3.18/Modules/Platform/Apple-Clang-OBJCXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-Clang.cmake b/share/cmake-3.18/Modules/Platform/Apple-Clang.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Apple-Clang.cmake
rename to share/cmake-3.18/Modules/Platform/Apple-Clang.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-GNU-C.cmake b/share/cmake-3.18/Modules/Platform/Apple-GNU-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Apple-GNU-C.cmake
rename to share/cmake-3.18/Modules/Platform/Apple-GNU-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-GNU-CXX.cmake b/share/cmake-3.18/Modules/Platform/Apple-GNU-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Apple-GNU-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/Apple-GNU-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-GNU-Fortran.cmake b/share/cmake-3.18/Modules/Platform/Apple-GNU-Fortran.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Apple-GNU-Fortran.cmake
rename to share/cmake-3.18/Modules/Platform/Apple-GNU-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-GNU-OBJC.cmake b/share/cmake-3.18/Modules/Platform/Apple-GNU-OBJC.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Apple-GNU-OBJC.cmake
rename to share/cmake-3.18/Modules/Platform/Apple-GNU-OBJC.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-GNU-OBJCXX.cmake b/share/cmake-3.18/Modules/Platform/Apple-GNU-OBJCXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Apple-GNU-OBJCXX.cmake
rename to share/cmake-3.18/Modules/Platform/Apple-GNU-OBJCXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-GNU.cmake b/share/cmake-3.18/Modules/Platform/Apple-GNU.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Apple-GNU.cmake
rename to share/cmake-3.18/Modules/Platform/Apple-GNU.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-Intel-C.cmake b/share/cmake-3.18/Modules/Platform/Apple-Intel-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Apple-Intel-C.cmake
rename to share/cmake-3.18/Modules/Platform/Apple-Intel-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-Intel-CXX.cmake b/share/cmake-3.18/Modules/Platform/Apple-Intel-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Apple-Intel-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/Apple-Intel-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-Intel-Fortran.cmake b/share/cmake-3.18/Modules/Platform/Apple-Intel-Fortran.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Apple-Intel-Fortran.cmake
rename to share/cmake-3.18/Modules/Platform/Apple-Intel-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-Intel.cmake b/share/cmake-3.18/Modules/Platform/Apple-Intel.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Apple-Intel.cmake
rename to share/cmake-3.18/Modules/Platform/Apple-Intel.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-NAG-Fortran.cmake b/share/cmake-3.18/Modules/Platform/Apple-NAG-Fortran.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Apple-NAG-Fortran.cmake
rename to share/cmake-3.18/Modules/Platform/Apple-NAG-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-NVIDIA-CUDA.cmake b/share/cmake-3.18/Modules/Platform/Apple-NVIDIA-CUDA.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Apple-NVIDIA-CUDA.cmake
rename to share/cmake-3.18/Modules/Platform/Apple-NVIDIA-CUDA.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-PGI-C.cmake b/share/cmake-3.18/Modules/Platform/Apple-PGI-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Apple-PGI-C.cmake
rename to share/cmake-3.18/Modules/Platform/Apple-PGI-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-PGI-CXX.cmake b/share/cmake-3.18/Modules/Platform/Apple-PGI-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Apple-PGI-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/Apple-PGI-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-PGI-Fortran.cmake b/share/cmake-3.18/Modules/Platform/Apple-PGI-Fortran.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Apple-PGI-Fortran.cmake
rename to share/cmake-3.18/Modules/Platform/Apple-PGI-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-PGI.cmake b/share/cmake-3.18/Modules/Platform/Apple-PGI.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Apple-PGI.cmake
rename to share/cmake-3.18/Modules/Platform/Apple-PGI.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-VisualAge-C.cmake b/share/cmake-3.18/Modules/Platform/Apple-VisualAge-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Apple-VisualAge-C.cmake
rename to share/cmake-3.18/Modules/Platform/Apple-VisualAge-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-VisualAge-CXX.cmake b/share/cmake-3.18/Modules/Platform/Apple-VisualAge-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Apple-VisualAge-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/Apple-VisualAge-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-XL-C.cmake b/share/cmake-3.18/Modules/Platform/Apple-XL-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Apple-XL-C.cmake
rename to share/cmake-3.18/Modules/Platform/Apple-XL-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-XL-CXX.cmake b/share/cmake-3.18/Modules/Platform/Apple-XL-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Apple-XL-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/Apple-XL-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BSDOS.cmake b/share/cmake-3.18/Modules/Platform/BSDOS.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/BSDOS.cmake
rename to share/cmake-3.18/Modules/Platform/BSDOS.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BeOS.cmake b/share/cmake-3.18/Modules/Platform/BeOS.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/BeOS.cmake
rename to share/cmake-3.18/Modules/Platform/BeOS.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneL.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneL.cmake
similarity index 77%
rename from share/cmake-3.17/Modules/Platform/BlueGeneL.cmake
rename to share/cmake-3.18/Modules/Platform/BlueGeneL.cmake
index 082e46c..0ed9975 100644
--- a/share/cmake-3.17/Modules/Platform/BlueGeneL.cmake
+++ b/share/cmake-3.18/Modules/Platform/BlueGeneL.cmake
@@ -23,18 +23,18 @@
 
 if(CMAKE_COMPILER_IS_GNUCC)
   set(CMAKE_C_LINK_EXECUTABLE
-    "<CMAKE_C_COMPILER> -Wl,-relax <FLAGS> <CMAKE_C_LINK_FLAGS> <LINK_FLAGS> <OBJECTS>  -o <TARGET> <LINK_LIBRARIES> -Wl,-lgcc,-lc -lnss_files -lnss_dns -lresolv")
+    "<CMAKE_C_COMPILER> -Wl,-relax <FLAGS> <CMAKE_C_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES> -Wl,-lgcc,-lc -lnss_files -lnss_dns -lresolv")
 else()
   # when using IBM xlc we probably don't want to link to -lgcc
   set(CMAKE_C_LINK_EXECUTABLE
-    "<CMAKE_C_COMPILER> -Wl,-relax <FLAGS> <CMAKE_C_LINK_FLAGS> <LINK_FLAGS> <OBJECTS>  -o <TARGET> <LINK_LIBRARIES> -Wl,-lc -lnss_files -lnss_dns -lresolv")
+    "<CMAKE_C_COMPILER> -Wl,-relax <FLAGS> <CMAKE_C_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES> -Wl,-lc -lnss_files -lnss_dns -lresolv")
 endif()
 
 if(CMAKE_COMPILER_IS_GNUCXX)
   set(CMAKE_CXX_LINK_EXECUTABLE
-    "<CMAKE_CXX_COMPILER> -Wl,-relax <FLAGS> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS>  -o <TARGET> <LINK_LIBRARIES> -Wl,-lstdc++,-lgcc,-lc -lnss_files -lnss_dns -lresolv")
+    "<CMAKE_CXX_COMPILER> -Wl,-relax <FLAGS> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES> -Wl,-lstdc++,-lgcc,-lc -lnss_files -lnss_dns -lresolv")
 else()
   # when using the IBM xlC we probably don't want to link to -lgcc
   set(CMAKE_CXX_LINK_EXECUTABLE
-    "<CMAKE_CXX_COMPILER> -Wl,-relax <FLAGS> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS>  -o <TARGET> <LINK_LIBRARIES> -Wl,-lstdc++,-lc -lnss_files -lnss_dns -lresolv")
+    "<CMAKE_CXX_COMPILER> -Wl,-relax <FLAGS> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES> -Wl,-lstdc++,-lc -lnss_files -lnss_dns -lresolv")
 endif()
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneP-base.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneP-base.cmake
similarity index 96%
rename from share/cmake-3.17/Modules/Platform/BlueGeneP-base.cmake
rename to share/cmake-3.18/Modules/Platform/BlueGeneP-base.cmake
index fe95b42..7095dd8 100644
--- a/share/cmake-3.17/Modules/Platform/BlueGeneP-base.cmake
+++ b/share/cmake-3.18/Modules/Platform/BlueGeneP-base.cmake
@@ -97,7 +97,7 @@
   set(CMAKE_SHARED_LIBRARY_RUNTIME_${lang}_FLAG_SEP  ":") # : or empty
 
   set(BGP_${lang}_DEFAULT_EXE_FLAGS
-    "<FLAGS> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <OBJECTS>  -o <TARGET> <LINK_LIBRARIES>")
+    "<FLAGS> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
   set(CMAKE_${lang}_LINK_EXECUTABLE
     "<CMAKE_${lang}_COMPILER> -Wl,-relax ${BGP_${lang}_DYNAMIC_EXE_FLAGS} ${BGP_${lang}_DEFAULT_EXE_FLAGS}")
 endmacro()
@@ -108,7 +108,7 @@
 #
 macro(__BlueGeneP_set_static_flags compiler_id lang)
   set(BGP_${lang}_DEFAULT_EXE_FLAGS
-    "<FLAGS> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <OBJECTS>  -o <TARGET> <LINK_LIBRARIES>")
+    "<FLAGS> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
   set(CMAKE_${lang}_LINK_EXECUTABLE
     "<CMAKE_${lang}_COMPILER> -Wl,-relax ${BGP_${lang}_DEFAULT_EXE_FLAGS}")
 endmacro()
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic-GNU-C.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneP-dynamic-GNU-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic-GNU-C.cmake
rename to share/cmake-3.18/Modules/Platform/BlueGeneP-dynamic-GNU-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic-GNU-CXX.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneP-dynamic-GNU-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic-GNU-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/BlueGeneP-dynamic-GNU-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic-GNU-Fortran.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneP-dynamic-GNU-Fortran.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic-GNU-Fortran.cmake
rename to share/cmake-3.18/Modules/Platform/BlueGeneP-dynamic-GNU-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic-XL-C.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneP-dynamic-XL-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic-XL-C.cmake
rename to share/cmake-3.18/Modules/Platform/BlueGeneP-dynamic-XL-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic-XL-CXX.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneP-dynamic-XL-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic-XL-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/BlueGeneP-dynamic-XL-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic-XL-Fortran.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneP-dynamic-XL-Fortran.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic-XL-Fortran.cmake
rename to share/cmake-3.18/Modules/Platform/BlueGeneP-dynamic-XL-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneP-dynamic.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic.cmake
rename to share/cmake-3.18/Modules/Platform/BlueGeneP-dynamic.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneP-static-GNU-C.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneP-static-GNU-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/BlueGeneP-static-GNU-C.cmake
rename to share/cmake-3.18/Modules/Platform/BlueGeneP-static-GNU-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneP-static-GNU-CXX.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneP-static-GNU-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/BlueGeneP-static-GNU-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/BlueGeneP-static-GNU-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneP-static-GNU-Fortran.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneP-static-GNU-Fortran.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/BlueGeneP-static-GNU-Fortran.cmake
rename to share/cmake-3.18/Modules/Platform/BlueGeneP-static-GNU-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneP-static-XL-C.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneP-static-XL-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/BlueGeneP-static-XL-C.cmake
rename to share/cmake-3.18/Modules/Platform/BlueGeneP-static-XL-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneP-static-XL-CXX.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneP-static-XL-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/BlueGeneP-static-XL-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/BlueGeneP-static-XL-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneP-static-XL-Fortran.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneP-static-XL-Fortran.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/BlueGeneP-static-XL-Fortran.cmake
rename to share/cmake-3.18/Modules/Platform/BlueGeneP-static-XL-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneP-static.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneP-static.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/BlueGeneP-static.cmake
rename to share/cmake-3.18/Modules/Platform/BlueGeneP-static.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneQ-base.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneQ-base.cmake
similarity index 95%
rename from share/cmake-3.17/Modules/Platform/BlueGeneQ-base.cmake
rename to share/cmake-3.18/Modules/Platform/BlueGeneQ-base.cmake
index 5e56d8e..94cb0a8 100644
--- a/share/cmake-3.17/Modules/Platform/BlueGeneQ-base.cmake
+++ b/share/cmake-3.18/Modules/Platform/BlueGeneQ-base.cmake
@@ -101,7 +101,7 @@
   foreach(dir ${CMAKE_SYSTEM_INCLUDE_PATH})
     string(APPEND BGQ_SYSTEM_INCLUDES " -I${dir}")
   endforeach()
-  set(CMAKE_C_COMPILE_OBJECT   "<CMAKE_C_COMPILER>   <DEFINES> ${BGQ_SYSTEM_INCLUDES} <INCLUDES> <FLAGS> -o <OBJECT> -c <SOURCE>")
+  set(CMAKE_C_COMPILE_OBJECT   "<CMAKE_C_COMPILER> <DEFINES> ${BGQ_SYSTEM_INCLUDES} <INCLUDES> <FLAGS> -o <OBJECT> -c <SOURCE>")
   set(CMAKE_CXX_COMPILE_OBJECT "<CMAKE_CXX_COMPILER> <DEFINES> ${BGQ_SYSTEM_INCLUDES} <INCLUDES> <FLAGS> -o <OBJECT> -c <SOURCE>")
 
   #
@@ -146,7 +146,7 @@
 
   # For dynamic executables, need to provide special BG/Q arguments.
   set(BGQ_${lang}_DEFAULT_EXE_FLAGS
-    "<FLAGS> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <OBJECTS>  -o <TARGET> <LINK_LIBRARIES>")
+    "<FLAGS> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
   set(CMAKE_${lang}_LINK_EXECUTABLE
     "<CMAKE_${lang}_COMPILER> -Wl,-relax ${BGQ_${lang}_DYNAMIC_EXE_FLAGS} ${BGQ_${lang}_DEFAULT_EXE_FLAGS}")
 endmacro()
@@ -160,7 +160,7 @@
 
   # For static executables, use default link settings.
   set(BGQ_${lang}_DEFAULT_EXE_FLAGS
-    "<FLAGS> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <OBJECTS>  -o <TARGET> <LINK_LIBRARIES>")
+    "<FLAGS> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
   set(CMAKE_${lang}_LINK_EXECUTABLE
     "<CMAKE_${lang}_COMPILER> -Wl,-relax ${BGQ_${lang}_DEFAULT_EXE_FLAGS}")
 endmacro()
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic-GNU-C.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneQ-dynamic-GNU-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic-GNU-C.cmake
rename to share/cmake-3.18/Modules/Platform/BlueGeneQ-dynamic-GNU-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic-GNU-CXX.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneQ-dynamic-GNU-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic-GNU-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/BlueGeneQ-dynamic-GNU-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic-GNU-Fortran.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneQ-dynamic-GNU-Fortran.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic-GNU-Fortran.cmake
rename to share/cmake-3.18/Modules/Platform/BlueGeneQ-dynamic-GNU-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic-XL-C.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneQ-dynamic-XL-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic-XL-C.cmake
rename to share/cmake-3.18/Modules/Platform/BlueGeneQ-dynamic-XL-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic-XL-CXX.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneQ-dynamic-XL-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic-XL-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/BlueGeneQ-dynamic-XL-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic-XL-Fortran.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneQ-dynamic-XL-Fortran.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic-XL-Fortran.cmake
rename to share/cmake-3.18/Modules/Platform/BlueGeneQ-dynamic-XL-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneQ-dynamic.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic.cmake
rename to share/cmake-3.18/Modules/Platform/BlueGeneQ-dynamic.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneQ-static-GNU-C.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneQ-static-GNU-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/BlueGeneQ-static-GNU-C.cmake
rename to share/cmake-3.18/Modules/Platform/BlueGeneQ-static-GNU-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneQ-static-GNU-CXX.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneQ-static-GNU-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/BlueGeneQ-static-GNU-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/BlueGeneQ-static-GNU-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneQ-static-GNU-Fortran.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneQ-static-GNU-Fortran.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/BlueGeneQ-static-GNU-Fortran.cmake
rename to share/cmake-3.18/Modules/Platform/BlueGeneQ-static-GNU-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneQ-static-XL-C.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneQ-static-XL-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/BlueGeneQ-static-XL-C.cmake
rename to share/cmake-3.18/Modules/Platform/BlueGeneQ-static-XL-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneQ-static-XL-CXX.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneQ-static-XL-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/BlueGeneQ-static-XL-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/BlueGeneQ-static-XL-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneQ-static-XL-Fortran.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneQ-static-XL-Fortran.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/BlueGeneQ-static-XL-Fortran.cmake
rename to share/cmake-3.18/Modules/Platform/BlueGeneQ-static-XL-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneQ-static.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneQ-static.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/BlueGeneQ-static.cmake
rename to share/cmake-3.18/Modules/Platform/BlueGeneQ-static.cmake
diff --git a/share/cmake-3.17/Modules/Platform/CYGWIN-Clang-C.cmake b/share/cmake-3.18/Modules/Platform/CYGWIN-Clang-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/CYGWIN-Clang-C.cmake
rename to share/cmake-3.18/Modules/Platform/CYGWIN-Clang-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/CYGWIN-Clang-CXX.cmake b/share/cmake-3.18/Modules/Platform/CYGWIN-Clang-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/CYGWIN-Clang-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/CYGWIN-Clang-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/CYGWIN-Determine-CXX.cmake b/share/cmake-3.18/Modules/Platform/CYGWIN-Determine-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/CYGWIN-Determine-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/CYGWIN-Determine-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/CYGWIN-GNU-C.cmake b/share/cmake-3.18/Modules/Platform/CYGWIN-GNU-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/CYGWIN-GNU-C.cmake
rename to share/cmake-3.18/Modules/Platform/CYGWIN-GNU-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/CYGWIN-GNU-CXX.cmake b/share/cmake-3.18/Modules/Platform/CYGWIN-GNU-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/CYGWIN-GNU-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/CYGWIN-GNU-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/CYGWIN-GNU-Fortran.cmake b/share/cmake-3.18/Modules/Platform/CYGWIN-GNU-Fortran.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/CYGWIN-GNU-Fortran.cmake
rename to share/cmake-3.18/Modules/Platform/CYGWIN-GNU-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/CYGWIN-GNU.cmake b/share/cmake-3.18/Modules/Platform/CYGWIN-GNU.cmake
similarity index 95%
rename from share/cmake-3.17/Modules/Platform/CYGWIN-GNU.cmake
rename to share/cmake-3.18/Modules/Platform/CYGWIN-GNU.cmake
index ca90712..4fa14ce 100644
--- a/share/cmake-3.17/Modules/Platform/CYGWIN-GNU.cmake
+++ b/share/cmake-3.18/Modules/Platform/CYGWIN-GNU.cmake
@@ -22,7 +22,7 @@
   set(CMAKE_${lang}_CREATE_SHARED_LIBRARY
     "<CMAKE_${lang}_COMPILER> <LANGUAGE_COMPILE_FLAGS> <CMAKE_SHARED_LIBRARY_${lang}_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS> -o <TARGET> -Wl,--out-implib,<TARGET_IMPLIB> ${CMAKE_GNULD_IMAGE_VERSION} <OBJECTS> <LINK_LIBRARIES>")
   set(CMAKE_${lang}_LINK_EXECUTABLE
-    "<CMAKE_${lang}_COMPILER> <FLAGS> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <OBJECTS>  -o <TARGET> -Wl,--out-implib,<TARGET_IMPLIB> ${CMAKE_GNULD_IMAGE_VERSION} <LINK_LIBRARIES>")
+    "<CMAKE_${lang}_COMPILER> <FLAGS> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> -Wl,--out-implib,<TARGET_IMPLIB> ${CMAKE_GNULD_IMAGE_VERSION} <LINK_LIBRARIES>")
 
    # No -fPIC on cygwin
   set(CMAKE_${lang}_COMPILE_OPTIONS_PIC "")
diff --git a/share/cmake-3.17/Modules/Platform/CYGWIN-windres.cmake b/share/cmake-3.18/Modules/Platform/CYGWIN-windres.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/CYGWIN-windres.cmake
rename to share/cmake-3.18/Modules/Platform/CYGWIN-windres.cmake
diff --git a/share/cmake-3.17/Modules/Platform/CYGWIN.cmake b/share/cmake-3.18/Modules/Platform/CYGWIN.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/CYGWIN.cmake
rename to share/cmake-3.18/Modules/Platform/CYGWIN.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Catamount.cmake b/share/cmake-3.18/Modules/Platform/Catamount.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Catamount.cmake
rename to share/cmake-3.18/Modules/Platform/Catamount.cmake
diff --git a/share/cmake-3.17/Modules/Platform/CrayLinuxEnvironment.cmake b/share/cmake-3.18/Modules/Platform/CrayLinuxEnvironment.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/CrayLinuxEnvironment.cmake
rename to share/cmake-3.18/Modules/Platform/CrayLinuxEnvironment.cmake
diff --git a/share/cmake-3.18/Modules/Platform/DOS-OpenWatcom-C.cmake b/share/cmake-3.18/Modules/Platform/DOS-OpenWatcom-C.cmake
new file mode 100644
index 0000000..cf71c84
--- /dev/null
+++ b/share/cmake-3.18/Modules/Platform/DOS-OpenWatcom-C.cmake
@@ -0,0 +1 @@
+include(Platform/DOS-OpenWatcom)
diff --git a/share/cmake-3.18/Modules/Platform/DOS-OpenWatcom-CXX.cmake b/share/cmake-3.18/Modules/Platform/DOS-OpenWatcom-CXX.cmake
new file mode 100644
index 0000000..cf71c84
--- /dev/null
+++ b/share/cmake-3.18/Modules/Platform/DOS-OpenWatcom-CXX.cmake
@@ -0,0 +1 @@
+include(Platform/DOS-OpenWatcom)
diff --git a/share/cmake-3.18/Modules/Platform/DOS-OpenWatcom.cmake b/share/cmake-3.18/Modules/Platform/DOS-OpenWatcom.cmake
new file mode 100644
index 0000000..54c452e
--- /dev/null
+++ b/share/cmake-3.18/Modules/Platform/DOS-OpenWatcom.cmake
@@ -0,0 +1,28 @@
+
+# This module is shared by multiple languages; use include blocker.
+include_guard()
+
+set(CMAKE_BUILD_TYPE_INIT Debug)
+
+if(DEFINED CMAKE_SYSTEM_PROCESSOR AND CMAKE_SYSTEM_PROCESSOR STREQUAL "I86")
+  string(APPEND CMAKE_EXE_LINKER_FLAGS_INIT " system dos")
+  string(APPEND CMAKE_SHARED_LINKER_FLAGS_INIT " system dos")
+  string(APPEND CMAKE_MODULE_LINKER_FLAGS_INIT " system dos")
+else()
+  string(APPEND CMAKE_EXE_LINKER_FLAGS_INIT " system dos4g")
+  string(APPEND CMAKE_SHARED_LINKER_FLAGS_INIT " system dos4g")
+  string(APPEND CMAKE_MODULE_LINKER_FLAGS_INIT " system dos4g")
+endif()
+
+set(CMAKE_C_COMPILE_OPTIONS_DLL "-bd") # Note: This variable is a ';' separated list
+set(CMAKE_SHARED_LIBRARY_C_FLAGS "-bd") # ... while this is a space separated string.
+
+string(APPEND CMAKE_C_FLAGS_INIT " -bt=dos")
+string(APPEND CMAKE_CXX_FLAGS_INIT " -bt=dos -xs")
+
+if(NOT CMAKE_C_STANDARD_INCLUDE_DIRECTORIES)
+  set(CMAKE_C_STANDARD_INCLUDE_DIRECTORIES $ENV{WATCOM}/h)
+endif()
+if(NOT CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES)
+  set(CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES $ENV{WATCOM}/h)
+endif()
diff --git a/share/cmake-3.18/Modules/Platform/DOS.cmake b/share/cmake-3.18/Modules/Platform/DOS.cmake
new file mode 100644
index 0000000..fc95936
--- /dev/null
+++ b/share/cmake-3.18/Modules/Platform/DOS.cmake
@@ -0,0 +1,14 @@
+set(DOS 1)
+
+set(CMAKE_STATIC_LIBRARY_PREFIX "")
+set(CMAKE_STATIC_LIBRARY_SUFFIX ".lib")
+set(CMAKE_SHARED_LIBRARY_PREFIX "")
+set(CMAKE_SHARED_LIBRARY_SUFFIX ".dll")
+set(CMAKE_IMPORT_LIBRARY_PREFIX "")
+set(CMAKE_IMPORT_LIBRARY_SUFFIX ".lib")
+set(CMAKE_EXECUTABLE_SUFFIX ".exe")
+set(CMAKE_LINK_LIBRARY_SUFFIX ".lib")
+set(CMAKE_DL_LIBS "")
+
+set(CMAKE_FIND_LIBRARY_PREFIXES "")
+set(CMAKE_FIND_LIBRARY_SUFFIXES ".lib")
diff --git a/share/cmake-3.17/Modules/Platform/Darwin-Determine-CXX.cmake b/share/cmake-3.18/Modules/Platform/Darwin-Determine-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Darwin-Determine-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/Darwin-Determine-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Darwin-Initialize.cmake b/share/cmake-3.18/Modules/Platform/Darwin-Initialize.cmake
similarity index 73%
rename from share/cmake-3.17/Modules/Platform/Darwin-Initialize.cmake
rename to share/cmake-3.18/Modules/Platform/Darwin-Initialize.cmake
index 729217c..80e9a40 100644
--- a/share/cmake-3.17/Modules/Platform/Darwin-Initialize.cmake
+++ b/share/cmake-3.18/Modules/Platform/Darwin-Initialize.cmake
@@ -133,10 +133,84 @@
   )
   set(${ret} "${_stdout}" PARENT_SCOPE)
 endfunction()
+
+function(_apple_resolve_supported_archs_for_sdk_from_system_lib sdk_path ret ret_failed)
+  # Detect the supported SDK architectures by inspecting the main libSystem library.
+  set(common_lib_prefix "${sdk_path}/usr/lib/libSystem")
+  set(system_lib_dylib_path "${common_lib_prefix}.dylib")
+  set(system_lib_tbd_path "${common_lib_prefix}.tbd")
+
+  # Newer SDKs ship text based dylib stub files which contain the architectures supported by the
+  # library in text form.
+  if(EXISTS "${system_lib_tbd_path}")
+    file(STRINGS "${system_lib_tbd_path}" tbd_lines REGEX "^archs: +\\[.+\\]")
+    if(NOT tbd_lines)
+      set(${ret_failed} TRUE PARENT_SCOPE)
+      return()
+    endif()
+
+    # The tbd architectures line looks like the following:
+    # archs:           [ armv7, armv7s, arm64, arm64e ]
+    list(GET tbd_lines 0 first_arch_line)
+    string(REGEX REPLACE
+           "archs: +\\[ (.+) \\]" "\\1" arches_comma_separated "${first_arch_line}")
+    string(STRIP "${arches_comma_separated}" arches_comma_separated)
+    string(REPLACE "," ";" arch_list "${arches_comma_separated}")
+    string(REPLACE " " "" arch_list "${arch_list}")
+    if(NOT arch_list)
+      set(${ret_failed} TRUE PARENT_SCOPE)
+      return()
+    endif()
+    set(${ret} "${arch_list}" PARENT_SCOPE)
+  elseif(EXISTS "${system_lib_dylib_path}")
+    # Old SDKs (Xcode < 7) ship dylib files, use lipo to inspect the supported architectures.
+    # Can't use -archs because the option is not available in older Xcode versions.
+    execute_process(
+      COMMAND lipo -info ${system_lib_dylib_path}
+      OUTPUT_VARIABLE lipo_output
+      OUTPUT_STRIP_TRAILING_WHITESPACE
+      ERROR_VARIABLE _stderr
+      RESULT_VARIABLE _failed
+    )
+    if(_failed OR NOT lipo_output OR NOT lipo_output MATCHES "(Non-fat file:|Architectures in the fat file:)")
+      set(${ret_failed} TRUE PARENT_SCOPE)
+      return()
+    endif()
+
+    # The lipo output looks like the following:
+    # Non-fat file: <path> is architecture: i386
+    # Architectures in the fat file: <path> are: i386 x86_64
+    string(REGEX REPLACE
+           "^(.+)is architecture:(.+)" "\\2" arches_space_separated "${lipo_output}")
+    string(REGEX REPLACE
+            "^(.+)are:(.+)" "\\2" arches_space_separated "${arches_space_separated}")
+
+    # Need to clean up the arches, with Xcode 4.6.3 the output of lipo -info contains some
+    # additional info, e.g.
+    # Architectures in the fat file: <path> are: armv7 (cputype (12) cpusubtype (11))
+    string(REGEX REPLACE
+            "\\(.+\\)" "" arches_space_separated "${arches_space_separated}")
+
+    # The output is space separated.
+    string(STRIP "${arches_space_separated}" arches_space_separated)
+    string(REPLACE " " ";" arch_list "${arches_space_separated}")
+
+    if(NOT arch_list)
+      set(${ret_failed} TRUE PARENT_SCOPE)
+      return()
+    endif()
+    set(${ret} "${arch_list}" PARENT_SCOPE)
+  else()
+    # This shouldn't happen, but keep it for safety.
+    message(WARNING "No way to find architectures for given sdk_path '${sdk_path}'")
+    set(${ret_failed} TRUE PARENT_SCOPE)
+  endif()
+endfunction()
+
 # Handle multi-arch sysroots. Do this before CMAKE_OSX_SYSROOT is
 # transformed into a path, so that we know the sysroot name.
 function(_apple_resolve_multi_arch_sysroots)
-  if(CMAKE_APPLE_ARCH_SYSROOTS)
+  if(DEFINED CMAKE_APPLE_ARCH_SYSROOTS)
     return() # Already cached
   endif()
 
@@ -166,13 +240,8 @@
       continue()
     endif()
 
-    execute_process(
-      COMMAND plutil -extract SupportedTargets.${sdk}.Archs json ${_sdk_path}/SDKSettings.plist -o -
-      OUTPUT_VARIABLE _sdk_archs_json
-      OUTPUT_STRIP_TRAILING_WHITESPACE
-      ERROR_VARIABLE _stderr
-      RESULT_VARIABLE _failed
-      )
+    _apple_resolve_supported_archs_for_sdk_from_system_lib(${_sdk_path} _sdk_archs _failed)
+
     if(_failed)
       # Failure to extract supported architectures for an SDK means that the installed SDK is old
       # and does not provide such information (SDKs that come with Xcode >= 10.x started providing
@@ -181,10 +250,6 @@
       return()
     endif()
 
-    # Poor man's JSON decoding
-    string(REGEX REPLACE "[]\\[\"]" "" _sdk_archs ${_sdk_archs_json})
-    string(REPLACE "," ";" _sdk_archs ${_sdk_archs})
-
     set(_sdk_archs_${sdk} ${_sdk_archs})
     set(_sdk_path_${sdk} ${_sdk_path})
   endforeach()
@@ -202,7 +267,7 @@
       list(APPEND _arch_sysroots ${_arch_sysroot})
     else()
       message(WARNING "No SDK found for architecture '${arch}'")
-      list(APPEND _arch_sysroots "") # Placeholder
+      list(APPEND _arch_sysroots "${arch}-SDK-NOTFOUND")
     endif()
   endforeach()
 
diff --git a/share/cmake-3.17/Modules/Platform/Darwin.cmake b/share/cmake-3.18/Modules/Platform/Darwin.cmake
similarity index 88%
rename from share/cmake-3.17/Modules/Platform/Darwin.cmake
rename to share/cmake-3.18/Modules/Platform/Darwin.cmake
index 0a4d4e1..c6de3b0 100644
--- a/share/cmake-3.17/Modules/Platform/Darwin.cmake
+++ b/share/cmake-3.18/Modules/Platform/Darwin.cmake
@@ -42,6 +42,7 @@
 
 set(CMAKE_SHARED_LIBRARY_PREFIX "lib")
 set(CMAKE_SHARED_LIBRARY_SUFFIX ".dylib")
+set(CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES ".tbd" ".so")
 set(CMAKE_SHARED_MODULE_PREFIX "lib")
 set(CMAKE_SHARED_MODULE_SUFFIX ".so")
 set(CMAKE_MODULE_EXISTS 1)
@@ -156,6 +157,13 @@
       break()
     endif()
   endforeach()
+
+  if(EXISTS ${_CMAKE_OSX_SYSROOT_PATH}/usr/lib)
+    list(INSERT CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES 0 ${_CMAKE_OSX_SYSROOT_PATH}/usr/lib)
+  endif()
+  if(EXISTS ${_CMAKE_OSX_SYSROOT_PATH}/usr/local/lib)
+    list(INSERT CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES 0 ${_CMAKE_OSX_SYSROOT_PATH}/usr/local/lib)
+  endif()
 endif()
 if (OSX_DEVELOPER_ROOT AND EXISTS "${OSX_DEVELOPER_ROOT}/Library/Frameworks")
   list(APPEND CMAKE_SYSTEM_FRAMEWORK_PATH
@@ -208,11 +216,19 @@
 unset(_apps_paths)
 
 include(Platform/UnixPaths)
-if(_CMAKE_OSX_SYSROOT_PATH AND EXISTS ${_CMAKE_OSX_SYSROOT_PATH}/usr/include)
-  list(APPEND CMAKE_SYSTEM_PREFIX_PATH ${_CMAKE_OSX_SYSROOT_PATH}/usr)
-  foreach(lang C CXX OBJC OBJCXX Swift)
-    list(APPEND _CMAKE_${lang}_IMPLICIT_INCLUDE_DIRECTORIES_INIT ${_CMAKE_OSX_SYSROOT_PATH}/usr/include)
-  endforeach()
+if(_CMAKE_OSX_SYSROOT_PATH)
+  if(EXISTS ${_CMAKE_OSX_SYSROOT_PATH}/usr/include)
+    list(INSERT CMAKE_SYSTEM_PREFIX_PATH 0 ${_CMAKE_OSX_SYSROOT_PATH}/usr)
+    foreach(lang C CXX OBJC OBJCXX Swift)
+      list(APPEND _CMAKE_${lang}_IMPLICIT_INCLUDE_DIRECTORIES_INIT ${_CMAKE_OSX_SYSROOT_PATH}/usr/include)
+    endforeach()
+  endif()
+  if(EXISTS ${_CMAKE_OSX_SYSROOT_PATH}/usr/local/include)
+    list(INSERT CMAKE_SYSTEM_PREFIX_PATH 0 ${_CMAKE_OSX_SYSROOT_PATH}/usr/local)
+    foreach(lang C CXX OBJC OBJCXX Swift)
+      list(APPEND _CMAKE_${lang}_IMPLICIT_INCLUDE_DIRECTORIES_INIT ${_CMAKE_OSX_SYSROOT_PATH}/usr/local/include)
+    endforeach()
+  endif()
 endif()
 list(APPEND CMAKE_SYSTEM_PREFIX_PATH
   /sw        # Fink
diff --git a/share/cmake-3.17/Modules/Platform/DragonFly.cmake b/share/cmake-3.18/Modules/Platform/DragonFly.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/DragonFly.cmake
rename to share/cmake-3.18/Modules/Platform/DragonFly.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Euros.cmake b/share/cmake-3.18/Modules/Platform/Euros.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Euros.cmake
rename to share/cmake-3.18/Modules/Platform/Euros.cmake
diff --git a/share/cmake-3.17/Modules/Platform/FreeBSD-Determine-CXX.cmake b/share/cmake-3.18/Modules/Platform/FreeBSD-Determine-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/FreeBSD-Determine-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/FreeBSD-Determine-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/FreeBSD.cmake b/share/cmake-3.18/Modules/Platform/FreeBSD.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/FreeBSD.cmake
rename to share/cmake-3.18/Modules/Platform/FreeBSD.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Fuchsia.cmake b/share/cmake-3.18/Modules/Platform/Fuchsia.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Fuchsia.cmake
rename to share/cmake-3.18/Modules/Platform/Fuchsia.cmake
diff --git a/share/cmake-3.17/Modules/Platform/GHS-MULTI-Determine.cmake b/share/cmake-3.18/Modules/Platform/GHS-MULTI-Determine.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/GHS-MULTI-Determine.cmake
rename to share/cmake-3.18/Modules/Platform/GHS-MULTI-Determine.cmake
diff --git a/share/cmake-3.17/Modules/Platform/GHS-MULTI.cmake b/share/cmake-3.18/Modules/Platform/GHS-MULTI.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/GHS-MULTI.cmake
rename to share/cmake-3.18/Modules/Platform/GHS-MULTI.cmake
diff --git a/share/cmake-3.17/Modules/Platform/GNU.cmake b/share/cmake-3.18/Modules/Platform/GNU.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/GNU.cmake
rename to share/cmake-3.18/Modules/Platform/GNU.cmake
diff --git a/share/cmake-3.17/Modules/Platform/GNUtoMS_lib.bat.in b/share/cmake-3.18/Modules/Platform/GNUtoMS_lib.bat.in
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/GNUtoMS_lib.bat.in
rename to share/cmake-3.18/Modules/Platform/GNUtoMS_lib.bat.in
diff --git a/share/cmake-3.17/Modules/Platform/GNUtoMS_lib.cmake b/share/cmake-3.18/Modules/Platform/GNUtoMS_lib.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/GNUtoMS_lib.cmake
rename to share/cmake-3.18/Modules/Platform/GNUtoMS_lib.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Generic-ADSP-ASM.cmake b/share/cmake-3.18/Modules/Platform/Generic-ADSP-ASM.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Generic-ADSP-ASM.cmake
rename to share/cmake-3.18/Modules/Platform/Generic-ADSP-ASM.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Generic-ADSP-C.cmake b/share/cmake-3.18/Modules/Platform/Generic-ADSP-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Generic-ADSP-C.cmake
rename to share/cmake-3.18/Modules/Platform/Generic-ADSP-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Generic-ADSP-CXX.cmake b/share/cmake-3.18/Modules/Platform/Generic-ADSP-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Generic-ADSP-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/Generic-ADSP-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Generic-ADSP-Common.cmake b/share/cmake-3.18/Modules/Platform/Generic-ADSP-Common.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Generic-ADSP-Common.cmake
rename to share/cmake-3.18/Modules/Platform/Generic-ADSP-Common.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Generic-SDCC-C.cmake b/share/cmake-3.18/Modules/Platform/Generic-SDCC-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Generic-SDCC-C.cmake
rename to share/cmake-3.18/Modules/Platform/Generic-SDCC-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Generic.cmake b/share/cmake-3.18/Modules/Platform/Generic.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Generic.cmake
rename to share/cmake-3.18/Modules/Platform/Generic.cmake
diff --git a/share/cmake-3.17/Modules/Platform/HP-UX-GNU-ASM.cmake b/share/cmake-3.18/Modules/Platform/HP-UX-GNU-ASM.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/HP-UX-GNU-ASM.cmake
rename to share/cmake-3.18/Modules/Platform/HP-UX-GNU-ASM.cmake
diff --git a/share/cmake-3.17/Modules/Platform/HP-UX-GNU-C.cmake b/share/cmake-3.18/Modules/Platform/HP-UX-GNU-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/HP-UX-GNU-C.cmake
rename to share/cmake-3.18/Modules/Platform/HP-UX-GNU-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/HP-UX-GNU-CXX.cmake b/share/cmake-3.18/Modules/Platform/HP-UX-GNU-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/HP-UX-GNU-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/HP-UX-GNU-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/HP-UX-GNU-Fortran.cmake b/share/cmake-3.18/Modules/Platform/HP-UX-GNU-Fortran.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/HP-UX-GNU-Fortran.cmake
rename to share/cmake-3.18/Modules/Platform/HP-UX-GNU-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/HP-UX-GNU.cmake b/share/cmake-3.18/Modules/Platform/HP-UX-GNU.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/HP-UX-GNU.cmake
rename to share/cmake-3.18/Modules/Platform/HP-UX-GNU.cmake
diff --git a/share/cmake-3.17/Modules/Platform/HP-UX-HP-ASM.cmake b/share/cmake-3.18/Modules/Platform/HP-UX-HP-ASM.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/HP-UX-HP-ASM.cmake
rename to share/cmake-3.18/Modules/Platform/HP-UX-HP-ASM.cmake
diff --git a/share/cmake-3.17/Modules/Platform/HP-UX-HP-C.cmake b/share/cmake-3.18/Modules/Platform/HP-UX-HP-C.cmake
similarity index 88%
rename from share/cmake-3.17/Modules/Platform/HP-UX-HP-C.cmake
rename to share/cmake-3.18/Modules/Platform/HP-UX-HP-C.cmake
index 7610383..57ba2eb 100644
--- a/share/cmake-3.17/Modules/Platform/HP-UX-HP-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/HP-UX-HP-C.cmake
@@ -3,4 +3,4 @@
 
 set(CMAKE_C_CREATE_PREPROCESSED_SOURCE "<CMAKE_C_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -E <SOURCE> > <PREPROCESSED_SOURCE>")
 set(CMAKE_C_CREATE_ASSEMBLY_SOURCE "<CMAKE_C_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -S <SOURCE> -o <ASSEMBLY_SOURCE>")
-set(CMAKE_C_COMPILE_OBJECT "<CMAKE_C_COMPILER> <DEFINES> -Aa -Ae <INCLUDES> <FLAGS> -o <OBJECT>   -c <SOURCE>")
+set(CMAKE_C_COMPILE_OBJECT "<CMAKE_C_COMPILER> <DEFINES> -Aa -Ae <INCLUDES> <FLAGS> -o <OBJECT> -c <SOURCE>")
diff --git a/share/cmake-3.17/Modules/Platform/HP-UX-HP-CXX.cmake b/share/cmake-3.18/Modules/Platform/HP-UX-HP-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/HP-UX-HP-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/HP-UX-HP-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/HP-UX-HP-Fortran.cmake b/share/cmake-3.18/Modules/Platform/HP-UX-HP-Fortran.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/HP-UX-HP-Fortran.cmake
rename to share/cmake-3.18/Modules/Platform/HP-UX-HP-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/HP-UX-HP.cmake b/share/cmake-3.18/Modules/Platform/HP-UX-HP.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/HP-UX-HP.cmake
rename to share/cmake-3.18/Modules/Platform/HP-UX-HP.cmake
diff --git a/share/cmake-3.17/Modules/Platform/HP-UX.cmake b/share/cmake-3.18/Modules/Platform/HP-UX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/HP-UX.cmake
rename to share/cmake-3.18/Modules/Platform/HP-UX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Haiku.cmake b/share/cmake-3.18/Modules/Platform/Haiku.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Haiku.cmake
rename to share/cmake-3.18/Modules/Platform/Haiku.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-Absoft-Fortran.cmake b/share/cmake-3.18/Modules/Platform/Linux-Absoft-Fortran.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Linux-Absoft-Fortran.cmake
rename to share/cmake-3.18/Modules/Platform/Linux-Absoft-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-CCur-Fortran.cmake b/share/cmake-3.18/Modules/Platform/Linux-CCur-Fortran.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Linux-CCur-Fortran.cmake
rename to share/cmake-3.18/Modules/Platform/Linux-CCur-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-Clang-C.cmake b/share/cmake-3.18/Modules/Platform/Linux-Clang-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Linux-Clang-C.cmake
rename to share/cmake-3.18/Modules/Platform/Linux-Clang-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-Clang-CXX.cmake b/share/cmake-3.18/Modules/Platform/Linux-Clang-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Linux-Clang-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/Linux-Clang-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-Determine-CXX.cmake b/share/cmake-3.18/Modules/Platform/Linux-Determine-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Linux-Determine-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/Linux-Determine-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-GNU-C.cmake b/share/cmake-3.18/Modules/Platform/Linux-GNU-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Linux-GNU-C.cmake
rename to share/cmake-3.18/Modules/Platform/Linux-GNU-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-GNU-CXX.cmake b/share/cmake-3.18/Modules/Platform/Linux-GNU-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Linux-GNU-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/Linux-GNU-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-GNU-Fortran.cmake b/share/cmake-3.18/Modules/Platform/Linux-GNU-Fortran.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Linux-GNU-Fortran.cmake
rename to share/cmake-3.18/Modules/Platform/Linux-GNU-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-GNU.cmake b/share/cmake-3.18/Modules/Platform/Linux-GNU.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Linux-GNU.cmake
rename to share/cmake-3.18/Modules/Platform/Linux-GNU.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-Intel-C.cmake b/share/cmake-3.18/Modules/Platform/Linux-Intel-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Linux-Intel-C.cmake
rename to share/cmake-3.18/Modules/Platform/Linux-Intel-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-Intel-CXX.cmake b/share/cmake-3.18/Modules/Platform/Linux-Intel-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Linux-Intel-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/Linux-Intel-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-Intel-Fortran.cmake b/share/cmake-3.18/Modules/Platform/Linux-Intel-Fortran.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Linux-Intel-Fortran.cmake
rename to share/cmake-3.18/Modules/Platform/Linux-Intel-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-Intel.cmake b/share/cmake-3.18/Modules/Platform/Linux-Intel.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Linux-Intel.cmake
rename to share/cmake-3.18/Modules/Platform/Linux-Intel.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-NAG-Fortran.cmake b/share/cmake-3.18/Modules/Platform/Linux-NAG-Fortran.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Linux-NAG-Fortran.cmake
rename to share/cmake-3.18/Modules/Platform/Linux-NAG-Fortran.cmake
diff --git a/share/cmake-3.18/Modules/Platform/Linux-OpenWatcom-C.cmake b/share/cmake-3.18/Modules/Platform/Linux-OpenWatcom-C.cmake
new file mode 100644
index 0000000..383349a
--- /dev/null
+++ b/share/cmake-3.18/Modules/Platform/Linux-OpenWatcom-C.cmake
@@ -0,0 +1 @@
+include(Platform/Linux-OpenWatcom)
diff --git a/share/cmake-3.18/Modules/Platform/Linux-OpenWatcom-CXX.cmake b/share/cmake-3.18/Modules/Platform/Linux-OpenWatcom-CXX.cmake
new file mode 100644
index 0000000..383349a
--- /dev/null
+++ b/share/cmake-3.18/Modules/Platform/Linux-OpenWatcom-CXX.cmake
@@ -0,0 +1 @@
+include(Platform/Linux-OpenWatcom)
diff --git a/share/cmake-3.18/Modules/Platform/Linux-OpenWatcom.cmake b/share/cmake-3.18/Modules/Platform/Linux-OpenWatcom.cmake
new file mode 100644
index 0000000..5b4e995
--- /dev/null
+++ b/share/cmake-3.18/Modules/Platform/Linux-OpenWatcom.cmake
@@ -0,0 +1,25 @@
+# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+# This module is shared by multiple languages; use include blocker.
+include_guard()
+
+set(CMAKE_BUILD_TYPE_INIT Debug)
+
+string(APPEND CMAKE_EXE_LINKER_FLAGS_INIT " system linux opt noextension")
+string(APPEND CMAKE_MODULE_LINKER_FLAGS_INIT " system linux")
+string(APPEND CMAKE_SHARED_LINKER_FLAGS_INIT " system linux")
+
+# single/multi-threaded                 /-bm
+# default is setup for single-threaded libraries
+string(APPEND CMAKE_C_FLAGS_INIT " -bt=linux")
+string(APPEND CMAKE_CXX_FLAGS_INIT " -bt=linux -xs")
+
+if(CMAKE_CROSSCOMPILING)
+  if(NOT CMAKE_C_STANDARD_INCLUDE_DIRECTORIES)
+    set(CMAKE_C_STANDARD_INCLUDE_DIRECTORIES $ENV{WATCOM}/lh)
+  endif()
+  if(NOT CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES)
+    set(CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES $ENV{WATCOM}/lh)
+  endif()
+endif()
diff --git a/share/cmake-3.17/Modules/Platform/Linux-PGI-C.cmake b/share/cmake-3.18/Modules/Platform/Linux-PGI-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Linux-PGI-C.cmake
rename to share/cmake-3.18/Modules/Platform/Linux-PGI-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-PGI-CXX.cmake b/share/cmake-3.18/Modules/Platform/Linux-PGI-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Linux-PGI-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/Linux-PGI-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-PGI-Fortran.cmake b/share/cmake-3.18/Modules/Platform/Linux-PGI-Fortran.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Linux-PGI-Fortran.cmake
rename to share/cmake-3.18/Modules/Platform/Linux-PGI-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-PGI.cmake b/share/cmake-3.18/Modules/Platform/Linux-PGI.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Linux-PGI.cmake
rename to share/cmake-3.18/Modules/Platform/Linux-PGI.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-PathScale-C.cmake b/share/cmake-3.18/Modules/Platform/Linux-PathScale-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Linux-PathScale-C.cmake
rename to share/cmake-3.18/Modules/Platform/Linux-PathScale-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-PathScale-CXX.cmake b/share/cmake-3.18/Modules/Platform/Linux-PathScale-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Linux-PathScale-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/Linux-PathScale-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-PathScale-Fortran.cmake b/share/cmake-3.18/Modules/Platform/Linux-PathScale-Fortran.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Linux-PathScale-Fortran.cmake
rename to share/cmake-3.18/Modules/Platform/Linux-PathScale-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-PathScale.cmake b/share/cmake-3.18/Modules/Platform/Linux-PathScale.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Linux-PathScale.cmake
rename to share/cmake-3.18/Modules/Platform/Linux-PathScale.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-SunPro-CXX.cmake b/share/cmake-3.18/Modules/Platform/Linux-SunPro-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Linux-SunPro-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/Linux-SunPro-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-TinyCC-C.cmake b/share/cmake-3.18/Modules/Platform/Linux-TinyCC-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Linux-TinyCC-C.cmake
rename to share/cmake-3.18/Modules/Platform/Linux-TinyCC-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-VisualAge-C.cmake b/share/cmake-3.18/Modules/Platform/Linux-VisualAge-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Linux-VisualAge-C.cmake
rename to share/cmake-3.18/Modules/Platform/Linux-VisualAge-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-VisualAge-CXX.cmake b/share/cmake-3.18/Modules/Platform/Linux-VisualAge-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Linux-VisualAge-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/Linux-VisualAge-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-VisualAge-Fortran.cmake b/share/cmake-3.18/Modules/Platform/Linux-VisualAge-Fortran.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Linux-VisualAge-Fortran.cmake
rename to share/cmake-3.18/Modules/Platform/Linux-VisualAge-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-XL-C.cmake b/share/cmake-3.18/Modules/Platform/Linux-XL-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Linux-XL-C.cmake
rename to share/cmake-3.18/Modules/Platform/Linux-XL-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-XL-CXX.cmake b/share/cmake-3.18/Modules/Platform/Linux-XL-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Linux-XL-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/Linux-XL-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-XL-Fortran.cmake b/share/cmake-3.18/Modules/Platform/Linux-XL-Fortran.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Linux-XL-Fortran.cmake
rename to share/cmake-3.18/Modules/Platform/Linux-XL-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-como.cmake b/share/cmake-3.18/Modules/Platform/Linux-como.cmake
similarity index 93%
rename from share/cmake-3.17/Modules/Platform/Linux-como.cmake
rename to share/cmake-3.18/Modules/Platform/Linux-como.cmake
index d1550d2..f6db34c 100644
--- a/share/cmake-3.17/Modules/Platform/Linux-como.cmake
+++ b/share/cmake-3.18/Modules/Platform/Linux-como.cmake
@@ -11,7 +11,7 @@
 
 set(CMAKE_CXX_LINK_EXECUTABLE
     "<CMAKE_CXX_COMPILER> --prelink_objects <OBJECTS>"
-    "<CMAKE_CXX_COMPILER> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <FLAGS> <OBJECTS>  -o <TARGET> <LINK_LIBRARIES>")
+    "<CMAKE_CXX_COMPILER> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
 
 set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "")
 set(CMAKE_SHARED_LIBRARY_C_FLAGS "")
diff --git a/share/cmake-3.17/Modules/Platform/Linux.cmake b/share/cmake-3.18/Modules/Platform/Linux.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Linux.cmake
rename to share/cmake-3.18/Modules/Platform/Linux.cmake
diff --git a/share/cmake-3.17/Modules/Platform/MP-RAS.cmake b/share/cmake-3.18/Modules/Platform/MP-RAS.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/MP-RAS.cmake
rename to share/cmake-3.18/Modules/Platform/MP-RAS.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Midipix.cmake b/share/cmake-3.18/Modules/Platform/Midipix.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Midipix.cmake
rename to share/cmake-3.18/Modules/Platform/Midipix.cmake
diff --git a/share/cmake-3.17/Modules/Platform/MirBSD.cmake b/share/cmake-3.18/Modules/Platform/MirBSD.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/MirBSD.cmake
rename to share/cmake-3.18/Modules/Platform/MirBSD.cmake
diff --git a/share/cmake-3.17/Modules/Platform/NetBSD.cmake b/share/cmake-3.18/Modules/Platform/NetBSD.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/NetBSD.cmake
rename to share/cmake-3.18/Modules/Platform/NetBSD.cmake
diff --git a/share/cmake-3.18/Modules/Platform/OS2-OpenWatcom-C.cmake b/share/cmake-3.18/Modules/Platform/OS2-OpenWatcom-C.cmake
new file mode 100644
index 0000000..21a4d9e
--- /dev/null
+++ b/share/cmake-3.18/Modules/Platform/OS2-OpenWatcom-C.cmake
@@ -0,0 +1 @@
+include(Platform/OS2-OpenWatcom)
diff --git a/share/cmake-3.18/Modules/Platform/OS2-OpenWatcom-CXX.cmake b/share/cmake-3.18/Modules/Platform/OS2-OpenWatcom-CXX.cmake
new file mode 100644
index 0000000..21a4d9e
--- /dev/null
+++ b/share/cmake-3.18/Modules/Platform/OS2-OpenWatcom-CXX.cmake
@@ -0,0 +1 @@
+include(Platform/OS2-OpenWatcom)
diff --git a/share/cmake-3.18/Modules/Platform/OS2-OpenWatcom.cmake b/share/cmake-3.18/Modules/Platform/OS2-OpenWatcom.cmake
new file mode 100644
index 0000000..998fb9f
--- /dev/null
+++ b/share/cmake-3.18/Modules/Platform/OS2-OpenWatcom.cmake
@@ -0,0 +1,35 @@
+# This module is shared by multiple languages; use include blocker.
+include_guard()
+
+set(CMAKE_BUILD_TYPE_INIT Debug)
+
+if(DEFINED CMAKE_SYSTEM_PROCESSOR AND CMAKE_SYSTEM_PROCESSOR STREQUAL "I86")
+  string(APPEND CMAKE_EXE_LINKER_FLAGS_INIT " system os2")
+  string(APPEND CMAKE_SHARED_LINKER_FLAGS_INIT " system os2_dll")
+  string(APPEND CMAKE_MODULE_LINKER_FLAGS_INIT " system os2_dll")
+else()
+  string(APPEND CMAKE_EXE_LINKER_FLAGS_INIT " system os2v2")
+  string(APPEND CMAKE_SHARED_LINKER_FLAGS_INIT " system os2v2_dll")
+  string(APPEND CMAKE_MODULE_LINKER_FLAGS_INIT " system os2v2_dll")
+endif()
+
+set(CMAKE_C_COMPILE_OPTIONS_DLL "-bd") # Note: This variable is a ';' separated list
+set(CMAKE_SHARED_LIBRARY_C_FLAGS "-bd") # ... while this is a space separated string.
+
+string(APPEND CMAKE_C_FLAGS_INIT " -bt=os2")
+string(APPEND CMAKE_CXX_FLAGS_INIT " -bt=os2 -xs")
+
+if(NOT CMAKE_C_STANDARD_INCLUDE_DIRECTORIES)
+  if(DEFINED CMAKE_SYSTEM_PROCESSOR AND CMAKE_SYSTEM_PROCESSOR STREQUAL "I86")
+    set(CMAKE_C_STANDARD_INCLUDE_DIRECTORIES $ENV{WATCOM}/h $ENV{WATCOM}/h/os21x)
+  else()
+    set(CMAKE_C_STANDARD_INCLUDE_DIRECTORIES $ENV{WATCOM}/h $ENV{WATCOM}/h/os2)
+  endif()
+endif()
+if(NOT CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES)
+  if(DEFINED CMAKE_SYSTEM_PROCESSOR AND CMAKE_SYSTEM_PROCESSOR STREQUAL "I86")
+    set(CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES $ENV{WATCOM}/h $ENV{WATCOM}/h/os21x)
+  else()
+    set(CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES $ENV{WATCOM}/h $ENV{WATCOM}/h/os2)
+  endif()
+endif()
diff --git a/share/cmake-3.18/Modules/Platform/OS2.cmake b/share/cmake-3.18/Modules/Platform/OS2.cmake
new file mode 100644
index 0000000..a9df66d
--- /dev/null
+++ b/share/cmake-3.18/Modules/Platform/OS2.cmake
@@ -0,0 +1,14 @@
+set(OS2 1)
+
+set(CMAKE_STATIC_LIBRARY_PREFIX "")
+set(CMAKE_STATIC_LIBRARY_SUFFIX ".lib")
+set(CMAKE_SHARED_LIBRARY_PREFIX "")
+set(CMAKE_SHARED_LIBRARY_SUFFIX ".dll")
+set(CMAKE_IMPORT_LIBRARY_PREFIX "")
+set(CMAKE_IMPORT_LIBRARY_SUFFIX ".lib")
+set(CMAKE_EXECUTABLE_SUFFIX ".exe")
+set(CMAKE_LINK_LIBRARY_SUFFIX ".lib")
+set(CMAKE_DL_LIBS "")
+
+set(CMAKE_FIND_LIBRARY_PREFIXES "")
+set(CMAKE_FIND_LIBRARY_SUFFIXES ".lib")
diff --git a/share/cmake-3.17/Modules/Platform/OSF1.cmake b/share/cmake-3.18/Modules/Platform/OSF1.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/OSF1.cmake
rename to share/cmake-3.18/Modules/Platform/OSF1.cmake
diff --git a/share/cmake-3.17/Modules/Platform/OpenBSD.cmake b/share/cmake-3.18/Modules/Platform/OpenBSD.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/OpenBSD.cmake
rename to share/cmake-3.18/Modules/Platform/OpenBSD.cmake
diff --git a/share/cmake-3.17/Modules/Platform/OpenVMS.cmake b/share/cmake-3.18/Modules/Platform/OpenVMS.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/OpenVMS.cmake
rename to share/cmake-3.18/Modules/Platform/OpenVMS.cmake
diff --git a/share/cmake-3.17/Modules/Platform/QNX.cmake b/share/cmake-3.18/Modules/Platform/QNX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/QNX.cmake
rename to share/cmake-3.18/Modules/Platform/QNX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/RISCos.cmake b/share/cmake-3.18/Modules/Platform/RISCos.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/RISCos.cmake
rename to share/cmake-3.18/Modules/Platform/RISCos.cmake
diff --git a/share/cmake-3.17/Modules/Platform/SCO_SV.cmake b/share/cmake-3.18/Modules/Platform/SCO_SV.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/SCO_SV.cmake
rename to share/cmake-3.18/Modules/Platform/SCO_SV.cmake
diff --git a/share/cmake-3.17/Modules/Platform/SINIX.cmake b/share/cmake-3.18/Modules/Platform/SINIX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/SINIX.cmake
rename to share/cmake-3.18/Modules/Platform/SINIX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/SunOS-Clang-C.cmake b/share/cmake-3.18/Modules/Platform/SunOS-Clang-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/SunOS-Clang-C.cmake
rename to share/cmake-3.18/Modules/Platform/SunOS-Clang-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/SunOS-Clang-CXX.cmake b/share/cmake-3.18/Modules/Platform/SunOS-Clang-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/SunOS-Clang-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/SunOS-Clang-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/SunOS-GNU-C.cmake b/share/cmake-3.18/Modules/Platform/SunOS-GNU-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/SunOS-GNU-C.cmake
rename to share/cmake-3.18/Modules/Platform/SunOS-GNU-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/SunOS-GNU-CXX.cmake b/share/cmake-3.18/Modules/Platform/SunOS-GNU-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/SunOS-GNU-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/SunOS-GNU-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/SunOS-GNU-Fortran.cmake b/share/cmake-3.18/Modules/Platform/SunOS-GNU-Fortran.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/SunOS-GNU-Fortran.cmake
rename to share/cmake-3.18/Modules/Platform/SunOS-GNU-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/SunOS-GNU.cmake b/share/cmake-3.18/Modules/Platform/SunOS-GNU.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/SunOS-GNU.cmake
rename to share/cmake-3.18/Modules/Platform/SunOS-GNU.cmake
diff --git a/share/cmake-3.17/Modules/Platform/SunOS-PathScale-C.cmake b/share/cmake-3.18/Modules/Platform/SunOS-PathScale-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/SunOS-PathScale-C.cmake
rename to share/cmake-3.18/Modules/Platform/SunOS-PathScale-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/SunOS-PathScale-CXX.cmake b/share/cmake-3.18/Modules/Platform/SunOS-PathScale-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/SunOS-PathScale-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/SunOS-PathScale-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/SunOS-PathScale-Fortran.cmake b/share/cmake-3.18/Modules/Platform/SunOS-PathScale-Fortran.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/SunOS-PathScale-Fortran.cmake
rename to share/cmake-3.18/Modules/Platform/SunOS-PathScale-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/SunOS-PathScale.cmake b/share/cmake-3.18/Modules/Platform/SunOS-PathScale.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/SunOS-PathScale.cmake
rename to share/cmake-3.18/Modules/Platform/SunOS-PathScale.cmake
diff --git a/share/cmake-3.17/Modules/Platform/SunOS.cmake b/share/cmake-3.18/Modules/Platform/SunOS.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/SunOS.cmake
rename to share/cmake-3.18/Modules/Platform/SunOS.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Tru64.cmake b/share/cmake-3.18/Modules/Platform/Tru64.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Tru64.cmake
rename to share/cmake-3.18/Modules/Platform/Tru64.cmake
diff --git a/share/cmake-3.17/Modules/Platform/ULTRIX.cmake b/share/cmake-3.18/Modules/Platform/ULTRIX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/ULTRIX.cmake
rename to share/cmake-3.18/Modules/Platform/ULTRIX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/UNIX_SV.cmake b/share/cmake-3.18/Modules/Platform/UNIX_SV.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/UNIX_SV.cmake
rename to share/cmake-3.18/Modules/Platform/UNIX_SV.cmake
diff --git a/share/cmake-3.17/Modules/Platform/UnixPaths.cmake b/share/cmake-3.18/Modules/Platform/UnixPaths.cmake
similarity index 83%
rename from share/cmake-3.17/Modules/Platform/UnixPaths.cmake
rename to share/cmake-3.18/Modules/Platform/UnixPaths.cmake
index 97f744d..b9381c3 100644
--- a/share/cmake-3.17/Modules/Platform/UnixPaths.cmake
+++ b/share/cmake-3.18/Modules/Platform/UnixPaths.cmake
@@ -21,6 +21,10 @@
 
 # List common installation prefixes.  These will be used for all
 # search types.
+#
+# Reminder when adding new locations computed from environment variables
+# please make sure to keep Help/variable/CMAKE_SYSTEM_PREFIX_PATH.rst
+# synchronized
 list(APPEND CMAKE_SYSTEM_PREFIX_PATH
   # Standard
   /usr/local /usr /
@@ -86,6 +90,17 @@
 
 unset(_cmake_sysroot_compile)
 
+# Reminder when adding new locations computed from environment variables
+# please make sure to keep Help/variable/CMAKE_SYSTEM_PREFIX_PATH.rst
+# synchronized
+if(CMAKE_COMPILER_SYSROOT)
+  list(PREPEND CMAKE_SYSTEM_PREFIX_PATH "${CMAKE_COMPILER_SYSROOT}")
+
+  if(DEFINED ENV{CONDA_PREFIX} AND EXISTS "$ENV{CONDA_PREFIX}")
+    list(APPEND CMAKE_SYSTEM_PREFIX_PATH "$ENV{CONDA_PREFIX}")
+  endif()
+endif()
+
 # Enable use of lib32 and lib64 search path variants by default.
 set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB32_PATHS TRUE)
 set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS TRUE)
diff --git a/share/cmake-3.17/Modules/Platform/UnixWare.cmake b/share/cmake-3.18/Modules/Platform/UnixWare.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/UnixWare.cmake
rename to share/cmake-3.18/Modules/Platform/UnixWare.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-Apple-Swift.cmake b/share/cmake-3.18/Modules/Platform/Windows-Apple-Swift.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Windows-Apple-Swift.cmake
rename to share/cmake-3.18/Modules/Platform/Windows-Apple-Swift.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-Borland-C.cmake b/share/cmake-3.18/Modules/Platform/Windows-Borland-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Windows-Borland-C.cmake
rename to share/cmake-3.18/Modules/Platform/Windows-Borland-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-Borland-CXX.cmake b/share/cmake-3.18/Modules/Platform/Windows-Borland-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Windows-Borland-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/Windows-Borland-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-Clang-ASM.cmake b/share/cmake-3.18/Modules/Platform/Windows-Clang-ASM.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Windows-Clang-ASM.cmake
rename to share/cmake-3.18/Modules/Platform/Windows-Clang-ASM.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-Clang-C.cmake b/share/cmake-3.18/Modules/Platform/Windows-Clang-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Windows-Clang-C.cmake
rename to share/cmake-3.18/Modules/Platform/Windows-Clang-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-Clang-CXX.cmake b/share/cmake-3.18/Modules/Platform/Windows-Clang-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Windows-Clang-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/Windows-Clang-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-Clang.cmake b/share/cmake-3.18/Modules/Platform/Windows-Clang.cmake
similarity index 91%
rename from share/cmake-3.17/Modules/Platform/Windows-Clang.cmake
rename to share/cmake-3.18/Modules/Platform/Windows-Clang.cmake
index 87ddfcd..dff8166 100644
--- a/share/cmake-3.17/Modules/Platform/Windows-Clang.cmake
+++ b/share/cmake-3.18/Modules/Platform/Windows-Clang.cmake
@@ -55,13 +55,13 @@
 
   # Create archiving rules to support large object file lists for static libraries.
   set(CMAKE_${lang}_ARCHIVE_CREATE "<CMAKE_AR> qc <TARGET> <LINK_FLAGS> <OBJECTS>")
-  set(CMAKE_${lang}_ARCHIVE_APPEND "<CMAKE_AR> q  <TARGET> <LINK_FLAGS> <OBJECTS>")
+  set(CMAKE_${lang}_ARCHIVE_APPEND "<CMAKE_AR> q <TARGET> <LINK_FLAGS> <OBJECTS>")
   set(CMAKE_${lang}_ARCHIVE_FINISH "<CMAKE_RANLIB> <TARGET>")
   set(CMAKE_${lang}_CREATE_SHARED_LIBRARY
     "<CMAKE_${lang}_COMPILER> -fuse-ld=lld-link -nostartfiles -nostdlib <CMAKE_SHARED_LIBRARY_${lang}_FLAGS> <LANGUAGE_COMPILE_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS> -o <TARGET> ${CMAKE_GNULD_IMAGE_VERSION} -Xlinker /implib:<TARGET_IMPLIB> -Xlinker /pdb:<TARGET_PDB> -Xlinker /version:<TARGET_VERSION_MAJOR>.<TARGET_VERSION_MINOR> <OBJECTS> <LINK_LIBRARIES>")
   set(CMAKE_${lang}_CREATE_SHARED_MODULE ${CMAKE_${lang}_CREATE_SHARED_LIBRARY})
   set(CMAKE_${lang}_LINK_EXECUTABLE
-    "<CMAKE_${lang}_COMPILER> -fuse-ld=lld-link -nostartfiles -nostdlib <FLAGS> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <OBJECTS>  -o <TARGET> -Xlinker /implib:<TARGET_IMPLIB> -Xlinker /pdb:<TARGET_PDB> -Xlinker /version:<TARGET_VERSION_MAJOR>.<TARGET_VERSION_MINOR> ${CMAKE_GNULD_IMAGE_VERSION} <LINK_LIBRARIES>")
+    "<CMAKE_${lang}_COMPILER> -fuse-ld=lld-link -nostartfiles -nostdlib <FLAGS> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> -Xlinker /implib:<TARGET_IMPLIB> -Xlinker /pdb:<TARGET_PDB> -Xlinker /version:<TARGET_VERSION_MAJOR>.<TARGET_VERSION_MINOR> ${CMAKE_GNULD_IMAGE_VERSION} <LINK_LIBRARIES>")
 
   if(NOT "${lang}" STREQUAL "ASM")
     set(CMAKE_${lang}_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreaded         -Xclang -flto-visibility-public-std -D_MT -Xclang --dependent-lib=libcmt)
@@ -134,14 +134,15 @@
     include(Platform/Windows-MSVC)
 
     # Feed the preprocessed rc file to llvm-rc
-    if(CMAKE_RC_COMPILER_INIT STREQUAL "llvm-rc")
-      if(DEFINED CMAKE_C_COMPILER)
+    if(CMAKE_RC_COMPILER_INIT MATCHES "llvm-rc")
+      if(DEFINED CMAKE_C_COMPILER_ID)
         set(CMAKE_RC_PREPROCESSOR CMAKE_C_COMPILER)
-      elseif(DEFINED CMAKE_CXX_COMPILER)
+      elseif(DEFINED CMAKE_CXX_COMPILER_ID)
         set(CMAKE_RC_PREPROCESSOR CMAKE_CXX_COMPILER)
       endif()
       if(DEFINED CMAKE_RC_PREPROCESSOR)
-        set(CMAKE_RC_COMPILE_OBJECT "${CMAKE_COMMAND} -E cmake_llvm_rc <OBJECT>.pp <${CMAKE_RC_PREPROCESSOR}> <DEFINES> -DRC_INVOKED <INCLUDES> <FLAGS> -clang:-MD -clang:-MF -clang:<SOURCE>.d -E <SOURCE> -- <CMAKE_RC_COMPILER> <DEFINES> /fo <OBJECT> <OBJECT>.pp")
+        set(CMAKE_DEPFILE_FLAGS_RC "-clang:-MD -clang:-MF -clang:<DEPFILE>")
+        set(CMAKE_RC_COMPILE_OBJECT "${CMAKE_COMMAND} -E cmake_llvm_rc <SOURCE> <OBJECT>.pp <${CMAKE_RC_PREPROCESSOR}> <DEFINES> -DRC_INVOKED <INCLUDES> <FLAGS> -E <SOURCE> -- <CMAKE_RC_COMPILER> <DEFINES> -I <SOURCE_DIR> <INCLUDES> /fo <OBJECT> <OBJECT>.pp")
         if(CMAKE_GENERATOR STREQUAL "Ninja")
           set(CMAKE_NINJA_CMCLDEPS_RC 0)
           set(CMAKE_NINJA_DEP_TYPE_RC gcc)
diff --git a/share/cmake-3.17/Modules/Platform/Windows-Determine-CXX.cmake b/share/cmake-3.18/Modules/Platform/Windows-Determine-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Windows-Determine-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/Windows-Determine-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-Embarcadero-C.cmake b/share/cmake-3.18/Modules/Platform/Windows-Embarcadero-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Windows-Embarcadero-C.cmake
rename to share/cmake-3.18/Modules/Platform/Windows-Embarcadero-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-Embarcadero-CXX.cmake b/share/cmake-3.18/Modules/Platform/Windows-Embarcadero-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Windows-Embarcadero-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/Windows-Embarcadero-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-Embarcadero.cmake b/share/cmake-3.18/Modules/Platform/Windows-Embarcadero.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Windows-Embarcadero.cmake
rename to share/cmake-3.18/Modules/Platform/Windows-Embarcadero.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-Flang-Fortran.cmake b/share/cmake-3.18/Modules/Platform/Windows-Flang-Fortran.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Windows-Flang-Fortran.cmake
rename to share/cmake-3.18/Modules/Platform/Windows-Flang-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-G95-Fortran.cmake b/share/cmake-3.18/Modules/Platform/Windows-G95-Fortran.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Windows-G95-Fortran.cmake
rename to share/cmake-3.18/Modules/Platform/Windows-G95-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-GNU-ASM.cmake b/share/cmake-3.18/Modules/Platform/Windows-GNU-ASM.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Windows-GNU-ASM.cmake
rename to share/cmake-3.18/Modules/Platform/Windows-GNU-ASM.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-GNU-C-ABI.cmake b/share/cmake-3.18/Modules/Platform/Windows-GNU-C-ABI.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Windows-GNU-C-ABI.cmake
rename to share/cmake-3.18/Modules/Platform/Windows-GNU-C-ABI.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-GNU-C.cmake b/share/cmake-3.18/Modules/Platform/Windows-GNU-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Windows-GNU-C.cmake
rename to share/cmake-3.18/Modules/Platform/Windows-GNU-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-GNU-CXX-ABI.cmake b/share/cmake-3.18/Modules/Platform/Windows-GNU-CXX-ABI.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Windows-GNU-CXX-ABI.cmake
rename to share/cmake-3.18/Modules/Platform/Windows-GNU-CXX-ABI.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-GNU-CXX.cmake b/share/cmake-3.18/Modules/Platform/Windows-GNU-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Windows-GNU-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/Windows-GNU-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-GNU-Fortran-ABI.cmake b/share/cmake-3.18/Modules/Platform/Windows-GNU-Fortran-ABI.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Windows-GNU-Fortran-ABI.cmake
rename to share/cmake-3.18/Modules/Platform/Windows-GNU-Fortran-ABI.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-GNU-Fortran.cmake b/share/cmake-3.18/Modules/Platform/Windows-GNU-Fortran.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Windows-GNU-Fortran.cmake
rename to share/cmake-3.18/Modules/Platform/Windows-GNU-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-GNU.cmake b/share/cmake-3.18/Modules/Platform/Windows-GNU.cmake
similarity index 96%
rename from share/cmake-3.17/Modules/Platform/Windows-GNU.cmake
rename to share/cmake-3.18/Modules/Platform/Windows-GNU.cmake
index 38a8cf4..a2e3811 100644
--- a/share/cmake-3.17/Modules/Platform/Windows-GNU.cmake
+++ b/share/cmake-3.18/Modules/Platform/Windows-GNU.cmake
@@ -47,16 +47,12 @@
   set(__WINDOWS_GNU_LD_RESPONSE 0)
 endif()
 
-if(NOT CMAKE_GENERATOR_RC AND CMAKE_GENERATOR MATCHES "Unix Makefiles")
-  set(CMAKE_GENERATOR_RC windres)
-endif()
-
 macro(__windows_compiler_gnu lang)
 
   if(MSYS OR MINGW)
     # Create archiving rules to support large object file lists for static libraries.
     set(CMAKE_${lang}_ARCHIVE_CREATE "<CMAKE_AR> qc <TARGET> <LINK_FLAGS> <OBJECTS>")
-    set(CMAKE_${lang}_ARCHIVE_APPEND "<CMAKE_AR> q  <TARGET> <LINK_FLAGS> <OBJECTS>")
+    set(CMAKE_${lang}_ARCHIVE_APPEND "<CMAKE_AR> q <TARGET> <LINK_FLAGS> <OBJECTS>")
     set(CMAKE_${lang}_ARCHIVE_FINISH "<CMAKE_RANLIB> <TARGET>")
 
     # Initialize C link type selection flags.  These flags are used when
@@ -108,7 +104,7 @@
   set(CMAKE_${lang}_CREATE_SHARED_LIBRARY
     "<CMAKE_${lang}_COMPILER> <CMAKE_SHARED_LIBRARY_${lang}_FLAGS> <LANGUAGE_COMPILE_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS> -o <TARGET> -Wl,--out-implib,<TARGET_IMPLIB> ${CMAKE_GNULD_IMAGE_VERSION} <OBJECTS> <LINK_LIBRARIES>")
   set(CMAKE_${lang}_LINK_EXECUTABLE
-    "<CMAKE_${lang}_COMPILER> <FLAGS> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <OBJECTS>  -o <TARGET> -Wl,--out-implib,<TARGET_IMPLIB> ${CMAKE_GNULD_IMAGE_VERSION} <LINK_LIBRARIES>")
+    "<CMAKE_${lang}_COMPILER> <FLAGS> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> -Wl,--out-implib,<TARGET_IMPLIB> ${CMAKE_GNULD_IMAGE_VERSION} <LINK_LIBRARIES>")
 
   list(APPEND CMAKE_${lang}_ABI_FILES "Platform/Windows-GNU-${lang}-ABI")
 
@@ -132,7 +128,7 @@
   endif()
 
   if(NOT CMAKE_RC_COMPILER_INIT AND NOT CMAKE_GENERATOR_RC)
-    set(CMAKE_RC_COMPILER_INIT windres)
+    set(CMAKE_RC_COMPILER_INIT ${_CMAKE_TOOLCHAIN_PREFIX}windres)
   endif()
 
   enable_language(RC)
diff --git a/share/cmake-3.17/Modules/Platform/Windows-Intel-ASM.cmake b/share/cmake-3.18/Modules/Platform/Windows-Intel-ASM.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Windows-Intel-ASM.cmake
rename to share/cmake-3.18/Modules/Platform/Windows-Intel-ASM.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-Intel-C.cmake b/share/cmake-3.18/Modules/Platform/Windows-Intel-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Windows-Intel-C.cmake
rename to share/cmake-3.18/Modules/Platform/Windows-Intel-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-Intel-CXX.cmake b/share/cmake-3.18/Modules/Platform/Windows-Intel-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Windows-Intel-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/Windows-Intel-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-Intel-Fortran.cmake b/share/cmake-3.18/Modules/Platform/Windows-Intel-Fortran.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Windows-Intel-Fortran.cmake
rename to share/cmake-3.18/Modules/Platform/Windows-Intel-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-Intel.cmake b/share/cmake-3.18/Modules/Platform/Windows-Intel.cmake
similarity index 82%
rename from share/cmake-3.17/Modules/Platform/Windows-Intel.cmake
rename to share/cmake-3.18/Modules/Platform/Windows-Intel.cmake
index 96b1760..5d8f7fc 100644
--- a/share/cmake-3.17/Modules/Platform/Windows-Intel.cmake
+++ b/share/cmake-3.18/Modules/Platform/Windows-Intel.cmake
@@ -11,7 +11,7 @@
 include(Platform/Windows-MSVC)
 macro(__windows_compiler_intel lang)
   __windows_compiler_msvc(${lang})
-  string(REPLACE "<CMAKE_LINKER> /lib" "xilib" CMAKE_${lang}_CREATE_STATIC_LIBRARY "${CMAKE_${lang}_CREATE_STATIC_LIBRARY}")
+  string(REPLACE "<CMAKE_AR>" "xilib" CMAKE_${lang}_CREATE_STATIC_LIBRARY "${CMAKE_${lang}_CREATE_STATIC_LIBRARY}")
   foreach(rule CREATE_SHARED_LIBRARY CREATE_SHARED_MODULE LINK_EXECUTABLE)
     string(REPLACE "<CMAKE_LINKER>" "xilink" CMAKE_${lang}_${rule} "${CMAKE_${lang}_${rule}}")
   endforeach()
diff --git a/share/cmake-3.17/Modules/Platform/Windows-MSVC-C.cmake b/share/cmake-3.18/Modules/Platform/Windows-MSVC-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Windows-MSVC-C.cmake
rename to share/cmake-3.18/Modules/Platform/Windows-MSVC-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-MSVC-CXX.cmake b/share/cmake-3.18/Modules/Platform/Windows-MSVC-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Windows-MSVC-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/Windows-MSVC-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-MSVC.cmake b/share/cmake-3.18/Modules/Platform/Windows-MSVC.cmake
similarity index 97%
rename from share/cmake-3.17/Modules/Platform/Windows-MSVC.cmake
rename to share/cmake-3.18/Modules/Platform/Windows-MSVC.cmake
index e1d6733..2476a33 100644
--- a/share/cmake-3.17/Modules/Platform/Windows-MSVC.cmake
+++ b/share/cmake-3.18/Modules/Platform/Windows-MSVC.cmake
@@ -316,7 +316,7 @@
     "${_CMAKE_VS_LINK_DLL}<CMAKE_LINKER> ${CMAKE_CL_NOLOGO} <OBJECTS> ${CMAKE_START_TEMP_FILE} /out:<TARGET> /implib:<TARGET_IMPLIB> /pdb:<TARGET_PDB> /dll /version:<TARGET_VERSION_MAJOR>.<TARGET_VERSION_MINOR>${_PLATFORM_LINK_FLAGS} <LINK_FLAGS> <LINK_LIBRARIES> ${CMAKE_END_TEMP_FILE}")
 
   set(CMAKE_${lang}_CREATE_SHARED_MODULE ${CMAKE_${lang}_CREATE_SHARED_LIBRARY})
-  set(CMAKE_${lang}_CREATE_STATIC_LIBRARY  "<CMAKE_LINKER> /lib ${CMAKE_CL_NOLOGO} <LINK_FLAGS> /out:<TARGET> <OBJECTS> ")
+  set(CMAKE_${lang}_CREATE_STATIC_LIBRARY  "<CMAKE_AR> ${CMAKE_CL_NOLOGO} <LINK_FLAGS> /out:<TARGET> <OBJECTS> ")
 
   set(CMAKE_${lang}_COMPILE_OBJECT
     "<CMAKE_${lang}_COMPILER> ${CMAKE_START_TEMP_FILE} ${CMAKE_CL_NOLOGO}${_COMPILE_${lang}} <DEFINES> <INCLUDES> <FLAGS> /Fo<OBJECT> /Fd<TARGET_COMPILE_PDB>${_FS_${lang}} -c <SOURCE>${CMAKE_END_TEMP_FILE}")
@@ -331,13 +331,11 @@
 
   set(CMAKE_PCH_EXTENSION .pch)
   set(CMAKE_LINK_PCH ON)
-  if(MSVC_VERSION GREATER_EQUAL 1910)
-    # VS 2017 or greater
-    if (NOT ${CMAKE_${lang}_COMPILER_ID} STREQUAL "Clang")
-        set(CMAKE_PCH_PROLOGUE "#pragma system_header")
-    else()
-        set(CMAKE_PCH_PROLOGUE "#pragma clang system_header")
-    endif()
+  if (CMAKE_${lang}_COMPILER_ID STREQUAL "Clang")
+    set(CMAKE_PCH_PROLOGUE "#pragma clang system_header")
+  elseif(MSVC_VERSION GREATER_EQUAL 1913)
+    # At least MSVC toolet 14.13 from VS 2017 15.6
+    set(CMAKE_PCH_PROLOGUE "#pragma system_header")
   endif()
   if (NOT ${CMAKE_${lang}_COMPILER_ID} STREQUAL "Clang")
     set(CMAKE_PCH_COPY_COMPILE_PDB ON)
diff --git a/share/cmake-3.17/Modules/Platform/Windows-NVIDIA-CUDA.cmake b/share/cmake-3.18/Modules/Platform/Windows-NVIDIA-CUDA.cmake
similarity index 81%
rename from share/cmake-3.17/Modules/Platform/Windows-NVIDIA-CUDA.cmake
rename to share/cmake-3.18/Modules/Platform/Windows-NVIDIA-CUDA.cmake
index f809094..a88f4bc 100644
--- a/share/cmake-3.17/Modules/Platform/Windows-NVIDIA-CUDA.cmake
+++ b/share/cmake-3.18/Modules/Platform/Windows-NVIDIA-CUDA.cmake
@@ -1,11 +1,11 @@
 include(Platform/Windows-MSVC)
 
 set(CMAKE_CUDA_COMPILE_PTX_COMPILATION
-  "<CMAKE_CUDA_COMPILER> ${_CMAKE_CUDA_EXTRA_FLAGS} <DEFINES> <INCLUDES> <FLAGS> -x cu -ptx <SOURCE> -o <OBJECT> -Xcompiler=-Fd<TARGET_COMPILE_PDB>,-FS")
+  "<CMAKE_CUDA_COMPILER> ${_CMAKE_CUDA_EXTRA_FLAGS} <DEFINES> <INCLUDES> <FLAGS> ${_CMAKE_COMPILE_AS_CUDA_FLAG} -ptx <SOURCE> -o <OBJECT> -Xcompiler=-Fd<TARGET_COMPILE_PDB>,-FS")
 set(CMAKE_CUDA_COMPILE_SEPARABLE_COMPILATION
-  "<CMAKE_CUDA_COMPILER> ${_CMAKE_CUDA_EXTRA_FLAGS} <DEFINES> <INCLUDES> <FLAGS> -x cu -dc <SOURCE> -o <OBJECT> -Xcompiler=-Fd<TARGET_COMPILE_PDB>,-FS")
+  "<CMAKE_CUDA_COMPILER> ${_CMAKE_CUDA_EXTRA_FLAGS} <DEFINES> <INCLUDES> <FLAGS> ${_CMAKE_COMPILE_AS_CUDA_FLAG} -dc <SOURCE> -o <OBJECT> -Xcompiler=-Fd<TARGET_COMPILE_PDB>,-FS")
 set(CMAKE_CUDA_COMPILE_WHOLE_COMPILATION
-  "<CMAKE_CUDA_COMPILER> ${_CMAKE_CUDA_EXTRA_FLAGS} <DEFINES> <INCLUDES> <FLAGS> -x cu -c <SOURCE> -o <OBJECT> -Xcompiler=-Fd<TARGET_COMPILE_PDB>,-FS")
+  "<CMAKE_CUDA_COMPILER> ${_CMAKE_CUDA_EXTRA_FLAGS} <DEFINES> <INCLUDES> <FLAGS> ${_CMAKE_COMPILE_AS_CUDA_FLAG} -c <SOURCE> -o <OBJECT> -Xcompiler=-Fd<TARGET_COMPILE_PDB>,-FS")
 
 set(__IMPLICT_LINKS )
 foreach(dir ${CMAKE_CUDA_HOST_IMPLICIT_LINK_DIRECTORIES})
@@ -23,7 +23,7 @@
   "${_CMAKE_VS_LINK_DLL}<CMAKE_LINKER> ${CMAKE_CL_NOLOGO} <OBJECTS> ${CMAKE_START_TEMP_FILE} /out:<TARGET> /implib:<TARGET_IMPLIB> /pdb:<TARGET_PDB> /dll /version:<TARGET_VERSION_MAJOR>.<TARGET_VERSION_MINOR>${_PLATFORM_LINK_FLAGS} <LINK_FLAGS> <LINK_LIBRARIES>${__IMPLICT_LINKS} ${CMAKE_END_TEMP_FILE}")
 
 set(CMAKE_CUDA_CREATE_SHARED_MODULE ${CMAKE_CUDA_CREATE_SHARED_LIBRARY})
-set(CMAKE_CUDA_CREATE_STATIC_LIBRARY  "<CMAKE_LINKER> /lib ${CMAKE_CL_NOLOGO} <LINK_FLAGS> /out:<TARGET> <OBJECTS> ")
+set(CMAKE_CUDA_CREATE_STATIC_LIBRARY  "<CMAKE_AR> ${CMAKE_CL_NOLOGO} <LINK_FLAGS> /out:<TARGET> <OBJECTS> ")
 set(CMAKE_CUDA_LINKER_SUPPORTS_PDB ON)
 set(CMAKE_CUDA_LINK_EXECUTABLE
   "${_CMAKE_VS_LINK_EXE}<CMAKE_LINKER> ${CMAKE_CL_NOLOGO} <OBJECTS> ${CMAKE_START_TEMP_FILE} /out:<TARGET> /implib:<TARGET_IMPLIB> /pdb:<TARGET_PDB> /version:<TARGET_VERSION_MAJOR>.<TARGET_VERSION_MINOR>${_PLATFORM_LINK_FLAGS} <LINK_FLAGS> <LINK_LIBRARIES>${__IMPLICT_LINKS} ${CMAKE_END_TEMP_FILE}")
@@ -46,9 +46,9 @@
 unset(__IMPLICT_DLINK_DIRS)
 
 set(CMAKE_CUDA_DEVICE_LINK_LIBRARY
-  "<CMAKE_CUDA_COMPILER> ${_CMAKE_CUDA_EXTRA_FLAGS} <LANGUAGE_COMPILE_FLAGS> ${_CMAKE_CUDA_EXTRA_DEVICE_LINK_FLAGS} -shared -dlink <OBJECTS> -o <TARGET> <LINK_LIBRARIES> -Xcompiler=-Fd<TARGET_COMPILE_PDB>,-FS${__IMPLICT_DLINK_FLAGS}")
+  "<CMAKE_CUDA_COMPILER> ${_CMAKE_CUDA_EXTRA_FLAGS} <LANGUAGE_COMPILE_FLAGS> <LINK_FLAGS> ${_CMAKE_CUDA_EXTRA_DEVICE_LINK_FLAGS} -shared -dlink <OBJECTS> -o <TARGET> <LINK_LIBRARIES> -Xcompiler=-Fd<TARGET_COMPILE_PDB>,-FS${__IMPLICT_DLINK_FLAGS}")
 set(CMAKE_CUDA_DEVICE_LINK_EXECUTABLE
-  "<CMAKE_CUDA_COMPILER>  ${_CMAKE_CUDA_EXTRA_FLAGS} <FLAGS> ${_CMAKE_CUDA_EXTRA_DEVICE_LINK_FLAGS} -shared -dlink <OBJECTS> -o <TARGET> <LINK_LIBRARIES> -Xcompiler=-Fd<TARGET_COMPILE_PDB>,-FS${__IMPLICT_DLINK_FLAGS}")
+  "<CMAKE_CUDA_COMPILER> ${_CMAKE_CUDA_EXTRA_FLAGS} <LANGUAGE_COMPILE_FLAGS> <LINK_FLAGS> ${_CMAKE_CUDA_EXTRA_DEVICE_LINK_FLAGS} -shared -dlink <OBJECTS> -o <TARGET> <LINK_LIBRARIES> -Xcompiler=-Fd<TARGET_COMPILE_PDB>,-FS${__IMPLICT_DLINK_FLAGS}")
 unset(__IMPLICT_DLINK_FLAGS)
 
 string(REPLACE "/D" "-D" _PLATFORM_DEFINES_CUDA "${_PLATFORM_DEFINES}${_PLATFORM_DEFINES_CXX}")
@@ -69,11 +69,14 @@
 endif()
 unset(_cmp0092)
 
-set(CMAKE_CUDA_RUNTIME_LIBRARY_DEFAULT "STATIC")
 set(CMAKE_CUDA_RUNTIME_LIBRARY_LINK_OPTIONS_STATIC  "cudadevrt;cudart_static")
 set(CMAKE_CUDA_RUNTIME_LIBRARY_LINK_OPTIONS_SHARED  "cudadevrt;cudart")
 set(CMAKE_CUDA_RUNTIME_LIBRARY_LINK_OPTIONS_NONE    "")
 
+if(UNIX)
+  list(APPEND CMAKE_CUDA_RUNTIME_LIBRARY_LINK_OPTIONS_STATIC "rt" "pthread" "dl")
+endif()
+
 string(APPEND CMAKE_CUDA_FLAGS_INIT " ${PLATFORM_DEFINES_CUDA} -D_WINDOWS -Xcompiler=\"${_W3}${_FLAGS_CXX}\"")
 string(APPEND CMAKE_CUDA_FLAGS_DEBUG_INIT " -Xcompiler=\"${_MDd}-Zi -Ob0 -Od ${_RTC1}\"")
 string(APPEND CMAKE_CUDA_FLAGS_RELEASE_INIT " -Xcompiler=\"${_MD}-O2 -Ob2\" -DNDEBUG")
diff --git a/share/cmake-3.17/Modules/Platform/Windows-OpenWatcom-C.cmake b/share/cmake-3.18/Modules/Platform/Windows-OpenWatcom-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Windows-OpenWatcom-C.cmake
rename to share/cmake-3.18/Modules/Platform/Windows-OpenWatcom-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-OpenWatcom-CXX.cmake b/share/cmake-3.18/Modules/Platform/Windows-OpenWatcom-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Windows-OpenWatcom-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/Windows-OpenWatcom-CXX.cmake
diff --git a/share/cmake-3.18/Modules/Platform/Windows-OpenWatcom.cmake b/share/cmake-3.18/Modules/Platform/Windows-OpenWatcom.cmake
new file mode 100644
index 0000000..70055da
--- /dev/null
+++ b/share/cmake-3.18/Modules/Platform/Windows-OpenWatcom.cmake
@@ -0,0 +1,32 @@
+# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+# This module is shared by multiple languages; use include blocker.
+include_guard()
+
+set(CMAKE_BUILD_TYPE_INIT Debug)
+
+set(CMAKE_CREATE_WIN32_EXE "system nt_win" )
+set(CMAKE_CREATE_CONSOLE_EXE "system nt" )
+string(APPEND CMAKE_SHARED_LINKER_FLAGS_INIT " system nt_dll")
+string(APPEND CMAKE_MODULE_LINKER_FLAGS_INIT " system nt_dll")
+
+set(CMAKE_C_COMPILE_OPTIONS_DLL "-bd") # Note: This variable is a ';' separated list
+set(CMAKE_SHARED_LIBRARY_C_FLAGS "-bd") # ... while this is a space separated string.
+
+set(CMAKE_RC_COMPILER "rc" )
+
+# single/multi-threaded                 /-bm
+# static/DLL run-time libraries         /-br
+# default is setup for multi-threaded + DLL run-time libraries
+string(APPEND CMAKE_C_FLAGS_INIT " -bt=nt -dWIN32 -br -bm")
+string(APPEND CMAKE_CXX_FLAGS_INIT " -bt=nt -xs -dWIN32 -br -bm")
+
+if(CMAKE_CROSSCOMPILING)
+  if(NOT CMAKE_C_STANDARD_INCLUDE_DIRECTORIES)
+    set(CMAKE_C_STANDARD_INCLUDE_DIRECTORIES $ENV{WATCOM}/h $ENV{WATCOM}/h/nt)
+  endif()
+  if(NOT CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES)
+    set(CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES $ENV{WATCOM}/h $ENV{WATCOM}/h/nt)
+  endif()
+endif()
diff --git a/share/cmake-3.17/Modules/Platform/Windows-PGI-C.cmake b/share/cmake-3.18/Modules/Platform/Windows-PGI-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Windows-PGI-C.cmake
rename to share/cmake-3.18/Modules/Platform/Windows-PGI-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-PGI-Fortran.cmake b/share/cmake-3.18/Modules/Platform/Windows-PGI-Fortran.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Windows-PGI-Fortran.cmake
rename to share/cmake-3.18/Modules/Platform/Windows-PGI-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-PGI.cmake b/share/cmake-3.18/Modules/Platform/Windows-PGI.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Windows-PGI.cmake
rename to share/cmake-3.18/Modules/Platform/Windows-PGI.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-Watcom-C.cmake b/share/cmake-3.18/Modules/Platform/Windows-Watcom-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Windows-Watcom-C.cmake
rename to share/cmake-3.18/Modules/Platform/Windows-Watcom-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-Watcom-CXX.cmake b/share/cmake-3.18/Modules/Platform/Windows-Watcom-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Windows-Watcom-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/Windows-Watcom-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-df.cmake b/share/cmake-3.18/Modules/Platform/Windows-df.cmake
similarity index 89%
rename from share/cmake-3.17/Modules/Platform/Windows-df.cmake
rename to share/cmake-3.18/Modules/Platform/Windows-df.cmake
index f948914..8b824bc 100644
--- a/share/cmake-3.17/Modules/Platform/Windows-df.cmake
+++ b/share/cmake-3.18/Modules/Platform/Windows-df.cmake
@@ -13,7 +13,7 @@
 set(CMAKE_Fortran_MODDIR_FLAG "-module:")
 
 set(CMAKE_Fortran_CREATE_SHARED_LIBRARY
- "link ${CMAKE_CL_NOLOGO} ${CMAKE_START_TEMP_FILE}  /out:<TARGET> /dll  <LINK_FLAGS> <OBJECTS> <LINK_LIBRARIES> ${CMAKE_END_TEMP_FILE}")
+ "link ${CMAKE_CL_NOLOGO} ${CMAKE_START_TEMP_FILE} /out:<TARGET> /dll <LINK_FLAGS> <OBJECTS> <LINK_LIBRARIES> ${CMAKE_END_TEMP_FILE}")
 
 set(CMAKE_Fortran_CREATE_SHARED_MODULE ${CMAKE_Fortran_CREATE_SHARED_LIBRARY})
 
@@ -22,7 +22,7 @@
 
 # compile a C++ file into an object file
 set(CMAKE_Fortran_COMPILE_OBJECT
-    "<CMAKE_Fortran_COMPILER>  ${CMAKE_START_TEMP_FILE} ${CMAKE_CL_NOLOGO} /object:<OBJECT> <FLAGS> /compile_only <SOURCE>${CMAKE_END_TEMP_FILE}")
+    "<CMAKE_Fortran_COMPILER> ${CMAKE_START_TEMP_FILE} ${CMAKE_CL_NOLOGO} /object:<OBJECT> <FLAGS> /compile_only <SOURCE>${CMAKE_END_TEMP_FILE}")
 
 set(CMAKE_Fortran_LINK_EXECUTABLE
     "<CMAKE_Fortran_COMPILER> ${CMAKE_CL_NOLOGO} ${CMAKE_START_TEMP_FILE} <FLAGS> /exe:<TARGET> <OBJECTS> /link <CMAKE_Fortran_LINK_FLAGS> <LINK_FLAGS> <LINK_LIBRARIES>${CMAKE_END_TEMP_FILE}")
diff --git a/share/cmake-3.17/Modules/Platform/Windows-windres.cmake b/share/cmake-3.18/Modules/Platform/Windows-windres.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Windows-windres.cmake
rename to share/cmake-3.18/Modules/Platform/Windows-windres.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows.cmake b/share/cmake-3.18/Modules/Platform/Windows.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Windows.cmake
rename to share/cmake-3.18/Modules/Platform/Windows.cmake
diff --git a/share/cmake-3.17/Modules/Platform/WindowsCE-MSVC-C.cmake b/share/cmake-3.18/Modules/Platform/WindowsCE-MSVC-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/WindowsCE-MSVC-C.cmake
rename to share/cmake-3.18/Modules/Platform/WindowsCE-MSVC-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/WindowsCE-MSVC-CXX.cmake b/share/cmake-3.18/Modules/Platform/WindowsCE-MSVC-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/WindowsCE-MSVC-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/WindowsCE-MSVC-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/WindowsCE.cmake b/share/cmake-3.18/Modules/Platform/WindowsCE.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/WindowsCE.cmake
rename to share/cmake-3.18/Modules/Platform/WindowsCE.cmake
diff --git a/share/cmake-3.17/Modules/Platform/WindowsPaths.cmake b/share/cmake-3.18/Modules/Platform/WindowsPaths.cmake
similarity index 94%
rename from share/cmake-3.17/Modules/Platform/WindowsPaths.cmake
rename to share/cmake-3.18/Modules/Platform/WindowsPaths.cmake
index 71cc609..b9e2f17 100644
--- a/share/cmake-3.17/Modules/Platform/WindowsPaths.cmake
+++ b/share/cmake-3.18/Modules/Platform/WindowsPaths.cmake
@@ -24,6 +24,10 @@
 #   ENV{ProgramFiles(x86)} = [C:\Program Files (x86)]
 #   ENV{ProgramFiles} = [C:\Program Files (x86)]
 #   ENV{ProgramW6432} = [C:\Program Files]
+#
+# Reminder when adding new locations computed from environment variables
+# please make sure to keep Help/variable/CMAKE_SYSTEM_PREFIX_PATH.rst
+# synchronized
 set(_programfiles "")
 foreach(v "ProgramW6432" "ProgramFiles" "ProgramFiles(x86)")
   if(DEFINED "ENV{${v}}")
diff --git a/share/cmake-3.17/Modules/Platform/WindowsPhone-Clang-ASM.cmake b/share/cmake-3.18/Modules/Platform/WindowsPhone-Clang-ASM.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/WindowsPhone-Clang-ASM.cmake
rename to share/cmake-3.18/Modules/Platform/WindowsPhone-Clang-ASM.cmake
diff --git a/share/cmake-3.17/Modules/Platform/WindowsPhone-Clang-C.cmake b/share/cmake-3.18/Modules/Platform/WindowsPhone-Clang-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/WindowsPhone-Clang-C.cmake
rename to share/cmake-3.18/Modules/Platform/WindowsPhone-Clang-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/WindowsPhone-Clang-CXX.cmake b/share/cmake-3.18/Modules/Platform/WindowsPhone-Clang-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/WindowsPhone-Clang-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/WindowsPhone-Clang-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/WindowsPhone-GNU-ASM.cmake b/share/cmake-3.18/Modules/Platform/WindowsPhone-GNU-ASM.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/WindowsPhone-GNU-ASM.cmake
rename to share/cmake-3.18/Modules/Platform/WindowsPhone-GNU-ASM.cmake
diff --git a/share/cmake-3.17/Modules/Platform/WindowsPhone-GNU-C.cmake b/share/cmake-3.18/Modules/Platform/WindowsPhone-GNU-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/WindowsPhone-GNU-C.cmake
rename to share/cmake-3.18/Modules/Platform/WindowsPhone-GNU-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/WindowsPhone-GNU-CXX.cmake b/share/cmake-3.18/Modules/Platform/WindowsPhone-GNU-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/WindowsPhone-GNU-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/WindowsPhone-GNU-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/WindowsPhone-MSVC-C.cmake b/share/cmake-3.18/Modules/Platform/WindowsPhone-MSVC-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/WindowsPhone-MSVC-C.cmake
rename to share/cmake-3.18/Modules/Platform/WindowsPhone-MSVC-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/WindowsPhone-MSVC-CXX.cmake b/share/cmake-3.18/Modules/Platform/WindowsPhone-MSVC-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/WindowsPhone-MSVC-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/WindowsPhone-MSVC-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/WindowsPhone.cmake b/share/cmake-3.18/Modules/Platform/WindowsPhone.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/WindowsPhone.cmake
rename to share/cmake-3.18/Modules/Platform/WindowsPhone.cmake
diff --git a/share/cmake-3.17/Modules/Platform/WindowsStore-Clang-ASM.cmake b/share/cmake-3.18/Modules/Platform/WindowsStore-Clang-ASM.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/WindowsStore-Clang-ASM.cmake
rename to share/cmake-3.18/Modules/Platform/WindowsStore-Clang-ASM.cmake
diff --git a/share/cmake-3.17/Modules/Platform/WindowsStore-Clang-C.cmake b/share/cmake-3.18/Modules/Platform/WindowsStore-Clang-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/WindowsStore-Clang-C.cmake
rename to share/cmake-3.18/Modules/Platform/WindowsStore-Clang-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/WindowsStore-Clang-CXX.cmake b/share/cmake-3.18/Modules/Platform/WindowsStore-Clang-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/WindowsStore-Clang-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/WindowsStore-Clang-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/WindowsStore-GNU-ASM.cmake b/share/cmake-3.18/Modules/Platform/WindowsStore-GNU-ASM.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/WindowsStore-GNU-ASM.cmake
rename to share/cmake-3.18/Modules/Platform/WindowsStore-GNU-ASM.cmake
diff --git a/share/cmake-3.17/Modules/Platform/WindowsStore-GNU-C.cmake b/share/cmake-3.18/Modules/Platform/WindowsStore-GNU-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/WindowsStore-GNU-C.cmake
rename to share/cmake-3.18/Modules/Platform/WindowsStore-GNU-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/WindowsStore-GNU-CXX.cmake b/share/cmake-3.18/Modules/Platform/WindowsStore-GNU-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/WindowsStore-GNU-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/WindowsStore-GNU-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/WindowsStore-MSVC-C.cmake b/share/cmake-3.18/Modules/Platform/WindowsStore-MSVC-C.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/WindowsStore-MSVC-C.cmake
rename to share/cmake-3.18/Modules/Platform/WindowsStore-MSVC-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/WindowsStore-MSVC-CXX.cmake b/share/cmake-3.18/Modules/Platform/WindowsStore-MSVC-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/WindowsStore-MSVC-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/WindowsStore-MSVC-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/WindowsStore.cmake b/share/cmake-3.18/Modules/Platform/WindowsStore.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/WindowsStore.cmake
rename to share/cmake-3.18/Modules/Platform/WindowsStore.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Xenix.cmake b/share/cmake-3.18/Modules/Platform/Xenix.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/Xenix.cmake
rename to share/cmake-3.18/Modules/Platform/Xenix.cmake
diff --git a/share/cmake-3.17/Modules/Platform/eCos.cmake b/share/cmake-3.18/Modules/Platform/eCos.cmake
similarity index 89%
rename from share/cmake-3.17/Modules/Platform/eCos.cmake
rename to share/cmake-3.18/Modules/Platform/eCos.cmake
index e1279ef..25db028 100644
--- a/share/cmake-3.17/Modules/Platform/eCos.cmake
+++ b/share/cmake-3.18/Modules/Platform/eCos.cmake
@@ -52,8 +52,8 @@
 add_definitions(-D__ECOS__=1 -D__ECOS=1)
 
 # special link commands for eCos executables
-set(CMAKE_CXX_LINK_EXECUTABLE  "<CMAKE_CXX_COMPILER> <FLAGS> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> -nostdlib -nostartfiles -L${ECOS_LIBTARGET_DIRECTORY} -Ttarget.ld  <LINK_LIBRARIES>")
-set(CMAKE_C_LINK_EXECUTABLE    "<CMAKE_C_COMPILER>   <FLAGS> <CMAKE_C_LINK_FLAGS>   <LINK_FLAGS> <OBJECTS> -o <TARGET> -nostdlib -nostartfiles -L${ECOS_LIBTARGET_DIRECTORY} -Ttarget.ld  <LINK_LIBRARIES>")
+set(CMAKE_CXX_LINK_EXECUTABLE  "<CMAKE_CXX_COMPILER> <FLAGS> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> -nostdlib -nostartfiles -L${ECOS_LIBTARGET_DIRECTORY} -Ttarget.ld <LINK_LIBRARIES>")
+set(CMAKE_C_LINK_EXECUTABLE    "<CMAKE_C_COMPILER> <FLAGS> <CMAKE_C_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> -nostdlib -nostartfiles -L${ECOS_LIBTARGET_DIRECTORY} -Ttarget.ld <LINK_LIBRARIES>")
 
 # eCos doesn't support shared libs
 set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS FALSE)
diff --git a/share/cmake-3.17/Modules/Platform/gas.cmake b/share/cmake-3.18/Modules/Platform/gas.cmake
similarity index 91%
rename from share/cmake-3.17/Modules/Platform/gas.cmake
rename to share/cmake-3.18/Modules/Platform/gas.cmake
index 7c659f2..8484076 100644
--- a/share/cmake-3.17/Modules/Platform/gas.cmake
+++ b/share/cmake-3.18/Modules/Platform/gas.cmake
@@ -11,7 +11,7 @@
       "<CMAKE_RANLIB> <TARGET> ")
 
 set(CMAKE_ASM${ASM_DIALECT}_LINK_EXECUTABLE
-    "<CMAKE_LINKER> <FLAGS> <CMAKE_ASM${ASM_DIALECT}_LINK_FLAGS> <LINK_FLAGS> <OBJECTS>  -o <TARGET> <LINK_LIBRARIES>")
+    "<CMAKE_LINKER> <FLAGS> <CMAKE_ASM${ASM_DIALECT}_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
 
 # to be done
 set(CMAKE_ASM${ASM_DIALECT}_CREATE_SHARED_LIBRARY)
diff --git a/share/cmake-3.17/Modules/Platform/iOS-Determine-CXX.cmake b/share/cmake-3.18/Modules/Platform/iOS-Determine-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/iOS-Determine-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/iOS-Determine-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/iOS-Initialize.cmake b/share/cmake-3.18/Modules/Platform/iOS-Initialize.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/iOS-Initialize.cmake
rename to share/cmake-3.18/Modules/Platform/iOS-Initialize.cmake
diff --git a/share/cmake-3.17/Modules/Platform/iOS.cmake b/share/cmake-3.18/Modules/Platform/iOS.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/iOS.cmake
rename to share/cmake-3.18/Modules/Platform/iOS.cmake
diff --git a/share/cmake-3.17/Modules/Platform/kFreeBSD.cmake b/share/cmake-3.18/Modules/Platform/kFreeBSD.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/kFreeBSD.cmake
rename to share/cmake-3.18/Modules/Platform/kFreeBSD.cmake
diff --git a/share/cmake-3.17/Modules/Platform/syllable.cmake b/share/cmake-3.18/Modules/Platform/syllable.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/syllable.cmake
rename to share/cmake-3.18/Modules/Platform/syllable.cmake
diff --git a/share/cmake-3.17/Modules/Platform/tvOS-Determine-CXX.cmake b/share/cmake-3.18/Modules/Platform/tvOS-Determine-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/tvOS-Determine-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/tvOS-Determine-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/tvOS-Initialize.cmake b/share/cmake-3.18/Modules/Platform/tvOS-Initialize.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/tvOS-Initialize.cmake
rename to share/cmake-3.18/Modules/Platform/tvOS-Initialize.cmake
diff --git a/share/cmake-3.17/Modules/Platform/tvOS.cmake b/share/cmake-3.18/Modules/Platform/tvOS.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/tvOS.cmake
rename to share/cmake-3.18/Modules/Platform/tvOS.cmake
diff --git a/share/cmake-3.17/Modules/Platform/watchOS-Determine-CXX.cmake b/share/cmake-3.18/Modules/Platform/watchOS-Determine-CXX.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/watchOS-Determine-CXX.cmake
rename to share/cmake-3.18/Modules/Platform/watchOS-Determine-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/watchOS-Initialize.cmake b/share/cmake-3.18/Modules/Platform/watchOS-Initialize.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/watchOS-Initialize.cmake
rename to share/cmake-3.18/Modules/Platform/watchOS-Initialize.cmake
diff --git a/share/cmake-3.17/Modules/Platform/watchOS.cmake b/share/cmake-3.18/Modules/Platform/watchOS.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Platform/watchOS.cmake
rename to share/cmake-3.18/Modules/Platform/watchOS.cmake
diff --git a/share/cmake-3.17/Modules/ProcessorCount.cmake b/share/cmake-3.18/Modules/ProcessorCount.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/ProcessorCount.cmake
rename to share/cmake-3.18/Modules/ProcessorCount.cmake
diff --git a/share/cmake-3.17/Modules/Qt4ConfigDependentSettings.cmake b/share/cmake-3.18/Modules/Qt4ConfigDependentSettings.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Qt4ConfigDependentSettings.cmake
rename to share/cmake-3.18/Modules/Qt4ConfigDependentSettings.cmake
diff --git a/share/cmake-3.17/Modules/Qt4Macros.cmake b/share/cmake-3.18/Modules/Qt4Macros.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Qt4Macros.cmake
rename to share/cmake-3.18/Modules/Qt4Macros.cmake
diff --git a/share/cmake-3.17/Modules/RepositoryInfo.txt.in b/share/cmake-3.18/Modules/RepositoryInfo.txt.in
similarity index 100%
rename from share/cmake-3.17/Modules/RepositoryInfo.txt.in
rename to share/cmake-3.18/Modules/RepositoryInfo.txt.in
diff --git a/share/cmake-3.17/Modules/SelectLibraryConfigurations.cmake b/share/cmake-3.18/Modules/SelectLibraryConfigurations.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/SelectLibraryConfigurations.cmake
rename to share/cmake-3.18/Modules/SelectLibraryConfigurations.cmake
diff --git a/share/cmake-3.17/Modules/Squish4RunTestCase.bat b/share/cmake-3.18/Modules/Squish4RunTestCase.bat
similarity index 78%
rename from share/cmake-3.17/Modules/Squish4RunTestCase.bat
rename to share/cmake-3.18/Modules/Squish4RunTestCase.bat
index c658208..05dc586 100644
--- a/share/cmake-3.17/Modules/Squish4RunTestCase.bat
+++ b/share/cmake-3.18/Modules/Squish4RunTestCase.bat
@@ -4,7 +4,6 @@
 set TESTCASE=%4

 set AUT=%5

 set AUTDIR=%6

-set SETTINGSGROUP=%7

 

 %SQUISHSERVER% --stop

 

@@ -12,9 +11,9 @@
 %SQUISHSERVER% --config addAUT "%AUT%" "%AUTDIR%"

 

 echo "Starting the squish server... %SQUISHSERVER%"

-start /B %SQUISHSERVER%

+start /B "Squish Server" %SQUISHSERVER%

 

-echo "Running the test case...%SQUISHRUNNER% --testsuite %TESTSUITE% --testcase %TESTCASE%"

+echo "Running the test case... %SQUISHRUNNER% --testsuite %TESTSUITE% --testcase %TESTCASE%"

 %SQUISHRUNNER% --testsuite "%TESTSUITE%" --testcase "%TESTCASE%"

 set returnValue=%ERRORLEVEL%

 

diff --git a/share/cmake-3.18/Modules/Squish4RunTestCase.sh b/share/cmake-3.18/Modules/Squish4RunTestCase.sh
new file mode 100755
index 0000000..4d1e382
--- /dev/null
+++ b/share/cmake-3.18/Modules/Squish4RunTestCase.sh
@@ -0,0 +1,27 @@
+#!/bin/sh
+
+SQUISHSERVER=$1
+SQUISHRUNNER=$2
+TESTSUITE=$3
+TESTCASE=$4
+AUT=$5
+AUTDIR=$6
+
+$SQUISHSERVER --stop > /dev/null 2>&1
+
+echo "Adding AUT... $SQUISHSERVER --config addAUT $AUT $AUTDIR"
+$SQUISHSERVER --config addAUT "$AUT" "$AUTDIR" || exit 255
+# sleep 1
+
+echo "Starting the squish server... $SQUISHSERVER --daemon"
+$SQUISHSERVER --daemon || exit 255
+# sleep 2
+
+echo "Running the test case... $SQUISHRUNNER --testsuite $TESTSUITE --testcase $TESTCASE"
+$SQUISHRUNNER --testsuite "$TESTSUITE" --testcase "$TESTCASE"
+returnValue=$?
+
+echo "Stopping the squish server... $SQUISHSERVER --stop"
+$SQUISHSERVER --stop
+
+exit $returnValue
diff --git a/share/cmake-3.17/Modules/SquishRunTestCase.bat b/share/cmake-3.18/Modules/SquishRunTestCase.bat
similarity index 100%
rename from share/cmake-3.17/Modules/SquishRunTestCase.bat
rename to share/cmake-3.18/Modules/SquishRunTestCase.bat
diff --git a/share/cmake-3.17/Modules/SquishRunTestCase.sh b/share/cmake-3.18/Modules/SquishRunTestCase.sh
similarity index 100%
rename from share/cmake-3.17/Modules/SquishRunTestCase.sh
rename to share/cmake-3.18/Modules/SquishRunTestCase.sh
diff --git a/share/cmake-3.17/Modules/SquishTestScript.cmake b/share/cmake-3.18/Modules/SquishTestScript.cmake
similarity index 96%
rename from share/cmake-3.17/Modules/SquishTestScript.cmake
rename to share/cmake-3.18/Modules/SquishTestScript.cmake
index 2a80be5..b0cb4af 100644
--- a/share/cmake-3.17/Modules/SquishTestScript.cmake
+++ b/share/cmake-3.18/Modules/SquishTestScript.cmake
@@ -31,7 +31,6 @@
 message(STATUS "squish_wrapper='${squish_wrapper}'")
 message(STATUS "squish_env_vars='${squish_env_vars}'")
 message(STATUS "squish_module_dir='${squish_module_dir}'")
-message(STATUS "squish_settingsgroup='${squish_settingsgroup}'")
 message(STATUS "squish_pre_command='${squish_pre_command}'")
 message(STATUS "squish_post_command='${squish_post_command}'")
 
@@ -57,10 +56,10 @@
 # run the test
 if("${squish_version}" STREQUAL "4")
   if (WIN32)
-    execute_process(COMMAND ${squish_module_dir}/Squish4RunTestCase.bat ${squish_server_executable} ${squish_client_executable} ${squish_test_suite} ${squish_test_case} ${squish_aut} ${squish_aut_dir} ${squish_settingsgroup}
+    execute_process(COMMAND ${squish_module_dir}/Squish4RunTestCase.bat ${squish_server_executable} ${squish_client_executable} ${squish_test_suite} ${squish_test_case} ${squish_aut} ${squish_aut_dir}
                     RESULT_VARIABLE test_rv )
   elseif(UNIX)
-    execute_process(COMMAND ${squish_module_dir}/Squish4RunTestCase.sh ${squish_server_executable} ${squish_client_executable} ${squish_test_suite} ${squish_test_case} ${squish_aut} ${squish_aut_dir} ${squish_settingsgroup}
+    execute_process(COMMAND ${squish_module_dir}/Squish4RunTestCase.sh ${squish_server_executable} ${squish_client_executable} ${squish_test_suite} ${squish_test_case} ${squish_aut} ${squish_aut_dir}
                     RESULT_VARIABLE test_rv )
   endif ()
 
diff --git a/share/cmake-3.17/Modules/SystemInformation.cmake b/share/cmake-3.18/Modules/SystemInformation.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/SystemInformation.cmake
rename to share/cmake-3.18/Modules/SystemInformation.cmake
diff --git a/share/cmake-3.17/Modules/SystemInformation.in b/share/cmake-3.18/Modules/SystemInformation.in
similarity index 100%
rename from share/cmake-3.17/Modules/SystemInformation.in
rename to share/cmake-3.18/Modules/SystemInformation.in
diff --git a/share/cmake-3.17/Modules/TestBigEndian.cmake b/share/cmake-3.18/Modules/TestBigEndian.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/TestBigEndian.cmake
rename to share/cmake-3.18/Modules/TestBigEndian.cmake
diff --git a/share/cmake-3.17/Modules/TestCXXAcceptsFlag.cmake b/share/cmake-3.18/Modules/TestCXXAcceptsFlag.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/TestCXXAcceptsFlag.cmake
rename to share/cmake-3.18/Modules/TestCXXAcceptsFlag.cmake
diff --git a/share/cmake-3.17/Modules/TestEndianess.c.in b/share/cmake-3.18/Modules/TestEndianess.c.in
similarity index 100%
rename from share/cmake-3.17/Modules/TestEndianess.c.in
rename to share/cmake-3.18/Modules/TestEndianess.c.in
diff --git a/share/cmake-3.17/Modules/TestForANSIForScope.cmake b/share/cmake-3.18/Modules/TestForANSIForScope.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/TestForANSIForScope.cmake
rename to share/cmake-3.18/Modules/TestForANSIForScope.cmake
diff --git a/share/cmake-3.17/Modules/TestForANSIStreamHeaders.cmake b/share/cmake-3.18/Modules/TestForANSIStreamHeaders.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/TestForANSIStreamHeaders.cmake
rename to share/cmake-3.18/Modules/TestForANSIStreamHeaders.cmake
diff --git a/share/cmake-3.17/Modules/TestForANSIStreamHeaders.cxx b/share/cmake-3.18/Modules/TestForANSIStreamHeaders.cxx
similarity index 100%
rename from share/cmake-3.17/Modules/TestForANSIStreamHeaders.cxx
rename to share/cmake-3.18/Modules/TestForANSIStreamHeaders.cxx
diff --git a/share/cmake-3.17/Modules/TestForAnsiForScope.cxx b/share/cmake-3.18/Modules/TestForAnsiForScope.cxx
similarity index 100%
rename from share/cmake-3.17/Modules/TestForAnsiForScope.cxx
rename to share/cmake-3.18/Modules/TestForAnsiForScope.cxx
diff --git a/share/cmake-3.17/Modules/TestForSSTREAM.cmake b/share/cmake-3.18/Modules/TestForSSTREAM.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/TestForSSTREAM.cmake
rename to share/cmake-3.18/Modules/TestForSSTREAM.cmake
diff --git a/share/cmake-3.17/Modules/TestForSSTREAM.cxx b/share/cmake-3.18/Modules/TestForSSTREAM.cxx
similarity index 100%
rename from share/cmake-3.17/Modules/TestForSSTREAM.cxx
rename to share/cmake-3.18/Modules/TestForSSTREAM.cxx
diff --git a/share/cmake-3.17/Modules/TestForSTDNamespace.cmake b/share/cmake-3.18/Modules/TestForSTDNamespace.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/TestForSTDNamespace.cmake
rename to share/cmake-3.18/Modules/TestForSTDNamespace.cmake
diff --git a/share/cmake-3.17/Modules/TestForSTDNamespace.cxx b/share/cmake-3.18/Modules/TestForSTDNamespace.cxx
similarity index 100%
rename from share/cmake-3.17/Modules/TestForSTDNamespace.cxx
rename to share/cmake-3.18/Modules/TestForSTDNamespace.cxx
diff --git a/share/cmake-3.17/Modules/UseEcos.cmake b/share/cmake-3.18/Modules/UseEcos.cmake
similarity index 94%
rename from share/cmake-3.17/Modules/UseEcos.cmake
rename to share/cmake-3.18/Modules/UseEcos.cmake
index 60324b1..83c9b20 100644
--- a/share/cmake-3.17/Modules/UseEcos.cmake
+++ b/share/cmake-3.18/Modules/UseEcos.cmake
@@ -185,11 +185,11 @@
 # when using nmake makefiles, the custom buildtype suppresses the default cl.exe flags
 # and the rules for creating objects are adjusted for gcc
   set(CMAKE_BUILD_TYPE CUSTOM_ECOS_BUILD)
-  set(CMAKE_C_COMPILE_OBJECT     "<CMAKE_C_COMPILER>   <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT> -c <SOURCE>")
+  set(CMAKE_C_COMPILE_OBJECT     "<CMAKE_C_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT> -c <SOURCE>")
   set(CMAKE_CXX_COMPILE_OBJECT   "<CMAKE_CXX_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT> -c <SOURCE>")
 # special link commands for ecos-executables
-  set(CMAKE_CXX_LINK_EXECUTABLE  "<CMAKE_CXX_COMPILER> <CMAKE_CXX_LINK_FLAGS> <OBJECTS>  -o <TARGET> ${_ecos_EXTRA_LIBS} -nostdlib  -nostartfiles -L${CMAKE_CURRENT_BINARY_DIR}/ecos/install/lib -Ttarget.ld ${ECOS_LD_MCPU}")
-  set(CMAKE_C_LINK_EXECUTABLE    "<CMAKE_C_COMPILER>   <CMAKE_C_LINK_FLAGS>   <OBJECTS>  -o <TARGET> ${_ecos_EXTRA_LIBS} -nostdlib  -nostartfiles -L${CMAKE_CURRENT_BINARY_DIR}/ecos/install/lib -Ttarget.ld ${ECOS_LD_MCPU}")
+  set(CMAKE_CXX_LINK_EXECUTABLE  "<CMAKE_CXX_COMPILER> <CMAKE_CXX_LINK_FLAGS> <OBJECTS> -o <TARGET> ${_ecos_EXTRA_LIBS} -nostdlib -nostartfiles -L${CMAKE_CURRENT_BINARY_DIR}/ecos/install/lib -Ttarget.ld ${ECOS_LD_MCPU}")
+  set(CMAKE_C_LINK_EXECUTABLE    "<CMAKE_C_COMPILER> <CMAKE_C_LINK_FLAGS> <OBJECTS> -o <TARGET> ${_ecos_EXTRA_LIBS} -nostdlib -nostartfiles -L${CMAKE_CURRENT_BINARY_DIR}/ecos/install/lib -Ttarget.ld ${ECOS_LD_MCPU}")
 # some strict compiler flags
   set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wstrict-prototypes")
   set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Woverloaded-virtual -fno-rtti -Wctor-dtor-privacy -fno-strict-aliasing -fno-exceptions")
diff --git a/share/cmake-3.17/Modules/UseJava.cmake b/share/cmake-3.18/Modules/UseJava.cmake
similarity index 98%
rename from share/cmake-3.17/Modules/UseJava.cmake
rename to share/cmake-3.18/Modules/UseJava.cmake
index b668b9e..db3fb95 100644
--- a/share/cmake-3.17/Modules/UseJava.cmake
+++ b/share/cmake-3.18/Modules/UseJava.cmake
@@ -377,7 +377,9 @@
         ARGS    ${src}
                 ${dest}
         DEPENDS ${src}
-        COMMENT ${comment})
+        COMMENT ${comment}
+        VERBATIM
+        )
 endfunction ()
 
 function(__java_lcat VAR)
@@ -597,7 +599,10 @@
             # Create the list of files to compile.
             set(_JAVA_SOURCES_FILE ${CMAKE_JAVA_CLASS_OUTPUT_PATH}/java_sources)
             string(REPLACE ";" "\"\n\"" _JAVA_COMPILE_STRING "\"${_JAVA_COMPILE_FILES}\"")
-            file(WRITE ${_JAVA_SOURCES_FILE} ${_JAVA_COMPILE_STRING})
+            set(CMAKE_CONFIGURABLE_FILE_CONTENT "${_JAVA_COMPILE_STRING}")
+            configure_file("${CMAKE_ROOT}/Modules/CMakeConfigurableFile.in"
+              "${_JAVA_SOURCES_FILE}" @ONLY)
+            unset(CMAKE_CONFIGURABLE_FILE_CONTENT)
             list (APPEND _JAVA_SOURCES_FILELISTS "@${_JAVA_SOURCES_FILE}")
         endif()
         if (_JAVA_COMPILE_FILELISTS)
@@ -610,6 +615,10 @@
         add_custom_command(
             # NOTE: this command generates an artificial dependency file
             OUTPUT ${CMAKE_JAVA_CLASS_OUTPUT_PATH}/java_compiled_${_TARGET_NAME}
+            COMMAND ${CMAKE_COMMAND}
+                -DCMAKE_JAVA_CLASS_OUTPUT_PATH=${CMAKE_JAVA_CLASS_OUTPUT_PATH}
+                -DCMAKE_JAR_CLASSES_PREFIX=${CMAKE_JAR_CLASSES_PREFIX}
+                -P ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/UseJava/ClearClassFiles.cmake
             COMMAND ${Java_JAVAC_EXECUTABLE}
                 ${CMAKE_JAVA_COMPILE_FLAGS}
                 -classpath "${CMAKE_JAVA_INCLUDE_PATH_FINAL}"
@@ -617,18 +626,20 @@
                 ${_GENERATE_NATIVE_HEADERS}
                 ${_JAVA_SOURCES_FILELISTS}
             COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_JAVA_CLASS_OUTPUT_PATH}/java_compiled_${_TARGET_NAME}
-            DEPENDS ${_JAVA_COMPILE_FILES} ${_JAVA_COMPILE_FILELISTS} ${_JAVA_COMPILE_DEPENDS}
+            DEPENDS ${_JAVA_COMPILE_FILES} ${_JAVA_COMPILE_FILELISTS} ${_JAVA_COMPILE_DEPENDS} ${_JAVA_SOURCES_FILE}
             WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
             COMMENT "Building Java objects for ${_TARGET_NAME}.jar"
+            VERBATIM
         )
         add_custom_command(
             OUTPUT ${CMAKE_JAVA_CLASS_OUTPUT_PATH}/java_class_filelist
             COMMAND ${CMAKE_COMMAND}
                 -DCMAKE_JAVA_CLASS_OUTPUT_PATH=${CMAKE_JAVA_CLASS_OUTPUT_PATH}
-                -DCMAKE_JAR_CLASSES_PREFIX="${CMAKE_JAR_CLASSES_PREFIX}"
+                -DCMAKE_JAR_CLASSES_PREFIX=${CMAKE_JAR_CLASSES_PREFIX}
                 -P ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/UseJavaClassFilelist.cmake
             DEPENDS ${CMAKE_JAVA_CLASS_OUTPUT_PATH}/java_compiled_${_TARGET_NAME}
             WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+            VERBATIM
         )
     else ()
         # create an empty java_class_filelist
@@ -659,6 +670,7 @@
             DEPENDS ${_JAVA_RESOURCE_FILES} ${_JAVA_DEPENDS} ${CMAKE_JAVA_CLASS_OUTPUT_PATH}/java_class_filelist
             WORKING_DIRECTORY ${CMAKE_JAVA_CLASS_OUTPUT_PATH}
             COMMENT "Creating Java archive ${_JAVA_TARGET_OUTPUT_NAME}"
+            VERBATIM
         )
     else ()
         add_custom_command(
@@ -674,6 +686,7 @@
             WORKING_DIRECTORY ${CMAKE_JAVA_CLASS_OUTPUT_PATH}
             DEPENDS ${_JAVA_RESOURCE_FILES} ${_JAVA_DEPENDS} ${CMAKE_JAVA_CLASS_OUTPUT_PATH}/java_class_filelist
             COMMENT "Creating Java archive ${_JAVA_TARGET_OUTPUT_NAME}"
+            VERBATIM
         )
     endif ()
 
diff --git a/share/cmake-3.18/Modules/UseJava/ClearClassFiles.cmake b/share/cmake-3.18/Modules/UseJava/ClearClassFiles.cmake
new file mode 100644
index 0000000..f3115c6
--- /dev/null
+++ b/share/cmake-3.18/Modules/UseJava/ClearClassFiles.cmake
@@ -0,0 +1,17 @@
+# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+# This script deletes compiled Java class files.
+
+if(CMAKE_JAVA_CLASS_OUTPUT_PATH)
+  if(EXISTS "${CMAKE_JAVA_CLASS_OUTPUT_PATH}/java_class_filelist")
+    file(STRINGS "${CMAKE_JAVA_CLASS_OUTPUT_PATH}/java_class_filelist" classes)
+    list(TRANSFORM classes PREPEND "${CMAKE_JAVA_CLASS_OUTPUT_PATH}/")
+    if(classes)
+      file(REMOVE ${classes})
+      message(STATUS "Clean class files from previous build")
+    endif()
+  endif()
+else()
+  message(FATAL_ERROR "Can't find CMAKE_JAVA_CLASS_OUTPUT_PATH")
+endif()
diff --git a/share/cmake-3.17/Modules/UseJavaClassFilelist.cmake b/share/cmake-3.18/Modules/UseJavaClassFilelist.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/UseJavaClassFilelist.cmake
rename to share/cmake-3.18/Modules/UseJavaClassFilelist.cmake
diff --git a/share/cmake-3.17/Modules/UseJavaSymlinks.cmake b/share/cmake-3.18/Modules/UseJavaSymlinks.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/UseJavaSymlinks.cmake
rename to share/cmake-3.18/Modules/UseJavaSymlinks.cmake
diff --git a/share/cmake-3.17/Modules/UsePkgConfig.cmake b/share/cmake-3.18/Modules/UsePkgConfig.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/UsePkgConfig.cmake
rename to share/cmake-3.18/Modules/UsePkgConfig.cmake
diff --git a/share/cmake-3.17/Modules/UseQt4.cmake b/share/cmake-3.18/Modules/UseQt4.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/UseQt4.cmake
rename to share/cmake-3.18/Modules/UseQt4.cmake
diff --git a/share/cmake-3.17/Modules/UseSWIG.cmake b/share/cmake-3.18/Modules/UseSWIG.cmake
similarity index 96%
rename from share/cmake-3.17/Modules/UseSWIG.cmake
rename to share/cmake-3.18/Modules/UseSWIG.cmake
index 78522da..a60e05e 100644
--- a/share/cmake-3.17/Modules/UseSWIG.cmake
+++ b/share/cmake-3.18/Modules/UseSWIG.cmake
@@ -41,6 +41,14 @@
     configuration-specific files generated by ``SWIG``. All build
     configurations must result in the same generated source file.
 
+  .. note::
+
+    For Make-based generators, ``swig_add_library`` does not track file
+    dependencies, so depending on the ``<name>_swig_compilation`` custom target
+    is required for targets which require the ``swig``-generated files to
+    exist. Other generators may depend on the source files that would be
+    generated by SWIG.
+
   ``TYPE``
     ``SHARED``, ``MODULE`` and ``STATIC`` have the same semantic as for the
     :command:`add_library` command. If ``USE_BUILD_SHARED_LIBS`` is specified,
@@ -341,6 +349,23 @@
     list(APPEND files "${extra_file}")
   endforeach()
 
+  if (language STREQUAL "FORTRAN" AND CMAKE_Fortran_COMPILER_LOADED)
+    # Process possible user-supplied extension in flags (obtained via parent
+    # scope variable) to determine the source file name.
+    list(FIND SWIG_COMPILATION_FLAGS "-fext" fext_idx)
+    if (fext_idx EQUAL -1)
+      # Default Fortran generated extension
+      set(fext "f90")
+    else()
+      # Get extension from user-provided flag
+      math(EXPR fext_idx "${fext_idx} + 1")
+      list(GET SWIG_COMPILATION_FLAGS "${fext_idx}" fext)
+    endif()
+    set(extra_file "${generatedpath}/${module_basename}.${fext}")
+    set_source_files_properties("${extra_file}" PROPERTIES LANGUAGE "Fortran")
+    list(APPEND files "${extra_file}")
+  endif()
+
   set (${outfiles} ${files} PARENT_SCOPE)
 endfunction()
 
@@ -415,6 +440,7 @@
   get_filename_component(swig_source_file_fullname "${infile}" ABSOLUTE)
 
   if (NOT SWIG_MODULE_${name}_NOPROXY)
+    set(SWIG_COMPILATION_FLAGS ${swig_source_file_flags})
     SWIG_GET_EXTRA_OUTPUT_FILES(${SWIG_MODULE_${name}_LANGUAGE}
       swig_extra_generated_files
       "${outdir}"
@@ -787,6 +813,8 @@
     if (APPLE)
       set_target_properties (${target_name} PROPERTIES SUFFIX ".dylib")
     endif ()
+  elseif (swig_lowercase_language STREQUAL "fortran")
+    # Do *not* override the target's library prefix
   else()
     # assume empty prefix because we expect the module to be dynamically loaded
     set_target_properties (${target_name} PROPERTIES PREFIX "")
diff --git a/share/cmake-3.17/Modules/UseSWIG/ManageSupportFiles.cmake b/share/cmake-3.18/Modules/UseSWIG/ManageSupportFiles.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/UseSWIG/ManageSupportFiles.cmake
rename to share/cmake-3.18/Modules/UseSWIG/ManageSupportFiles.cmake
diff --git a/share/cmake-3.17/Modules/Use_wxWindows.cmake b/share/cmake-3.18/Modules/Use_wxWindows.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/Use_wxWindows.cmake
rename to share/cmake-3.18/Modules/Use_wxWindows.cmake
diff --git a/share/cmake-3.17/Modules/UsewxWidgets.cmake b/share/cmake-3.18/Modules/UsewxWidgets.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/UsewxWidgets.cmake
rename to share/cmake-3.18/Modules/UsewxWidgets.cmake
diff --git a/share/cmake-3.17/Modules/VTKCompatibility.cmake b/share/cmake-3.18/Modules/VTKCompatibility.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/VTKCompatibility.cmake
rename to share/cmake-3.18/Modules/VTKCompatibility.cmake
diff --git a/share/cmake-3.17/Modules/WriteBasicConfigVersionFile.cmake b/share/cmake-3.18/Modules/WriteBasicConfigVersionFile.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/WriteBasicConfigVersionFile.cmake
rename to share/cmake-3.18/Modules/WriteBasicConfigVersionFile.cmake
diff --git a/share/cmake-3.17/Modules/WriteCompilerDetectionHeader.cmake b/share/cmake-3.18/Modules/WriteCompilerDetectionHeader.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/WriteCompilerDetectionHeader.cmake
rename to share/cmake-3.18/Modules/WriteCompilerDetectionHeader.cmake
diff --git a/share/cmake-3.17/Modules/ecos_clean.cmake b/share/cmake-3.18/Modules/ecos_clean.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/ecos_clean.cmake
rename to share/cmake-3.18/Modules/ecos_clean.cmake
diff --git a/share/cmake-3.17/Modules/exportheader.cmake.in b/share/cmake-3.18/Modules/exportheader.cmake.in
similarity index 100%
rename from share/cmake-3.17/Modules/exportheader.cmake.in
rename to share/cmake-3.18/Modules/exportheader.cmake.in
diff --git a/share/cmake-3.17/Modules/javaTargets.cmake.in b/share/cmake-3.18/Modules/javaTargets.cmake.in
similarity index 100%
rename from share/cmake-3.17/Modules/javaTargets.cmake.in
rename to share/cmake-3.18/Modules/javaTargets.cmake.in
diff --git a/share/cmake-3.17/Modules/kde3init_dummy.cpp.in b/share/cmake-3.18/Modules/kde3init_dummy.cpp.in
similarity index 100%
rename from share/cmake-3.17/Modules/kde3init_dummy.cpp.in
rename to share/cmake-3.18/Modules/kde3init_dummy.cpp.in
diff --git a/share/cmake-3.17/Modules/kde3uic.cmake b/share/cmake-3.18/Modules/kde3uic.cmake
similarity index 100%
rename from share/cmake-3.17/Modules/kde3uic.cmake
rename to share/cmake-3.18/Modules/kde3uic.cmake
diff --git a/share/cmake-3.17/Modules/readme.txt b/share/cmake-3.18/Modules/readme.txt
similarity index 64%
rename from share/cmake-3.17/Modules/readme.txt
rename to share/cmake-3.18/Modules/readme.txt
index a629478..da78730 100644
--- a/share/cmake-3.17/Modules/readme.txt
+++ b/share/cmake-3.18/Modules/readme.txt
@@ -1,4 +1,4 @@
 See the "Find Modules" section of the cmake-developer(7) manual page.
 
 For more information about how to contribute modules to CMake, see this page:
-https://gitlab.kitware.com/cmake/community/wikis/doc/cmake/dev/Module-Maintainers
+https://gitlab.kitware.com/cmake/community/-/wikis/doc/cmake/dev/Module-Maintainers
diff --git a/share/cmake-3.17/Templates/AppleInfo.plist b/share/cmake-3.18/Templates/AppleInfo.plist
similarity index 100%
rename from share/cmake-3.17/Templates/AppleInfo.plist
rename to share/cmake-3.18/Templates/AppleInfo.plist
diff --git a/share/cmake-3.17/Templates/CMakeVSMacros1.vsmacros b/share/cmake-3.18/Templates/CMakeVSMacros1.vsmacros
similarity index 100%
rename from share/cmake-3.17/Templates/CMakeVSMacros1.vsmacros
rename to share/cmake-3.18/Templates/CMakeVSMacros1.vsmacros
Binary files differ
diff --git a/share/cmake-3.17/Templates/CMakeVSMacros2.vsmacros b/share/cmake-3.18/Templates/CMakeVSMacros2.vsmacros
similarity index 100%
rename from share/cmake-3.17/Templates/CMakeVSMacros2.vsmacros
rename to share/cmake-3.18/Templates/CMakeVSMacros2.vsmacros
Binary files differ
diff --git a/share/cmake-3.17/Templates/CPack.GenericDescription.txt b/share/cmake-3.18/Templates/CPack.GenericDescription.txt
similarity index 100%
rename from share/cmake-3.17/Templates/CPack.GenericDescription.txt
rename to share/cmake-3.18/Templates/CPack.GenericDescription.txt
diff --git a/share/cmake-3.17/Templates/CPack.GenericLicense.txt b/share/cmake-3.18/Templates/CPack.GenericLicense.txt
similarity index 100%
rename from share/cmake-3.17/Templates/CPack.GenericLicense.txt
rename to share/cmake-3.18/Templates/CPack.GenericLicense.txt
diff --git a/share/cmake-3.17/Templates/CPack.GenericWelcome.txt b/share/cmake-3.18/Templates/CPack.GenericWelcome.txt
similarity index 100%
rename from share/cmake-3.17/Templates/CPack.GenericWelcome.txt
rename to share/cmake-3.18/Templates/CPack.GenericWelcome.txt
diff --git a/share/cmake-3.17/Templates/CPackConfig.cmake.in b/share/cmake-3.18/Templates/CPackConfig.cmake.in
similarity index 100%
rename from share/cmake-3.17/Templates/CPackConfig.cmake.in
rename to share/cmake-3.18/Templates/CPackConfig.cmake.in
diff --git a/share/cmake-3.17/Templates/CTestScript.cmake.in b/share/cmake-3.18/Templates/CTestScript.cmake.in
similarity index 100%
rename from share/cmake-3.17/Templates/CTestScript.cmake.in
rename to share/cmake-3.18/Templates/CTestScript.cmake.in
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v10_CL.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v10_CL.json
similarity index 100%
rename from share/cmake-3.17/Templates/MSBuild/FlagTables/v10_CL.json
rename to share/cmake-3.18/Templates/MSBuild/FlagTables/v10_CL.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v10_CSharp.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v10_CSharp.json
similarity index 100%
rename from share/cmake-3.17/Templates/MSBuild/FlagTables/v10_CSharp.json
rename to share/cmake-3.18/Templates/MSBuild/FlagTables/v10_CSharp.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v10_Cuda.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v10_Cuda.json
similarity index 100%
rename from share/cmake-3.17/Templates/MSBuild/FlagTables/v10_Cuda.json
rename to share/cmake-3.18/Templates/MSBuild/FlagTables/v10_Cuda.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v10_CudaHost.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v10_CudaHost.json
similarity index 100%
rename from share/cmake-3.17/Templates/MSBuild/FlagTables/v10_CudaHost.json
rename to share/cmake-3.18/Templates/MSBuild/FlagTables/v10_CudaHost.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v10_LIB.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v10_LIB.json
similarity index 100%
rename from share/cmake-3.17/Templates/MSBuild/FlagTables/v10_LIB.json
rename to share/cmake-3.18/Templates/MSBuild/FlagTables/v10_LIB.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v10_Link.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v10_Link.json
similarity index 100%
rename from share/cmake-3.17/Templates/MSBuild/FlagTables/v10_Link.json
rename to share/cmake-3.18/Templates/MSBuild/FlagTables/v10_Link.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v10_MASM.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v10_MASM.json
similarity index 100%
rename from share/cmake-3.17/Templates/MSBuild/FlagTables/v10_MASM.json
rename to share/cmake-3.18/Templates/MSBuild/FlagTables/v10_MASM.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v10_NASM.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v10_NASM.json
similarity index 100%
rename from share/cmake-3.17/Templates/MSBuild/FlagTables/v10_NASM.json
rename to share/cmake-3.18/Templates/MSBuild/FlagTables/v10_NASM.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v10_RC.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v10_RC.json
similarity index 100%
rename from share/cmake-3.17/Templates/MSBuild/FlagTables/v10_RC.json
rename to share/cmake-3.18/Templates/MSBuild/FlagTables/v10_RC.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v11_CL.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v11_CL.json
similarity index 100%
rename from share/cmake-3.17/Templates/MSBuild/FlagTables/v11_CL.json
rename to share/cmake-3.18/Templates/MSBuild/FlagTables/v11_CL.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v11_CSharp.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v11_CSharp.json
similarity index 100%
rename from share/cmake-3.17/Templates/MSBuild/FlagTables/v11_CSharp.json
rename to share/cmake-3.18/Templates/MSBuild/FlagTables/v11_CSharp.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v11_LIB.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v11_LIB.json
similarity index 100%
rename from share/cmake-3.17/Templates/MSBuild/FlagTables/v11_LIB.json
rename to share/cmake-3.18/Templates/MSBuild/FlagTables/v11_LIB.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v11_Link.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v11_Link.json
similarity index 100%
rename from share/cmake-3.17/Templates/MSBuild/FlagTables/v11_Link.json
rename to share/cmake-3.18/Templates/MSBuild/FlagTables/v11_Link.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v11_MASM.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v11_MASM.json
similarity index 100%
rename from share/cmake-3.17/Templates/MSBuild/FlagTables/v11_MASM.json
rename to share/cmake-3.18/Templates/MSBuild/FlagTables/v11_MASM.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v11_RC.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v11_RC.json
similarity index 100%
rename from share/cmake-3.17/Templates/MSBuild/FlagTables/v11_RC.json
rename to share/cmake-3.18/Templates/MSBuild/FlagTables/v11_RC.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v12_CL.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v12_CL.json
similarity index 100%
rename from share/cmake-3.17/Templates/MSBuild/FlagTables/v12_CL.json
rename to share/cmake-3.18/Templates/MSBuild/FlagTables/v12_CL.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v12_CSharp.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v12_CSharp.json
similarity index 100%
rename from share/cmake-3.17/Templates/MSBuild/FlagTables/v12_CSharp.json
rename to share/cmake-3.18/Templates/MSBuild/FlagTables/v12_CSharp.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v12_LIB.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v12_LIB.json
similarity index 100%
rename from share/cmake-3.17/Templates/MSBuild/FlagTables/v12_LIB.json
rename to share/cmake-3.18/Templates/MSBuild/FlagTables/v12_LIB.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v12_Link.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v12_Link.json
similarity index 100%
rename from share/cmake-3.17/Templates/MSBuild/FlagTables/v12_Link.json
rename to share/cmake-3.18/Templates/MSBuild/FlagTables/v12_Link.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v12_MASM.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v12_MASM.json
similarity index 100%
rename from share/cmake-3.17/Templates/MSBuild/FlagTables/v12_MASM.json
rename to share/cmake-3.18/Templates/MSBuild/FlagTables/v12_MASM.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v12_RC.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v12_RC.json
similarity index 100%
rename from share/cmake-3.17/Templates/MSBuild/FlagTables/v12_RC.json
rename to share/cmake-3.18/Templates/MSBuild/FlagTables/v12_RC.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v140_CL.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v140_CL.json
similarity index 100%
rename from share/cmake-3.17/Templates/MSBuild/FlagTables/v140_CL.json
rename to share/cmake-3.18/Templates/MSBuild/FlagTables/v140_CL.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v140_CSharp.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v140_CSharp.json
similarity index 100%
rename from share/cmake-3.17/Templates/MSBuild/FlagTables/v140_CSharp.json
rename to share/cmake-3.18/Templates/MSBuild/FlagTables/v140_CSharp.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v140_Link.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v140_Link.json
similarity index 100%
rename from share/cmake-3.17/Templates/MSBuild/FlagTables/v140_Link.json
rename to share/cmake-3.18/Templates/MSBuild/FlagTables/v140_Link.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v141_CL.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v141_CL.json
similarity index 100%
rename from share/cmake-3.17/Templates/MSBuild/FlagTables/v141_CL.json
rename to share/cmake-3.18/Templates/MSBuild/FlagTables/v141_CL.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v141_CSharp.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v141_CSharp.json
similarity index 100%
rename from share/cmake-3.17/Templates/MSBuild/FlagTables/v141_CSharp.json
rename to share/cmake-3.18/Templates/MSBuild/FlagTables/v141_CSharp.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v141_Link.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v141_Link.json
similarity index 100%
rename from share/cmake-3.17/Templates/MSBuild/FlagTables/v141_Link.json
rename to share/cmake-3.18/Templates/MSBuild/FlagTables/v141_Link.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v142_CL.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v142_CL.json
similarity index 100%
rename from share/cmake-3.17/Templates/MSBuild/FlagTables/v142_CL.json
rename to share/cmake-3.18/Templates/MSBuild/FlagTables/v142_CL.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v142_CSharp.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v142_CSharp.json
similarity index 100%
rename from share/cmake-3.17/Templates/MSBuild/FlagTables/v142_CSharp.json
rename to share/cmake-3.18/Templates/MSBuild/FlagTables/v142_CSharp.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v142_Link.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v142_Link.json
similarity index 100%
rename from share/cmake-3.17/Templates/MSBuild/FlagTables/v142_Link.json
rename to share/cmake-3.18/Templates/MSBuild/FlagTables/v142_Link.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v14_LIB.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v14_LIB.json
similarity index 100%
rename from share/cmake-3.17/Templates/MSBuild/FlagTables/v14_LIB.json
rename to share/cmake-3.18/Templates/MSBuild/FlagTables/v14_LIB.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v14_MASM.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v14_MASM.json
similarity index 100%
rename from share/cmake-3.17/Templates/MSBuild/FlagTables/v14_MASM.json
rename to share/cmake-3.18/Templates/MSBuild/FlagTables/v14_MASM.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v14_RC.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v14_RC.json
similarity index 100%
rename from share/cmake-3.17/Templates/MSBuild/FlagTables/v14_RC.json
rename to share/cmake-3.18/Templates/MSBuild/FlagTables/v14_RC.json
diff --git a/share/cmake-3.17/Templates/MSBuild/nasm.props.in b/share/cmake-3.18/Templates/MSBuild/nasm.props.in
similarity index 100%
rename from share/cmake-3.17/Templates/MSBuild/nasm.props.in
rename to share/cmake-3.18/Templates/MSBuild/nasm.props.in
diff --git a/share/cmake-3.17/Templates/MSBuild/nasm.targets b/share/cmake-3.18/Templates/MSBuild/nasm.targets
similarity index 100%
rename from share/cmake-3.17/Templates/MSBuild/nasm.targets
rename to share/cmake-3.18/Templates/MSBuild/nasm.targets
diff --git a/share/cmake-3.17/Templates/MSBuild/nasm.xml b/share/cmake-3.18/Templates/MSBuild/nasm.xml
similarity index 100%
rename from share/cmake-3.17/Templates/MSBuild/nasm.xml
rename to share/cmake-3.18/Templates/MSBuild/nasm.xml
diff --git a/share/cmake-3.17/Templates/TestDriver.cxx.in b/share/cmake-3.18/Templates/TestDriver.cxx.in
similarity index 97%
rename from share/cmake-3.17/Templates/TestDriver.cxx.in
rename to share/cmake-3.18/Templates/TestDriver.cxx.in
index 846a828..053f1ee 100644
--- a/share/cmake-3.17/Templates/TestDriver.cxx.in
+++ b/share/cmake-3.18/Templates/TestDriver.cxx.in
@@ -45,7 +45,8 @@
    (note that it has to be free'd manually) */
 static char* lowercase(const char* string)
 {
-  char *new_string, *p;
+  char *new_string;
+  char *p;
   size_t stringSize;
 
   stringSize = CM_CAST(size_t, strlen(string) + 1);
@@ -63,7 +64,9 @@
 
 int main(int ac, char* av[])
 {
-  int i, testNum = 0, partial_match;
+  int i;
+  int testNum = 0;
+  int partial_match;
   char *arg;
   int testToRun = -1;
 
diff --git a/share/cmake-3.17/Templates/Windows/ApplicationIcon.png b/share/cmake-3.18/Templates/Windows/ApplicationIcon.png
similarity index 100%
rename from share/cmake-3.17/Templates/Windows/ApplicationIcon.png
rename to share/cmake-3.18/Templates/Windows/ApplicationIcon.png
Binary files differ
diff --git a/share/cmake-3.17/Templates/Windows/Logo.png b/share/cmake-3.18/Templates/Windows/Logo.png
similarity index 100%
rename from share/cmake-3.17/Templates/Windows/Logo.png
rename to share/cmake-3.18/Templates/Windows/Logo.png
Binary files differ
diff --git a/share/cmake-3.17/Templates/Windows/SmallLogo.png b/share/cmake-3.18/Templates/Windows/SmallLogo.png
similarity index 100%
rename from share/cmake-3.17/Templates/Windows/SmallLogo.png
rename to share/cmake-3.18/Templates/Windows/SmallLogo.png
Binary files differ
diff --git a/share/cmake-3.17/Templates/Windows/SmallLogo44x44.png b/share/cmake-3.18/Templates/Windows/SmallLogo44x44.png
similarity index 100%
rename from share/cmake-3.17/Templates/Windows/SmallLogo44x44.png
rename to share/cmake-3.18/Templates/Windows/SmallLogo44x44.png
Binary files differ
diff --git a/share/cmake-3.17/Templates/Windows/SplashScreen.png b/share/cmake-3.18/Templates/Windows/SplashScreen.png
similarity index 100%
rename from share/cmake-3.17/Templates/Windows/SplashScreen.png
rename to share/cmake-3.18/Templates/Windows/SplashScreen.png
Binary files differ
diff --git a/share/cmake-3.17/Templates/Windows/StoreLogo.png b/share/cmake-3.18/Templates/Windows/StoreLogo.png
similarity index 100%
rename from share/cmake-3.17/Templates/Windows/StoreLogo.png
rename to share/cmake-3.18/Templates/Windows/StoreLogo.png
Binary files differ
diff --git a/share/cmake-3.17/Templates/Windows/Windows_TemporaryKey.pfx b/share/cmake-3.18/Templates/Windows/Windows_TemporaryKey.pfx
similarity index 100%
rename from share/cmake-3.17/Templates/Windows/Windows_TemporaryKey.pfx
rename to share/cmake-3.18/Templates/Windows/Windows_TemporaryKey.pfx
Binary files differ
diff --git a/share/cmake-3.17/include/cmCPluginAPI.h b/share/cmake-3.18/include/cmCPluginAPI.h
similarity index 100%
rename from share/cmake-3.17/include/cmCPluginAPI.h
rename to share/cmake-3.18/include/cmCPluginAPI.h
diff --git a/share/cmake-3.17/editors/emacs/cmake-mode.el b/share/emacs/site-lisp/cmake-mode.el
similarity index 100%
rename from share/cmake-3.17/editors/emacs/cmake-mode.el
rename to share/emacs/site-lisp/cmake-mode.el
diff --git a/share/cmake-3.17/editors/vim/indent/cmake.vim b/share/vim/vimfiles/indent/cmake.vim
similarity index 100%
rename from share/cmake-3.17/editors/vim/indent/cmake.vim
rename to share/vim/vimfiles/indent/cmake.vim
diff --git a/share/cmake-3.17/editors/vim/syntax/cmake.vim b/share/vim/vimfiles/syntax/cmake.vim
similarity index 99%
rename from share/cmake-3.17/editors/vim/syntax/cmake.vim
rename to share/vim/vimfiles/syntax/cmake.vim
index 0676f7e..2d63eb0 100644
--- a/share/cmake-3.17/editors/vim/syntax/cmake.vim
+++ b/share/vim/vimfiles/syntax/cmake.vim
@@ -170,6 +170,7 @@
             \ FRAMEWORK_VERSION
             \ Fortran_FORMAT
             \ Fortran_MODULE_DIRECTORY
+            \ Fortran_PREPROCESS
             \ GENERATED
             \ GENERATOR_FILE_NAME
             \ GENERATOR_IS_MULTI_CONFIG
@@ -1019,6 +1020,7 @@
             \ CMAKE_Fortran_MODULE_DIRECTORY
             \ CMAKE_Fortran_OUTPUT_EXTENSION
             \ CMAKE_Fortran_PLATFORM_ID
+            \ CMAKE_Fortran_PREPROCESS
             \ CMAKE_Fortran_SIMULATE_ID
             \ CMAKE_Fortran_SIMULATE_VERSION
             \ CMAKE_Fortran_SIZEOF_DATA_PTR