summaryrefslogtreecommitdiff
path: root/dev-python/cramjam/files/lz4-sys-unbundle-lz4.patch
blob: c17d47a558c3802f084c8cf09068fda5220b127f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
diff --git a/lz4-sys/Cargo.toml b/lz4-sys/Cargo.toml
index 033f2eddc..4001ecd66 100644
--- a/lz4-sys/Cargo.toml
+++ b/lz4-sys/Cargo.toml
@@ -1,0 +1,2 @@ libc = "0.2.44"
+[build-dependencies.pkg-config]
+version = "0.3.9"
diff --git a/lz4-sys/build.rs b/lz4-sys/build.rs
index c69d25716..32a69f418 100644
--- a/lz4-sys/build.rs
+++ b/lz4-sys/build.rs
@@ -15,6 +15,18 @@ fn main() {
 }
 
 fn run() -> Result<(), Box<dyn Error>> {
+    let target = get_from_env("TARGET")?;
+
+    if !target.contains("windows")
+        && pkg_config::Config::new()
+            .print_system_libs(false)
+            .cargo_metadata(true)
+            .probe("liblz4")
+            .is_ok()
+    {
+        return Ok(());
+    }
+
     let mut compiler = cc::Build::new();
     compiler
         .file("liblz4/lib/lz4.c")
@@ -24,7 +36,6 @@ fn run() -> Result<(), Box<dyn Error>> {
         // We always compile the C with optimization, because otherwise it is 20x slower.
         .opt_level(3);
 
-    let target = get_from_env("TARGET")?;
     if target.contains("windows") {
         if target == "i686-pc-windows-gnu" {
             // Disable auto-vectorization for 32-bit MinGW target.