[PATCH] D136065: [CMake] Fix Findzstd module for shared DLL on Windows

Andrew Ng via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 18 04:39:01 PDT 2022


This revision was automatically updated to reflect the committed changes.
Closed by commit rGe7fc7540daa9: [CMake] Fix Findzstd module for shared DLL on Windows (authored by andrewng).

Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D136065/new/

https://reviews.llvm.org/D136065

Files:
  llvm/cmake/modules/Findzstd.cmake


Index: llvm/cmake/modules/Findzstd.cmake
===================================================================
--- llvm/cmake/modules/Findzstd.cmake
+++ llvm/cmake/modules/Findzstd.cmake
@@ -34,9 +34,23 @@
   if(zstd_LIBRARY MATCHES "${zstd_SHARED_LIBRARY_SUFFIX}$" AND
      NOT TARGET zstd::libzstd_shared)
     add_library(zstd::libzstd_shared SHARED IMPORTED)
-    set_target_properties(zstd::libzstd_shared PROPERTIES
+    if(MSVC)
+      # IMPORTED_LOCATION is the path to the DLL and IMPORTED_IMPLIB is the "library".
+      get_filename_component(zstd_DIRNAME "${zstd_LIBRARY}" DIRECTORY)
+      string(REGEX REPLACE "${CMAKE_INSTALL_LIBDIR}$" "${CMAKE_INSTALL_BINDIR}" zstd_DIRNAME "${zstd_DIRNAME}")
+      get_filename_component(zstd_BASENAME "${zstd_LIBRARY}" NAME)
+      string(REGEX REPLACE "\\${CMAKE_LINK_LIBRARY_SUFFIX}$" "${CMAKE_SHARED_LIBRARY_SUFFIX}" zstd_BASENAME "${zstd_BASENAME}")
+      set_target_properties(zstd::libzstd_shared PROPERTIES
+          INTERFACE_INCLUDE_DIRECTORIES "${zstd_INCLUDE_DIR}"
+          IMPORTED_LOCATION "${zstd_DIRNAME}/${zstd_BASENAME}"
+          IMPORTED_IMPLIB "${zstd_LIBRARY}")
+      unset(zstd_DIRNAME)
+      unset(zstd_BASENAME)
+    else()
+      set_target_properties(zstd::libzstd_shared PROPERTIES
           INTERFACE_INCLUDE_DIRECTORIES "${zstd_INCLUDE_DIR}"
           IMPORTED_LOCATION "${zstd_LIBRARY}")
+    endif()
   else()
     set(zstd_STATIC_LIBRARY "${zstd_LIBRARY}")
   endif()


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D136065.468480.patch
Type: text/x-patch
Size: 1460 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20221018/53b257df/attachment.bin>


More information about the llvm-commits mailing list