[llvm] Fix the issue of linking a wrong import library of zstd (PR #134812)

via llvm-commits llvm-commits at lists.llvm.org
Tue Apr 8 01:51:33 PDT 2025


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-llvm-support

Author: Jianshan Jiang (jiangjianshan)

<details>
<summary>Changes</summary>

Hello,
I use the scripts from `https://github.com/jiangjianshan/msvc-pkg` to build many libraries if they are list in `packages` folder on that github repository. One time I have found in current or previous version of llvm-project, after you run `llvm-config --system-libs`, you will find 'zstd.dll.lib' but not 'zstd.lib' in the output. But 'zstd.dll.lib' is not exist when using MSVC compiler. This pull request will fix the issue and make llvm-project link to the correct import library of zstd when using MSVC compiler. 

---
Full diff: https://github.com/llvm/llvm-project/pull/134812.diff


1 Files Affected:

- (modified) llvm/lib/Support/CMakeLists.txt (+10-2) 


``````````diff
diff --git a/llvm/lib/Support/CMakeLists.txt b/llvm/lib/Support/CMakeLists.txt
index 98ffd829d80b8..19f97444a6e37 100644
--- a/llvm/lib/Support/CMakeLists.txt
+++ b/llvm/lib/Support/CMakeLists.txt
@@ -336,10 +336,18 @@ if(LLVM_ENABLE_ZSTD)
   # CMAKE_BUILD_TYPE is only meaningful to single-configuration generators.
   if(CMAKE_BUILD_TYPE)
     string(TOUPPER ${CMAKE_BUILD_TYPE} build_type)
-    get_property(zstd_library TARGET ${zstd_target} PROPERTY LOCATION_${build_type})
+    if(MSVC)
+      get_property(zstd_library TARGET ${zstd_target} PROPERTY IMPORTED_IMPLIB_${build_type})
+    else()
+      get_property(zstd_library TARGET ${zstd_target} PROPERTY LOCATION_${build_type})
+    endif()
   endif()
   if(NOT zstd_library)
-    get_property(zstd_library TARGET ${zstd_target} PROPERTY LOCATION)
+    if(MSVC)
+      get_property(zstd_library TARGET ${zstd_target} PROPERTY IMPORTED_IMPLIB)
+    else()
+      get_property(zstd_library TARGET ${zstd_target} PROPERTY LOCATION)
+    endif()
   endif()
   if (zstd_target STREQUAL zstd::libzstd_shared)
     get_library_name(${zstd_library} zstd_library)

``````````

</details>


https://github.com/llvm/llvm-project/pull/134812


More information about the llvm-commits mailing list