[llvm-branch-commits] [llvm] release/19.x: [cmake] Extend zstd.dll finding logic from MSVC to Clang (#121437) (PR #121755)

via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Mon Jan 6 03:38:20 PST 2025


=?utf-8?q?Michał_Górny?= <mgorny at gentoo.org>
Message-ID: <llvm.org/llvm/llvm-project/pull/121755 at github.com>
In-Reply-To:


https://github.com/llvmbot created https://github.com/llvm/llvm-project/pull/121755

Backport 5bbd5984306ab0bdd89a2e81cd4965e5ae51c3fb 62d0aff3eb934439acac47348e2385f0751a1444

Requested by: @mgorny

>From ab4b42abd76de1ba7fcddb5c58779700987ec052 Mon Sep 17 00:00:00 2001
From: Vassil Vassilev <v.g.vassilev at gmail.com>
Date: Thu, 22 Aug 2024 13:04:33 +0200
Subject: [PATCH 1/2] [cmake] Include GNUInstallDirs before using variables
 defined by it. (#83807)

This fixes an odd problem with the regex when `CMAKE_INSTALL_LIBDIR` is
not defined:

`string sub-command REGEX, mode REPLACE: regex "$" matched an empty
string.`

Fixes llvm/llvm-project#83802

(cherry picked from commit 5bbd5984306ab0bdd89a2e81cd4965e5ae51c3fb)
---
 llvm/cmake/modules/Findzstd.cmake | 1 +
 1 file changed, 1 insertion(+)

diff --git a/llvm/cmake/modules/Findzstd.cmake b/llvm/cmake/modules/Findzstd.cmake
index 4bc0b793e51c9a..86b6d48b6ec6b6 100644
--- a/llvm/cmake/modules/Findzstd.cmake
+++ b/llvm/cmake/modules/Findzstd.cmake
@@ -34,6 +34,7 @@ if(zstd_FOUND)
   elseif (NOT TARGET zstd::libzstd_shared)
     add_library(zstd::libzstd_shared SHARED IMPORTED)
     if(MSVC)
+      include(GNUInstallDirs) # For CMAKE_INSTALL_LIBDIR and friends.
       # IMPORTED_LOCATION is the path to the DLL and IMPORTED_IMPLIB is the "library".
       get_filename_component(zstd_DIRNAME "${zstd_LIBRARY}" DIRECTORY)
       if(NOT "${CMAKE_INSTALL_LIBDIR}" STREQUAL "" AND NOT "${CMAKE_INSTALL_BINDIR}" STREQUAL "")

>From 3fc22083e973b88a83fb65f1184b1c67b9f3fa11 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny at gentoo.org>
Date: Thu, 2 Jan 2025 15:43:45 +0000
Subject: [PATCH 2/2] [cmake] Extend zstd.dll finding logic from MSVC to Clang
 (#121437)

Extend the special logic for finding `zstd.dll` in `Findzstd` to apply
to all MSVC-compatible configurations such as Clang targeting MSVC.

Fixes #121345

(cherry picked from commit 62d0aff3eb934439acac47348e2385f0751a1444)
---
 llvm/cmake/modules/Findzstd.cmake | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/llvm/cmake/modules/Findzstd.cmake b/llvm/cmake/modules/Findzstd.cmake
index 86b6d48b6ec6b6..f6ca5d1ebe546b 100644
--- a/llvm/cmake/modules/Findzstd.cmake
+++ b/llvm/cmake/modules/Findzstd.cmake
@@ -10,7 +10,7 @@
 # zstd::libzstd_shared
 # zstd::libzstd_static
 
-if(MSVC)
+if(MSVC OR "${CMAKE_CXX_SIMULATE_ID}" STREQUAL "MSVC")
   set(zstd_STATIC_LIBRARY_SUFFIX "_static\\${CMAKE_STATIC_LIBRARY_SUFFIX}$")
 else()
   set(zstd_STATIC_LIBRARY_SUFFIX "\\${CMAKE_STATIC_LIBRARY_SUFFIX}$")
@@ -33,7 +33,7 @@ if(zstd_FOUND)
     set(zstd_STATIC_LIBRARY "${zstd_LIBRARY}")
   elseif (NOT TARGET zstd::libzstd_shared)
     add_library(zstd::libzstd_shared SHARED IMPORTED)
-    if(MSVC)
+    if(MSVC OR "${CMAKE_CXX_SIMULATE_ID}" STREQUAL "MSVC")
       include(GNUInstallDirs) # For CMAKE_INSTALL_LIBDIR and friends.
       # IMPORTED_LOCATION is the path to the DLL and IMPORTED_IMPLIB is the "library".
       get_filename_component(zstd_DIRNAME "${zstd_LIBRARY}" DIRECTORY)



More information about the llvm-branch-commits mailing list