Path: blob/main/conda-recipes/llvmdev/patches/0002-CMake-Fix-Findzstd-module-for-shared-DLL-on-Windows.patch
1154 views
From 697c69468e8972764a5a595e9d81bd356e9d2e42 Mon Sep 17 00:00:00 20011From: "Uwe L. Korn" <[email protected]>2Date: Fri, 21 Oct 2022 11:00:31 +02003Subject: [PATCH 2/2] [CMake] Fix Findzstd module for shared DLL on Windows45Differential Revision: https://reviews.llvm.org/D1360656---7llvm/cmake/modules/Findzstd.cmake | 28 ++++++++++++++++++++++++----81 file changed, 24 insertions(+), 4 deletions(-)910diff --git a/llvm/cmake/modules/Findzstd.cmake b/llvm/cmake/modules/Findzstd.cmake11index fab9ea803..3890bd236 10064412--- a/llvm/cmake/modules/Findzstd.cmake13+++ b/llvm/cmake/modules/Findzstd.cmake14@@ -3,6 +3,7 @@15# If successful, the following variables will be defined:16# zstd_INCLUDE_DIR17# zstd_LIBRARY18+# zstd_STATIC_LIBRARY19# zstd_FOUND20#21# Additionally, one of the following import targets will be defined:22@@ -19,6 +20,9 @@ endif()2324find_path(zstd_INCLUDE_DIR NAMES zstd.h)25find_library(zstd_LIBRARY NAMES zstd zstd_static)26+find_library(zstd_STATIC_LIBRARY NAMES27+ zstd_static28+ "${CMAKE_STATIC_LIBRARY_PREFIX}zstd${CMAKE_STATIC_LIBRARY_SUFFIX}")2930include(FindPackageHandleStandardArgs)31find_package_handle_standard_args(32@@ -30,20 +34,36 @@ if(zstd_FOUND)33if(zstd_LIBRARY MATCHES "${zstd_SHARED_LIBRARY_SUFFIX}$" AND34NOT TARGET zstd::libzstd_shared)35add_library(zstd::libzstd_shared SHARED IMPORTED)36- set_target_properties(zstd::libzstd_shared PROPERTIES37+ if(MSVC)38+ # IMPORTED_LOCATION is the path to the DLL and IMPORTED_IMPLIB is the "library".39+ get_filename_component(zstd_DIRNAME "${zstd_LIBRARY}" DIRECTORY)40+ string(REGEX REPLACE "${CMAKE_INSTALL_LIBDIR}$" "${CMAKE_INSTALL_BINDIR}" zstd_DIRNAME "${zstd_DIRNAME}")41+ get_filename_component(zstd_BASENAME "${zstd_LIBRARY}" NAME)42+ string(REGEX REPLACE "\\${CMAKE_LINK_LIBRARY_SUFFIX}$" "${CMAKE_SHARED_LIBRARY_SUFFIX}" zstd_BASENAME "${zstd_BASENAME}")43+ set_target_properties(zstd::libzstd_shared PROPERTIES44+ INTERFACE_INCLUDE_DIRECTORIES "${zstd_INCLUDE_DIR}"45+ IMPORTED_LOCATION "${zstd_DIRNAME}/${zstd_BASENAME}"46+ IMPORTED_IMPLIB "${zstd_LIBRARY}")47+ unset(zstd_DIRNAME)48+ unset(zstd_BASENAME)49+ else()50+ set_target_properties(zstd::libzstd_shared PROPERTIES51INTERFACE_INCLUDE_DIRECTORIES "${zstd_INCLUDE_DIR}"52IMPORTED_LOCATION "${zstd_LIBRARY}")53+ endif()54+ else()55+ set(zstd_STATIC_LIBRARY "${zstd_LIBRARY}")56endif()57- if(zstd_LIBRARY MATCHES "${zstd_STATIC_LIBRARY_SUFFIX}$" AND58+ if(zstd_STATIC_LIBRARY MATCHES "${zstd_STATIC_LIBRARY_SUFFIX}$" AND59NOT TARGET zstd::libzstd_static)60add_library(zstd::libzstd_static STATIC IMPORTED)61set_target_properties(zstd::libzstd_static PROPERTIES62INTERFACE_INCLUDE_DIRECTORIES "${zstd_INCLUDE_DIR}"63- IMPORTED_LOCATION "${zstd_LIBRARY}")64+ IMPORTED_LOCATION "${zstd_STATIC_LIBRARY}")65endif()66endif()6768unset(zstd_SHARED_LIBRARY_SUFFIX)69unset(zstd_STATIC_LIBRARY_SUFFIX)7071-mark_as_advanced(zstd_INCLUDE_DIR zstd_LIBRARY)72+mark_as_advanced(zstd_INCLUDE_DIR zstd_LIBRARY zstd_STATIC_LIBRARY)73--742.37.0 (Apple Git-136)75767778