summaryrefslogtreecommitdiff
path: root/Help
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2023-03-28 12:13:14 +0000
committerKitware Robot <kwrobot@kitware.com>2023-03-28 08:13:31 -0400
commiteb890ba3fc479ac82ca9cd63ba5aa441029fcdb8 (patch)
tree1012a3b42b057d9968444f60b7f14bac9a3cd2fa /Help
parent537b0fdf3496c2b1e6034180f628c58064a3a806 (diff)
parent5922c86ed60423b7d85506ae251e83d25dffca25 (diff)
downloadcmake-eb890ba3fc479ac82ca9cd63ba5aa441029fcdb8.tar.gz
Merge topic 'file-GET_RUNTIME_DEPENDENCIES-windows-casing'
5922c86ed6 file(GET_RUNTIME_DEPENDENCIES): Document case-preserving change on Windows 7dffe99ad8 Tests: Restore CudaOnly.RuntimeControls cudart verification on Windows Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Kyle Edwards <kyle.edwards@kitware.com> Merge-request: !8367
Diffstat (limited to 'Help')
-rw-r--r--Help/command/file.rst25
-rw-r--r--Help/release/dev/file-GET_RUNTIME_DEPENDENCIES-windows-casing.rst7
2 files changed, 23 insertions, 9 deletions
diff --git a/Help/command/file.rst b/Help/command/file.rst
index 25b762c5fd..30a7f4de7b 100644
--- a/Help/command/file.rst
+++ b/Help/command/file.rst
@@ -341,12 +341,13 @@ Reading
On Windows platforms, library resolution works as follows:
- 1. The dependent DLL name is converted to lowercase. Windows DLL names are
- case-insensitive, and some linkers mangle the case of the DLL dependency
- names. However, this makes it more difficult for ``PRE_INCLUDE_REGEXES``,
- ``PRE_EXCLUDE_REGEXES``, ``POST_INCLUDE_REGEXES``, and
- ``POST_EXCLUDE_REGEXES`` to properly filter DLL names - every regex would
- have to check for both uppercase and lowercase letters. For example:
+ 1. DLL dependency names are converted to lowercase for matching filters.
+ Windows DLL names are case-insensitive, and some linkers mangle the
+ case of the DLL dependency names. However, this makes it more difficult
+ for ``PRE_INCLUDE_REGEXES``, ``PRE_EXCLUDE_REGEXES``,
+ ``POST_INCLUDE_REGEXES``, and ``POST_EXCLUDE_REGEXES`` to properly
+ filter DLL names - every regex would have to check for both uppercase
+ and lowercase letters. For example:
.. code-block:: cmake
@@ -369,9 +370,15 @@ Reading
either on disk or in the depending file. (For example, it will match
``mylibrary.dll``, ``MyLibrary.dll``, and ``MYLIBRARY.DLL``.)
- Please note that the directory portion of any resolved DLLs retains its
- casing and is not converted to lowercase. Only the filename portion is
- converted.
+ .. versionchanged:: 3.27
+
+ The conversion to lowercase only applies while matching filters.
+ Results reported after filtering case-preserve each DLL name as it is
+ found on disk, if resolved, and otherwise as it is referenced by the
+ dependent binary.
+
+ Prior to CMake 3.27, the results were reported with lowercase DLL
+ file names, but the directory portion retained its casing.
2. (**Not yet implemented**) If the depending file is a Windows Store app,
and the dependency is listed as a dependency in the application's package
diff --git a/Help/release/dev/file-GET_RUNTIME_DEPENDENCIES-windows-casing.rst b/Help/release/dev/file-GET_RUNTIME_DEPENDENCIES-windows-casing.rst
new file mode 100644
index 0000000000..858f8b3a99
--- /dev/null
+++ b/Help/release/dev/file-GET_RUNTIME_DEPENDENCIES-windows-casing.rst
@@ -0,0 +1,7 @@
+file-GET_RUNTIME_DEPENDENCIES-windows-casing
+--------------------------------------------
+
+
+* The :command:`file(GET_RUNTIME_DEPENDENCIES)` command now case-preserves
+ DLL names reported on Windows. They are still converted to lowercase
+ for filter matching.