diff options
author | Brad King <brad.king@kitware.com> | 2023-03-28 12:13:14 +0000 |
---|---|---|
committer | Kitware Robot <kwrobot@kitware.com> | 2023-03-28 08:13:31 -0400 |
commit | eb890ba3fc479ac82ca9cd63ba5aa441029fcdb8 (patch) | |
tree | 1012a3b42b057d9968444f60b7f14bac9a3cd2fa | |
parent | 537b0fdf3496c2b1e6034180f628c58064a3a806 (diff) | |
parent | 5922c86ed60423b7d85506ae251e83d25dffca25 (diff) | |
download | cmake-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
-rw-r--r-- | Help/command/file.rst | 25 | ||||
-rw-r--r-- | Help/release/dev/file-GET_RUNTIME_DEPENDENCIES-windows-casing.rst | 7 | ||||
-rw-r--r-- | Tests/CudaOnly/RuntimeControls/verify_runtime.cmake | 2 |
3 files changed, 24 insertions, 10 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. diff --git a/Tests/CudaOnly/RuntimeControls/verify_runtime.cmake b/Tests/CudaOnly/RuntimeControls/verify_runtime.cmake index b313dac937..27fbe45874 100644 --- a/Tests/CudaOnly/RuntimeControls/verify_runtime.cmake +++ b/Tests/CudaOnly/RuntimeControls/verify_runtime.cmake @@ -7,7 +7,7 @@ file(GET_RUNTIME_DEPENDENCIES EXECUTABLES ${EXEC_PATH} ) -list(FILTER resolved_libs INCLUDE REGEX ".*cudart.*") +list(FILTER resolved_libs INCLUDE REGEX ".*[Cc][Uu][Dd][Aa][Rr][Tt].*") list(LENGTH resolved_libs has_cudart) if(has_cudart EQUAL 0) |