Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
numba
GitHub Repository: numba/llvmlite
Path: blob/main/conda-recipes/llvmdev/patches/0002-CMake-Fix-Findzstd-module-for-shared-DLL-on-Windows.patch
1154 views
1
From 697c69468e8972764a5a595e9d81bd356e9d2e42 Mon Sep 17 00:00:00 2001
2
From: "Uwe L. Korn" <[email protected]>
3
Date: Fri, 21 Oct 2022 11:00:31 +0200
4
Subject: [PATCH 2/2] [CMake] Fix Findzstd module for shared DLL on Windows
5
6
Differential Revision: https://reviews.llvm.org/D136065
7
---
8
llvm/cmake/modules/Findzstd.cmake | 28 ++++++++++++++++++++++++----
9
1 file changed, 24 insertions(+), 4 deletions(-)
10
11
diff --git a/llvm/cmake/modules/Findzstd.cmake b/llvm/cmake/modules/Findzstd.cmake
12
index fab9ea803..3890bd236 100644
13
--- a/llvm/cmake/modules/Findzstd.cmake
14
+++ b/llvm/cmake/modules/Findzstd.cmake
15
@@ -3,6 +3,7 @@
16
# If successful, the following variables will be defined:
17
# zstd_INCLUDE_DIR
18
# zstd_LIBRARY
19
+# zstd_STATIC_LIBRARY
20
# zstd_FOUND
21
#
22
# Additionally, one of the following import targets will be defined:
23
@@ -19,6 +20,9 @@ endif()
24
25
find_path(zstd_INCLUDE_DIR NAMES zstd.h)
26
find_library(zstd_LIBRARY NAMES zstd zstd_static)
27
+find_library(zstd_STATIC_LIBRARY NAMES
28
+ zstd_static
29
+ "${CMAKE_STATIC_LIBRARY_PREFIX}zstd${CMAKE_STATIC_LIBRARY_SUFFIX}")
30
31
include(FindPackageHandleStandardArgs)
32
find_package_handle_standard_args(
33
@@ -30,20 +34,36 @@ if(zstd_FOUND)
34
if(zstd_LIBRARY MATCHES "${zstd_SHARED_LIBRARY_SUFFIX}$" AND
35
NOT TARGET zstd::libzstd_shared)
36
add_library(zstd::libzstd_shared SHARED IMPORTED)
37
- set_target_properties(zstd::libzstd_shared PROPERTIES
38
+ if(MSVC)
39
+ # IMPORTED_LOCATION is the path to the DLL and IMPORTED_IMPLIB is the "library".
40
+ get_filename_component(zstd_DIRNAME "${zstd_LIBRARY}" DIRECTORY)
41
+ string(REGEX REPLACE "${CMAKE_INSTALL_LIBDIR}$" "${CMAKE_INSTALL_BINDIR}" zstd_DIRNAME "${zstd_DIRNAME}")
42
+ get_filename_component(zstd_BASENAME "${zstd_LIBRARY}" NAME)
43
+ string(REGEX REPLACE "\\${CMAKE_LINK_LIBRARY_SUFFIX}$" "${CMAKE_SHARED_LIBRARY_SUFFIX}" zstd_BASENAME "${zstd_BASENAME}")
44
+ set_target_properties(zstd::libzstd_shared PROPERTIES
45
+ INTERFACE_INCLUDE_DIRECTORIES "${zstd_INCLUDE_DIR}"
46
+ IMPORTED_LOCATION "${zstd_DIRNAME}/${zstd_BASENAME}"
47
+ IMPORTED_IMPLIB "${zstd_LIBRARY}")
48
+ unset(zstd_DIRNAME)
49
+ unset(zstd_BASENAME)
50
+ else()
51
+ set_target_properties(zstd::libzstd_shared PROPERTIES
52
INTERFACE_INCLUDE_DIRECTORIES "${zstd_INCLUDE_DIR}"
53
IMPORTED_LOCATION "${zstd_LIBRARY}")
54
+ endif()
55
+ else()
56
+ set(zstd_STATIC_LIBRARY "${zstd_LIBRARY}")
57
endif()
58
- if(zstd_LIBRARY MATCHES "${zstd_STATIC_LIBRARY_SUFFIX}$" AND
59
+ if(zstd_STATIC_LIBRARY MATCHES "${zstd_STATIC_LIBRARY_SUFFIX}$" AND
60
NOT TARGET zstd::libzstd_static)
61
add_library(zstd::libzstd_static STATIC IMPORTED)
62
set_target_properties(zstd::libzstd_static PROPERTIES
63
INTERFACE_INCLUDE_DIRECTORIES "${zstd_INCLUDE_DIR}"
64
- IMPORTED_LOCATION "${zstd_LIBRARY}")
65
+ IMPORTED_LOCATION "${zstd_STATIC_LIBRARY}")
66
endif()
67
endif()
68
69
unset(zstd_SHARED_LIBRARY_SUFFIX)
70
unset(zstd_STATIC_LIBRARY_SUFFIX)
71
72
-mark_as_advanced(zstd_INCLUDE_DIR zstd_LIBRARY)
73
+mark_as_advanced(zstd_INCLUDE_DIR zstd_LIBRARY zstd_STATIC_LIBRARY)
74
--
75
2.37.0 (Apple Git-136)
76
77
78