[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