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.
|